[Cryptech-Commits] [core/platform/common] 01/01: Fixed incorrect bitwidth of address to modexp core. Removed address block defines that are internal to the modexp core. Now the modexp core does not get optimized away.
git at cryptech.is
git at cryptech.is
Fri May 8 11:51:58 UTC 2015
This is an automated email from the git hooks/post-receive script.
joachim at secworks.se pushed a commit to branch master
in repository core/platform/common.
commit e34b409d8f01b0fe8b24b3cf8defa29bddc29ead
Author: Joachim Strömbergson <joachim at secworks.se>
Date: Fri May 8 13:51:51 2015 +0200
Fixed incorrect bitwidth of address to modexp core. Removed address block defines that are internal to the modexp core. Now the modexp core does not get optimized away.
---
core_selector/src/rtl/math_selector.v | 20 ++++++++------------
1 file changed, 8 insertions(+), 12 deletions(-)
diff --git a/core_selector/src/rtl/math_selector.v b/core_selector/src/rtl/math_selector.v
index 93fc8d2..b47a433 100644
--- a/core_selector/src/rtl/math_selector.v
+++ b/core_selector/src/rtl/math_selector.v
@@ -57,10 +57,10 @@ module math_selector
//----------------------------------------------------------------
// Address Decoder
//----------------------------------------------------------------
- // upper 6 bits specify core being addressed
- wire [ 5: 0] addr_core_num = sys_eim_addr[13: 8];
- // lower 8 bits specify register offset in core
- wire [ 7: 0] addr_core_reg = sys_eim_addr[ 7: 0];
+ // upper 2 bits specify core being addressed
+ wire [ 1: 0] core_select = sys_eim_addr[13: 12];
+ // lower 12 bits specify addresses within the selected core.
+ wire [11: 0] core_addr = sys_eim_addr[11: 0];
//----------------------------------------------------------------
@@ -73,18 +73,14 @@ module math_selector
//----------------------------------------------------------------
// Core Address Table
//----------------------------------------------------------------
- localparam CORE_ADDR_MODEXP = 6'd0;
- localparam CORE_ADDR_MODEXP_MODULUS = 6'd1;
- localparam CORE_ADDR_MODEXP_EXPONENT = 6'd2;
- localparam CORE_ADDR_MODEXP_MESSAGE = 6'd3;
- localparam CORE_ADDR_MODEXP_RESULT = 6'd4;
+ localparam CORE_MODEXP = 2'd0;
//----------------------------------------------------------------
// MODEXP
//----------------------------------------------------------------
`ifdef USE_CORE_MODEXP
- wire enable_modexp = sys_ena && (addr_core_num >= CORE_ADDR_MODEXP) && (addr_core_num <= CORE_ADDR_MODEXP_RESULT);
+ wire enable_modexp = sys_ena && (core_select == CORE_MODEXP);
wire [31: 0] read_data_modexp;
modexp modexp_inst
@@ -95,7 +91,7 @@ module math_selector
.cs(enable_modexp & (sys_eim_rd | sys_eim_wr)),
.we(sys_eim_wr),
- .address(addr_core_reg),
+ .address(core_addr),
.write_data(sys_write_data),
.read_data(read_data_modexp)
);
@@ -111,7 +107,7 @@ module math_selector
always @*
//
`ifdef USE_CORE_MODEXP
- if ((addr_core_num >= CORE_ADDR_MODEXP) && (addr_core_num <= CORE_ADDR_MODEXP_RESULT))
+ if (core_select == CORE_MODEXP)
begin
sys_read_data_mux = read_data_modexp;
end
More information about the Commits
mailing list