OpenCores
URL https://opencores.org/ocsvn/ecpu_alu/ecpu_alu/trunk

Subversion Repositories ecpu_alu

[/] [ecpu_alu/] [trunk/] [alu/] [sim/] [run_alu] - Blame information for rev 5

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 leonous
#! /usr/bin/vvp
2
:vpi_time_precision - 12;
3
:vpi_module "system";
4
:vpi_module "v2005_math";
5
:vpi_module "va_math";
6
S_0x1c43f20 .scope module, "alu_tb" "alu_tb" 2 52;
7
 .timescale -9 -12;
8
P_0x1cbf258 .param/l "DWIDTH" 2 55, +C4<01000>;
9
P_0x1cbf280 .param/l "OPWIDTH" 2 56, +C4<0100>;
10
v0x1ccb3d0_0 .var "A", 7 0;
11
v0x1ccb470_0 .var "A_u", 7 0;
12
v0x1ccb510_0 .var "B", 7 0;
13
v0x1ccb590_0 .var "B_u", 7 0;
14
v0x1ccb610_0 .net "C", 0 0, v0x1c91380_0; 1 drivers
15
v0x1ccb690_0 .var "CLK", 0 0;
16
v0x1ccb710_0 .var "CLR", 0 0;
17
v0x1ccb790_0 .var "S", 3 0;
18
v0x1ccb810_0 .net "V", 0 0, v0x1c91060_0; 1 drivers
19
v0x1ccb890_0 .net/s "Y", 7 0, v0x1cb3600_0; 1 drivers
20
v0x1ccb910_0 .var "Y_u", 7 0;
21
v0x1ccb990_0 .net "Z", 0 0, v0x1c8a150_0; 1 drivers
22
v0x1ccba10_0 .var "aa", 7 0;
23
v0x1ccbab0_0 .var "bb", 7 0;
24
v0x1ccbbb0_0 .var "check_here", 0 0;
25
v0x1ccbc50_0 .var "clrc", 0 0;
26
v0x1ccbb30_0 .var/i "count", 31 0;
27
v0x1ccbd60_0 .var/i "errors_found", 31 0;
28
v0x1ccbcd0_0 .var "finished", 0 0;
29
v0x1ccbe80_0 .var/i "infile", 31 0;
30
v0x1ccbde0_0 .var "last_CLR", 0 0;
31
v0x1ccbfb0_0 .var "last_ss", 31 0;
32
v0x1ccbf00_0 .var "op1", 7 0;
33
v0x1ccc0f0_0 .var "op2", 7 0;
34
v0x1ccc030 .array "opcode_list", 15 0, 32 1;
35
v0x1ccc4b0_0 .var/i "outfile", 31 0;
36
v0x1ccc170_0 .var/i "random_count", 31 0;
37
v0x1ccc610_0 .var "random_mode", 0 0;
38
v0x1ccc530_0 .var/i "random_number", 31 0;
39
v0x1ccc780_0 .var/s "result", 7 0;
40
v0x1ccc690_0 .var "result_u", 7 0;
41
v0x1ccc900_0 .var "ss", 31 0;
42
v0x1ccc800_0 .var "started", 0 0;
43
v0x1ccc880_0 .var/i "success", 31 0;
44
E_0x1c90700 .event posedge, v0x1cbee90_0;
45
E_0x1cbe000 .event posedge, v0x1ccbcd0_0, v0x1cbee90_0;
46
E_0x1cbe950 .event edge, v0x1cbee90_0;
47
S_0x1ccaf50 .scope function, "bas" "bas" 2 480, 2 480, S_0x1c43f20;
48
 .timescale -9 -12;
49
v0x1ccb030_0 .var "a1", 7 0;
50
v0x1ccb0d0_0 .var "bas", 7 0;
51
v0x1ccb170_0 .var "direction", 0 0;
52
v0x1ccb210_0 .var "shift_size", 7 0;
53
v0x1ccb290_0 .var "tmp", 7 0;
54
v0x1ccb330_0 .var/i "tmp2", 31 0;
55
TD_alu_tb.bas ;
56
    %load/v 8, v0x1ccb030_0, 8;
57
    %set/v v0x1ccb290_0, 8, 8;
58
    %load/v 8, v0x1ccb210_0, 3; Only need 3 of 8 bits
59
; Save base=8 wid=3 in lookaside.
60
    %mov 11, 8, 3;
61
    %mov 14, 0, 29;
62
    %set/v v0x1ccb330_0, 11, 32;
63
T_0.0 ;
64
    %load/v 8, v0x1ccb330_0, 32;
65
    %cmp/s 0, 8, 32;
66
    %jmp/0xz T_0.1, 5;
67
    %load/v 8, v0x1ccb170_0, 1;
68
    %jmp/0xz  T_0.2, 8;
69
    %ix/load 1, 1;
70
    %mov 4, 0, 1;
71
    %load/x1p 16, v0x1ccb290_0, 7;
72
; Save base=16 wid=7 in lookaside.
73
    %mov 8, 16, 7;
74
    %load/v 16, v0x1ccb290_0, 1; Only need 1 of 8 bits
75
; Save base=16 wid=1 in lookaside.
76
    %mov 15, 16, 1;
77
    %set/v v0x1ccb290_0, 8, 8;
78
    %jmp T_0.3;
79
T_0.2 ;
80
    %ix/load 1, 7;
81
    %mov 4, 0, 1;
82
    %load/x1p 16, v0x1ccb290_0, 1;
83
; Save base=16 wid=1 in lookaside.
84
    %mov 8, 16, 1;
85
    %load/v 16, v0x1ccb290_0, 7; Only need 7 of 8 bits
86
; Save base=16 wid=7 in lookaside.
87
    %mov 9, 16, 7;
88
    %set/v v0x1ccb290_0, 8, 8;
89
T_0.3 ;
90
    %load/v 8, v0x1ccb330_0, 32;
91
    %mov 40, 8, 32;
92
    %mov 72, 39, 1;
93
    %subi 40, 1, 33;
94
    %set/v v0x1ccb330_0, 40, 32;
95
    %jmp T_0.0;
96
T_0.1 ;
97
    %load/v 8, v0x1ccb290_0, 8;
98
    %set/v v0x1ccb0d0_0, 8, 8;
99
    %end;
100
S_0x1ccacf0 .scope function, "get_random_opcode" "get_random_opcode" 2 467, 2 467, S_0x1c43f20;
101
 .timescale -9 -12;
102
v0x1ccadd0_0 .var "get_random_opcode", 32 1;
103
v0x1ccae50_0 .var/s "myseed", 31 0;
104
v0x1ccaed0_0 .var/i "tmp", 31 0;
105
TD_alu_tb.get_random_opcode ;
106
    %vpi_func 2 472 "$random", 8, 32, v0x1ccae50_0;
107
    %set/v v0x1ccaed0_0, 8, 32;
108
    %load/v 40, v0x1ccaed0_0, 32;
109
    %movi 72, 11, 32;
110
    %mod 40, 72, 32;
111
    %ix/get 3, 40, 32;
112
    %load/av 8, v0x1ccc030, 32;
113
    %set/v v0x1ccadd0_0, 8, 32;
114
    %end;
115
S_0x1ccaa90 .scope function, "string2opcode" "string2opcode" 2 438, 2 438, S_0x1c43f20;
116
 .timescale -9 -12;
117
v0x1ccab70_0 .var "opcode", 3 0;
118
v0x1ccabf0_0 .var "s", 31 0;
119
v0x1ccac70_0 .var "string2opcode", 3 0;
120
TD_alu_tb.string2opcode ;
121
    %load/v 8, v0x1ccabf0_0, 32;
122
    %ix/load 3, 0;
123
    %mov 4, 0, 1;
124
    %load/av 40, v0x1ccc030, 32;
125
    %cmp/u 8, 40, 32;
126
    %mov 8, 4, 1;
127
    %jmp/0xz  T_2.4, 8;
128
    %set/v v0x1ccab70_0, 0, 4;
129
    %jmp T_2.5;
130
T_2.4 ;
131
    %load/v 8, v0x1ccabf0_0, 32;
132
    %ix/load 3, 1;
133
    %mov 4, 0, 1;
134
    %load/av 40, v0x1ccc030, 32;
135
    %cmp/u 8, 40, 32;
136
    %mov 8, 4, 1;
137
    %jmp/0xz  T_2.6, 8;
138
    %movi 8, 1, 4;
139
    %set/v v0x1ccab70_0, 8, 4;
140
    %jmp T_2.7;
141
T_2.6 ;
142
    %load/v 8, v0x1ccabf0_0, 32;
143
    %ix/load 3, 9;
144
    %mov 4, 0, 1;
145
    %load/av 40, v0x1ccc030, 32;
146
    %cmp/u 8, 40, 32;
147
    %mov 8, 4, 1;
148
    %jmp/0xz  T_2.8, 8;
149
    %movi 8, 9, 4;
150
    %set/v v0x1ccab70_0, 8, 4;
151
    %jmp T_2.9;
152
T_2.8 ;
153
    %load/v 8, v0x1ccabf0_0, 32;
154
    %ix/load 3, 2;
155
    %mov 4, 0, 1;
156
    %load/av 40, v0x1ccc030, 32;
157
    %cmp/u 8, 40, 32;
158
    %mov 8, 4, 1;
159
    %jmp/0xz  T_2.10, 8;
160
    %movi 8, 2, 4;
161
    %set/v v0x1ccab70_0, 8, 4;
162
    %jmp T_2.11;
163
T_2.10 ;
164
    %load/v 8, v0x1ccabf0_0, 32;
165
    %ix/load 3, 3;
166
    %mov 4, 0, 1;
167
    %load/av 40, v0x1ccc030, 32;
168
    %cmp/u 8, 40, 32;
169
    %mov 8, 4, 1;
170
    %jmp/0xz  T_2.12, 8;
171
    %movi 8, 3, 4;
172
    %set/v v0x1ccab70_0, 8, 4;
173
    %jmp T_2.13;
174
T_2.12 ;
175
    %load/v 8, v0x1ccabf0_0, 32;
176
    %ix/load 3, 4;
177
    %mov 4, 0, 1;
178
    %load/av 40, v0x1ccc030, 32;
179
    %cmp/u 8, 40, 32;
180
    %mov 8, 4, 1;
181
    %jmp/0xz  T_2.14, 8;
182
    %movi 8, 4, 4;
183
    %set/v v0x1ccab70_0, 8, 4;
184
    %jmp T_2.15;
185
T_2.14 ;
186
    %load/v 8, v0x1ccabf0_0, 32;
187
    %ix/load 3, 5;
188
    %mov 4, 0, 1;
189
    %load/av 40, v0x1ccc030, 32;
190
    %cmp/u 8, 40, 32;
191
    %mov 8, 4, 1;
192
    %jmp/0xz  T_2.16, 8;
193
    %movi 8, 5, 4;
194
    %set/v v0x1ccab70_0, 8, 4;
195
    %jmp T_2.17;
196
T_2.16 ;
197
    %load/v 8, v0x1ccabf0_0, 32;
198
    %ix/load 3, 6;
199
    %mov 4, 0, 1;
200
    %load/av 40, v0x1ccc030, 32;
201
    %cmp/u 8, 40, 32;
202
    %mov 8, 4, 1;
203
    %jmp/0xz  T_2.18, 8;
204
    %movi 8, 6, 4;
205
    %set/v v0x1ccab70_0, 8, 4;
206
    %jmp T_2.19;
207
T_2.18 ;
208
    %load/v 8, v0x1ccabf0_0, 32;
209
    %ix/load 3, 7;
210
    %mov 4, 0, 1;
211
    %load/av 40, v0x1ccc030, 32;
212
    %cmp/u 8, 40, 32;
213
    %mov 8, 4, 1;
214
    %jmp/0xz  T_2.20, 8;
215
    %movi 8, 7, 4;
216
    %set/v v0x1ccab70_0, 8, 4;
217
    %jmp T_2.21;
218
T_2.20 ;
219
    %load/v 8, v0x1ccabf0_0, 32;
220
    %ix/load 3, 8;
221
    %mov 4, 0, 1;
222
    %load/av 40, v0x1ccc030, 32;
223
    %cmp/u 8, 40, 32;
224
    %mov 8, 4, 1;
225
    %jmp/0xz  T_2.22, 8;
226
    %movi 8, 8, 4;
227
    %set/v v0x1ccab70_0, 8, 4;
228
    %jmp T_2.23;
229
T_2.22 ;
230
    %load/v 8, v0x1ccabf0_0, 32;
231
    %ix/load 3, 10;
232
    %mov 4, 0, 1;
233
    %load/av 40, v0x1ccc030, 32;
234
    %cmp/u 8, 40, 32;
235
    %mov 8, 4, 1;
236
    %jmp/0xz  T_2.24, 8;
237
    %movi 8, 10, 4;
238
    %set/v v0x1ccab70_0, 8, 4;
239
    %jmp T_2.25;
240
T_2.24 ;
241
    %load/v 8, v0x1ccabf0_0, 32;
242
    %ix/load 3, 11;
243
    %mov 4, 0, 1;
244
    %load/av 40, v0x1ccc030, 32;
245
    %cmp/u 8, 40, 32;
246
    %mov 8, 4, 1;
247
    %jmp/0xz  T_2.26, 8;
248
    %movi 8, 11, 4;
249
    %set/v v0x1ccab70_0, 8, 4;
250
    %jmp T_2.27;
251
T_2.26 ;
252
    %load/v 8, v0x1ccabf0_0, 32;
253
    %ix/load 3, 12;
254
    %mov 4, 0, 1;
255
    %load/av 40, v0x1ccc030, 32;
256
    %cmp/u 8, 40, 32;
257
    %mov 8, 4, 1;
258
    %jmp/0xz  T_2.28, 8;
259
    %movi 8, 12, 4;
260
    %set/v v0x1ccab70_0, 8, 4;
261
    %jmp T_2.29;
262
T_2.28 ;
263
    %load/v 8, v0x1ccabf0_0, 32;
264
    %ix/load 3, 13;
265
    %mov 4, 0, 1;
266
    %load/av 40, v0x1ccc030, 32;
267
    %cmp/u 8, 40, 32;
268
    %mov 8, 4, 1;
269
    %jmp/0xz  T_2.30, 8;
270
    %movi 8, 13, 4;
271
    %set/v v0x1ccab70_0, 8, 4;
272
    %jmp T_2.31;
273
T_2.30 ;
274
    %load/v 8, v0x1ccabf0_0, 32;
275
    %ix/load 3, 14;
276
    %mov 4, 0, 1;
277
    %load/av 40, v0x1ccc030, 32;
278
    %cmp/u 8, 40, 32;
279
    %mov 8, 4, 1;
280
    %jmp/0xz  T_2.32, 8;
281
    %movi 8, 14, 4;
282
    %set/v v0x1ccab70_0, 8, 4;
283
    %jmp T_2.33;
284
T_2.32 ;
285
    %load/v 8, v0x1ccabf0_0, 32;
286
    %ix/load 3, 15;
287
    %mov 4, 0, 1;
288
    %load/av 40, v0x1ccc030, 32;
289
    %cmp/u 8, 40, 32;
290
    %mov 8, 4, 1;
291
    %jmp/0xz  T_2.34, 8;
292
    %set/v v0x1ccab70_0, 1, 4;
293
T_2.34 ;
294
T_2.33 ;
295
T_2.31 ;
296
T_2.29 ;
297
T_2.27 ;
298
T_2.25 ;
299
T_2.23 ;
300
T_2.21 ;
301
T_2.19 ;
302
T_2.17 ;
303
T_2.15 ;
304
T_2.13 ;
305
T_2.11 ;
306
T_2.9 ;
307
T_2.7 ;
308
T_2.5 ;
309
    %load/v 8, v0x1ccab70_0, 4;
310
    %set/v v0x1ccac70_0, 8, 4;
311
    %end;
312
S_0x1cca7b0 .scope module, "this_record" "test_vector" 2 135, 2 41, S_0x1c43f20;
313
 .timescale -9 -12;
314
P_0x1c3ef28 .param/l "DWIDTH" 2 42, +C4<01000>;
315
P_0x1c3ef50 .param/l "OPWIDTH" 2 43, +C4<0100>;
316
v0x1cca890_0 .var/s "A", 7 0;
317
v0x1cca910_0 .var/s "B", 7 0;
318
v0x1cca990_0 .var "S", 31 0;
319
v0x1ccaa10_0 .var "Y", 7 0;
320
S_0x1cca4d0 .scope module, "next_record" "test_vector" 2 136, 2 41, S_0x1c43f20;
321
 .timescale -9 -12;
322
P_0x1c5f7a8 .param/l "DWIDTH" 2 42, +C4<01000>;
323
P_0x1c5f7d0 .param/l "OPWIDTH" 2 43, +C4<0100>;
324
v0x1cca5b0_0 .var/s "A", 7 0;
325
v0x1cca630_0 .var/s "B", 7 0;
326
v0x1cca6b0_0 .var "S", 31 0;
327
v0x1cca730_0 .var "Y", 7 0;
328
S_0x1cab560 .scope module, "alu_inst0" "alu" 2 139, 3 4, S_0x1c43f20;
329
 .timescale -9 -12;
330
P_0x1cbf098 .param/l "DWIDTH" 3 6, +C4<01000>;
331
P_0x1cbf0c0 .param/l "OPWIDTH" 3 7, +C4<0100>;
332
L_0x1cca180 .functor BUFZ 1, v0x1ccb710_0, C4<0>, C4<0>, C4<0>;
333
v0x1cc9140_0 .net "A", 7 0, v0x1ccb3d0_0; 1 drivers
334
v0x1cc91f0_0 .net "B", 7 0, v0x1ccb510_0; 1 drivers
335
v0x1cc92a0_0 .alias "C", 0 0, v0x1ccb610_0;
336
v0x1cc9350_0 .net "CLK", 0 0, v0x1ccb690_0; 1 drivers
337
v0x1cc9400_0 .net "CLR", 0 0, v0x1ccb710_0; 1 drivers
338
v0x1cc9480_0 .net "S", 3 0, v0x1ccb790_0; 1 drivers
339
v0x1cc9500_0 .alias "V", 0 0, v0x1ccb810_0;
340
v0x1cc95b0_0 .alias "Y", 7 0, v0x1ccb890_0;
341
v0x1cc9660_0 .alias "Z", 0 0, v0x1ccb990_0;
342
v0x1cc9710_0 .net "add_AB", 0 0, L_0x1cccaa0; 1 drivers
343
v0x1cc9790_0 .net "and_AB", 0 0, L_0x1ccd430; 1 drivers
344
v0x1cc9810_0 .net "clr_ALL", 0 0, L_0x1ccd010; 1 drivers
345
v0x1cc9890_0 .net "clr_C", 0 0, C4; 0 drivers
346
v0x1cc9910_0 .net "clr_V", 0 0, C4; 0 drivers
347
v0x1cc9a10_0 .net "clr_Z", 0 0, C4; 0 drivers
348
v0x1cc9a90_0 .net "cmp_AB", 0 0, L_0x1cccd20; 1 drivers
349
v0x1cc9990_0 .net "cpl_A", 0 0, L_0x1ccd1f0; 1 drivers
350
v0x1cc9ba0_0 .net "cpl_B", 0 0, L_0x1ccd4d0; 1 drivers
351
v0x1cc9b10_0 .net "dec_A", 0 0, L_0x1ccd150; 1 drivers
352
v0x1cc9cc0_0 .net "dec_B", 0 0, L_0x1ccd0b0; 1 drivers
353
v0x1cc9c20_0 .net "inc_A", 0 0, L_0x1cccb40; 1 drivers
354
v0x1cc9df0_0 .net "inc_B", 0 0, L_0x1cccbe0; 1 drivers
355
v0x1cc9d40_0 .net "load_inputs", 0 0, v0x1cc8940_0; 1 drivers
356
v0x1cc9f30_0 .net "load_outputs", 0 0, v0x1cc89f0_0; 1 drivers
357
v0x1cc9e70_0 .net "mul_AB", 0 0, L_0x1ccd2b0; 1 drivers
358
v0x1cca080_0 .net "or_AB", 0 0, L_0x1ccd350; 1 drivers
359
v0x1cc9fb0_0 .net "reset", 0 0, L_0x1cca180; 1 drivers
360
v0x1cca1e0_0 .net "sl_AB", 0 0, L_0x1cccdc0; 1 drivers
361
v0x1cca100_0 .net "sr_AB", 0 0, L_0x1cccee0; 1 drivers
362
v0x1cca350_0 .net "sub_AB", 0 0, L_0x1cccc80; 1 drivers
363
v0x1cca260_0 .net "xor_AB", 0 0, L_0x1ccd5d0; 1 drivers
364
S_0x1cc7aa0 .scope module, "controller" "alu_controller" 3 53, 4 4, S_0x1cab560;
365
 .timescale -9 -12;
366
P_0x1c91288 .param/l "OPBITS" 4 36, C4<00000000000000000000000000010000>;
367
P_0x1c912b0 .param/l "OPWIDTH" 4 35, +C4<0100>;
368
v0x1cc7b80_0 .alias "add_AB", 0 0, v0x1cc9710_0;
369
v0x1cc80f0_0 .alias "and_AB", 0 0, v0x1cc9790_0;
370
v0x1cc8170_0 .alias "clk", 0 0, v0x1cc9350_0;
371
v0x1cc81f0_0 .alias "clr", 0 0, v0x1cc9810_0;
372
v0x1cc82a0_0 .alias "clr_C", 0 0, v0x1cc9890_0;
373
v0x1cc8350_0 .alias "clr_V", 0 0, v0x1cc9910_0;
374
v0x1cc83d0_0 .alias "clr_Z", 0 0, v0x1cc9a10_0;
375
v0x1cc8480_0 .alias "cmp_AB", 0 0, v0x1cc9a90_0;
376
v0x1cc8530_0 .alias "cpl_A", 0 0, v0x1cc9990_0;
377
v0x1cc85e0_0 .alias "cpl_B", 0 0, v0x1cc9ba0_0;
378
v0x1cc8660_0 .alias "dec_A", 0 0, v0x1cc9b10_0;
379
v0x1cc8710_0 .alias "dec_B", 0 0, v0x1cc9cc0_0;
380
v0x1cc8790_0 .alias "inc_A", 0 0, v0x1cc9c20_0;
381
v0x1cc8840_0 .alias "inc_B", 0 0, v0x1cc9df0_0;
382
v0x1cc8940_0 .var "load_inputs", 0 0;
383
v0x1cc89f0_0 .var "load_outputs", 0 0;
384
v0x1cc88c0_0 .alias "mul_AB", 0 0, v0x1cc9e70_0;
385
v0x1cc8b00_0 .var "next_opcode", 3 0;
386
v0x1cc8a70_0 .alias "opcode", 3 0, v0x1cc9480_0;
387
v0x1cc8c20_0 .var "opcode_sel", 65537 0;
388
v0x1cc8b80_0 .alias "or_AB", 0 0, v0x1cca080_0;
389
v0x1cc8d50_0 .alias "reset", 0 0, v0x1cc9fb0_0;
390
v0x1cc8ca0_0 .alias "sl_AB", 0 0, v0x1cca1e0_0;
391
v0x1cc8e90_0 .alias "sr_AB", 0 0, v0x1cca100_0;
392
v0x1cc8dd0_0 .alias "sub_AB", 0 0, v0x1cca350_0;
393
v0x1cc8fe0_0 .var "this_opcode", 3 0;
394
v0x1cc8f10_0 .alias "xor_AB", 0 0, v0x1cca260_0;
395
E_0x1c64dd0 .event edge, v0x1cc8fe0_0;
396
E_0x1c65100/0 .event edge, v0x1cc75f0_0;
397
E_0x1c65100/1 .event posedge, v0x1cbee90_0;
398
E_0x1c65100 .event/or E_0x1c65100/0, E_0x1c65100/1;
399
L_0x1cccaa0 .part v0x1cc8c20_0, 0, 1;
400
L_0x1cccb40 .part v0x1cc8c20_0, 1, 1;
401
L_0x1cccbe0 .part v0x1cc8c20_0, 9, 1;
402
L_0x1cccc80 .part v0x1cc8c20_0, 2, 1;
403
L_0x1cccd20 .part v0x1cc8c20_0, 3, 1;
404
L_0x1cccdc0 .part v0x1cc8c20_0, 4, 1;
405
L_0x1cccee0 .part v0x1cc8c20_0, 5, 1;
406
L_0x1ccd010 .part v0x1cc8c20_0, 6, 1;
407
L_0x1ccd150 .part v0x1cc8c20_0, 7, 1;
408
L_0x1ccd0b0 .part v0x1cc8c20_0, 8, 1;
409
L_0x1ccd2b0 .part v0x1cc8c20_0, 10, 1;
410
L_0x1ccd1f0 .part v0x1cc8c20_0, 11, 1;
411
L_0x1ccd430 .part v0x1cc8c20_0, 12, 1;
412
L_0x1ccd350 .part v0x1cc8c20_0, 13, 1;
413
L_0x1ccd5d0 .part v0x1cc8c20_0, 14, 1;
414
L_0x1ccd4d0 .part v0x1cc8c20_0, 15, 1;
415
S_0x1caa800 .scope module, "datapath" "alu_datapath" 3 85, 5 2, S_0x1cab560;
416
 .timescale -9 -12;
417
P_0x1c9fa88 .param/l "ALU_WIDTH" 5 40, +C4<01000>;
418
L_0x1c52560 .functor NOT 8, v0x1ca4970_0, C4<00000000>, C4<00000000>, C4<00000000>;
419
L_0x1ccdd30 .functor AND 1, L_0x1ccdb30, L_0x1ccdc30, C4<1>, C4<1>;
420
L_0x1ccda30 .functor AND 1, L_0x1ccdd30, L_0x1ccdd90, C4<1>, C4<1>;
421
L_0x1cbe250 .functor AND 1, L_0x1ccda30, L_0x1ccde30, C4<1>, C4<1>;
422
L_0x1ccc710 .functor AND 1, L_0x1cccc80, L_0x1ccdfd0, C4<1>, C4<1>;
423
L_0x1ccdbd0 .functor OR 1, L_0x1ccc710, L_0x1ccd4d0, C4<0>, C4<0>;
424
L_0x1cca2e0 .functor NOT 8, v0x1ca52c0_0, C4<00000000>, C4<00000000>, C4<00000000>;
425
L_0x1c657d0 .functor AND 1, L_0x1cce070, L_0x1cccb40, C4<1>, C4<1>;
426
L_0x1ccdcd0 .functor AND 1, L_0x1c657d0, L_0x1cce210, C4<1>, C4<1>;
427
L_0x1c52ce0 .functor OR 1, L_0x1cccc80, L_0x1cccb40, C4<0>, C4<0>;
428
L_0x1c43610 .functor OR 1, L_0x1c52ce0, L_0x1cccbe0, C4<0>, C4<0>;
429
L_0x1cce1b0 .functor OR 1, L_0x1ccd430, L_0x1ccd350, C4<0>, C4<0>;
430
L_0x1ccebe0 .functor AND 1, L_0x1cce940, L_0x1cceae0, C4<1>, C4<1>;
431
L_0x1ccec40 .functor AND 1, L_0x1cce1b0, L_0x1ccebe0, C4<1>, C4<1>;
432
L_0x1cce480 .functor OR 1, L_0x1cccdc0, L_0x1cccee0, C4<0>, C4<0>;
433
L_0x1cceb80 .functor OR 1, L_0x1ccd5d0, L_0x1cccd20, C4<0>, C4<0>;
434
L_0x1cce7f0 .functor AND 1, L_0x1cccaa0, L_0x1ccefd0, C4<1>, C4<1>;
435
L_0x1ccf140 .functor AND 1, L_0x1cce7f0, L_0x1ccf2e0, C4<1>, C4<1>;
436
L_0x1ccd930 .functor AND 1, L_0x1ccf140, L_0x1ccf070, C4<1>, C4<1>;
437
L_0x1cce2b0 .functor AND 1, L_0x1ccd930, L_0x1ccf520, C4<1>, C4<1>;
438
L_0x1ccf7b0 .functor AND 1, L_0x1cce2b0, L_0x1ccf460, C4<1>, C4<1>;
439
L_0x1ccf660 .functor OR 1, L_0x1ccd430, L_0x1ccd350, C4<0>, C4<0>;
440
L_0x1ccf210 .functor OR 1, L_0x1ccf660, L_0x1ccd5d0, C4<0>, C4<0>;
441
L_0x1ccf1a0 .functor OR 1, L_0x1ccf210, L_0x1ccd4d0, C4<0>, C4<0>;
442
L_0x1ccf5c0 .functor OR 1, L_0x1ccf1a0, L_0x1ccd010, C4<0>, C4<0>;
443
L_0x1ccf750 .functor OR 1, L_0x1cccdc0, L_0x1cccee0, C4<0>, C4<0>;
444
L_0x1ccf950 .functor BUFZ 8, v0x1ca4970_0, C4<00000000>, C4<00000000>, C4<00000000>;
445
L_0x1ccf3f0 .functor BUFZ 8, v0x1ca52c0_0, C4<00000000>, C4<00000000>, C4<00000000>;
446
v0x1ca48f0_0 .alias "A", 7 0, v0x1cc9140_0;
447
v0x1ca4970_0 .var "Areg", 7 0;
448
v0x1ca5240_0 .alias "B", 7 0, v0x1cc91f0_0;
449
v0x1ca52c0_0 .var "Breg", 7 0;
450
v0x1c91300_0 .alias "C", 0 0, v0x1ccb610_0;
451
v0x1c91380_0 .var "Creg", 0 0;
452
v0x1c90fe0_0 .alias "V", 0 0, v0x1ccb810_0;
453
v0x1c91060_0 .var "Vreg", 0 0;
454
v0x1cb3580_0 .alias "Y", 7 0, v0x1ccb890_0;
455
v0x1cb3600_0 .var "Yreg", 7 0;
456
v0x1c8a0d0_0 .alias "Z", 0 0, v0x1ccb990_0;
457
v0x1c8a150_0 .var "Zreg", 0 0;
458
v0x1c88220_0 .net *"_s102", 0 0, C4<1>; 1 drivers
459
v0x1c882a0_0 .net *"_s104", 0 0, C4<0>; 1 drivers
460
v0x1c98fa0_0 .net *"_s108", 0 0, L_0x1cceb80; 1 drivers
461
v0x1c8a7f0_0 .net *"_s110", 0 0, C4<0>; 1 drivers
462
v0x1c98f20_0 .net *"_s112", 0 0, C4<1>; 1 drivers
463
v0x1c9d500_0 .net *"_s116", 0 0, L_0x1ccefd0; 1 drivers
464
v0x1c9d580_0 .net *"_s118", 0 0, L_0x1cce7f0; 1 drivers
465
v0x1c9d1e0_0 .net *"_s12", 7 0, C4<00000000>; 1 drivers
466
v0x1c8a870_0 .net *"_s120", 0 0, L_0x1ccf2e0; 1 drivers
467
v0x1c9cec0_0 .net *"_s122", 0 0, L_0x1ccf140; 1 drivers
468
v0x1c9cf40_0 .net *"_s124", 0 0, L_0x1ccf070; 1 drivers
469
v0x1c9cba0_0 .net *"_s126", 0 0, L_0x1ccd930; 1 drivers
470
v0x1c9cc20_0 .net *"_s128", 0 0, L_0x1ccf520; 1 drivers
471
v0x1c9d260_0 .net *"_s130", 0 0, L_0x1cce2b0; 1 drivers
472
v0x1c9f2c0_0 .net *"_s132", 0 0, L_0x1ccf460; 1 drivers
473
v0x1c9f340_0 .net *"_s134", 0 0, L_0x1ccf7b0; 1 drivers
474
v0x1c9ef60_0 .net *"_s137", 0 0, L_0x1ccf810; 1 drivers
475
v0x1c9efe0_0 .net *"_s138", 0 0, L_0x1ccf660; 1 drivers
476
v0x1c9f620_0 .net *"_s14", 7 0, L_0x1c52560; 1 drivers
477
v0x1c9e8a0_0 .net *"_s140", 0 0, L_0x1ccf210; 1 drivers
478
v0x1c9e920_0 .net *"_s142", 0 0, L_0x1ccf1a0; 1 drivers
479
v0x1c9e540_0 .net *"_s144", 0 0, L_0x1ccf5c0; 1 drivers
480
v0x1c9e5c0_0 .net *"_s146", 0 0, C4<0>; 1 drivers
481
v0x1c9ec00_0 .net *"_s148", 0 0, L_0x1ccf750; 1 drivers
482
v0x1c9ec80_0 .net *"_s150", 0 0, L_0x1ccfae0; 1 drivers
483
v0x1c9de80_0 .net *"_s152", 0 0, L_0x1ccfd50; 1 drivers
484
v0x1c9df00_0 .net *"_s156", 0 0, C4<1>; 1 drivers
485
v0x1c9db40_0 .net *"_s158", 0 0, C4<0>; 1 drivers
486
v0x1c9dbc0_0 .net *"_s16", 7 0, C4<00000000>; 1 drivers
487
v0x1c9d820_0 .net *"_s18", 7 0, C4<11111111>; 1 drivers
488
v0x1c9d8c0_0 .net *"_s20", 7 0, L_0x1ccd790; 1 drivers
489
v0x1c9c880_0 .net *"_s22", 7 0, L_0x1ccd890; 1 drivers
490
v0x1c9c900_0 .net *"_s24", 7 0, L_0x1ccd990; 1 drivers
491
v0x1cb2c00_0 .net *"_s28", 0 0, L_0x1ccdb30; 1 drivers
492
v0x1cb2c80_0 .net *"_s30", 0 0, L_0x1ccdc30; 1 drivers
493
v0x1c5f800_0 .net *"_s32", 0 0, L_0x1ccdd30; 1 drivers
494
v0x1c5f880_0 .net *"_s34", 0 0, L_0x1ccdd90; 1 drivers
495
v0x1c39a10_0 .net *"_s36", 0 0, L_0x1ccda30; 1 drivers
496
v0x1c51680_0 .net *"_s38", 0 0, L_0x1ccde30; 1 drivers
497
v0x1cb38c0_0 .net *"_s40", 0 0, L_0x1cbe250; 1 drivers
498
v0x1cb3940_0 .net *"_s42", 7 0, C4<11111111>; 1 drivers
499
v0x1c427e0_0 .net *"_s44", 7 0, L_0x1ccded0; 1 drivers
500
v0x1c65600_0 .net *"_s46", 0 0, L_0x1ccdfd0; 1 drivers
501
v0x1cb3380_0 .net *"_s48", 0 0, L_0x1ccc710; 1 drivers
502
v0x1cb3400_0 .net *"_s50", 0 0, L_0x1ccdbd0; 1 drivers
503
v0x1cc4a10_0 .net *"_s52", 7 0, L_0x1cca2e0; 1 drivers
504
v0x1c3ef80_0 .net *"_s54", 0 0, L_0x1cce070; 1 drivers
505
v0x1cb3120_0 .net *"_s56", 0 0, L_0x1c657d0; 1 drivers
506
v0x1cb31a0_0 .net *"_s58", 0 0, L_0x1cce210; 1 drivers
507
v0x1c64800_0 .net *"_s60", 0 0, L_0x1ccdcd0; 1 drivers
508
v0x1c64880_0 .net *"_s62", 7 0, C4<00000000>; 1 drivers
509
v0x1cb2ec0_0 .net *"_s64", 7 0, C4<00000000>; 1 drivers
510
v0x1cb2f40_0 .net *"_s66", 7 0, L_0x1cce340; 1 drivers
511
v0x1c9f6a0_0 .net *"_s68", 7 0, L_0x1cce3e0; 1 drivers
512
v0x1c9e1e0_0 .net *"_s70", 7 0, L_0x1cce500; 1 drivers
513
v0x1c9e280_0 .net *"_s74", 0 0, L_0x1c52ce0; 1 drivers
514
v0x1c8a650_0 .net *"_s76", 0 0, L_0x1c43610; 1 drivers
515
v0x1c8a6f0_0 .net *"_s78", 0 0, C4<1>; 1 drivers
516
v0x1cb2970_0 .net *"_s80", 0 0, C4<0>; 1 drivers
517
v0x1cb2a10_0 .net *"_s84", 0 0, L_0x1cce1b0; 1 drivers
518
v0x1c90e50_0 .net *"_s86", 0 0, L_0x1cce940; 1 drivers
519
v0x1c90ef0_0 .net *"_s88", 0 0, L_0x1cceae0; 1 drivers
520
v0x1c8a950_0 .net *"_s90", 0 0, L_0x1ccebe0; 1 drivers
521
v0x1c8a9f0_0 .net *"_s92", 0 0, L_0x1ccec40; 1 drivers
522
v0x1c5f680_0 .net *"_s95", 7 0, L_0x1cced40; 1 drivers
523
v0x1c5f720_0 .net *"_s96", 0 0, L_0x1cce480; 1 drivers
524
v0x1c39880_0 .net *"_s98", 7 0, L_0x1ccee90; 1 drivers
525
v0x1c39920_0 .alias "add_AB", 0 0, v0x1cc9710_0;
526
v0x1c514e0_0 .net "adderORsel", 0 0, L_0x1ccede0; 1 drivers
527
v0x1c51560_0 .net "adderXORsel", 0 0, L_0x1cceca0; 1 drivers
528
v0x1c515e0_0 .net "adder_in_a", 7 0, L_0x1ccda90; 1 drivers
529
v0x1c42630_0 .net "adder_in_b", 7 0, L_0x1cce5a0; 1 drivers
530
v0x1c426b0_0 .net "adder_out", 7 0, v0x1ca4bb0_0; 1 drivers
531
v0x1c42730_0 .net "alu_out", 7 0, L_0x1ccef30; 1 drivers
532
v0x1c65440_0 .alias "and_AB", 0 0, v0x1cc9790_0;
533
v0x1c654c0_0 .net "carry", 0 0, L_0x1ccf8b0; 1 drivers
534
v0x1c65540_0 .net "carry_in", 0 0, L_0x1cce110; 1 drivers
535
v0x1cc4840_0 .net "carry_out", 8 0, v0x1c9c590_0; 1 drivers
536
v0x1cc48c0_0 .alias "clk", 0 0, v0x1cc9350_0;
537
v0x1cc4940_0 .alias "clr", 0 0, v0x1cc9810_0;
538
v0x1c3eda0_0 .alias "clr_C", 0 0, v0x1cc9890_0;
539
v0x1c3ee20_0 .alias "clr_V", 0 0, v0x1cc9910_0;
540
v0x1c3eea0_0 .alias "clr_Z", 0 0, v0x1cc9a10_0;
541
v0x1c64610_0 .alias "cmp_AB", 0 0, v0x1cc9a90_0;
542
v0x1c64690_0 .alias "cpl_A", 0 0, v0x1cc9990_0;
543
v0x1c64710_0 .alias "cpl_B", 0 0, v0x1cc9ba0_0;
544
v0x1cc73b0_0 .alias "dec_A", 0 0, v0x1cc9b10_0;
545
v0x1cc7450_0 .alias "dec_B", 0 0, v0x1cc9cc0_0;
546
v0x1cc7090_0 .alias "inc_A", 0 0, v0x1cc9c20_0;
547
v0x1cc7130_0 .alias "inc_B", 0 0, v0x1cc9df0_0;
548
v0x1cc71b0_0 .alias "load_inputs", 0 0, v0x1cc9d40_0;
549
v0x1cc7250_0 .alias "load_outputs", 0 0, v0x1cc9f30_0;
550
v0x1cc72d0_0 .net "logic0", 7 0, C4<00000000>; 1 drivers
551
v0x1cc7820_0 .net "logic1", 7 0, C4<00000001>; 1 drivers
552
v0x1cc74d0_0 .alias "mul_AB", 0 0, v0x1cc9e70_0;
553
v0x1cc7570_0 .alias "or_AB", 0 0, v0x1cca080_0;
554
v0x1cc75f0_0 .alias "reset", 0 0, v0x1cc9fb0_0;
555
v0x1cc7690_0 .net "shifter_carry", 0 0, v0x1cbf130_0; 1 drivers
556
v0x1cc7710_0 .net "shifter_direction", 0 0, L_0x1ccff00; 1 drivers
557
v0x1cc7790_0 .net "shifter_inA", 7 0, L_0x1ccf950; 1 drivers
558
v0x1cc7c30_0 .net "shifter_inB", 7 0, L_0x1ccf3f0; 1 drivers
559
v0x1cc7cb0_0 .net "shifter_out", 7 0, v0x1cb3c30_0; 1 drivers
560
v0x1cc78a0_0 .alias "sl_AB", 0 0, v0x1cca1e0_0;
561
v0x1cc7920_0 .alias "sr_AB", 0 0, v0x1cca100_0;
562
v0x1cc79a0_0 .alias "sub_AB", 0 0, v0x1cca350_0;
563
v0x1cc7a20_0 .alias "xor_AB", 0 0, v0x1cca260_0;
564
E_0x1c8e490 .event posedge, v0x1cc75f0_0, v0x1cbee90_0;
565
L_0x1ccd790 .functor MUXZ 8, v0x1ca4970_0, C4<11111111>, L_0x1ccd0b0, C4<>;
566
L_0x1ccd890 .functor MUXZ 8, L_0x1ccd790, C4<00000000>, L_0x1cccbe0, C4<>;
567
L_0x1ccd990 .functor MUXZ 8, L_0x1ccd890, L_0x1c52560, L_0x1ccd1f0, C4<>;
568
L_0x1ccda90 .functor MUXZ 8, L_0x1ccd990, C4<00000000>, L_0x1ccd4d0, C4<>;
569
L_0x1ccdb30 .reduce/nor L_0x1cccc80;
570
L_0x1ccdc30 .reduce/nor L_0x1cccb40;
571
L_0x1ccdd90 .reduce/nor L_0x1ccd1f0;
572
L_0x1ccde30 .reduce/nor L_0x1ccd4d0;
573
L_0x1ccded0 .functor MUXZ 8, v0x1ca52c0_0, C4<11111111>, L_0x1ccd150, C4<>;
574
L_0x1ccdfd0 .reduce/nor L_0x1cccb40;
575
L_0x1cce070 .reduce/nor L_0x1cccc80;
576
L_0x1cce210 .reduce/nor L_0x1ccd4d0;
577
L_0x1cce340 .functor MUXZ 8, L_0x1cce5a0, C4<00000000>, L_0x1ccd1f0, C4<>;
578
L_0x1cce3e0 .functor MUXZ 8, L_0x1cce340, C4<00000000>, L_0x1ccdcd0, C4<>;
579
L_0x1cce500 .functor MUXZ 8, L_0x1cce3e0, L_0x1cca2e0, L_0x1ccdbd0, C4<>;
580
L_0x1cce5a0 .functor MUXZ 8, L_0x1cce500, L_0x1ccded0, L_0x1cbe250, C4<>;
581
L_0x1cce110 .functor MUXZ 1, C4<0>, C4<1>, L_0x1c43610, C4<>;
582
L_0x1cce940 .reduce/nor L_0x1cccdc0;
583
L_0x1cceae0 .reduce/nor L_0x1cccee0;
584
L_0x1cced40 .part v0x1c9c590_0, 1, 8;
585
L_0x1ccee90 .functor MUXZ 8, v0x1ca4bb0_0, v0x1cb3c30_0, L_0x1cce480, C4<>;
586
L_0x1ccef30 .functor MUXZ 8, L_0x1ccee90, L_0x1cced40, L_0x1ccec40, C4<>;
587
L_0x1ccede0 .functor MUXZ 1, C4<0>, C4<1>, L_0x1ccd350, C4<>;
588
L_0x1cceca0 .functor MUXZ 1, C4<1>, C4<0>, L_0x1cceb80, C4<>;
589
L_0x1ccefd0 .reduce/nor L_0x1ccd430;
590
L_0x1ccf2e0 .reduce/nor L_0x1ccd350;
591
L_0x1ccf070 .reduce/nor L_0x1ccd5d0;
592
L_0x1ccf520 .reduce/nor L_0x1ccd4d0;
593
L_0x1ccf460 .reduce/nor L_0x1ccd010;
594
L_0x1ccf810 .part v0x1c9c590_0, 8, 1;
595
L_0x1ccfae0 .functor MUXZ 1, L_0x1ccf8b0, v0x1cbf130_0, L_0x1ccf750, C4<>;
596
L_0x1ccfd50 .functor MUXZ 1, L_0x1ccfae0, C4<0>, L_0x1ccf5c0, C4<>;
597
L_0x1ccf8b0 .functor MUXZ 1, L_0x1ccfd50, L_0x1ccf810, L_0x1ccf7b0, C4<>;
598
L_0x1ccff00 .functor MUXZ 1, C4<0>, C4<1>, L_0x1cccee0, C4<>;
599
S_0x1cb1d80 .scope module, "adder" "alu_adder" 5 163, 6 3, S_0x1caa800;
600
 .timescale 0 0;
601
P_0x1cb1eb8 .param/l "ADDER_WIDTH" 6 17, +C4<01000>;
602
L_0x1cce9e0 .functor BUFZ 8, L_0x1cd00c0, C4<00000000>, C4<00000000>, C4<00000000>;
603
L_0x1ccfc50 .functor BUFZ 8, L_0x1cd0120, C4<00000000>, C4<00000000>, C4<00000000>;
604
L_0x1ccfcb0 .functor BUFZ 8, L_0x1cd0180, C4<00000000>, C4<00000000>, C4<00000000>;
605
L_0x1cd00c0 .functor XOR 8, L_0x1ccda90, L_0x1cce5a0, C4<00000000>, C4<00000000>;
606
L_0x1cd0180 .functor AND 8, L_0x1ccda90, L_0x1cce5a0, C4<11111111>, C4<11111111>;
607
L_0x1cd0120 .functor OR 8, L_0x1ccda90, L_0x1cce5a0, C4<00000000>, C4<00000000>;
608
v0x1cad830_0 .alias "ORsel", 0 0, v0x1c514e0_0;
609
v0x1cae3a0_0 .alias "XORsel", 0 0, v0x1c51560_0;
610
v0x1cb25c0_0 .net "XandY", 7 0, L_0x1cd0180; 1 drivers
611
v0x1c9f980_0 .net "XorY", 7 0, L_0x1cd0120; 1 drivers
612
v0x1c9c490_0 .net "XxorY", 7 0, L_0x1cd00c0; 1 drivers
613
v0x1cad030_0 .net "and_result", 7 0, L_0x1ccfcb0; 1 drivers
614
v0x1cad0b0_0 .alias "carry_in", 0 0, v0x1c65540_0;
615
v0x1c9c590_0 .var "carry_out", 8 0;
616
v0x1c9c610_0 .var "i", 31 0;
617
v0x1ca5010_0 .net "or_result", 7 0, L_0x1ccfc50; 1 drivers
618
v0x1ca5090_0 .alias "x", 7 0, v0x1c515e0_0;
619
v0x1ca4de0_0 .net "xor_result", 7 0, L_0x1cce9e0; 1 drivers
620
v0x1ca4e60_0 .alias "y", 7 0, v0x1c42630_0;
621
v0x1ca4bb0_0 .var "z", 7 0;
622
E_0x1c8dd60/0 .event edge, v0x1cad830_0, v0x1cae3a0_0, v0x1c9f980_0, v0x1cb25c0_0;
623
E_0x1c8dd60/1 .event edge, v0x1c9c490_0, v0x1c9c590_0, v0x1ca4e60_0, v0x1ca5090_0;
624
E_0x1c8dd60 .event/or E_0x1c8dd60/0, E_0x1c8dd60/1;
625
S_0x1ca6660 .scope module, "shifter" "alu_barrel_shifter" 5 173, 7 2, S_0x1caa800;
626
 .timescale -9 -12;
627
P_0x1caa938 .param/l "DWIDTH" 7 10, +C4<01000>;
628
v0x1cbf130_0 .var "c", 0 0;
629
v0x1cbee90_0 .alias "clk", 0 0, v0x1cc9350_0;
630
v0x1cbe2f0_0 .alias "direction", 0 0, v0x1cc7710_0;
631
v0x1c5ffa0_0 .alias "x", 7 0, v0x1cc7790_0;
632
v0x1c3a350_0 .alias "y", 7 0, v0x1cc7c30_0;
633
v0x1c52ab0_0 .var "y_tmp", 7 0;
634
v0x1cb3c30_0 .var "z", 7 0;
635
E_0x1c8f5d0 .event negedge, v0x1cbee90_0;
636
    .scope S_0x1cc7aa0;
637
T_3 ;
638
    %wait E_0x1c65100;
639
    %load/v 8, v0x1cc8d50_0, 1;
640
    %jmp/0xz  T_3.0, 8;
641
    %movi 8, 6, 4;
642
    %ix/load 0, 4;
643
    %assign/v0 v0x1cc8fe0_0, 0, 8;
644
    %jmp T_3.1;
645
T_3.0 ;
646
    %load/v 8, v0x1cc8a70_0, 4;
647
    %ix/load 0, 4;
648
    %assign/v0 v0x1cc8fe0_0, 0, 8;
649
T_3.1 ;
650
    %jmp T_3;
651
    .thread T_3;
652
    .scope S_0x1cc7aa0;
653
T_4 ;
654
    %wait E_0x1c64dd0;
655
    %ix/load 0, 65538;
656
    %assign/v0 v0x1cc8c20_0, 0, 0;
657
    %ix/load 0, 1;
658
    %assign/v0 v0x1cc8940_0, 0, 0;
659
    %load/v 8, v0x1cc8fe0_0, 4;
660
    %cmpi/u 8, 6, 4;
661
    %jmp/1 T_4.0, 6;
662
    %cmpi/u 8, 0, 4;
663
    %jmp/1 T_4.1, 6;
664
    %cmpi/u 8, 1, 4;
665
    %jmp/1 T_4.2, 6;
666
    %cmpi/u 8, 9, 4;
667
    %jmp/1 T_4.3, 6;
668
    %cmpi/u 8, 7, 4;
669
    %jmp/1 T_4.4, 6;
670
    %cmpi/u 8, 8, 4;
671
    %jmp/1 T_4.5, 6;
672
    %cmpi/u 8, 2, 4;
673
    %jmp/1 T_4.6, 6;
674
    %cmpi/u 8, 3, 4;
675
    %jmp/1 T_4.7, 6;
676
    %cmpi/u 8, 12, 4;
677
    %jmp/1 T_4.8, 6;
678
    %cmpi/u 8, 13, 4;
679
    %jmp/1 T_4.9, 6;
680
    %cmpi/u 8, 14, 4;
681
    %jmp/1 T_4.10, 6;
682
    %cmpi/u 8, 10, 4;
683
    %jmp/1 T_4.11, 6;
684
    %cmpi/u 8, 11, 4;
685
    %jmp/1 T_4.12, 6;
686
    %cmpi/u 8, 15, 4;
687
    %jmp/1 T_4.13, 6;
688
    %cmpi/u 8, 4, 4;
689
    %jmp/1 T_4.14, 6;
690
    %cmpi/u 8, 5, 4;
691
    %jmp/1 T_4.15, 6;
692
    %load/v 8, v0x1cc8fe0_0, 4;
693
    %ix/load 0, 4;
694
    %assign/v0 v0x1cc8b00_0, 0, 8;
695
    %jmp T_4.17;
696
T_4.0 ;
697
    %ix/load 0, 1;
698
    %ix/load 1, 6;
699
    %assign/v0/x1 v0x1cc8c20_0, 0, 1;
700
    %jmp T_4.17;
701
T_4.1 ;
702
    %ix/load 0, 1;
703
    %ix/load 1, 0;
704
    %assign/v0/x1 v0x1cc8c20_0, 0, 1;
705
    %ix/load 0, 1;
706
    %assign/v0 v0x1cc8940_0, 0, 1;
707
    %ix/load 0, 1;
708
    %assign/v0 v0x1cc89f0_0, 0, 1;
709
    %jmp T_4.17;
710
T_4.2 ;
711
    %ix/load 0, 1;
712
    %ix/load 1, 1;
713
    %assign/v0/x1 v0x1cc8c20_0, 0, 1;
714
    %ix/load 0, 1;
715
    %assign/v0 v0x1cc8940_0, 0, 1;
716
    %ix/load 0, 1;
717
    %assign/v0 v0x1cc89f0_0, 0, 1;
718
    %jmp T_4.17;
719
T_4.3 ;
720
    %ix/load 0, 1;
721
    %ix/load 1, 9;
722
    %assign/v0/x1 v0x1cc8c20_0, 0, 1;
723
    %ix/load 0, 1;
724
    %assign/v0 v0x1cc8940_0, 0, 1;
725
    %ix/load 0, 1;
726
    %assign/v0 v0x1cc89f0_0, 0, 1;
727
    %jmp T_4.17;
728
T_4.4 ;
729
    %ix/load 0, 1;
730
    %ix/load 1, 7;
731
    %assign/v0/x1 v0x1cc8c20_0, 0, 1;
732
    %ix/load 0, 1;
733
    %assign/v0 v0x1cc8940_0, 0, 1;
734
    %ix/load 0, 1;
735
    %assign/v0 v0x1cc89f0_0, 0, 1;
736
    %jmp T_4.17;
737
T_4.5 ;
738
    %ix/load 0, 1;
739
    %ix/load 1, 8;
740
    %assign/v0/x1 v0x1cc8c20_0, 0, 1;
741
    %ix/load 0, 1;
742
    %assign/v0 v0x1cc8940_0, 0, 1;
743
    %ix/load 0, 1;
744
    %assign/v0 v0x1cc89f0_0, 0, 1;
745
    %jmp T_4.17;
746
T_4.6 ;
747
    %ix/load 0, 1;
748
    %ix/load 1, 2;
749
    %assign/v0/x1 v0x1cc8c20_0, 0, 1;
750
    %ix/load 0, 1;
751
    %assign/v0 v0x1cc8940_0, 0, 1;
752
    %ix/load 0, 1;
753
    %assign/v0 v0x1cc89f0_0, 0, 1;
754
    %jmp T_4.17;
755
T_4.7 ;
756
    %ix/load 0, 1;
757
    %ix/load 1, 3;
758
    %assign/v0/x1 v0x1cc8c20_0, 0, 1;
759
    %ix/load 0, 1;
760
    %assign/v0 v0x1cc8940_0, 0, 1;
761
    %jmp T_4.17;
762
T_4.8 ;
763
    %ix/load 0, 1;
764
    %ix/load 1, 12;
765
    %assign/v0/x1 v0x1cc8c20_0, 0, 1;
766
    %ix/load 0, 1;
767
    %assign/v0 v0x1cc8940_0, 0, 1;
768
    %ix/load 0, 1;
769
    %assign/v0 v0x1cc89f0_0, 0, 1;
770
    %jmp T_4.17;
771
T_4.9 ;
772
    %ix/load 0, 1;
773
    %ix/load 1, 13;
774
    %assign/v0/x1 v0x1cc8c20_0, 0, 1;
775
    %ix/load 0, 1;
776
    %assign/v0 v0x1cc8940_0, 0, 1;
777
    %ix/load 0, 1;
778
    %assign/v0 v0x1cc89f0_0, 0, 1;
779
    %jmp T_4.17;
780
T_4.10 ;
781
    %ix/load 0, 1;
782
    %ix/load 1, 14;
783
    %assign/v0/x1 v0x1cc8c20_0, 0, 1;
784
    %ix/load 0, 1;
785
    %assign/v0 v0x1cc8940_0, 0, 1;
786
    %ix/load 0, 1;
787
    %assign/v0 v0x1cc89f0_0, 0, 1;
788
    %jmp T_4.17;
789
T_4.11 ;
790
    %ix/load 0, 1;
791
    %ix/load 1, 10;
792
    %assign/v0/x1 v0x1cc8c20_0, 0, 1;
793
    %ix/load 0, 1;
794
    %assign/v0 v0x1cc8940_0, 0, 1;
795
    %ix/load 0, 1;
796
    %assign/v0 v0x1cc89f0_0, 0, 1;
797
    %jmp T_4.17;
798
T_4.12 ;
799
    %ix/load 0, 1;
800
    %ix/load 1, 11;
801
    %assign/v0/x1 v0x1cc8c20_0, 0, 1;
802
    %ix/load 0, 1;
803
    %assign/v0 v0x1cc8940_0, 0, 1;
804
    %ix/load 0, 1;
805
    %assign/v0 v0x1cc89f0_0, 0, 1;
806
    %jmp T_4.17;
807
T_4.13 ;
808
    %ix/load 0, 1;
809
    %ix/load 1, 15;
810
    %assign/v0/x1 v0x1cc8c20_0, 0, 1;
811
    %ix/load 0, 1;
812
    %assign/v0 v0x1cc8940_0, 0, 1;
813
    %ix/load 0, 1;
814
    %assign/v0 v0x1cc89f0_0, 0, 1;
815
    %jmp T_4.17;
816
T_4.14 ;
817
    %ix/load 0, 1;
818
    %ix/load 1, 4;
819
    %assign/v0/x1 v0x1cc8c20_0, 0, 1;
820
    %ix/load 0, 1;
821
    %assign/v0 v0x1cc8940_0, 0, 1;
822
    %ix/load 0, 1;
823
    %assign/v0 v0x1cc89f0_0, 0, 1;
824
    %jmp T_4.17;
825
T_4.15 ;
826
    %ix/load 0, 1;
827
    %ix/load 1, 5;
828
    %assign/v0/x1 v0x1cc8c20_0, 0, 1;
829
    %ix/load 0, 1;
830
    %assign/v0 v0x1cc8940_0, 0, 1;
831
    %ix/load 0, 1;
832
    %assign/v0 v0x1cc89f0_0, 0, 1;
833
    %jmp T_4.17;
834
T_4.17 ;
835
    %jmp T_4;
836
    .thread T_4, $push;
837
    .scope S_0x1cb1d80;
838
T_5 ;
839
    %wait E_0x1c8dd60;
840
    %load/v 8, v0x1cad0b0_0, 1;
841
    %ix/load 0, 1;
842
    %ix/load 1, 0;
843
    %assign/v0/x1 v0x1c9c590_0, 0, 8;
844
    %set/v v0x1c9c610_0, 0, 32;
845
T_5.0 ;
846
    %load/v 8, v0x1c9c610_0, 32;
847
   %cmpi/u 8, 8, 32;
848
    %jmp/0xz T_5.1, 5;
849
    %ix/getv 1, v0x1c9c610_0;
850
    %load/x1p 8, v0x1c9c490_0, 1;
851
; Save base=8 wid=1 in lookaside.
852
    %ix/getv 1, v0x1c9c610_0;
853
    %load/x1p 9, v0x1c9c590_0, 1;
854
; Save base=9 wid=1 in lookaside.
855
    %load/v 10, v0x1cae3a0_0, 1;
856
    %and 9, 10, 1;
857
    %xor 8, 9, 1;
858
    %ix/getv 1, v0x1c9c610_0;
859
    %jmp/1 t_0, 4;
860
    %ix/load 0, 1;
861
    %assign/v0/x1 v0x1ca4bb0_0, 0, 8;
862
t_0 ;
863
    %ix/getv 1, v0x1c9c610_0;
864
    %load/x1p 8, v0x1cb25c0_0, 1;
865
; Save base=8 wid=1 in lookaside.
866
    %ix/getv 1, v0x1c9c610_0;
867
    %load/x1p 9, v0x1c9c590_0, 1;
868
; Save base=9 wid=1 in lookaside.
869
    %load/v 10, v0x1cad830_0, 1;
870
    %or 9, 10, 1;
871
    %ix/getv 1, v0x1c9c610_0;
872
    %load/x1p 10, v0x1c9f980_0, 1;
873
; Save base=10 wid=1 in lookaside.
874
    %and 9, 10, 1;
875
    %or 8, 9, 1;
876
    %ix/load 0, 1;
877
    %load/vp0 9, v0x1c9c610_0, 32;
878
    %ix/get 1, 9, 32;
879
    %jmp/1 t_1, 4;
880
    %ix/load 0, 1;
881
    %assign/v0/x1 v0x1c9c590_0, 0, 8;
882
t_1 ;
883
    %ix/load 0, 1;
884
    %load/vp0 8, v0x1c9c610_0, 32;
885
    %set/v v0x1c9c610_0, 8, 32;
886
    %jmp T_5.0;
887
T_5.1 ;
888
    %jmp T_5;
889
    .thread T_5, $push;
890
    .scope S_0x1ca6660;
891
T_6 ;
892
    %wait E_0x1c8f5d0;
893
    %load/v 8, v0x1c5ffa0_0, 8;
894
    %set/v v0x1cb3c30_0, 8, 8;
895
    %set/v v0x1cbf130_0, 0, 1;
896
    %load/v 16, v0x1c3a350_0, 3; Only need 3 of 8 bits
897
; Save base=16 wid=3 in lookaside.
898
    %mov 8, 16, 3;
899
    %mov 11, 0, 5;
900
    %set/v v0x1c52ab0_0, 8, 8;
901
T_6.0 ;
902
    %load/v 8, v0x1c52ab0_0, 8;
903
    %cmp/u 0, 8, 8;
904
    %jmp/0xz T_6.1, 5;
905
    %load/v 8, v0x1cbe2f0_0, 1;
906
    %jmp/0xz  T_6.2, 8;
907
    %ix/load 1, 1;
908
    %mov 4, 0, 1;
909
    %load/x1p 16, v0x1cb3c30_0, 7;
910
; Save base=16 wid=7 in lookaside.
911
    %mov 8, 16, 7;
912
    %load/v 16, v0x1cb3c30_0, 1; Only need 1 of 8 bits
913
; Save base=16 wid=1 in lookaside.
914
    %mov 15, 16, 1;
915
    %set/v v0x1cb3c30_0, 8, 8;
916
    %load/v 8, v0x1cb3c30_0, 1; Only need 1 of 8 bits
917
; Save base=8 wid=1 in lookaside.
918
    %set/v v0x1cbf130_0, 8, 1;
919
    %jmp T_6.3;
920
T_6.2 ;
921
    %ix/load 1, 7;
922
    %mov 4, 0, 1;
923
    %load/x1p 16, v0x1cb3c30_0, 1;
924
; Save base=16 wid=1 in lookaside.
925
    %mov 8, 16, 1;
926
    %load/v 16, v0x1cb3c30_0, 7; Only need 7 of 8 bits
927
; Save base=16 wid=7 in lookaside.
928
    %mov 9, 16, 7;
929
    %set/v v0x1cb3c30_0, 8, 8;
930
    %ix/load 1, 6;
931
    %mov 4, 0, 1;
932
    %load/x1p 8, v0x1cb3c30_0, 1;
933
; Save base=8 wid=1 in lookaside.
934
    %set/v v0x1cbf130_0, 8, 1;
935
T_6.3 ;
936
    %load/v 8, v0x1c52ab0_0, 8;
937
    %mov 16, 8, 8;
938
    %mov 24, 0, 24;
939
    %subi 16, 1, 32;
940
    %set/v v0x1c52ab0_0, 16, 8;
941
    %jmp T_6.0;
942
T_6.1 ;
943
    %jmp T_6;
944
    .thread T_6;
945
    .scope S_0x1caa800;
946
T_7 ;
947
    %wait E_0x1c8e490;
948
    %load/v 8, v0x1cc75f0_0, 1;
949
    %jmp/0xz  T_7.0, 8;
950
    %ix/load 0, 8;
951
    %assign/v0 v0x1ca4970_0, 0, 0;
952
    %ix/load 0, 8;
953
    %assign/v0 v0x1ca52c0_0, 0, 0;
954
    %ix/load 0, 8;
955
    %assign/v0 v0x1cb3600_0, 0, 0;
956
    %ix/load 0, 1;
957
    %assign/v0 v0x1c8a150_0, 0, 1;
958
    %ix/load 0, 1;
959
    %assign/v0 v0x1c91380_0, 0, 0;
960
    %ix/load 0, 1;
961
    %assign/v0 v0x1c91060_0, 0, 0;
962
    %jmp T_7.1;
963
T_7.0 ;
964
    %load/v 8, v0x1cc71b0_0, 1;
965
    %jmp/0xz  T_7.2, 8;
966
    %load/v 8, v0x1ca48f0_0, 8;
967
    %ix/load 0, 8;
968
    %assign/v0 v0x1ca4970_0, 0, 8;
969
    %load/v 8, v0x1ca5240_0, 8;
970
    %ix/load 0, 8;
971
    %assign/v0 v0x1ca52c0_0, 0, 8;
972
T_7.2 ;
973
    %load/v 8, v0x1cc7250_0, 1;
974
    %jmp/0xz  T_7.4, 8;
975
    %load/v 8, v0x1c42730_0, 8;
976
    %ix/load 0, 8;
977
    %assign/v0 v0x1cb3600_0, 0, 8;
978
T_7.4 ;
979
    %load/v 8, v0x1cc4940_0, 1;
980
    %jmp/0xz  T_7.6, 8;
981
    %ix/load 0, 8;
982
    %assign/v0 v0x1ca4970_0, 0, 0;
983
    %ix/load 0, 8;
984
    %assign/v0 v0x1ca52c0_0, 0, 0;
985
    %ix/load 0, 8;
986
    %assign/v0 v0x1cb3600_0, 0, 0;
987
    %ix/load 0, 1;
988
    %assign/v0 v0x1c91380_0, 0, 0;
989
T_7.6 ;
990
    %load/v 8, v0x1c3eea0_0, 1;
991
    %jmp/0xz  T_7.8, 8;
992
    %ix/load 0, 1;
993
    %assign/v0 v0x1c8a150_0, 0, 0;
994
T_7.8 ;
995
    %load/v 8, v0x1c3eda0_0, 1;
996
    %jmp/0xz  T_7.10, 8;
997
    %ix/load 0, 1;
998
    %assign/v0 v0x1c91380_0, 0, 0;
999
T_7.10 ;
1000
    %load/v 8, v0x1c3ee20_0, 1;
1001
    %jmp/0xz  T_7.12, 8;
1002
    %ix/load 0, 1;
1003
    %assign/v0 v0x1c91060_0, 0, 0;
1004
T_7.12 ;
1005
    %load/v 8, v0x1c42730_0, 8;
1006
    %cmpi/u 8, 0, 8;
1007
    %jmp/0xz  T_7.14, 4;
1008
    %ix/load 0, 1;
1009
    %assign/v0 v0x1c8a150_0, 0, 1;
1010
    %jmp T_7.15;
1011
T_7.14 ;
1012
    %ix/load 0, 1;
1013
    %assign/v0 v0x1c8a150_0, 0, 0;
1014
T_7.15 ;
1015
    %load/v 8, v0x1c654c0_0, 1;
1016
    %ix/load 0, 1;
1017
    %assign/v0 v0x1c91380_0, 0, 8;
1018
T_7.1 ;
1019
    %jmp T_7;
1020
    .thread T_7;
1021
    .scope S_0x1c43f20;
1022
T_8 ;
1023
    %movi 8, 6382692, 32;
1024
   %ix/load 1, 0;
1025
   %ix/load 3, 0;
1026
   %set/av v0x1ccc030, 8, 32;
1027
    %movi 8, 1768842081, 32;
1028
   %ix/load 1, 0;
1029
   %ix/load 3, 1;
1030
   %set/av v0x1ccc030, 8, 32;
1031
    %movi 40, 1768842082, 32;
1032
   %ix/load 1, 0;
1033
   %ix/load 3, 9;
1034
   %set/av v0x1ccc030, 40, 32;
1035
    %movi 72, 7566690, 32;
1036
   %ix/load 1, 0;
1037
   %ix/load 3, 2;
1038
   %set/av v0x1ccc030, 72, 32;
1039
    %movi 72, 6516080, 32;
1040
   %ix/load 1, 0;
1041
   %ix/load 3, 3;
1042
   %set/av v0x1ccc030, 72, 32;
1043
    %movi 72, 6386540, 32;
1044
   %ix/load 1, 0;
1045
   %ix/load 3, 4;
1046
   %set/av v0x1ccc030, 72, 32;
1047
    %movi 72, 6386546, 32;
1048
   %ix/load 1, 0;
1049
   %ix/load 3, 5;
1050
   %set/av v0x1ccc030, 72, 32;
1051
    %movi 72, 6515826, 32;
1052
   %ix/load 1, 0;
1053
   %ix/load 3, 6;
1054
   %set/av v0x1ccc030, 72, 32;
1055
    %movi 72, 1684366177, 32;
1056
   %ix/load 1, 0;
1057
   %ix/load 3, 7;
1058
   %set/av v0x1ccc030, 72, 32;
1059
    %movi 104, 1684366178, 32;
1060
   %ix/load 1, 0;
1061
   %ix/load 3, 8;
1062
   %set/av v0x1ccc030, 104, 32;
1063
    %movi 136, 7173484, 32;
1064
   %ix/load 1, 0;
1065
   %ix/load 3, 10;
1066
   %set/av v0x1ccc030, 136, 32;
1067
    %movi 136, 1668312161, 32;
1068
   %ix/load 1, 0;
1069
   %ix/load 3, 11;
1070
   %set/av v0x1ccc030, 136, 32;
1071
    %movi 168, 6385252, 32;
1072
   %ix/load 1, 0;
1073
   %ix/load 3, 12;
1074
   %set/av v0x1ccc030, 168, 32;
1075
    %movi 168, 28530, 32;
1076
   %ix/load 1, 0;
1077
   %ix/load 3, 13;
1078
   %set/av v0x1ccc030, 168, 32;
1079
    %movi 168, 7892850, 32;
1080
   %ix/load 1, 0;
1081
   %ix/load 3, 14;
1082
   %set/av v0x1ccc030, 168, 32;
1083
    %movi 168, 1668312162, 32;
1084
   %ix/load 1, 0;
1085
   %ix/load 3, 15;
1086
   %set/av v0x1ccc030, 168, 32;
1087
    %end;
1088
    .thread T_8;
1089
    .scope S_0x1c43f20;
1090
T_9 ;
1091
    %movi 8, 10000, 32;
1092
    %set/v v0x1ccc170_0, 8, 32;
1093
    %set/v v0x1ccc610_0, 1, 1;
1094
    %vpi_call 2 127 "$display", "Generating %0d random inputs", v0x1ccc170_0;
1095
    %end;
1096
    .thread T_9;
1097
    .scope S_0x1c43f20;
1098
T_10 ;
1099
    %set/v v0x1ccb690_0, 0, 1;
1100
T_10.0 ;
1101
    %delay 10000000, 0;
1102
    %load/v 8, v0x1ccb690_0, 1;
1103
    %inv 8, 1;
1104
    %set/v v0x1ccb690_0, 8, 1;
1105
    %jmp T_10.0;
1106
    %end;
1107
    .thread T_10;
1108
    .scope S_0x1c43f20;
1109
T_11 ;
1110
    %wait E_0x1cbe950;
1111
    %jmp T_11;
1112
    .thread T_11, $push;
1113
    .scope S_0x1c43f20;
1114
T_12 ;
1115
    %set/v v0x1ccbd60_0, 0, 32;
1116
    %end;
1117
    .thread T_12;
1118
    .scope S_0x1c43f20;
1119
T_13 ;
1120
    %wait E_0x1cbe000;
1121
    %load/v 8, v0x1ccbcd0_0, 1;
1122
    %jmp/0xz  T_13.0, 8;
1123
    %load/v 8, v0x1ccbd60_0, 32;
1124
    %cmp/s 0, 8, 32;
1125
    %jmp/0xz  T_13.2, 5;
1126
    %vpi_call 2 174 "$display", "Test FAILED with %d ERRORs [%0t] ", v0x1ccbd60_0, $time;
1127
    %jmp T_13.3;
1128
T_13.2 ;
1129
    %vpi_call 2 176 "$display", "Test PASSED ";
1130
T_13.3 ;
1131
    %vpi_call 2 179 "$fclose", v0x1ccbe80_0;
1132
    %vpi_call 2 180 "$fclose", v0x1ccc4b0_0;
1133
    %vpi_call 2 181 "$finish";
1134
T_13.0 ;
1135
    %jmp T_13;
1136
    .thread T_13;
1137
    .scope S_0x1c43f20;
1138
T_14 ;
1139
    %delay 1000, 0;
1140
    %vpi_func 2 192 "$fopen", 8, 32, "alu_test.txt", "r";
1141
    %set/v v0x1ccbe80_0, 8, 32;
1142
    %set/v v0x1ccbcd0_0, 0, 1;
1143
    %set/v v0x1ccbb30_0, 0, 32;
1144
    %set/v v0x1ccb710_0, 1, 1;
1145
    %set/v v0x1ccc800_0, 0, 1;
1146
T_14.0 ;
1147
    %vpi_func 2 203 "$feof", 8, 32, v0x1ccbe80_0;
1148
    %nor/r 8, 8, 32;
1149
    %load/v 9, v0x1ccc610_0, 1;
1150
    %inv 9, 1;
1151
    %and 8, 9, 1;
1152
    %load/v 9, v0x1ccc610_0, 1;
1153
    %load/v 10, v0x1ccc170_0, 32;
1154
    %cmp/s 0, 10, 32;
1155
    %mov 10, 5, 1;
1156
    %and 9, 10, 1;
1157
    %or 8, 9, 1;
1158
    %jmp/0xz T_14.1, 8;
1159
    %load/v 8, v0x1ccbb30_0, 32;
1160
    %mov 40, 8, 32;
1161
    %mov 72, 39, 1;
1162
   %addi 40, 1, 33;
1163
    %set/v v0x1ccbb30_0, 40, 32;
1164
    %load/v 8, v0x1ccc610_0, 1;
1165
    %jmp/0xz  T_14.2, 8;
1166
    %vpi_func 2 216 "$random", 8, 32;
1167
    %set/v v0x1ccc530_0, 8, 32;
1168
    %load/v 8, v0x1ccc530_0, 32;
1169
    %set/v v0x1ccba10_0, 8, 8;
1170
    %vpi_func 2 223 "$random", 8, 32;
1171
    %set/v v0x1ccc530_0, 8, 32;
1172
    %load/v 8, v0x1ccc530_0, 32;
1173
    %set/v v0x1ccbab0_0, 8, 8;
1174
    %vpi_func 2 230 "$random", 8, 32;
1175
    %set/v v0x1ccc530_0, 8, 32;
1176
    %load/v 8, v0x1ccc530_0, 32;
1177
    %set/v v0x1ccae50_0, 8, 32;
1178
    %fork TD_alu_tb.get_random_opcode, S_0x1ccacf0;
1179
    %join;
1180
    %load/v  8, v0x1ccadd0_0, 32;
1181
    %set/v v0x1ccc900_0, 8, 32;
1182
    %vpi_func 2 237 "$random", 8, 32;
1183
    %set/v v0x1ccc530_0, 8, 32;
1184
    %load/v 8, v0x1ccc530_0, 32;
1185
    %set/v v0x1ccbc50_0, 8, 1;
1186
    %load/v 8, v0x1ccc170_0, 32;
1187
    %mov 40, 8, 32;
1188
    %mov 72, 39, 1;
1189
    %subi 40, 1, 33;
1190
    %set/v v0x1ccc170_0, 40, 32;
1191
    %jmp T_14.3;
1192
T_14.2 ;
1193
    %vpi_func 2 248 "$fscanf", 8, 32, v0x1ccbe80_0, "%b %b %s %b", v0x1ccba10_0, v0x1ccbab0_0, v0x1ccc900_0, v0x1ccbc50_0;
1194
    %set/v v0x1ccc880_0, 8, 32;
1195
T_14.4 ;
1196
    %load/v 8, v0x1ccc880_0, 32;
1197
    %cmpi/u 8, 0, 32;
1198
    %mov 8, 4, 1;
1199
    %vpi_func 2 249 "$feof", 9, 32, v0x1ccbe80_0;
1200
    %nor/r 9, 9, 32;
1201
    %and 8, 9, 1;
1202
    %jmp/0xz T_14.5, 8;
1203
    %vpi_func 2 251 "$fgetc", 8, 32, v0x1ccbe80_0;
1204
    %set/v v0x1ccc880_0, 8, 32;
1205
    %vpi_func 2 252 "$fscanf", 8, 32, v0x1ccbe80_0, "%b %b %s %b", v0x1ccba10_0, v0x1ccbab0_0, v0x1ccc900_0, v0x1ccbc50_0;
1206
    %set/v v0x1ccc880_0, 8, 32;
1207
    %jmp T_14.4;
1208
T_14.5 ;
1209
T_14.3 ;
1210
    %load/v 8, v0x1ccbb30_0, 32;
1211
    %cmpi/u 8, 1, 32;
1212
    %jmp/0xz  T_14.6, 4;
1213
    %vpi_call 2 257 "$display", "**** Start of Test ****";
1214
T_14.6 ;
1215
    %wait E_0x1c8f5d0;
1216
    %delay 5000000, 0;
1217
    %load/v 8, v0x1ccba10_0, 8;
1218
    %set/v v0x1ccb3d0_0, 8, 8;
1219
    %load/v 8, v0x1ccbab0_0, 8;
1220
    %set/v v0x1ccb510_0, 8, 8;
1221
    %load/v 8, v0x1ccc900_0, 32;
1222
    %set/v v0x1ccabf0_0, 8, 32;
1223
    %fork TD_alu_tb.string2opcode, S_0x1ccaa90;
1224
    %join;
1225
    %load/v  8, v0x1ccac70_0, 4;
1226
    %set/v v0x1ccb790_0, 8, 4;
1227
    %load/v 8, v0x1ccbc50_0, 1;
1228
    %set/v v0x1ccb710_0, 8, 1;
1229
    %load/v 8, v0x1ccba10_0, 8;
1230
    %set/v v0x1cca5b0_0, 8, 8;
1231
    %load/v 8, v0x1ccbab0_0, 8;
1232
    %set/v v0x1cca630_0, 8, 8;
1233
    %load/v 8, v0x1ccc900_0, 32;
1234
    %set/v v0x1cca6b0_0, 8, 32;
1235
    %wait E_0x1c90700;
1236
    %load/v 8, v0x1ccb710_0, 1;
1237
    %inv 8, 1;
1238
    %load/v 9, v0x1ccc800_0, 1;
1239
    %inv 9, 1;
1240
    %and 8, 9, 1;
1241
    %jmp/0xz  T_14.8, 8;
1242
    %wait E_0x1c90700;
1243
    %wait E_0x1c90700;
1244
    %set/v v0x1ccc800_0, 1, 1;
1245
T_14.8 ;
1246
    %jmp T_14.0;
1247
T_14.1 ;
1248
    %set/v v0x1ccbcd0_0, 1, 1;
1249
    %end;
1250
    .thread T_14;
1251
    .scope S_0x1c43f20;
1252
T_15 ;
1253
    %set/v v0x1ccbbb0_0, 0, 1;
1254
    %end;
1255
    .thread T_15;
1256
    .scope S_0x1c43f20;
1257
T_16 ;
1258
    %wait E_0x1c90700;
1259
    %delay 5000000, 0;
1260
    %load/v 8, v0x1cca5b0_0, 8;
1261
    %ix/load 0, 8;
1262
    %assign/v0 v0x1cca890_0, 0, 8;
1263
    %load/v 8, v0x1cca630_0, 8;
1264
    %ix/load 0, 8;
1265
    %assign/v0 v0x1cca910_0, 0, 8;
1266
    %load/v 8, v0x1cca6b0_0, 32;
1267
    %ix/load 0, 32;
1268
    %assign/v0 v0x1cca990_0, 0, 8;
1269
    %load/v 8, v0x1cca730_0, 8;
1270
    %ix/load 0, 8;
1271
    %assign/v0 v0x1ccaa10_0, 0, 8;
1272
    %load/v 8, v0x1ccc800_0, 1;
1273
    %load/v 9, v0x1ccb710_0, 1;
1274
    %inv 9, 1;
1275
    %and 8, 9, 1;
1276
    %jmp/0xz  T_16.0, 8;
1277
    %load/v 8, v0x1cca890_0, 8;
1278
    %set/v v0x1ccbf00_0, 8, 8;
1279
    %load/v 8, v0x1cca910_0, 8;
1280
    %set/v v0x1ccc0f0_0, 8, 8;
1281
    %load/v 8, v0x1cca990_0, 32;
1282
    %ix/load 3, 0;
1283
    %mov 4, 0, 1;
1284
    %load/av 40, v0x1ccc030, 32;
1285
    %cmp/u 8, 40, 32;
1286
    %mov 8, 4, 1;
1287
    %jmp/0xz  T_16.2, 8;
1288
    %load/v 8, v0x1ccbf00_0, 8;
1289
    %load/v 16, v0x1ccc0f0_0, 8;
1290
    %add 8, 16, 8;
1291
    %set/v v0x1ccc780_0, 8, 8;
1292
    %jmp T_16.3;
1293
T_16.2 ;
1294
    %load/v 8, v0x1cca990_0, 32;
1295
    %ix/load 3, 1;
1296
    %mov 4, 0, 1;
1297
    %load/av 40, v0x1ccc030, 32;
1298
    %cmp/u 8, 40, 32;
1299
    %mov 8, 4, 1;
1300
    %jmp/0xz  T_16.4, 8;
1301
    %load/v 8, v0x1ccbf00_0, 8;
1302
    %mov 16, 8, 8;
1303
    %mov 24, 0, 24;
1304
   %addi 16, 1, 32;
1305
    %set/v v0x1ccc780_0, 16, 8;
1306
    %jmp T_16.5;
1307
T_16.4 ;
1308
    %load/v 8, v0x1cca990_0, 32;
1309
    %ix/load 3, 9;
1310
    %mov 4, 0, 1;
1311
    %load/av 40, v0x1ccc030, 32;
1312
    %cmp/u 8, 40, 32;
1313
    %mov 8, 4, 1;
1314
    %jmp/0xz  T_16.6, 8;
1315
    %load/v 8, v0x1ccc0f0_0, 8;
1316
    %mov 16, 8, 8;
1317
    %mov 24, 0, 24;
1318
   %addi 16, 1, 32;
1319
    %set/v v0x1ccc780_0, 16, 8;
1320
    %jmp T_16.7;
1321
T_16.6 ;
1322
    %load/v 8, v0x1cca990_0, 32;
1323
    %ix/load 3, 2;
1324
    %mov 4, 0, 1;
1325
    %load/av 40, v0x1ccc030, 32;
1326
    %cmp/u 8, 40, 32;
1327
    %mov 8, 4, 1;
1328
    %jmp/0xz  T_16.8, 8;
1329
    %load/v 8, v0x1ccbf00_0, 8;
1330
    %load/v 16, v0x1ccc0f0_0, 8;
1331
    %sub 8, 16, 8;
1332
    %set/v v0x1ccc780_0, 8, 8;
1333
    %jmp T_16.9;
1334
T_16.8 ;
1335
    %load/v 8, v0x1cca990_0, 32;
1336
    %ix/load 3, 3;
1337
    %mov 4, 0, 1;
1338
    %load/av 40, v0x1ccc030, 32;
1339
    %cmp/u 8, 40, 32;
1340
    %mov 8, 4, 1;
1341
    %jmp/0xz  T_16.10, 8;
1342
    %load/v 8, v0x1ccb890_0, 8;
1343
    %set/v v0x1ccc780_0, 8, 8;
1344
    %jmp T_16.11;
1345
T_16.10 ;
1346
    %load/v 8, v0x1cca990_0, 32;
1347
    %ix/load 3, 4;
1348
    %mov 4, 0, 1;
1349
    %load/av 40, v0x1ccc030, 32;
1350
    %cmp/u 8, 40, 32;
1351
    %mov 8, 4, 1;
1352
    %jmp/0xz  T_16.12, 8;
1353
    %load/v 8, v0x1ccbf00_0, 8;
1354
    %set/v v0x1ccb030_0, 8, 8;
1355
    %load/v 8, v0x1ccc0f0_0, 8;
1356
    %set/v v0x1ccb210_0, 8, 8;
1357
    %set/v v0x1ccb170_0, 0, 1;
1358
    %fork TD_alu_tb.bas, S_0x1ccaf50;
1359
    %join;
1360
    %load/v  8, v0x1ccb0d0_0, 8;
1361
    %set/v v0x1ccc780_0, 8, 8;
1362
    %jmp T_16.13;
1363
T_16.12 ;
1364
    %load/v 8, v0x1cca990_0, 32;
1365
    %ix/load 3, 5;
1366
    %mov 4, 0, 1;
1367
    %load/av 40, v0x1ccc030, 32;
1368
    %cmp/u 8, 40, 32;
1369
    %mov 8, 4, 1;
1370
    %jmp/0xz  T_16.14, 8;
1371
    %load/v 8, v0x1ccbf00_0, 8;
1372
    %set/v v0x1ccb030_0, 8, 8;
1373
    %load/v 8, v0x1ccc0f0_0, 8;
1374
    %set/v v0x1ccb210_0, 8, 8;
1375
    %set/v v0x1ccb170_0, 1, 1;
1376
    %fork TD_alu_tb.bas, S_0x1ccaf50;
1377
    %join;
1378
    %load/v  8, v0x1ccb0d0_0, 8;
1379
    %set/v v0x1ccc780_0, 8, 8;
1380
    %jmp T_16.15;
1381
T_16.14 ;
1382
    %load/v 8, v0x1cca990_0, 32;
1383
    %ix/load 3, 6;
1384
    %mov 4, 0, 1;
1385
    %load/av 40, v0x1ccc030, 32;
1386
    %cmp/u 8, 40, 32;
1387
    %mov 8, 4, 1;
1388
    %jmp/0xz  T_16.16, 8;
1389
    %load/v 8, v0x1ccbf00_0, 8;
1390
    %load/v 16, v0x1ccc0f0_0, 8;
1391
    %cmp/u 8, 16, 8;
1392
    %mov 8, 4, 1;
1393
    %jmp/0  T_16.18, 8;
1394
    %mov 9, 0, 8;
1395
    %jmp/1  T_16.20, 8;
1396
T_16.18 ; End of true expr.
1397
    %load/v 17, v0x1ccb890_0, 8;
1398
    %jmp/0  T_16.19, 8;
1399
 ; End of false expr.
1400
    %blend  9, 17, 8; Condition unknown.
1401
    %jmp  T_16.20;
1402
T_16.19 ;
1403
    %mov 9, 17, 8; Return false value
1404
T_16.20 ;
1405
    %set/v v0x1ccc780_0, 9, 8;
1406
    %jmp T_16.17;
1407
T_16.16 ;
1408
    %load/v 8, v0x1cca990_0, 32;
1409
    %ix/load 3, 7;
1410
    %mov 4, 0, 1;
1411
    %load/av 40, v0x1ccc030, 32;
1412
    %cmp/u 8, 40, 32;
1413
    %mov 8, 4, 1;
1414
    %jmp/0xz  T_16.21, 8;
1415
    %load/v 8, v0x1ccbf00_0, 8;
1416
    %mov 16, 8, 8;
1417
    %mov 24, 0, 24;
1418
    %subi 16, 1, 32;
1419
    %set/v v0x1ccc780_0, 16, 8;
1420
    %jmp T_16.22;
1421
T_16.21 ;
1422
    %load/v 8, v0x1cca990_0, 32;
1423
    %ix/load 3, 8;
1424
    %mov 4, 0, 1;
1425
    %load/av 40, v0x1ccc030, 32;
1426
    %cmp/u 8, 40, 32;
1427
    %mov 8, 4, 1;
1428
    %jmp/0xz  T_16.23, 8;
1429
    %load/v 8, v0x1ccc0f0_0, 8;
1430
    %mov 16, 8, 8;
1431
    %mov 24, 0, 24;
1432
    %subi 16, 1, 32;
1433
    %set/v v0x1ccc780_0, 16, 8;
1434
    %jmp T_16.24;
1435
T_16.23 ;
1436
    %load/v 8, v0x1cca990_0, 32;
1437
    %ix/load 3, 10;
1438
    %mov 4, 0, 1;
1439
    %load/av 40, v0x1ccc030, 32;
1440
    %cmp/u 8, 40, 32;
1441
    %mov 8, 4, 1;
1442
    %jmp/0xz  T_16.25, 8;
1443
    %load/v 8, v0x1ccb890_0, 8;
1444
    %set/v v0x1ccc780_0, 8, 8;
1445
    %jmp T_16.26;
1446
T_16.25 ;
1447
    %load/v 8, v0x1cca990_0, 32;
1448
    %ix/load 3, 11;
1449
    %mov 4, 0, 1;
1450
    %load/av 40, v0x1ccc030, 32;
1451
    %cmp/u 8, 40, 32;
1452
    %mov 8, 4, 1;
1453
    %jmp/0xz  T_16.27, 8;
1454
    %load/v 8, v0x1ccbf00_0, 8;
1455
    %inv 8, 8;
1456
    %set/v v0x1ccc780_0, 8, 8;
1457
    %jmp T_16.28;
1458
T_16.27 ;
1459
    %load/v 8, v0x1cca990_0, 32;
1460
    %ix/load 3, 12;
1461
    %mov 4, 0, 1;
1462
    %load/av 40, v0x1ccc030, 32;
1463
    %cmp/u 8, 40, 32;
1464
    %mov 8, 4, 1;
1465
    %jmp/0xz  T_16.29, 8;
1466
    %load/v 8, v0x1ccbf00_0, 8;
1467
    %load/v 16, v0x1ccc0f0_0, 8;
1468
    %and 8, 16, 8;
1469
    %set/v v0x1ccc780_0, 8, 8;
1470
    %jmp T_16.30;
1471
T_16.29 ;
1472
    %load/v 8, v0x1cca990_0, 32;
1473
    %ix/load 3, 13;
1474
    %mov 4, 0, 1;
1475
    %load/av 40, v0x1ccc030, 32;
1476
    %cmp/u 8, 40, 32;
1477
    %mov 8, 4, 1;
1478
    %jmp/0xz  T_16.31, 8;
1479
    %load/v 8, v0x1ccbf00_0, 8;
1480
    %load/v 16, v0x1ccc0f0_0, 8;
1481
    %or 8, 16, 8;
1482
    %set/v v0x1ccc780_0, 8, 8;
1483
    %jmp T_16.32;
1484
T_16.31 ;
1485
    %load/v 8, v0x1cca990_0, 32;
1486
    %ix/load 3, 14;
1487
    %mov 4, 0, 1;
1488
    %load/av 40, v0x1ccc030, 32;
1489
    %cmp/u 8, 40, 32;
1490
    %mov 8, 4, 1;
1491
    %jmp/0xz  T_16.33, 8;
1492
    %load/v 8, v0x1ccbf00_0, 8;
1493
    %load/v 16, v0x1ccc0f0_0, 8;
1494
    %xor 8, 16, 8;
1495
    %set/v v0x1ccc780_0, 8, 8;
1496
    %jmp T_16.34;
1497
T_16.33 ;
1498
    %load/v 8, v0x1cca990_0, 32;
1499
    %ix/load 3, 15;
1500
    %mov 4, 0, 1;
1501
    %load/av 40, v0x1ccc030, 32;
1502
    %cmp/u 8, 40, 32;
1503
    %mov 8, 4, 1;
1504
    %jmp/0xz  T_16.35, 8;
1505
    %load/v 8, v0x1ccc0f0_0, 8;
1506
    %inv 8, 8;
1507
    %set/v v0x1ccc780_0, 8, 8;
1508
T_16.35 ;
1509
T_16.34 ;
1510
T_16.32 ;
1511
T_16.30 ;
1512
T_16.28 ;
1513
T_16.26 ;
1514
T_16.24 ;
1515
T_16.22 ;
1516
T_16.17 ;
1517
T_16.15 ;
1518
T_16.13 ;
1519
T_16.11 ;
1520
T_16.9 ;
1521
T_16.7 ;
1522
T_16.5 ;
1523
T_16.3 ;
1524
    %load/v 8, v0x1ccbfb0_0, 32;
1525
    %movi 40, 6515826, 32;
1526
    %cmp/u 8, 40, 32;
1527
    %mov 8, 4, 1;
1528
    %load/v 9, v0x1ccbde0_0, 1;
1529
    %or 8, 9, 1;
1530
    %jmp/0xz  T_16.37, 8;
1531
    %load/v 8, v0x1ccb890_0, 8;
1532
    %set/v v0x1ccc780_0, 8, 8;
1533
T_16.37 ;
1534
    %load/v 8, v0x1cca990_0, 32;
1535
    %set/v v0x1ccbfb0_0, 8, 32;
1536
    %load/v 8, v0x1cca890_0, 8;
1537
    %set/v v0x1ccb470_0, 8, 8;
1538
    %load/v 8, v0x1cca910_0, 8;
1539
    %set/v v0x1ccb590_0, 8, 8;
1540
    %load/v 8, v0x1ccb890_0, 8;
1541
    %set/v v0x1ccb910_0, 8, 8;
1542
    %load/v 8, v0x1ccc780_0, 8;
1543
    %set/v v0x1ccc690_0, 8, 8;
1544
    %load/v 8, v0x1ccbbb0_0, 1;
1545
    %inv 8, 1;
1546
    %set/v v0x1ccbbb0_0, 8, 1;
1547
    %load/v 8, v0x1ccb890_0, 8;
1548
    %load/v 16, v0x1ccc780_0, 8;
1549
    %cmp/u 8, 16, 8;
1550
    %inv 4, 1;
1551
    %mov 8, 4, 1;
1552
    %load/v 9, v0x1ccc780_0, 8;
1553
    %and/r 9, 9, 8;
1554
    %cmp/u 9, 2, 1;
1555
    %mov 9, 6, 1;
1556
    %or 8, 9, 1;
1557
    %load/v 9, v0x1ccc780_0, 8;
1558
    %or/r 9, 9, 8;
1559
    %cmp/u 9, 3, 1;
1560
    %mov 9, 6, 1;
1561
    %or 8, 9, 1;
1562
    %load/v 9, v0x1ccb890_0, 8;
1563
    %and/r 9, 9, 8;
1564
    %cmp/u 9, 2, 1;
1565
    %mov 9, 6, 1;
1566
    %or 8, 9, 1;
1567
    %load/v 9, v0x1ccb890_0, 8;
1568
    %or/r 9, 9, 8;
1569
    %cmp/u 9, 3, 1;
1570
    %mov 9, 6, 1;
1571
    %or 8, 9, 1;
1572
    %jmp/0xz  T_16.39, 8;
1573
    %vpi_call 2 404 "$display", "[%0t ps] A:%h[u%h] S:%s[%b] B:%h[u%h] = Y:%h [u%h]  expected %h [u%h] -- ERROR Output Y is wrong", $time, v0x1cca890_0, v0x1ccb470_0, v0x1cca990_0, v0x1ccb790_0, v0x1cca910_0, v0x1ccb590_0, v0x1ccb890_0, v0x1ccb910_0, v0x1ccc780_0, v0x1ccc690_0;
1574
    %load/v 8, v0x1ccbd60_0, 32;
1575
    %mov 40, 8, 32;
1576
    %mov 72, 39, 1;
1577
   %addi 40, 1, 33;
1578
    %set/v v0x1ccbd60_0, 40, 32;
1579
    %jmp T_16.40;
1580
T_16.39 ;
1581
    %vpi_call 2 408 "$display", "[%0t ps] A:%h[u%h] S:%s[%b] B:%h[u%h] = Y:%h [u%h]  expected %h [u%h]", $time, v0x1cca890_0, v0x1ccb470_0, v0x1cca990_0, v0x1ccb790_0, v0x1cca910_0, v0x1ccb590_0, v0x1ccb890_0, v0x1ccb910_0, v0x1ccc780_0, v0x1ccc690_0;
1582
T_16.40 ;
1583
    %movi 8, 1, 32;
1584
    %load/v 40, v0x1ccbd60_0, 32;
1585
    %cmp/s 8, 40, 32;
1586
    %jmp/0xz  T_16.41, 5;
1587
    %vpi_call 2 413 "$display", "Maximum error count of %d reached...Terminating simulation", v0x1ccbd60_0;
1588
    %vpi_call 2 414 "$finish";
1589
T_16.41 ;
1590
T_16.0 ;
1591
    %load/v 8, v0x1ccb710_0, 1;
1592
    %set/v v0x1ccbde0_0, 8, 1;
1593
    %jmp T_16;
1594
    .thread T_16;
1595
    .scope S_0x1c43f20;
1596
T_17 ;
1597
    %vpi_call 2 505 "$dumpfile", "alu_tb.vcd";
1598
    %vpi_call 2 506 "$dumpvars";
1599
    %end;
1600
    .thread T_17;
1601
# The file index is used to find the file name in the following table.
1602
:file_names 8;
1603
    "N/A";
1604
    "";
1605
    "/home/leonous/projects/verilog/ecpu/components/alu/tb/alu_tb.v";
1606
    "/home/leonous/projects/verilog/ecpu/components/alu/rtl/verilog/alu.v";
1607
    "/home/leonous/projects/verilog/ecpu/components/alu/rtl/verilog/alu_controller.v";
1608
    "/home/leonous/projects/verilog/ecpu/components/alu/rtl/verilog/alu_datapath.v";
1609
    "/home/leonous/projects/verilog/ecpu/components/alu/../adder/alu_adder.v";
1610
    "/home/leonous/projects/verilog/ecpu/components/alu/../barrel_shifter/simple/barrel_shifter_simple.v";

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.