Skip to content

Commit b4e3d21

Browse files
committed
sinthetizable verilog
1 parent 2da8bb3 commit b4e3d21

File tree

1 file changed

+24
-17
lines changed

1 file changed

+24
-17
lines changed

verilog/SimpleWriteOnExec.sv

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ module SimpleWriteOnExec(
3636
logic [7:0] edges [10:0];
3737
logic [5:0] stack [5:0];
3838

39+
logic [5:0] next_cgra [15:0];
40+
logic [7:0] next_edges [10:0];
41+
logic [5:0] next_stack [5:0];
42+
3943
// Internals
4044
logic [7:0] current, next_current;
4145
logic [3:0] state, next_state;
@@ -58,11 +62,14 @@ module SimpleWriteOnExec(
5862
index_input <= next_index_input;
5963
index_stack <= next_index_stack;
6064
current <= next_current;
65+
cgra <= next_cgra;
66+
edges <= next_edges;
67+
stack <= stack;
6168
end
6269

6370
end
6471

65-
always_comb begin
72+
always @(*) begin
6673

6774
case(state)
6875

@@ -75,7 +82,7 @@ module SimpleWriteOnExec(
7582

7683
state_nextedge:
7784
begin
78-
if (cgra[index_input]==0)
85+
if (next_cgra[index_input]==0)
7986
begin
8087
next_state <= state_end;
8188
end
@@ -107,7 +114,7 @@ module SimpleWriteOnExec(
107114

108115
state_xdec_test:
109116
begin
110-
if (cgra[current[7:4]][right] || (cgra[current[7:4]][5:4] == max_bypass && !fe))
117+
if (next_cgra[current[7:4]][right] || (next_cgra[current[7:4]][5:4] == max_bypass && !fe))
111118
begin
112119
next_state <= state_y_test;
113120
end
@@ -119,10 +126,10 @@ module SimpleWriteOnExec(
119126

120127
state_xdec_set:
121128
begin
122-
cgra[current[7:4]][right] <= 1;
129+
next_cgra[current[7:4]][right] <= 1;
123130

124131
if (!fe) begin
125-
cgra[current[7:4]][5:4]++;
132+
next_cgra[current[7:4]][5:4]++;
126133
end
127134

128135
next_current[7:4] <= current[7:4] + 1;
@@ -138,7 +145,7 @@ module SimpleWriteOnExec(
138145

139146
state_xinc_test:
140147
begin
141-
if (cgra[current[7:4]][left] || (cgra[current[7:4]][5:4] == max_bypass && !fe))
148+
if (next_cgra[current[7:4]][left] || (next_cgra[current[7:4]][5:4] == max_bypass && !fe))
142149
begin
143150
next_state <= state_y_test;
144151
end
@@ -150,10 +157,10 @@ module SimpleWriteOnExec(
150157

151158
state_xinc_set:
152159
begin
153-
cgra[current[7:4]][left] <= 1;
160+
next_cgra[current[7:4]][left] <= 1;
154161

155162
if (!fe) begin
156-
cgra[current[7:4]][5:4]++;
163+
next_cgra[current[7:4]][5:4]++;
157164
end
158165

159166
next_current[7:4] <= current[7:4] - 1;
@@ -185,7 +192,7 @@ module SimpleWriteOnExec(
185192

186193
state_ydec_test:
187194
begin
188-
if (cgra[current[7:4]][bot] || (cgra[current[7:4]][5:4] == max_bypass && !fe))
195+
if (next_cgra[current[7:4]][bot] || (next_cgra[current[7:4]][5:4] == max_bypass && !fe))
189196
begin
190197
next_state <= state_xy_test;
191198
end
@@ -197,10 +204,10 @@ module SimpleWriteOnExec(
197204

198205
state_ydec_set:
199206
begin
200-
cgra[current[7:4]][bot] <= 1;
207+
next_cgra[current[7:4]][bot] <= 1;
201208

202209
if (!fe) begin
203-
cgra[current[7:4]][5:4]++;
210+
next_cgra[current[7:4]][5:4]++;
204211
end
205212

206213
next_current[7:4] <= current[7:4] + gridline_size;
@@ -216,7 +223,7 @@ module SimpleWriteOnExec(
216223

217224
state_yinc_test:
218225
begin
219-
if (cgra[current[7:4]][bot] || (cgra[current[7:4]][5:4] == max_bypass && !fe))
226+
if (next_cgra[current[7:4]][bot] || (next_cgra[current[7:4]][5:4] == max_bypass && !fe))
220227
begin
221228
next_state <= state_xy_test;
222229
end
@@ -228,18 +235,18 @@ module SimpleWriteOnExec(
228235

229236
state_yinc_set:
230237
begin
231-
cgra[current[7:4]][bot] <= 1;
238+
next_cgra[current[7:4]][bot] <= 1;
232239

233240
if (!fe) begin
234-
cgra[current[7:4]][5:4]++;
241+
next_cgra[current[7:4]][5:4]++;
235242
end
236243

237244
next_current[7:4] <= current[7:4] - gridline_size;
238245
next_modified <= 1;
239246
next_fe <= 0;
240247

241248
stack[index_stack][1:0] <= bot;
242-
stack[index_stack][7:2] <= current[7:4];
249+
stack[index_stack][5:0] <= current[7:4];
243250
next_index_stack <= index_stack + 1;
244251

245252
next_state = state_xy_test;
@@ -271,7 +278,7 @@ module SimpleWriteOnExec(
271278

272279
state_blacklist:
273280
begin
274-
cgra[stack[index_stack][5:2]][stack[index_stack][1:0]] <= 0;
281+
next_cgra[stack[index_stack][5:2]][stack[index_stack][1:0]] <= 0;
275282

276283
if (index_stack == 0)
277284
begin
@@ -280,7 +287,7 @@ module SimpleWriteOnExec(
280287
else
281288
begin
282289
next_index_stack <= index_stack - 1;
283-
cgra[stack[index_stack][5:2]][5:4]--;
290+
next_cgra[stack[index_stack][5:2]][5:4]--;
284291
next_state <= state_blacklist;
285292
end
286293
end

0 commit comments

Comments
 (0)