aboutsummaryrefslogtreecommitdiff
path: root/config/core_selector.v
diff options
context:
space:
mode:
Diffstat (limited to 'config/core_selector.v')
-rw-r--r--config/core_selector.v51
1 files changed, 25 insertions, 26 deletions
diff --git a/config/core_selector.v b/config/core_selector.v
index 3c0a31f..298c39e 100644
--- a/config/core_selector.v
+++ b/config/core_selector.v
@@ -3,7 +3,7 @@
module core_selector
(
input wire sys_clk,
- input wire sys_rst,
+ input wire sys_rst_n,
input wire [16: 0] sys_eim_addr,
input wire sys_eim_wr,
@@ -34,11 +34,11 @@ module core_selector
localparam CORE_ADDR_SHA256 = 9'h02;
localparam CORE_ADDR_AES = 9'h03;
localparam CORE_ADDR_TRNG = 9'h04;
- localparam CORE_ADDR_AVALANCHE_ENTROPY = 9'h09;
- localparam CORE_ADDR_ROSC_ENTROPY = 9'h0a;
- localparam CORE_ADDR_TRNG_MIXER = 9'h0e;
- localparam CORE_ADDR_TRNG_CSPRNG = 9'h0f;
- localparam CORE_ADDR_MODEXP = 9'h14;
+ localparam CORE_ADDR_AVALANCHE_ENTROPY = 9'h05;
+ localparam CORE_ADDR_ROSC_ENTROPY = 9'h06;
+ localparam CORE_ADDR_TRNG_MIXER = 9'h07;
+ localparam CORE_ADDR_TRNG_CSPRNG = 9'h08;
+ localparam CORE_ADDR_MODEXPS6 = 9'h14;
//----------------------------------------------------------------
@@ -51,7 +51,7 @@ module core_selector
board_regs board_regs_inst
(
.clk(sys_clk),
- .rst(sys_rst),
+ .reset_n(sys_rst_n),
.cs(enable_board_regs & (sys_eim_rd | sys_eim_wr)),
.we(sys_eim_wr),
@@ -77,7 +77,7 @@ module core_selector
comm_regs comm_regs_inst
(
.clk(sys_clk),
- .rst(sys_rst),
+ .reset_n(sys_rst_n),
.cs(enable_comm_regs & (sys_eim_rd | sys_eim_wr)),
.we(sys_eim_wr),
@@ -103,7 +103,7 @@ module core_selector
sha256 sha256_inst
(
.clk(sys_clk),
- .reset_n(~sys_rst),
+ .reset_n(sys_rst_n),
.cs(enable_sha256 & (sys_eim_rd | sys_eim_wr)),
.we(sys_eim_wr),
@@ -129,7 +129,7 @@ module core_selector
aes aes_inst
(
.clk(sys_clk),
- .reset_n(~sys_rst),
+ .reset_n(sys_rst_n),
.cs(enable_aes & (sys_eim_rd | sys_eim_wr)),
.we(sys_eim_wr),
@@ -156,7 +156,7 @@ module core_selector
trng trng_inst
(
.clk(sys_clk),
- .reset_n(~sys_rst),
+ .reset_n(sys_rst_n),
.cs(enable_trng & (sys_eim_rd | sys_eim_wr)),
.we(sys_eim_wr),
@@ -176,29 +176,25 @@ module core_selector
//----------------------------------------------------------------
- // MODEXP
+ // MODEXPS6
//----------------------------------------------------------------
- wire enable_modexp = (addr_core_num == CORE_ADDR_MODEXP);
- wire [31: 0] read_data_modexp;
- wire error_modexp;
+ wire enable_modexps6 = (addr_core_num >= CORE_ADDR_MODEXPS6) && (addr_core_num <= CORE_ADDR_MODEXPS6 + 9'h03);
+ wire [31: 0] read_data_modexps6;
+ wire [1:0] modexps6_prefix = addr_core_num[1:0] - CORE_ADDR_MODEXPS6;
- modexp modexp_inst
+ modexps6_wrapper modexps6_inst
(
.clk(sys_clk),
- .reset_n(~sys_rst),
+ .reset_n(sys_rst_n),
- .cs(enable_modexp & (sys_eim_rd | sys_eim_wr)),
+ .cs(enable_modexps6 & (sys_eim_rd | sys_eim_wr)),
.we(sys_eim_wr),
- .address(addr_core_reg),
+ .address({modexps6_prefix, addr_core_reg}),
.write_data(sys_write_data),
- .read_data(read_data_modexp)
+ .read_data(read_data_modexps6)
);
- reg [31: 0] read_data_modexp_reg;
- always @(posedge sys_clk)
- read_data_modexp_reg <= read_data_modexp;
-
//----------------------------------------------------------------
@@ -257,9 +253,12 @@ module core_selector
sys_read_data_mux = read_data_trng_reg;
sys_error_mux = error_trng;
end
- CORE_ADDR_MODEXP:
+ CORE_ADDR_MODEXPS6 + 0,
+ CORE_ADDR_MODEXPS6 + 1,
+ CORE_ADDR_MODEXPS6 + 2,
+ CORE_ADDR_MODEXPS6 + 3:
begin
- sys_read_data_mux = read_data_modexp_reg;
+ sys_read_data_mux = read_data_modexps6;
sys_error_mux = 0;
end