[Cryptech-Commits] [core/math/modexp] 01/01: Changed blockmem1r1w used in montprod to generic data and address widths. Updated instantiation to use generics.
git at cryptech.is
git at cryptech.is
Mon Jun 22 20:12:25 UTC 2015
This is an automated email from the git hooks/post-receive script.
joachim at secworks.se pushed a commit to branch perfopt
in repository core/math/modexp.
commit 5a0a6f87f2f63f9f1044725db0cac212c63f1fd6
Author: Joachim Strömbergson <joachim at secworks.se>
Date: Mon Jun 22 22:12:20 2015 +0200
Changed blockmem1r1w used in montprod to generic data and address widths. Updated instantiation to use generics.
---
src/rtl/blockmem1r1w.v | 20 ++++++++++++--------
src/rtl/montprod.v | 19 +++++++++----------
2 files changed, 21 insertions(+), 18 deletions(-)
diff --git a/src/rtl/blockmem1r1w.v b/src/rtl/blockmem1r1w.v
index 1d84369..edff8dd 100644
--- a/src/rtl/blockmem1r1w.v
+++ b/src/rtl/blockmem1r1w.v
@@ -7,6 +7,9 @@
//
// The memory is used in the modexp core.
//
+// paremeter OPW is operand word width in bits.
+// parameter ADW is address width in bits.
+//
//
// Author: Joachim Strombergson
// Copyright (c) 2015, NORDUnet A/S All rights reserved.
@@ -39,19 +42,20 @@
//
//======================================================================
-module blockmem1r1w(
+module blockmem1r1w #(parameter OPW = 32, parameter ADW = 8)
+ (
input wire clk,
- input wire [07 : 0] read_addr,
- output wire [31 : 0] read_data,
+ input wire [(ADW - 1) : 0] read_addr,
+ output wire [(OPW - 1) : 0] read_data,
- input wire wr,
- input wire [07 : 0] write_addr,
- input wire [31 : 0] write_data
+ input wire wr,
+ input wire [(ADW - 1) : 0] write_addr,
+ input wire [(OPW - 1) : 0] write_data
);
- reg [31 : 0] mem [0 : 255];
- reg [31 : 0] tmp_read_data;
+ reg [(OPW - 1) : 0] mem [0 : (ADW ** 2 - 1)];
+ reg [(OPW - 1) : 0] tmp_read_data;
assign read_data = tmp_read_data;
diff --git a/src/rtl/montprod.v b/src/rtl/montprod.v
index 0bfd3c8..465fa38 100644
--- a/src/rtl/montprod.v
+++ b/src/rtl/montprod.v
@@ -4,7 +4,7 @@
// ---------
// Montgomery product calculator for the modular exponentiantion core.
//
-// paremeter OPW is operand word width in bits.
+// parameter OPW is operand word width in bits.
// parameter ADW is address width in bits.
//
//
@@ -186,15 +186,14 @@ module montprod #(parameter OPW = 32, parameter ADW = 8)
//----------------------------------------------------------------
// Instantions
//----------------------------------------------------------------
- blockmem1r1w s_mem(
- .clk(clk),
- .read_addr(s_mem_addr),
- .read_data(s_mem_read_data),
- .wr(s_mem_we_reg),
- .write_addr(s_mem_wr_addr_reg),
- .write_data(s_mem_new)
- );
-
+ blockmem1r1w #(.OPW(OPW), .ADW(ADW)) s_mem(
+ .clk(clk),
+ .read_addr(s_mem_addr),
+ .read_data(s_mem_read_data),
+ .wr(s_mem_we_reg),
+ .write_addr(s_mem_wr_addr_reg),
+ .write_data(s_mem_new)
+ );
adder32 s_adder_sm(
.a(muxed_s_mem_read_data),
More information about the Commits
mailing list