[Cryptech-Commits] [core/hash/sha512] branch clock_speed updated: Added reg on output from w_mem to split long path. Adjusted when w_next is set to update w_mem to account for delay cycle.
git at cryptech.is
git at cryptech.is
Tue Dec 4 12:20:30 UTC 2018
This is an automated email from the git hooks/post-receive script.
joachim at secworks.se pushed a commit to branch clock_speed
in repository core/hash/sha512.
The following commit(s) were added to refs/heads/clock_speed by this push:
new 4ebdf3e Added reg on output from w_mem to split long path. Adjusted when w_next is set to update w_mem to account for delay cycle.
4ebdf3e is described below
commit 4ebdf3e80842e38906d85badbbaf25435aa85677
Author: Joachim Strömbergson <joachim at secworks.se>
AuthorDate: Tue Dec 4 13:20:17 2018 +0100
Added reg on output from w_mem to split long path. Adjusted when w_next is set to update w_mem to account for delay cycle.
---
src/rtl/sha512_core.v | 15 +++++++--------
src/rtl/sha512_w_mem.v | 32 +++++++++++++-------------------
2 files changed, 20 insertions(+), 27 deletions(-)
diff --git a/src/rtl/sha512_core.v b/src/rtl/sha512_core.v
index 407f84c..6f6f821 100644
--- a/src/rtl/sha512_core.v
+++ b/src/rtl/sha512_core.v
@@ -79,12 +79,11 @@ module sha512_core(
//----------------------------------------------------------------
// Internal constant and parameter definitions.
//----------------------------------------------------------------
- parameter SHA512_ROUNDS = 79;
-
- parameter CTRL_IDLE = 0;
- parameter CTRL_T1_T2 = 1;
- parameter CTRL_ROUNDS = 2;
- parameter CTRL_DONE = 3;
+ localparam SHA512_ROUNDS = 79;
+ localparam CTRL_IDLE = 0;
+ localparam CTRL_T1_T2 = 1;
+ localparam CTRL_ROUNDS = 2;
+ localparam CTRL_DONE = 3;
//----------------------------------------------------------------
@@ -634,7 +633,8 @@ module sha512_core(
CTRL_T1_T2:
begin
- t1_t2_we = 1;
+ t1_t2_we = 1;
+ w_next = 1;
sha512_ctrl_new = CTRL_ROUNDS;
sha512_ctrl_we = 1;
end
@@ -642,7 +642,6 @@ module sha512_core(
CTRL_ROUNDS:
begin
- w_next = 1;
state_update = 1;
round_ctr_inc = 1;
diff --git a/src/rtl/sha512_w_mem.v b/src/rtl/sha512_w_mem.v
index e0a6775..4aadb50 100644
--- a/src/rtl/sha512_w_mem.v
+++ b/src/rtl/sha512_w_mem.v
@@ -83,12 +83,14 @@ module sha512_w_mem(
reg [6 : 0] w_ctr_new;
reg w_ctr_we;
+ reg [63 : 0] w_reg;
+ reg [63 : 0] w_new;
+
//----------------------------------------------------------------
// Wires.
//----------------------------------------------------------------
reg [63 : 0] w_tmp;
- reg [63 : 0] w_new;
//----------------------------------------------------------------
@@ -105,28 +107,20 @@ module sha512_w_mem(
//----------------------------------------------------------------
always @ (posedge clk or negedge reset_n)
begin : reg_update
+ integer i;
+
if (!reset_n)
begin
- w_mem[00] <= 64'h0;
- w_mem[01] <= 64'h0;
- w_mem[02] <= 64'h0;
- w_mem[03] <= 64'h0;
- w_mem[04] <= 64'h0;
- w_mem[05] <= 64'h0;
- w_mem[06] <= 64'h0;
- w_mem[07] <= 64'h0;
- w_mem[08] <= 64'h0;
- w_mem[09] <= 64'h0;
- w_mem[10] <= 64'h0;
- w_mem[11] <= 64'h0;
- w_mem[12] <= 64'h0;
- w_mem[13] <= 64'h0;
- w_mem[14] <= 64'h0;
- w_mem[15] <= 64'h0;
- w_ctr_reg <= 7'h00;
+ for (i = 0 ; i < 16 ; i = i + 1)
+ w_mem[i] <= 64'h0;
+
+ w_ctr_reg <= 7'h0;
+ w_reg <= 64'h0;
end
else
begin
+ w_reg <= w_new;
+
if (w_mem_we)
begin
w_mem[00] <= w_mem00_new;
@@ -169,7 +163,7 @@ module sha512_w_mem(
end
else
begin
- w_tmp = w_new;
+ w_tmp = w_reg;
end
end // select_w
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Commits
mailing list