mirror of
https://github.com/retroSoC/retroSoC.git
synced 2026-11-04 22:32:36 +00:00
- Implemented a new TCL script for Tiny R2 feasibility checks, reporting clock properties, path delays, and reset loads. - Created a SystemVerilog module for the Tiny R2 reset tree, managing multiple reset signals for the system and its leaves. - Developed a Python script for capturing and analyzing feasibility metrics, ensuring compliance with reset-load and clock frequency requirements. - Added testbenches for the Tiny R2 reset tree and FIFO, validating reset behavior and timing contracts. - Introduced unit tests for feasibility analysis, ensuring correct handling of clock rates and reset load conditions.
77 lines
2.4 KiB
JSON
77 lines
2.4 KiB
JSON
{
|
|
"schema_version": 2,
|
|
"reset_ports": [
|
|
"ext_rst_n_i_pad",
|
|
"jtag_trst_n_i_pad"
|
|
],
|
|
"domains": [
|
|
{
|
|
"name": "system",
|
|
"clock": "clk_i",
|
|
"reset": "system_rst_n_o",
|
|
"reset_source": "s_system_req_n",
|
|
"reset_primitive": "rst_sync",
|
|
"path": "rtl/tiny/top/tiny_reset_tree.sv",
|
|
"instance": "u_system_rst_sync",
|
|
"sta": {
|
|
"source_port": "extclk_i_pad",
|
|
"pin": "u_clock_buffer/clk_o",
|
|
"period_ns": 41.666666667,
|
|
"async_group": "system"
|
|
}
|
|
},
|
|
{
|
|
"name": "jtag",
|
|
"clock": "s_jtag_tck_buf",
|
|
"reset": "s_jtag_trst_n_sync",
|
|
"reset_source": "jtag_trst_n_i",
|
|
"reset_primitive": "rst_sync",
|
|
"path": "rtl/ip/core/mgmt_debug_wrapper.sv",
|
|
"instance": "u_jtag_rst_sync",
|
|
"sta": {
|
|
"source_port": "jtag_tck_i_pad",
|
|
"object_type": "port",
|
|
"period_ns": 100.0,
|
|
"async_group": "jtag"
|
|
}
|
|
}
|
|
],
|
|
"reset_distribution": {
|
|
"release_edges": 5,
|
|
"por": "u_soc.u_reset_tree.u_por_rst_sync",
|
|
"system": "u_soc.u_reset_tree.u_system_rst_sync",
|
|
"system_source": "por_rst_n_o && !watchdog_reset_req_i",
|
|
"leaf_instance_pattern": "u_soc.u_reset_tree.gen_leaf[%d].u_leaf_rst_sync",
|
|
"leaf_names": [
|
|
"fabric", "gpio", "uart0", "uart1", "timer0", "timer1", "i2c0", "i2c1",
|
|
"xpi", "dma", "sysctrl", "clint", "sram", "archinfo", "pwm", "rtc", "wdg"
|
|
],
|
|
"cpu_prerequisite": "all leaf resets released",
|
|
"hart": "u_soc.u_cpu.u_mgmt_debug_wrapper.u_mgmt_debug_reset.u_core_rst_sync",
|
|
"jtag": "u_soc.u_cpu.u_mgmt_debug_wrapper.u_jtag_rst_sync",
|
|
"dmi": "u_soc.u_cpu.u_mgmt_debug_wrapper.u_dmi_rst_sync",
|
|
"watchdog_functional_reset": "POR only; APB uses wdg leaf",
|
|
"main_sram_payload_reset": "none",
|
|
"crypto": "not integrated; physical erasure contract unchanged",
|
|
"clock_domain": "system"
|
|
},
|
|
"crossings": [
|
|
{
|
|
"name": "debug_dmi",
|
|
"source": "jtag",
|
|
"destination": "system",
|
|
"primitive": "hazard3_apb_async_bridge",
|
|
"path": "rtl/managed/hazard3/hdl/debug/dtm/hazard3_jtag_dtm_core.v",
|
|
"instance": "inst_hazard3_apb_async_bridge"
|
|
},
|
|
{
|
|
"name": "debug_hard_reset",
|
|
"source": "jtag",
|
|
"destination": "system",
|
|
"primitive": "cdc_sync",
|
|
"path": "rtl/ip/core/mgmt_debug_wrapper.sv",
|
|
"instance": "u_dmihardreset_cdc_sync"
|
|
}
|
|
]
|
|
}
|