@@ -44,6 +44,7 @@ module sha256_w_mem(
44
44
input wire reset_n,
45
45
46
46
input wire [511 : 0 ] block,
47
+ input wire [5 : 0 ] round,
47
48
48
49
input wire init,
49
50
input wire next,
@@ -73,10 +74,6 @@ module sha256_w_mem(
73
74
reg [31 : 0 ] w_mem15_new;
74
75
reg w_mem_we;
75
76
76
- reg [5 : 0 ] w_ctr_reg;
77
- reg [5 : 0 ] w_ctr_new;
78
- reg w_ctr_we;
79
-
80
77
81
78
// ----------------------------------------------------------------
82
79
// Wires.
@@ -103,10 +100,9 @@ module sha256_w_mem(
103
100
104
101
if (! reset_n)
105
102
begin
106
- for (i = 0 ; i < 16 ; i = i + 1 )
103
+ for (i = 0 ; i < 16 ; i = i + 1 ) begin
107
104
w_mem[i] <= 32'h0 ;
108
-
109
- w_ctr_reg <= 6'h0 ;
105
+ end
110
106
end
111
107
else
112
108
begin
@@ -129,9 +125,6 @@ module sha256_w_mem(
129
125
w_mem[14 ] <= w_mem14_new;
130
126
w_mem[15 ] <= w_mem15_new;
131
127
end
132
-
133
- if (w_ctr_we)
134
- w_ctr_reg <= w_ctr_new;
135
128
end
136
129
end // reg_update
137
130
@@ -144,8 +137,8 @@ module sha256_w_mem(
144
137
// ----------------------------------------------------------------
145
138
always @*
146
139
begin : select_w
147
- if (w_ctr_reg < 16 )
148
- w_tmp = w_mem[w_ctr_reg [3 : 0 ]];
140
+ if (round < 16 )
141
+ w_tmp = w_mem[round [3 : 0 ]];
149
142
else
150
143
w_tmp = w_new;
151
144
end // select_w
@@ -220,7 +213,7 @@ module sha256_w_mem(
220
213
w_mem_we = 1 ;
221
214
end
222
215
223
- if (next && (w_ctr_reg > 15 ))
216
+ if (next && (round > 15 ))
224
217
begin
225
218
w_mem00_new = w_mem[01 ];
226
219
w_mem01_new = w_mem[02 ];
@@ -241,30 +234,6 @@ module sha256_w_mem(
241
234
w_mem_we = 1 ;
242
235
end
243
236
end // w_mem_update_logic
244
-
245
-
246
- // ----------------------------------------------------------------
247
- // w_ctr
248
- // W schedule adress counter. Counts from 0x10 to 0x3f and
249
- // is used to expand the block into words.
250
- // ----------------------------------------------------------------
251
- always @*
252
- begin : w_ctr
253
- w_ctr_new = 6'h0 ;
254
- w_ctr_we = 1'h0 ;
255
-
256
- if (init)
257
- begin
258
- w_ctr_new = 6'h0 ;
259
- w_ctr_we = 1'h1 ;
260
- end
261
-
262
- if (next)
263
- begin
264
- w_ctr_new = w_ctr_reg + 6'h01 ;
265
- w_ctr_we = 1'h1 ;
266
- end
267
- end // w_ctr
268
237
endmodule // sha256_w_mem
269
238
270
239
// ======================================================================
0 commit comments