diff options
Diffstat (limited to 'config/core_selector.v')
-rw-r--r-- | config/core_selector.v | 51 |
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 |