diff --git a/dbt-rise-riscv b/dbt-rise-riscv index de97a24..2984a43 160000 --- a/dbt-rise-riscv +++ b/dbt-rise-riscv @@ -1 +1 @@ -Subproject commit de97a2456701bd63a4ee90d2ab47e8c6539cdcc8 +Subproject commit 2984a43885001ec6086a67b21aeac5d148327982 diff --git a/src/vp/system.cpp b/src/vp/system.cpp index 16743a2..323cd24 100644 --- a/src/vp/system.cpp +++ b/src/vp/system.cpp @@ -33,8 +33,11 @@ system::system(sc_core::sc_module_name nm) , NAMED(apbBridge, PipelinedMemoryBusToApbBridge_map.size(), 1) { mtime_clk = (1.0 / 32768) * 1_sec; + clint_int_s.init(core_complex.clint_irq_i.size()); core_complex.ibus(ahb_router.target[0]); core_complex.dbus(ahb_router.target[1]); + core_complex.mtime_i(mtime_s); + core_complex.clint_irq_i(clint_int_s); ahb_router.bind_target(mem_ram.target, 1, 0x00000000, 128_kB); ahb_router.bind_target(apbBridge.target[0], 2, 0x10000000, 128_MB); @@ -48,22 +51,21 @@ system::system(sc_core::sc_module_name nm) i++; } + core_complex.clk_i(clk_i); gpio0.clk_i(clk_i); uart0.clk_i(clk_i); timer0.clk_i(clk_i); aclint.clk_i(clk_i); qspi.clk_i(clk_i); - core_complex.clk_i(clk_i); - // mem_ram.clk_i(clk_i); eth0.clk_i(clk_i); eth1.clk_i(clk_i); + core_complex.rst_i(rst_s); gpio0.rst_i(rst_s); uart0.rst_i(rst_s); timer0.rst_i(rst_s); aclint.rst_i(rst_s); qspi.rst_i(rst_s); - core_complex.rst_i(rst_s); eth0.rst_i(rst_s); eth1.rst_i(rst_s); @@ -76,18 +78,11 @@ system::system(sc_core::sc_module_name nm) timer0.interrupt_o[0](clint_int_s[TIMER0_IRQ0]); timer0.interrupt_o[1](clint_int_s[TIMER0_IRQ1]); qspi.irq_o(clint_int_s[QSPI_IRQ]); - eth0.eth_tx(eth0_tx); - eth0_rx(eth0.eth_rx); - eth1.eth_tx(eth1_tx); - eth1_rx(eth1.eth_rx); eth0.irq_o[0](clint_int_s[ETH0_IRQ]); eth1.irq_o[0](clint_int_s[ETH1_IRQ]); eth0.irq_o[1](clint_int_s[MDIO0_IRQ]); eth1.irq_o[1](clint_int_s[MDIO1_IRQ]); - core_complex.mtime_i(mtime_s); - core_complex.clint_irq_i(clint_int_s); - gpio0.pins_i(pins_i); gpio0.pins_o(pins_o); gpio0.oe_o(pins_oe_o); @@ -100,6 +95,11 @@ system::system(sc_core::sc_module_name nm) qspi.spi_i(mspi0); + eth0.eth_tx(eth0_tx); + eth0_rx(eth0.eth_rx); + eth1.eth_tx(eth1_tx); + eth1_rx(eth1.eth_rx); + SC_METHOD(gen_reset); sensitive << erst_n; } diff --git a/src/vp/system.h b/src/vp/system.h index 17bb7d3..2a2ffe4 100644 --- a/src/vp/system.h +++ b/src/vp/system.h @@ -71,7 +71,7 @@ private: sc_core::sc_signal mtime_clk{"mtime_clk"}; sc_core::sc_signal rst_s{"rst_s"}; - sc_core::sc_vector> clint_int_s{"clint_int_s", 32}; + sc_core::sc_vector> clint_int_s{"clint_int_s", 0}; sc_core::sc_signal mtime_s{"mtime_s"}; void gen_reset(); };