mirror of
https://github.com/retroSoC/retroSoC.git
synced 2026-11-06 14:55:14 +00:00
feat: add crypto accelerator support and related tests
- Modified DMA error testbench to include crypto input and output AXI4 stream interfaces. - Updated DMA register testbench to integrate crypto AXI4 stream interfaces. - Enhanced SOC IRQ topology test to account for new crypto IRQs. - Added WS2812 DMA testbench modifications for crypto interfaces. - Introduced new Python tests for crypto primitives (AES, SHA, RSA) and APB register paths. - Implemented register parity tests to ensure synchronization between RTL and SDK constants. - Expanded DMA tests to validate crypto streaming endpoints. - Updated memory map tests to include crypto address definitions. - Adjusted SOC topology tests to reflect changes in IRQ mappings and peripheral counts.
This commit is contained in:
55 files changed
+6204
-189
No files matched your search
@@ -74,7 +74,7 @@ def test_topology_generates_complete_rib_apb_and_gpio_bindings(tmp_path: Path) -
|
||||
irq_sva = (tmp_path / "rtl/soc_irq_sva.svh").read_text(encoding="utf-8")
|
||||
filelist = (tmp_path / "soc_topology.fl").read_text(encoding="utf-8")
|
||||
|
||||
assert interfaces.count("apb4_if u_") == 18
|
||||
assert interfaces.count("apb4_if u_") == 19
|
||||
assert "nmi_if" not in interfaces
|
||||
assert "soc_nmi" not in interfaces
|
||||
assert "assign s_psel_comb[17] = `SOC_ADDR_IS_APB4_I2C1(s_decode_addr);" in routes
|
||||
@@ -83,6 +83,7 @@ def test_topology_generates_complete_rib_apb_and_gpio_bindings(tmp_path: Path) -
|
||||
assert "assign s_psel_comb[15] = `SOC_ADDR_IS_APB4_SDIO0(s_decode_addr);" in routes
|
||||
assert "assign s_psel_comb[16] = `SOC_ADDR_IS_APB4_OPIPSRAM(s_decode_addr);" in routes
|
||||
assert "assign s_psel_comb[18] = `SOC_ADDR_IS_APB4_SDIO1(s_decode_addr);" in routes
|
||||
assert "assign s_psel_comb[19] = `SOC_ADDR_IS_APB4_CRYPTO(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
|
||||
@@ -127,7 +128,7 @@ def test_topology_generates_complete_rib_apb_and_gpio_bindings(tmp_path: Path) -
|
||||
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'h004EFBFC" in irq_config
|
||||
assert "`define SOC_IRQ_APB4_PERIPH_WIDTH 18" in irq_config
|
||||
assert "`define SOC_IRQ_APB4_PERIPH_WIDTH 19" 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
|
||||
@@ -138,6 +139,7 @@ def test_topology_generates_complete_rib_apb_and_gpio_bindings(tmp_path: Path) -
|
||||
assert "assign irq_o[15] = opipsram.irq_o;" in rib_irq
|
||||
assert "assign irq_o[16] = sdio0.irq_o;" in rib_irq
|
||||
assert "assign irq_o[17] = sdio1.irq_o;" in rib_irq
|
||||
assert "assign irq_o[18] = s_crypto_irq;" 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] = s_apb4_periph_irq[16];" in irq_wiring
|
||||
@@ -146,11 +148,13 @@ def test_topology_generates_complete_rib_apb_and_gpio_bindings(tmp_path: Path) -
|
||||
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 "s_irq[21] = s_apb4_periph_irq[17];" in irq_wiring
|
||||
assert "s_irq[23] = s_apb4_periph_irq[18];" in irq_wiring
|
||||
assert "irq_i[10] == apb4_periph_irq_i[16]" 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[21] == apb4_periph_irq_i[17]" in irq_sva
|
||||
assert "irq_i[23] == apb4_periph_irq_i[18]" 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+")
|
||||
@@ -193,6 +197,7 @@ def test_topology_preserves_default_irq_compatibility_mapping() -> None:
|
||||
("dma", "apb4_periph", 14, 20, "s_dma_irq"),
|
||||
("opipsram", "apb4_periph", 15, 22, "opipsram.irq_o"),
|
||||
("sdio1", "apb4_periph", 17, 21, "sdio1.irq_o"),
|
||||
("crypto", "apb4_periph", 18, 23, "s_crypto_irq"),
|
||||
]
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user