diff --git a/hdl/rtl/hydra_core.vhd b/hdl/rtl/hydra_core.vhd index 5dbb69bb27f66a1e4780f6b29f8b211491ca5482..31f191033278c5fae4b4c653340073c3c2611185 100644 --- a/hdl/rtl/hydra_core.vhd +++ b/hdl/rtl/hydra_core.vhd @@ -179,6 +179,7 @@ begin reg_dm_data_s <= (others => '0'); reg_dm_data_select <= (others => '1'); elsif cpu_rst_n_i = '0' then + -- Clear dram. if dm_done = '1' then reg_dm_addr <= std_logic_vector(unsigned(reg_dm_addr) + 4); end if; @@ -221,6 +222,7 @@ begin we_i => iram_we, wdata_i => iram_data, wforce_i => (others => '0'), + wdone_o => open, ecc_one_o => iram_ecc_err, ecc_fatal_o => iram_ecc_fatal, @@ -290,6 +292,7 @@ begin reg_dm_load <= '0'; reg_dm_store <= '0'; elsif cpu_rst_n_i = '0' then + -- Write to dram until the last address. reg_dm_store <= not reg_dm_addr(g_DRAM_LOG_SIZE); else if dm_cycle_in_progress = '0' then @@ -468,6 +471,7 @@ begin reset_cause_ecc_i => reset_cause_ecc, reset_cause_watchdog_i => reset_cause_wd, cpu_reset_i => cpu_rst, + cpu_reset_o => open, cpu_recovery_i => cpu_recovery, cpu_recovery_o => cpu_recovery_in, cpu_wr_o => cpu_wr, diff --git a/hdl/rtl/hydra_dram.vhd b/hdl/rtl/hydra_dram.vhd index ca2ef606e1083e751bd33e55e76ac8c42cbabd3a..c0896bde08969abd9afa5d658a66695090fe097a 100644 --- a/hdl/rtl/hydra_dram.vhd +++ b/hdl/rtl/hydra_dram.vhd @@ -154,8 +154,8 @@ begin p_ctrl: process (state, p_done, r_done, scrub_done, rerr, rerr_one, rdata_ecc, rsyndrome, last_addr, last_we, last_sel, recc, - en_i, addr_i, we_i, data_i, r_done_d, - scrub_rd, scrub_addr, scrub_done_d, rst_n_i) + en_i, addr_i, we_i, data_i, sel_i, r_done_d, + scrub_rd, scrub_addr, scrub_done_d, cpu_rst_n_i) is variable d : std_logic_vector(31 downto 0); begin diff --git a/hdl/rtl/hydra_iram.vhd b/hdl/rtl/hydra_iram.vhd index 84bb47509de8e9716873299b102129682ebd5fa1..604dc0a3435496e78b338120423407a5e10b3fd0 100644 --- a/hdl/rtl/hydra_iram.vhd +++ b/hdl/rtl/hydra_iram.vhd @@ -168,7 +168,7 @@ begin p_ctrl: process (state, r1_done, r2_done, rerr, rerr_one, rdata_ecc, rsyndrome, last_raddr, recc, r1_en_i, r1_addr_i, we_i, waddr_i, wdata_i, wforce_i, r1_done_d, r2_done_d, - r2_en_i, r2_addr_i, scrub_rd, scrub_addr, scrub_done, scrub_done_d, rst_n_i) + r2_en_i, r2_addr_i, scrub_rd, scrub_addr, scrub_done, scrub_done_d, cpu_rst_n_i) begin wen <= '0'; waddr <= (others => 'X');