diff options
Diffstat (limited to 'rtl/src/verilog/novena_baseline_top.v')
-rw-r--r-- | rtl/src/verilog/novena_baseline_top.v | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/rtl/src/verilog/novena_baseline_top.v b/rtl/src/verilog/novena_baseline_top.v index 20bf28d..cc9e5e7 100644 --- a/rtl/src/verilog/novena_baseline_top.v +++ b/rtl/src/verilog/novena_baseline_top.v @@ -49,13 +49,14 @@ module novena_baseline_top input wire reset_mcu_b_pin, // Cryptech avalanche noise board input and LED outputs - input wire ct_avalanche_noise, - output wire [07 : 0] ct_avalanche_led, + input wire ct_noise, + output wire [07 : 0] ct_led, // EIM interface input wire eim_bclk, // EIM burst clock. Started by the CPU. input wire eim_cs0_n, // Chip select (active low). - inout wire [15 : 0] eim_da, // Bidirectional address and data port. + inout wire [15 : 0] eim_da, // Bidirectional address and data port.
+ input wire [18: 16] eim_a, // MSB part of address port. input wire eim_lba_n, // Latch address signal (active low). input wire eim_wr_n, // write enable signal (active low). input wire eim_oe_n, // output enable signal (active low). @@ -98,7 +99,7 @@ module novena_baseline_top // EIM arbiter handles EIM access and transfers it into // `sys_clk' clock domain. //---------------------------------------------------------------- - wire [13: 0] sys_eim_addr; + wire [16: 0] sys_eim_addr; wire sys_eim_wr; wire sys_eim_rd; wire [31: 0] sys_eim_dout; @@ -107,9 +108,10 @@ module novena_baseline_top eim_arbiter eim ( .eim_bclk(eim_bclk_buf), - .eim_cs0_n (eim_cs0_n), - .eim_da(eim_da), - .eim_lba_n (eim_lba_n), + .eim_cs0_n(eim_cs0_n), + .eim_da(eim_da),
+ .eim_a(eim_a), + .eim_lba_n(eim_lba_n), .eim_wr_n(eim_wr_n), .eim_oe_n(eim_oe_n), .eim_wait_n(eim_wait_n), @@ -125,24 +127,23 @@ module novena_baseline_top //---------------------------------------------------------------- - // Core Selector (MUX) + // Memory Mapper // - // This multiplexer is used to map ore registers into - // EIM address space and select which core to send EIM read and - // write operations to. - //---------------------------------------------------------------- - core_selector mux - ( - .sys_clk(sys_clk), + // This multiplexer is used to map different types of cores, such as
+ // hashes, RNGs and ciphers to different regions (segments) of memory. + //----------------------------------------------------------------
+ eim_memory mem
+ (
+ .sys_clk(sys_clk), .sys_rst(sys_rst), .sys_eim_addr(sys_eim_addr), .sys_eim_wr(sys_eim_wr), .sys_eim_rd(sys_eim_rd), - .write_data(sys_eim_dout), - .read_data(sys_eim_din) - ); + .sys_write_data(sys_eim_dout), + .sys_read_data(sys_eim_din)
+ ); //---------------------------------------------------------------- @@ -166,7 +167,7 @@ module novena_baseline_top // Logic specific to the Cryptech use of the Novena. // Currently we just hard wire the LED outputs. //---------------------------------------------------------------- - assign ct_avalanche_led = 8'h55; + assign ct_led = {8{ct_noise}}; //---------------------------------------------------------------- @@ -178,6 +179,7 @@ module novena_baseline_top // been configured. //---------------------------------------------------------------- assign apoptosis_pin = 1'b0; +
endmodule |