mirror of
https://github.com/retroSoC/retroSoC.git
synced 2026-11-06 14:55:14 +00:00
feat: add OPI PSRAM support and related tests
- Updated memory map tests to include OPI PSRAM address and size definitions. - Introduced new test suite for OPI PSRAM to ensure RTL and HAL ABI consistency. - Enhanced script tools tests to validate formal filelists for OPI PSRAM. - Modified SOC topology tests to incorporate OPI PSRAM bindings and IRQ mappings.
This commit is contained in:
46 files changed
+8398
-132
No files matched your search
@@ -81,6 +81,7 @@ def test_topology_generates_complete_rib_apb_and_gpio_bindings(tmp_path: Path) -
|
||||
assert "assign s_psel_comb[1] = `SOC_ADDR_IS_APB4_GPIO(s_decode_addr) || `SOC_ADDR_IS_APB4_GPIO_ADMIN(s_decode_addr);" in routes
|
||||
assert "SOC_ADDR_FLASH" not in routes
|
||||
assert "assign s_psel_comb[15] = 1'b0;" in routes
|
||||
assert "assign s_psel_comb[16] = `SOC_ADDR_IS_APB4_OPIPSRAM(s_decode_addr);" in routes
|
||||
assert gpio.count("// GPIO") == 64
|
||||
assert "u_uart1_if" not in gpio
|
||||
assert "assign u_uart0_if.cts_n_i = u_gpio_if.di_i[0];" in gpio
|
||||
@@ -100,6 +101,12 @@ def test_topology_generates_complete_rib_apb_and_gpio_bindings(tmp_path: Path) -
|
||||
assert "assign u_pwm_if.capture_i[0] = u_gpio_if.di_i[30];" in gpio
|
||||
assert "assign u_pwm_if.capture_i[1] = u_gpio_if.di_i[31];" in gpio
|
||||
assert "assign u_gpio_if.alt1_do_i[22] = u_psram_if.nss_o[0];" in gpio
|
||||
assert "assign u_gpio_if.alt0_do_i[21] = u_opipsram_if.ck_o;" in gpio
|
||||
assert "assign u_gpio_if.alt0_do_i[22] = u_opipsram_if.cs_n_o;" in gpio
|
||||
assert "assign u_opipsram_if.dq_i[6] = u_gpio_if.di_i[29];" in gpio
|
||||
assert "assign u_gpio_if.alt0_oe_i[29] = u_opipsram_if.dq_oe_o[6];" in gpio
|
||||
assert "assign u_opipsram_if.rwds_i = u_gpio_if.di_i[31];" in gpio
|
||||
assert "assign u_gpio_if.alt0_do_i[31] = u_opipsram_if.rwds_o;" in gpio
|
||||
assert "s_tmr_capch" not in gpio
|
||||
assert apb_interfaces.count("apb4_if u_") == 8
|
||||
assert "apb4_pure_if u_archinfo_apb4_pure_if ();" in apb_interfaces
|
||||
@@ -114,8 +121,8 @@ def test_topology_generates_complete_rib_apb_and_gpio_bindings(tmp_path: Path) -
|
||||
assert ".system_axi4(u_system_axi4_if)" in bus_fabric
|
||||
assert ".axi4(u_system_axi4_if)" in apb_system_fabric
|
||||
assert "`define SOC_IRQ_VECTOR_WIDTH 32" in irq_config
|
||||
assert "`define SOC_USER_IRQ_MASK 32'h000EFBFC" in irq_config
|
||||
assert "`define SOC_IRQ_APB4_PERIPH_WIDTH 15" in irq_config
|
||||
assert "`define SOC_USER_IRQ_MASK 32'h004EFBFC" in irq_config
|
||||
assert "`define SOC_IRQ_APB4_PERIPH_WIDTH 16" in irq_config
|
||||
assert "`define SOC_IRQ_APB4_SYSTEM_WIDTH 5" in irq_config
|
||||
assert "assign irq_o[0] = u_clint_if.software_irq_o[0];" in rib_irq
|
||||
assert "assign irq_o[10] = ws2812.irq_o;" in rib_irq
|
||||
@@ -123,15 +130,18 @@ def test_topology_generates_complete_rib_apb_and_gpio_bindings(tmp_path: Path) -
|
||||
assert "assign irq_o[12] = i2c1.irq_o;" in rib_irq
|
||||
assert "assign irq_o[13] = s_dvp_irq;" in rib_irq
|
||||
assert "assign irq_o[14] = s_dma_irq;" in rib_irq
|
||||
assert "assign irq_o[15] = opipsram.irq_o;" in rib_irq
|
||||
assert "assign irq_o[0] = pwm.irq_o;" in apb_irq
|
||||
assert "assign irq_o[4] = s_rng_irq;" in apb_irq
|
||||
assert "s_irq[10]" not in irq_wiring
|
||||
assert "s_irq[15] = s_apb4_periph_irq[13];" in irq_wiring
|
||||
assert "s_irq[16] = s_apb4_system_irq[4];" in irq_wiring
|
||||
assert "s_irq[20] = s_apb4_periph_irq[14];" in irq_wiring
|
||||
assert "s_irq[22] = s_apb4_periph_irq[15];" in irq_wiring
|
||||
assert "irq_i[10] == 1'b0" in irq_sva
|
||||
assert "irq_i[15] == apb4_periph_irq_i[13]" in irq_sva
|
||||
assert "irq_i[20] == apb4_periph_irq_i[14]" in irq_sva
|
||||
assert "irq_i[22] == apb4_periph_irq_i[15]" in irq_sva
|
||||
assert "irq_i[31] == 1'b0" in irq_sva
|
||||
assert "bind retrosoc soc_irq_topology_sva" in irq_sva
|
||||
assert filelist.startswith("+incdir+")
|
||||
@@ -171,6 +181,7 @@ def test_topology_preserves_default_irq_compatibility_mapping() -> None:
|
||||
("i2c1", "apb4_periph", 12, 19, "i2c1.irq_o"),
|
||||
("dvp", "apb4_periph", 13, 15, "s_dvp_irq"),
|
||||
("dma", "apb4_periph", 14, 20, "s_dma_irq"),
|
||||
("opipsram", "apb4_periph", 15, 22, "opipsram.irq_o"),
|
||||
]
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user