aboutsummaryrefslogtreecommitdiff
path: root/eim/rtl
diff options
context:
space:
mode:
Diffstat (limited to 'eim/rtl')
-rw-r--r--eim/rtl/novena_eim.v12
1 files changed, 11 insertions, 1 deletions
diff --git a/eim/rtl/novena_eim.v b/eim/rtl/novena_eim.v
index d2b11ed..71b64a9 100644
--- a/eim/rtl/novena_eim.v
+++ b/eim/rtl/novena_eim.v
@@ -141,6 +141,16 @@ module novena_top
// This multiplexer is used to map different types of cores, such as
// hashes, RNGs and ciphers to different regions (segments) of memory.
//----------------------------------------------------------------
+
+ // register read data for one clock cycle for EIM
+ wire [31 : 0] tmp_read_data;
+ reg [31 : 0] tmp_read_data_reg;
+ assign sys_eim_din = tmp_read_data_reg;
+ always @(posedge sys_clk)
+ begin
+ tmp_read_data_reg <= tmp_read_data;
+ end
+
core_selector cores
(
.sys_clk(sys_clk),
@@ -153,7 +163,7 @@ module novena_top
.sys_eim_rd(sys_eim_rd),
.sys_write_data(sys_eim_dout),
- .sys_read_data(sys_eim_din),
+ .sys_read_data(tmp_read_data),
.debug(ct_led)
);