aboutsummaryrefslogtreecommitdiff
path: root/rtl/src/verilog/novena_baseline_top.v
diff options
context:
space:
mode:
Diffstat (limited to 'rtl/src/verilog/novena_baseline_top.v')
-rw-r--r--rtl/src/verilog/novena_baseline_top.v40
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