mirror of
https://github.com/retroSoC/retroSoC.git
synced 2026-11-04 22:32:36 +00:00
- Updated to integrate a coefficient engine and additional signals for coefficient handling. - Modified to include a coefficient engine, enhancing the encoding process with new signals. - Improved to validate generated blocks against expected values and added timeout handling. - Introduced for testing SRAM wrappers in JPEG workspace. - Enhanced test coverage in to reject invalid STA net drivers. - Updated to ensure proper coverage of canonical domains in timing contracts. - Added a new test for JPEG coefficient engine in . - Improved memory map tests in to validate public active MMIO regions. - Enhanced management core specification tests in to verify high-performance core specifications. - Added behavioral-only checks in to exclude synthesis and netlist consumers. - Updated SDRAM tests in to track active firmware memory. - Enhanced STA constraints tests in to cover current clock domains and net drivers.
186 lines
16 KiB
JSON
186 lines
16 KiB
JSON
{
|
|
"schema_version": 2,
|
|
"reset_ports": ["ext_rst_n_i_pad", "jtag_trst_n_i_pad"],
|
|
"domains": [
|
|
{
|
|
"name": "aon",
|
|
"clock": "s_ref24_clk_buf",
|
|
"reset": "s_aon_rst_n",
|
|
"reset_source": "ext_rst_n_i",
|
|
"reset_primitive": "rst_sync",
|
|
"path": "rtl/mini/top/soc_clock_reset_subsystem.sv",
|
|
"instance": "u_aon_rst_sync",
|
|
"sta": {"source_port": "ref24clk_i_pad", "pin": "u_rcu.u_clock_reset_subsystem.u_ref24_clk_buf/clk_o", "period_ns": 41.666666667, "async_group": "aon"}
|
|
},
|
|
{
|
|
"name": "lp",
|
|
"clock": "s_lp_root_clk",
|
|
"reset": "lp_rst_n_o",
|
|
"reset_source": "s_domain_reset_source_n",
|
|
"reset_primitive": "rst_sync",
|
|
"path": "rtl/mini/top/soc_clock_reset_subsystem.sv",
|
|
"instance": "u_lp_rst_sync",
|
|
"sta": {"source_domain": "aon", "object_type": "net_driver", "net": "s_sys_clk", "period_ns": 13.888888889, "async_group": "lp"}
|
|
},
|
|
{
|
|
"name": "hp",
|
|
"clock": "s_hp_root_clk",
|
|
"reset": "hp_rst_n_o",
|
|
"reset_source": "s_domain_reset_source_n",
|
|
"reset_primitive": "rst_sync",
|
|
"path": "rtl/mini/top/soc_clock_reset_subsystem.sv",
|
|
"instance": "u_hp_rst_sync",
|
|
"sta": {"source_port": "extclk_i_pad", "object_type": "net_driver", "net": "s_hp_clk", "period_ns": 4.166666667, "async_group": "hp"}
|
|
},
|
|
{
|
|
"name": "pclk",
|
|
"clock": "s_pclk",
|
|
"reset": "pclk_rst_n_o",
|
|
"reset_source": "s_domain_reset_source_n",
|
|
"reset_primitive": "rst_sync",
|
|
"path": "rtl/mini/top/soc_clock_reset_subsystem.sv",
|
|
"instance": "u_pclk_rst_sync",
|
|
"sta": {"source_domain": "lp", "object_type": "net_driver", "net": "s_pclk", "period_ns": 20.833333333, "async_group": "lp"}
|
|
},
|
|
{
|
|
"name": "memory",
|
|
"clock": "s_mem_clk_div2",
|
|
"reset": "mem_rst_n_o",
|
|
"reset_source": "s_domain_reset_source_n",
|
|
"reset_primitive": "rst_sync",
|
|
"path": "rtl/mini/top/soc_clock_reset_subsystem.sv",
|
|
"instance": "u_mem_rst_sync",
|
|
"sta": {"source_port": "extclk_i_pad", "object_type": "net_driver", "net": "s_mem_clk", "period_ns": 27.777777778, "async_group": "memory"}
|
|
},
|
|
{
|
|
"name": "audio",
|
|
"clock": "s_aud_clk_buf",
|
|
"reset": "aud_rst_n_o",
|
|
"reset_source": "s_domain_reset_source_n",
|
|
"reset_primitive": "rst_sync",
|
|
"path": "rtl/mini/top/soc_clock_reset_subsystem.sv",
|
|
"instance": "u_aud_rst_sync",
|
|
"sta": {"source_port": "audclk_i_pad", "pin": "u_rcu.u_clock_reset_subsystem.u_aud_clk_buf/clk_o", "period_ns": 54.253472222, "async_group": "audio"}
|
|
},
|
|
{
|
|
"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/mini/top/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"}
|
|
},
|
|
{
|
|
"name": "dvp",
|
|
"clock": "s_pclk_sel",
|
|
"reset": "s_dvp_pclk_rst_n_sync",
|
|
"reset_source": "rst_n_i",
|
|
"reset_primitive": "rst_sync",
|
|
"path": "rtl/ip/multimedia/axi4s_dvp.sv",
|
|
"instance": "u_dvp_pclk_rst_sync",
|
|
"sta": {"source_port": "gpio_10_io_pad", "pin": "u_retrosoc.u_apb4_periph.u_axi4_dvp.u_dvp_pclk_clk_buf/clk_o", "period_ns": 41.666666667, "async_group": "dvp"}
|
|
},
|
|
{
|
|
"name": "usb2_ulpi",
|
|
"clock": "clk_ulpi_i",
|
|
"reset": "s_ulpi_rst_n",
|
|
"reset_source": "rst_n_i",
|
|
"reset_primitive": "rst_sync",
|
|
"path": "rtl/ip/usb/apb4_usb2.sv",
|
|
"instance": "u_ulpi_rst_sync",
|
|
"sta": {"source_port": "usb2_ulpi_clk_i_pad", "object_type": "port", "period_ns": 16.666666667, "async_group": "usb2_ulpi"}
|
|
}
|
|
],
|
|
"crossings": [
|
|
{"name": "pll_request", "source": "pclk", "destination": "aon", "primitive": "cdc_2phase", "path": "rtl/mini/top/pll_rcu_controller.sv", "instance": "u_pll_req_cdc"},
|
|
{"name": "pll_response", "source": "aon", "destination": "pclk", "primitive": "cdc_2phase", "path": "rtl/mini/top/pll_rcu_controller.sv", "instance": "u_pll_rsp_cdc"},
|
|
{"name": "clock_request", "source": "pclk", "destination": "aon", "primitive": "cdc_2phase", "path": "rtl/mini/top/clock_config_controller.sv", "instance": "u_clock_req_cdc"},
|
|
{"name": "clock_response", "source": "aon", "destination": "pclk", "primitive": "cdc_2phase", "path": "rtl/mini/top/clock_config_controller.sv", "instance": "u_clock_rsp_cdc"},
|
|
{"name": "pclk_config", "source": "aon", "destination": "lp", "primitive": "cdc_2phase", "path": "rtl/mini/top/soc_clock_reset_subsystem.sv", "instance": "u_pclk_cfg_cdc"},
|
|
{"name": "hp_idle", "source": "hp", "destination": "aon", "primitive": "cdc_sync", "path": "rtl/mini/top/soc_clock_reset_subsystem.sv", "instance": "u_hp_idle_sync"},
|
|
{"name": "pclk_idle", "source": "pclk", "destination": "aon", "primitive": "cdc_sync", "path": "rtl/mini/top/soc_clock_reset_subsystem.sv", "instance": "u_pclk_idle_sync"},
|
|
{"name": "clint_timebase", "source": "aon", "destination": "lp", "primitive": "edge_det", "path": "rtl/ip/peripheral/clint_timebase.sv", "instance": "u_tick_edge_det"},
|
|
{"name": "hp_mmio", "source": "hp", "destination": "lp", "primitive": "axi4_async_bridge", "path": "rtl/mini/top/retrosoc.sv", "instance": "u_hp_mmio_cdc"},
|
|
{"name": "cfg_registers", "source": "lp", "destination": "pclk", "primitive": "axi4_async_bridge", "path": "rtl/mini/top/retrosoc.sv", "instance": "u_cfg_pclk_cdc"},
|
|
{"name": "system_registers", "source": "lp", "destination": "pclk", "primitive": "axi4_async_bridge", "path": "rtl/mini/top/retrosoc.sv", "instance": "u_system_pclk_cdc"},
|
|
{"name": "sdram_config", "source": "pclk", "destination": "memory", "primitive": "apb4_async_bridge", "path": "rtl/mini/top/retrosoc.sv", "instance": "u_sdram_cfg_cdc"},
|
|
{"name": "sram_config", "source": "pclk", "destination": "hp", "primitive": "apb4_async_bridge", "path": "rtl/mini/top/retrosoc.sv", "instance": "u_sram_cfg_cdc"},
|
|
{"name": "fabric_monitor", "source": "pclk", "destination": "hp", "primitive": "apb4_async_bridge", "path": "rtl/mini/top/retrosoc.sv", "instance": "u_fabric_monitor_cdc"},
|
|
{"name": "io_dma_data", "source": "pclk", "destination": "hp", "primitive": "axi4_async_bridge", "path": "rtl/mini/top/soc_data_plane.sv", "instance": "u_io_cdc"},
|
|
{"name": "jpeg_data", "source": "pclk", "destination": "hp", "primitive": "axi4_async_bridge", "path": "rtl/mini/top/soc_data_plane.sv", "instance": "u_jpeg_cdc"},
|
|
{"name": "extension_h_data", "source": "pclk", "destination": "hp", "primitive": "axi4_async_bridge", "path": "rtl/mini/top/soc_data_plane.sv", "instance": "u_ext_h_cdc"},
|
|
{"name": "sdram_data", "source": "hp", "destination": "memory", "primitive": "axi4_async_bridge", "path": "rtl/mini/top/soc_data_plane.sv", "instance": "u_target_cdc"},
|
|
{"name": "serial_memory_data", "source": "hp", "destination": "memory", "primitive": "axi4_async_bridge", "path": "rtl/mini/top/soc_data_plane.sv", "instance": "u_target_cdc"},
|
|
{"name": "sdram_abort", "source": "hp", "destination": "memory", "primitive": "cdc_sync", "path": "rtl/mini/top/soc_data_plane.sv", "instance": "u_abort_sync"},
|
|
{"name": "hp_cache_request", "source": "aon", "destination": "pclk", "primitive": "cdc_sync", "path": "rtl/mini/top/retrosoc.sv", "instance": "u_hp_cache_req_sync"},
|
|
{"name": "hp_cache_clean", "source": "pclk", "destination": "aon", "primitive": "cdc_sync", "path": "rtl/mini/top/retrosoc.sv", "instance": "u_hp_cache_clean_sync"},
|
|
{"name": "resource_block", "source": "pclk", "destination": "hp", "primitive": "cdc_sync", "path": "rtl/mini/top/soc_data_plane.sv", "instance": "u_resource_block_sync"},
|
|
{"name": "resource_idle", "source": "hp", "destination": "pclk", "primitive": "cdc_sync", "path": "rtl/mini/top/retrosoc.sv", "instance": "u_resource_idle_sync"},
|
|
{"name": "resource_block_ack", "source": "hp", "destination": "pclk", "primitive": "cdc_sync", "path": "rtl/mini/top/retrosoc.sv", "instance": "u_resource_block_ack_sync"},
|
|
{"name": "memory_pad_mode_hp", "source": "aon", "destination": "hp", "primitive": "cdc_sync", "path": "rtl/mini/top/soc_data_plane.sv", "instance": "u_mem_pad_mode_sync"},
|
|
{"name": "memory_pad_mode_lp", "source": "aon", "destination": "lp", "primitive": "cdc_sync", "path": "rtl/mini/top/retrosoc.sv", "instance": "u_mem_pad_mode_sync"},
|
|
{"name": "dvp_enable", "source": "pclk", "destination": "dvp", "primitive": "cdc_2phase", "path": "rtl/ip/multimedia/axi4s_dvp.sv", "instance": "u_dvp_config_cdc"},
|
|
{"name": "dvp_fifo", "source": "dvp", "destination": "pclk", "primitive": "cdc_fifo_warm_flush", "path": "rtl/ip/multimedia/axi4s_dvp.sv", "instance": "u_dvp_payload_fifo"},
|
|
{"name": "rtc_command", "source": "pclk", "destination": "audio", "primitive": "async_reqack", "path": "rtl/managed/clusterip/rtc/rtl/apb4_rtc.sv", "instance": "u_command_mailbox"},
|
|
{"name": "rtc_response", "source": "audio", "destination": "pclk", "primitive": "async_reqack", "path": "rtl/managed/clusterip/rtc/rtl/apb4_rtc.sv", "instance": "u_response_mailbox"},
|
|
{"name": "rtc_event", "source": "audio", "destination": "pclk", "primitive": "cdc_sync", "path": "rtl/managed/clusterip/rtc/rtl/apb4_rtc.sv", "instance": "u_event_sync"},
|
|
{"name": "rtc_status", "source": "audio", "destination": "pclk", "primitive": "cdc_sync", "path": "rtl/managed/clusterip/rtc/rtl/apb4_rtc.sv", "instance": "u_status_sync"},
|
|
{"name": "rtc_interrupt_enable", "source": "audio", "destination": "pclk", "primitive": "cdc_sync", "path": "rtl/managed/clusterip/rtc/rtl/apb4_rtc.sv", "instance": "u_interrupt_enable_sync"},
|
|
{"name": "rtc_wake_enable", "source": "audio", "destination": "pclk", "primitive": "cdc_sync", "path": "rtl/managed/clusterip/rtc/rtl/apb4_rtc.sv", "instance": "u_wake_enable_sync"},
|
|
{"name": "rtc_wake_status", "source": "audio", "destination": "pclk", "primitive": "cdc_sync", "path": "rtl/ip/peripheral/sysctrl_core.sv", "instance": "u_rtc_wake_sync"},
|
|
{"name": "jtag_dmi", "source": "jtag", "destination": "lp", "primitive": "hazard3_apb_async_bridge", "path": "rtl/managed/hazard3/hdl/debug/dtm/hazard3_jtag_dtm_core.v", "instance": "inst_hazard3_apb_async_bridge"},
|
|
{"name": "hp_debug_select", "source": "pclk", "destination": "jtag", "primitive": "cdc_sync", "path": "rtl/mini/top/retrosoc.sv", "instance": "u_debug_select_sync"},
|
|
{"name": "wdg_command", "source": "pclk", "destination": "audio", "primitive": "async_reqack", "path": "rtl/managed/clusterip/wdg/rtl/apb4_wdg.sv", "instance": "u_command_mailbox"},
|
|
{"name": "wdg_response", "source": "audio", "destination": "pclk", "primitive": "async_reqack", "path": "rtl/managed/clusterip/wdg/rtl/apb4_wdg.sv", "instance": "u_response_mailbox"},
|
|
{"name": "wdg_debug_halted", "source": "lp", "destination": "audio", "primitive": "cdc_sync", "path": "rtl/managed/clusterip/wdg/rtl/apb4_wdg.sv", "instance": "u_debug_halted_sync"},
|
|
{"name": "wdg_status", "source": "audio", "destination": "pclk", "primitive": "cdc_sync", "path": "rtl/managed/clusterip/wdg/rtl/apb4_wdg.sv", "instance": "u_status_sync"},
|
|
{"name": "wdg_reset_cause", "source": "audio", "destination": "pclk", "primitive": "cdc_sync", "path": "rtl/managed/clusterip/wdg/rtl/apb4_wdg.sv", "instance": "u_reset_cause_sync"},
|
|
{"name": "usb2_work", "source": "pclk", "destination": "usb2_ulpi", "primitive": "async_reqack", "path": "rtl/ip/usb/apb4_usb2.sv", "instance": "u_work_cdc"},
|
|
{"name": "usb2_result", "source": "usb2_ulpi", "destination": "pclk", "primitive": "async_reqack", "path": "rtl/ip/usb/apb4_usb2.sv", "instance": "u_result_cdc"},
|
|
{"name": "usb2_setup", "source": "usb2_ulpi", "destination": "pclk", "primitive": "async_reqack", "path": "rtl/ip/usb/apb4_usb2.sv", "instance": "u_setup_cdc"},
|
|
{"name": "usb2_fill_command", "source": "pclk", "destination": "usb2_ulpi", "primitive": "async_reqack", "path": "rtl/ip/usb/apb4_usb2.sv", "instance": "u_fill_command_cdc"},
|
|
{"name": "usb2_drain_command", "source": "pclk", "destination": "usb2_ulpi", "primitive": "async_reqack", "path": "rtl/ip/usb/apb4_usb2.sv", "instance": "u_drain_command_cdc"},
|
|
{"name": "usb2_buffer_event", "source": "usb2_ulpi", "destination": "pclk", "primitive": "async_reqack", "path": "rtl/ip/usb/apb4_usb2.sv", "instance": "u_buffer_event_cdc"},
|
|
{"name": "usb2_view_request", "source": "pclk", "destination": "usb2_ulpi", "primitive": "async_reqack", "path": "rtl/ip/usb/apb4_usb2.sv", "instance": "u_view_request_cdc"},
|
|
{"name": "usb2_view_response", "source": "usb2_ulpi", "destination": "pclk", "primitive": "async_reqack", "path": "rtl/ip/usb/apb4_usb2.sv", "instance": "u_view_response_cdc"},
|
|
{"name": "usb2_fill_stream", "source": "pclk", "destination": "usb2_ulpi", "primitive": "cdc_fifo", "path": "rtl/ip/usb/apb4_usb2.sv", "instance": "u_fill_stream_cdc"},
|
|
{"name": "usb2_drain_stream", "source": "usb2_ulpi", "destination": "pclk", "primitive": "cdc_fifo", "path": "rtl/ip/usb/apb4_usb2.sv", "instance": "u_drain_stream_cdc"},
|
|
{"name": "usb2_role", "source": "pclk", "destination": "usb2_ulpi", "primitive": "cdc_sync", "path": "rtl/ip/usb/apb4_usb2.sv", "instance": "u_role_sync"},
|
|
{"name": "usb2_role_reset", "source": "pclk", "destination": "usb2_ulpi", "primitive": "cdc_sync", "path": "rtl/ip/usb/apb4_usb2.sv", "instance": "u_role_reset_sync"},
|
|
{"name": "usb2_phy_reset", "source": "pclk", "destination": "usb2_ulpi", "primitive": "cdc_sync", "path": "rtl/ip/usb/apb4_usb2.sv", "instance": "u_phy_reset_sync"},
|
|
{"name": "usb2_high_speed", "source": "pclk", "destination": "usb2_ulpi", "primitive": "cdc_sync", "path": "rtl/ip/usb/apb4_usb2.sv", "instance": "u_high_speed_sync"},
|
|
{"name": "usb2_enable", "source": "pclk", "destination": "usb2_ulpi", "primitive": "cdc_sync", "path": "rtl/ip/usb/apb4_usb2.sv", "instance": "u_enable_sync"},
|
|
{"name": "usb2_device_addr", "source": "pclk", "destination": "usb2_ulpi", "primitive": "cdc_sync", "path": "rtl/ip/usb/apb4_usb2.sv", "instance": "u_device_addr_sync"},
|
|
{"name": "usb2_endpoint_config", "source": "pclk", "destination": "usb2_ulpi", "primitive": "cdc_sync", "path": "rtl/ip/usb/apb4_usb2.sv", "instance": "u_endpoint_cfg_sync"},
|
|
{"name": "usb2_timeout", "source": "pclk", "destination": "usb2_ulpi", "primitive": "cdc_sync", "path": "rtl/ip/usb/apb4_usb2.sv", "instance": "u_timeout_sync"},
|
|
{"name": "usb2_phy_status", "source": "usb2_ulpi", "destination": "pclk", "primitive": "cdc_sync", "path": "rtl/ip/usb/apb4_usb2.sv", "instance": "u_phy_status_sync"},
|
|
{"name": "usb2_transaction_busy", "source": "usb2_ulpi", "destination": "pclk", "primitive": "cdc_sync", "path": "rtl/ip/usb/apb4_usb2.sv", "instance": "u_transaction_busy_sync"},
|
|
{"name": "usb2_frame", "source": "usb2_ulpi", "destination": "pclk", "primitive": "cdc_sync", "path": "rtl/ip/usb/apb4_usb2.sv", "instance": "u_frame_sync"},
|
|
{"name": "usb2_ecc_counts", "source": "usb2_ulpi", "destination": "pclk", "primitive": "cdc_sync", "path": "rtl/ip/usb/apb4_usb2.sv", "instance": "u_ecc_counts_sync"},
|
|
{"name": "usb2_retry_event", "source": "usb2_ulpi", "destination": "pclk", "primitive": "edge_det", "path": "rtl/ip/usb/apb4_usb2.sv", "instance": "u_retry_event_sync"},
|
|
{"name": "usb2_protocol_event", "source": "usb2_ulpi", "destination": "pclk", "primitive": "edge_det", "path": "rtl/ip/usb/apb4_usb2.sv", "instance": "u_protocol_event_sync"}
|
|
],
|
|
"same_domain_contracts": [
|
|
{
|
|
"name": "lp_pclk_generated_clock",
|
|
"source_domain": "lp",
|
|
"destination_domain": "pclk",
|
|
"clock": "clk_pclk_i",
|
|
"reset": "rst_pclk_n_i",
|
|
"relationship": "synchronous_generated_clock",
|
|
"description": "PCLK is generated from LP by /1, /2, /4, /8, or /16; STA must not false-path it."
|
|
},
|
|
{
|
|
"name": "memory_protocol_transition",
|
|
"source_domain": "hp",
|
|
"destination_domain": "memory",
|
|
"clock": "clk_mem_i",
|
|
"reset": "rst_mem_n_i",
|
|
"relationship": "declared_transition_boundary",
|
|
"description": "SDRAM AXI64 commands cross from HP into the stable 36 MHz memory domain; refresh and protocol timing do not follow HP DFS."
|
|
}
|
|
]
|
|
}
|