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

Subversion Repositories funbase_ip_library

[/] [funbase_ip_library/] [trunk/] [Altera/] [ip.hwp.cpu/] [nios_ii_sdram/] [hdl/] [cpu_1_test_bench.v] - Blame information for rev 147

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 147 lanttu
//Legal Notice: (C)2012 Altera Corporation. All rights reserved.  Your
2
//use of Altera Corporation's design tools, logic functions and other
3
//software and tools, and its AMPP partner logic functions, and any
4
//output files any of the foregoing (including device programming or
5
//simulation files), and any associated documentation or information are
6
//expressly subject to the terms and conditions of the Altera Program
7
//License Subscription Agreement or other applicable license agreement,
8
//including, without limitation, that your use is for the sole purpose
9
//of programming logic devices manufactured by Altera and sold by Altera
10
//or its authorized distributors.  Please refer to the applicable
11
//agreement for further details.
12
 
13
// synthesis translate_off
14
`timescale 1ns / 1ps
15
// synthesis translate_on
16
 
17
// turn off superfluous verilog processor warnings 
18
// altera message_level Level1 
19
// altera message_off 10034 10035 10036 10037 10230 10240 10030 
20
 
21
module cpu_1_test_bench (
22
                          // inputs:
23
                           A_bstatus_reg,
24
                           A_cmp_result,
25
                           A_ctrl_exception,
26
                           A_ctrl_ld_non_bypass,
27
                           A_dst_regnum,
28
                           A_en,
29
                           A_estatus_reg,
30
                           A_ienable_reg,
31
                           A_ipending_reg,
32
                           A_iw,
33
                           A_mem_byte_en,
34
                           A_op_hbreak,
35
                           A_op_intr,
36
                           A_pcb,
37
                           A_st_data,
38
                           A_status_reg,
39
                           A_valid,
40
                           A_wr_data_unfiltered,
41
                           A_wr_dst_reg,
42
                           E_add_br_to_taken_history_unfiltered,
43
                           E_logic_result,
44
                           E_valid,
45
                           M_bht_ptr_unfiltered,
46
                           M_bht_wr_data_unfiltered,
47
                           M_bht_wr_en_unfiltered,
48
                           M_mem_baddr,
49
                           M_target_pcb,
50
                           M_valid,
51
                           W_dst_regnum,
52
                           W_iw,
53
                           W_iw_op,
54
                           W_iw_opx,
55
                           W_pcb,
56
                           W_valid,
57
                           W_vinst,
58
                           W_wr_dst_reg,
59
                           clk,
60
                           d_address,
61
                           d_byteenable,
62
                           d_read,
63
                           d_write,
64
                           i_address,
65
                           i_read,
66
                           i_readdatavalid,
67
                           reset_n,
68
 
69
                          // outputs:
70
                           A_wr_data_filtered,
71
                           E_add_br_to_taken_history_filtered,
72
                           E_src1_eq_src2,
73
                           M_bht_ptr_filtered,
74
                           M_bht_wr_data_filtered,
75
                           M_bht_wr_en_filtered,
76
                           test_has_ended
77
                        )
78
;
79
 
80
  output  [ 31: 0] A_wr_data_filtered;
81
  output           E_add_br_to_taken_history_filtered;
82
  output           E_src1_eq_src2;
83
  output  [  7: 0] M_bht_ptr_filtered;
84
  output  [  1: 0] M_bht_wr_data_filtered;
85
  output           M_bht_wr_en_filtered;
86
  output           test_has_ended;
87
  input   [ 31: 0] A_bstatus_reg;
88
  input            A_cmp_result;
89
  input            A_ctrl_exception;
90
  input            A_ctrl_ld_non_bypass;
91
  input   [  4: 0] A_dst_regnum;
92
  input            A_en;
93
  input   [ 31: 0] A_estatus_reg;
94
  input   [ 31: 0] A_ienable_reg;
95
  input   [ 31: 0] A_ipending_reg;
96
  input   [ 31: 0] A_iw;
97
  input   [  3: 0] A_mem_byte_en;
98
  input            A_op_hbreak;
99
  input            A_op_intr;
100
  input   [ 24: 0] A_pcb;
101
  input   [ 31: 0] A_st_data;
102
  input   [ 31: 0] A_status_reg;
103
  input            A_valid;
104
  input   [ 31: 0] A_wr_data_unfiltered;
105
  input            A_wr_dst_reg;
106
  input            E_add_br_to_taken_history_unfiltered;
107
  input   [ 31: 0] E_logic_result;
108
  input            E_valid;
109
  input   [  7: 0] M_bht_ptr_unfiltered;
110
  input   [  1: 0] M_bht_wr_data_unfiltered;
111
  input            M_bht_wr_en_unfiltered;
112
  input   [ 24: 0] M_mem_baddr;
113
  input   [ 24: 0] M_target_pcb;
114
  input            M_valid;
115
  input   [  4: 0] W_dst_regnum;
116
  input   [ 31: 0] W_iw;
117
  input   [  5: 0] W_iw_op;
118
  input   [  5: 0] W_iw_opx;
119
  input   [ 24: 0] W_pcb;
120
  input            W_valid;
121
  input   [ 55: 0] W_vinst;
122
  input            W_wr_dst_reg;
123
  input            clk;
124
  input   [ 24: 0] d_address;
125
  input   [  3: 0] d_byteenable;
126
  input            d_read;
127
  input            d_write;
128
  input   [ 24: 0] i_address;
129
  input            i_read;
130
  input            i_readdatavalid;
131
  input            reset_n;
132
 
133
  reg     [ 24: 0] A_mem_baddr;
134
  reg     [ 24: 0] A_target_pcb;
135
  wire    [ 31: 0] A_wr_data_filtered;
136
  wire             A_wr_data_unfiltered_0_is_x;
137
  wire             A_wr_data_unfiltered_10_is_x;
138
  wire             A_wr_data_unfiltered_11_is_x;
139
  wire             A_wr_data_unfiltered_12_is_x;
140
  wire             A_wr_data_unfiltered_13_is_x;
141
  wire             A_wr_data_unfiltered_14_is_x;
142
  wire             A_wr_data_unfiltered_15_is_x;
143
  wire             A_wr_data_unfiltered_16_is_x;
144
  wire             A_wr_data_unfiltered_17_is_x;
145
  wire             A_wr_data_unfiltered_18_is_x;
146
  wire             A_wr_data_unfiltered_19_is_x;
147
  wire             A_wr_data_unfiltered_1_is_x;
148
  wire             A_wr_data_unfiltered_20_is_x;
149
  wire             A_wr_data_unfiltered_21_is_x;
150
  wire             A_wr_data_unfiltered_22_is_x;
151
  wire             A_wr_data_unfiltered_23_is_x;
152
  wire             A_wr_data_unfiltered_24_is_x;
153
  wire             A_wr_data_unfiltered_25_is_x;
154
  wire             A_wr_data_unfiltered_26_is_x;
155
  wire             A_wr_data_unfiltered_27_is_x;
156
  wire             A_wr_data_unfiltered_28_is_x;
157
  wire             A_wr_data_unfiltered_29_is_x;
158
  wire             A_wr_data_unfiltered_2_is_x;
159
  wire             A_wr_data_unfiltered_30_is_x;
160
  wire             A_wr_data_unfiltered_31_is_x;
161
  wire             A_wr_data_unfiltered_3_is_x;
162
  wire             A_wr_data_unfiltered_4_is_x;
163
  wire             A_wr_data_unfiltered_5_is_x;
164
  wire             A_wr_data_unfiltered_6_is_x;
165
  wire             A_wr_data_unfiltered_7_is_x;
166
  wire             A_wr_data_unfiltered_8_is_x;
167
  wire             A_wr_data_unfiltered_9_is_x;
168
  wire             E_add_br_to_taken_history_filtered;
169
  wire             E_src1_eq_src2;
170
  wire    [  7: 0] M_bht_ptr_filtered;
171
  wire    [  1: 0] M_bht_wr_data_filtered;
172
  wire             M_bht_wr_en_filtered;
173
  wire             W_op_add;
174
  wire             W_op_addi;
175
  wire             W_op_and;
176
  wire             W_op_andhi;
177
  wire             W_op_andi;
178
  wire             W_op_beq;
179
  wire             W_op_bge;
180
  wire             W_op_bgeu;
181
  wire             W_op_blt;
182
  wire             W_op_bltu;
183
  wire             W_op_bne;
184
  wire             W_op_br;
185
  wire             W_op_break;
186
  wire             W_op_bret;
187
  wire             W_op_call;
188
  wire             W_op_callr;
189
  wire             W_op_cmpeq;
190
  wire             W_op_cmpeqi;
191
  wire             W_op_cmpge;
192
  wire             W_op_cmpgei;
193
  wire             W_op_cmpgeu;
194
  wire             W_op_cmpgeui;
195
  wire             W_op_cmplt;
196
  wire             W_op_cmplti;
197
  wire             W_op_cmpltu;
198
  wire             W_op_cmpltui;
199
  wire             W_op_cmpne;
200
  wire             W_op_cmpnei;
201
  wire             W_op_crst;
202
  wire             W_op_custom;
203
  wire             W_op_div;
204
  wire             W_op_divu;
205
  wire             W_op_eret;
206
  wire             W_op_flushd;
207
  wire             W_op_flushda;
208
  wire             W_op_flushi;
209
  wire             W_op_flushp;
210
  wire             W_op_hbreak;
211
  wire             W_op_initd;
212
  wire             W_op_initda;
213
  wire             W_op_initi;
214
  wire             W_op_intr;
215
  wire             W_op_jmp;
216
  wire             W_op_jmpi;
217
  wire             W_op_ldb;
218
  wire             W_op_ldbio;
219
  wire             W_op_ldbu;
220
  wire             W_op_ldbuio;
221
  wire             W_op_ldh;
222
  wire             W_op_ldhio;
223
  wire             W_op_ldhu;
224
  wire             W_op_ldhuio;
225
  wire             W_op_ldl;
226
  wire             W_op_ldw;
227
  wire             W_op_ldwio;
228
  wire             W_op_mul;
229
  wire             W_op_muli;
230
  wire             W_op_mulxss;
231
  wire             W_op_mulxsu;
232
  wire             W_op_mulxuu;
233
  wire             W_op_nextpc;
234
  wire             W_op_nor;
235
  wire             W_op_opx;
236
  wire             W_op_or;
237
  wire             W_op_orhi;
238
  wire             W_op_ori;
239
  wire             W_op_rdctl;
240
  wire             W_op_rdprs;
241
  wire             W_op_ret;
242
  wire             W_op_rol;
243
  wire             W_op_roli;
244
  wire             W_op_ror;
245
  wire             W_op_rsv02;
246
  wire             W_op_rsv09;
247
  wire             W_op_rsv10;
248
  wire             W_op_rsv17;
249
  wire             W_op_rsv18;
250
  wire             W_op_rsv25;
251
  wire             W_op_rsv26;
252
  wire             W_op_rsv33;
253
  wire             W_op_rsv34;
254
  wire             W_op_rsv41;
255
  wire             W_op_rsv42;
256
  wire             W_op_rsv49;
257
  wire             W_op_rsv57;
258
  wire             W_op_rsv61;
259
  wire             W_op_rsv62;
260
  wire             W_op_rsv63;
261
  wire             W_op_rsvx00;
262
  wire             W_op_rsvx10;
263
  wire             W_op_rsvx15;
264
  wire             W_op_rsvx17;
265
  wire             W_op_rsvx21;
266
  wire             W_op_rsvx25;
267
  wire             W_op_rsvx33;
268
  wire             W_op_rsvx34;
269
  wire             W_op_rsvx35;
270
  wire             W_op_rsvx42;
271
  wire             W_op_rsvx43;
272
  wire             W_op_rsvx44;
273
  wire             W_op_rsvx47;
274
  wire             W_op_rsvx50;
275
  wire             W_op_rsvx51;
276
  wire             W_op_rsvx55;
277
  wire             W_op_rsvx56;
278
  wire             W_op_rsvx60;
279
  wire             W_op_rsvx63;
280
  wire             W_op_sll;
281
  wire             W_op_slli;
282
  wire             W_op_sra;
283
  wire             W_op_srai;
284
  wire             W_op_srl;
285
  wire             W_op_srli;
286
  wire             W_op_stb;
287
  wire             W_op_stbio;
288
  wire             W_op_stc;
289
  wire             W_op_sth;
290
  wire             W_op_sthio;
291
  wire             W_op_stw;
292
  wire             W_op_stwio;
293
  wire             W_op_sub;
294
  wire             W_op_sync;
295
  wire             W_op_trap;
296
  wire             W_op_wrctl;
297
  wire             W_op_wrprs;
298
  wire             W_op_xor;
299
  wire             W_op_xorhi;
300
  wire             W_op_xori;
301
  wire             test_has_ended;
302
  assign W_op_call = W_iw_op == 0;
303
  assign W_op_jmpi = W_iw_op == 1;
304
  assign W_op_ldbu = W_iw_op == 3;
305
  assign W_op_addi = W_iw_op == 4;
306
  assign W_op_stb = W_iw_op == 5;
307
  assign W_op_br = W_iw_op == 6;
308
  assign W_op_ldb = W_iw_op == 7;
309
  assign W_op_cmpgei = W_iw_op == 8;
310
  assign W_op_ldhu = W_iw_op == 11;
311
  assign W_op_andi = W_iw_op == 12;
312
  assign W_op_sth = W_iw_op == 13;
313
  assign W_op_bge = W_iw_op == 14;
314
  assign W_op_ldh = W_iw_op == 15;
315
  assign W_op_cmplti = W_iw_op == 16;
316
  assign W_op_initda = W_iw_op == 19;
317
  assign W_op_ori = W_iw_op == 20;
318
  assign W_op_stw = W_iw_op == 21;
319
  assign W_op_blt = W_iw_op == 22;
320
  assign W_op_ldw = W_iw_op == 23;
321
  assign W_op_cmpnei = W_iw_op == 24;
322
  assign W_op_flushda = W_iw_op == 27;
323
  assign W_op_xori = W_iw_op == 28;
324
  assign W_op_stc = W_iw_op == 29;
325
  assign W_op_bne = W_iw_op == 30;
326
  assign W_op_ldl = W_iw_op == 31;
327
  assign W_op_cmpeqi = W_iw_op == 32;
328
  assign W_op_ldbuio = W_iw_op == 35;
329
  assign W_op_muli = W_iw_op == 36;
330
  assign W_op_stbio = W_iw_op == 37;
331
  assign W_op_beq = W_iw_op == 38;
332
  assign W_op_ldbio = W_iw_op == 39;
333
  assign W_op_cmpgeui = W_iw_op == 40;
334
  assign W_op_ldhuio = W_iw_op == 43;
335
  assign W_op_andhi = W_iw_op == 44;
336
  assign W_op_sthio = W_iw_op == 45;
337
  assign W_op_bgeu = W_iw_op == 46;
338
  assign W_op_ldhio = W_iw_op == 47;
339
  assign W_op_cmpltui = W_iw_op == 48;
340
  assign W_op_initd = W_iw_op == 51;
341
  assign W_op_orhi = W_iw_op == 52;
342
  assign W_op_stwio = W_iw_op == 53;
343
  assign W_op_bltu = W_iw_op == 54;
344
  assign W_op_ldwio = W_iw_op == 55;
345
  assign W_op_rdprs = W_iw_op == 56;
346
  assign W_op_flushd = W_iw_op == 59;
347
  assign W_op_xorhi = W_iw_op == 60;
348
  assign W_op_rsv02 = W_iw_op == 2;
349
  assign W_op_rsv09 = W_iw_op == 9;
350
  assign W_op_rsv10 = W_iw_op == 10;
351
  assign W_op_rsv17 = W_iw_op == 17;
352
  assign W_op_rsv18 = W_iw_op == 18;
353
  assign W_op_rsv25 = W_iw_op == 25;
354
  assign W_op_rsv26 = W_iw_op == 26;
355
  assign W_op_rsv33 = W_iw_op == 33;
356
  assign W_op_rsv34 = W_iw_op == 34;
357
  assign W_op_rsv41 = W_iw_op == 41;
358
  assign W_op_rsv42 = W_iw_op == 42;
359
  assign W_op_rsv49 = W_iw_op == 49;
360
  assign W_op_rsv57 = W_iw_op == 57;
361
  assign W_op_rsv61 = W_iw_op == 61;
362
  assign W_op_rsv62 = W_iw_op == 62;
363
  assign W_op_rsv63 = W_iw_op == 63;
364
  assign W_op_eret = W_op_opx & (W_iw_opx == 1);
365
  assign W_op_roli = W_op_opx & (W_iw_opx == 2);
366
  assign W_op_rol = W_op_opx & (W_iw_opx == 3);
367
  assign W_op_flushp = W_op_opx & (W_iw_opx == 4);
368
  assign W_op_ret = W_op_opx & (W_iw_opx == 5);
369
  assign W_op_nor = W_op_opx & (W_iw_opx == 6);
370
  assign W_op_mulxuu = W_op_opx & (W_iw_opx == 7);
371
  assign W_op_cmpge = W_op_opx & (W_iw_opx == 8);
372
  assign W_op_bret = W_op_opx & (W_iw_opx == 9);
373
  assign W_op_ror = W_op_opx & (W_iw_opx == 11);
374
  assign W_op_flushi = W_op_opx & (W_iw_opx == 12);
375
  assign W_op_jmp = W_op_opx & (W_iw_opx == 13);
376
  assign W_op_and = W_op_opx & (W_iw_opx == 14);
377
  assign W_op_cmplt = W_op_opx & (W_iw_opx == 16);
378
  assign W_op_slli = W_op_opx & (W_iw_opx == 18);
379
  assign W_op_sll = W_op_opx & (W_iw_opx == 19);
380
  assign W_op_wrprs = W_op_opx & (W_iw_opx == 20);
381
  assign W_op_or = W_op_opx & (W_iw_opx == 22);
382
  assign W_op_mulxsu = W_op_opx & (W_iw_opx == 23);
383
  assign W_op_cmpne = W_op_opx & (W_iw_opx == 24);
384
  assign W_op_srli = W_op_opx & (W_iw_opx == 26);
385
  assign W_op_srl = W_op_opx & (W_iw_opx == 27);
386
  assign W_op_nextpc = W_op_opx & (W_iw_opx == 28);
387
  assign W_op_callr = W_op_opx & (W_iw_opx == 29);
388
  assign W_op_xor = W_op_opx & (W_iw_opx == 30);
389
  assign W_op_mulxss = W_op_opx & (W_iw_opx == 31);
390
  assign W_op_cmpeq = W_op_opx & (W_iw_opx == 32);
391
  assign W_op_divu = W_op_opx & (W_iw_opx == 36);
392
  assign W_op_div = W_op_opx & (W_iw_opx == 37);
393
  assign W_op_rdctl = W_op_opx & (W_iw_opx == 38);
394
  assign W_op_mul = W_op_opx & (W_iw_opx == 39);
395
  assign W_op_cmpgeu = W_op_opx & (W_iw_opx == 40);
396
  assign W_op_initi = W_op_opx & (W_iw_opx == 41);
397
  assign W_op_trap = W_op_opx & (W_iw_opx == 45);
398
  assign W_op_wrctl = W_op_opx & (W_iw_opx == 46);
399
  assign W_op_cmpltu = W_op_opx & (W_iw_opx == 48);
400
  assign W_op_add = W_op_opx & (W_iw_opx == 49);
401
  assign W_op_break = W_op_opx & (W_iw_opx == 52);
402
  assign W_op_hbreak = W_op_opx & (W_iw_opx == 53);
403
  assign W_op_sync = W_op_opx & (W_iw_opx == 54);
404
  assign W_op_sub = W_op_opx & (W_iw_opx == 57);
405
  assign W_op_srai = W_op_opx & (W_iw_opx == 58);
406
  assign W_op_sra = W_op_opx & (W_iw_opx == 59);
407
  assign W_op_intr = W_op_opx & (W_iw_opx == 61);
408
  assign W_op_crst = W_op_opx & (W_iw_opx == 62);
409
  assign W_op_rsvx00 = W_op_opx & (W_iw_opx == 0);
410
  assign W_op_rsvx10 = W_op_opx & (W_iw_opx == 10);
411
  assign W_op_rsvx15 = W_op_opx & (W_iw_opx == 15);
412
  assign W_op_rsvx17 = W_op_opx & (W_iw_opx == 17);
413
  assign W_op_rsvx21 = W_op_opx & (W_iw_opx == 21);
414
  assign W_op_rsvx25 = W_op_opx & (W_iw_opx == 25);
415
  assign W_op_rsvx33 = W_op_opx & (W_iw_opx == 33);
416
  assign W_op_rsvx34 = W_op_opx & (W_iw_opx == 34);
417
  assign W_op_rsvx35 = W_op_opx & (W_iw_opx == 35);
418
  assign W_op_rsvx42 = W_op_opx & (W_iw_opx == 42);
419
  assign W_op_rsvx43 = W_op_opx & (W_iw_opx == 43);
420
  assign W_op_rsvx44 = W_op_opx & (W_iw_opx == 44);
421
  assign W_op_rsvx47 = W_op_opx & (W_iw_opx == 47);
422
  assign W_op_rsvx50 = W_op_opx & (W_iw_opx == 50);
423
  assign W_op_rsvx51 = W_op_opx & (W_iw_opx == 51);
424
  assign W_op_rsvx55 = W_op_opx & (W_iw_opx == 55);
425
  assign W_op_rsvx56 = W_op_opx & (W_iw_opx == 56);
426
  assign W_op_rsvx60 = W_op_opx & (W_iw_opx == 60);
427
  assign W_op_rsvx63 = W_op_opx & (W_iw_opx == 63);
428
  assign W_op_opx = W_iw_op == 58;
429
  assign W_op_custom = W_iw_op == 50;
430
  always @(posedge clk or negedge reset_n)
431
    begin
432
      if (reset_n == 0)
433
          A_target_pcb <= 0;
434
      else if (A_en)
435
          A_target_pcb <= M_target_pcb;
436
    end
437
 
438
 
439
  always @(posedge clk or negedge reset_n)
440
    begin
441
      if (reset_n == 0)
442
          A_mem_baddr <= 0;
443
      else if (A_en)
444
          A_mem_baddr <= M_mem_baddr;
445
    end
446
 
447
 
448
  assign E_src1_eq_src2 = E_logic_result == 0;
449
  //Propagating 'X' data bits
450
  assign E_add_br_to_taken_history_filtered = E_add_br_to_taken_history_unfiltered;
451
 
452
  //Propagating 'X' data bits
453
  assign M_bht_wr_en_filtered = M_bht_wr_en_unfiltered;
454
 
455
  //Propagating 'X' data bits
456
  assign M_bht_wr_data_filtered = M_bht_wr_data_unfiltered;
457
 
458
  //Propagating 'X' data bits
459
  assign M_bht_ptr_filtered = M_bht_ptr_unfiltered;
460
 
461
  assign test_has_ended = 1'b0;
462
 
463
//synthesis translate_off
464
//////////////// SIMULATION-ONLY CONTENTS
465
  //Clearing 'X' data bits
466
  assign A_wr_data_unfiltered_0_is_x = ^(A_wr_data_unfiltered[0]) === 1'bx;
467
 
468
  assign A_wr_data_filtered[0] = (A_wr_data_unfiltered_0_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[0];
469
  assign A_wr_data_unfiltered_1_is_x = ^(A_wr_data_unfiltered[1]) === 1'bx;
470
  assign A_wr_data_filtered[1] = (A_wr_data_unfiltered_1_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[1];
471
  assign A_wr_data_unfiltered_2_is_x = ^(A_wr_data_unfiltered[2]) === 1'bx;
472
  assign A_wr_data_filtered[2] = (A_wr_data_unfiltered_2_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[2];
473
  assign A_wr_data_unfiltered_3_is_x = ^(A_wr_data_unfiltered[3]) === 1'bx;
474
  assign A_wr_data_filtered[3] = (A_wr_data_unfiltered_3_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[3];
475
  assign A_wr_data_unfiltered_4_is_x = ^(A_wr_data_unfiltered[4]) === 1'bx;
476
  assign A_wr_data_filtered[4] = (A_wr_data_unfiltered_4_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[4];
477
  assign A_wr_data_unfiltered_5_is_x = ^(A_wr_data_unfiltered[5]) === 1'bx;
478
  assign A_wr_data_filtered[5] = (A_wr_data_unfiltered_5_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[5];
479
  assign A_wr_data_unfiltered_6_is_x = ^(A_wr_data_unfiltered[6]) === 1'bx;
480
  assign A_wr_data_filtered[6] = (A_wr_data_unfiltered_6_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[6];
481
  assign A_wr_data_unfiltered_7_is_x = ^(A_wr_data_unfiltered[7]) === 1'bx;
482
  assign A_wr_data_filtered[7] = (A_wr_data_unfiltered_7_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[7];
483
  assign A_wr_data_unfiltered_8_is_x = ^(A_wr_data_unfiltered[8]) === 1'bx;
484
  assign A_wr_data_filtered[8] = (A_wr_data_unfiltered_8_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[8];
485
  assign A_wr_data_unfiltered_9_is_x = ^(A_wr_data_unfiltered[9]) === 1'bx;
486
  assign A_wr_data_filtered[9] = (A_wr_data_unfiltered_9_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[9];
487
  assign A_wr_data_unfiltered_10_is_x = ^(A_wr_data_unfiltered[10]) === 1'bx;
488
  assign A_wr_data_filtered[10] = (A_wr_data_unfiltered_10_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[10];
489
  assign A_wr_data_unfiltered_11_is_x = ^(A_wr_data_unfiltered[11]) === 1'bx;
490
  assign A_wr_data_filtered[11] = (A_wr_data_unfiltered_11_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[11];
491
  assign A_wr_data_unfiltered_12_is_x = ^(A_wr_data_unfiltered[12]) === 1'bx;
492
  assign A_wr_data_filtered[12] = (A_wr_data_unfiltered_12_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[12];
493
  assign A_wr_data_unfiltered_13_is_x = ^(A_wr_data_unfiltered[13]) === 1'bx;
494
  assign A_wr_data_filtered[13] = (A_wr_data_unfiltered_13_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[13];
495
  assign A_wr_data_unfiltered_14_is_x = ^(A_wr_data_unfiltered[14]) === 1'bx;
496
  assign A_wr_data_filtered[14] = (A_wr_data_unfiltered_14_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[14];
497
  assign A_wr_data_unfiltered_15_is_x = ^(A_wr_data_unfiltered[15]) === 1'bx;
498
  assign A_wr_data_filtered[15] = (A_wr_data_unfiltered_15_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[15];
499
  assign A_wr_data_unfiltered_16_is_x = ^(A_wr_data_unfiltered[16]) === 1'bx;
500
  assign A_wr_data_filtered[16] = (A_wr_data_unfiltered_16_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[16];
501
  assign A_wr_data_unfiltered_17_is_x = ^(A_wr_data_unfiltered[17]) === 1'bx;
502
  assign A_wr_data_filtered[17] = (A_wr_data_unfiltered_17_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[17];
503
  assign A_wr_data_unfiltered_18_is_x = ^(A_wr_data_unfiltered[18]) === 1'bx;
504
  assign A_wr_data_filtered[18] = (A_wr_data_unfiltered_18_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[18];
505
  assign A_wr_data_unfiltered_19_is_x = ^(A_wr_data_unfiltered[19]) === 1'bx;
506
  assign A_wr_data_filtered[19] = (A_wr_data_unfiltered_19_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[19];
507
  assign A_wr_data_unfiltered_20_is_x = ^(A_wr_data_unfiltered[20]) === 1'bx;
508
  assign A_wr_data_filtered[20] = (A_wr_data_unfiltered_20_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[20];
509
  assign A_wr_data_unfiltered_21_is_x = ^(A_wr_data_unfiltered[21]) === 1'bx;
510
  assign A_wr_data_filtered[21] = (A_wr_data_unfiltered_21_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[21];
511
  assign A_wr_data_unfiltered_22_is_x = ^(A_wr_data_unfiltered[22]) === 1'bx;
512
  assign A_wr_data_filtered[22] = (A_wr_data_unfiltered_22_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[22];
513
  assign A_wr_data_unfiltered_23_is_x = ^(A_wr_data_unfiltered[23]) === 1'bx;
514
  assign A_wr_data_filtered[23] = (A_wr_data_unfiltered_23_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[23];
515
  assign A_wr_data_unfiltered_24_is_x = ^(A_wr_data_unfiltered[24]) === 1'bx;
516
  assign A_wr_data_filtered[24] = (A_wr_data_unfiltered_24_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[24];
517
  assign A_wr_data_unfiltered_25_is_x = ^(A_wr_data_unfiltered[25]) === 1'bx;
518
  assign A_wr_data_filtered[25] = (A_wr_data_unfiltered_25_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[25];
519
  assign A_wr_data_unfiltered_26_is_x = ^(A_wr_data_unfiltered[26]) === 1'bx;
520
  assign A_wr_data_filtered[26] = (A_wr_data_unfiltered_26_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[26];
521
  assign A_wr_data_unfiltered_27_is_x = ^(A_wr_data_unfiltered[27]) === 1'bx;
522
  assign A_wr_data_filtered[27] = (A_wr_data_unfiltered_27_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[27];
523
  assign A_wr_data_unfiltered_28_is_x = ^(A_wr_data_unfiltered[28]) === 1'bx;
524
  assign A_wr_data_filtered[28] = (A_wr_data_unfiltered_28_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[28];
525
  assign A_wr_data_unfiltered_29_is_x = ^(A_wr_data_unfiltered[29]) === 1'bx;
526
  assign A_wr_data_filtered[29] = (A_wr_data_unfiltered_29_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[29];
527
  assign A_wr_data_unfiltered_30_is_x = ^(A_wr_data_unfiltered[30]) === 1'bx;
528
  assign A_wr_data_filtered[30] = (A_wr_data_unfiltered_30_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[30];
529
  assign A_wr_data_unfiltered_31_is_x = ^(A_wr_data_unfiltered[31]) === 1'bx;
530
  assign A_wr_data_filtered[31] = (A_wr_data_unfiltered_31_is_x & (A_ctrl_ld_non_bypass)) ? 1'b0 : A_wr_data_unfiltered[31];
531
  always @(posedge clk)
532
    begin
533
      if (reset_n)
534
          if (^(W_wr_dst_reg) === 1'bx)
535
            begin
536
              $write("%0d ns: ERROR: cpu_1_test_bench/W_wr_dst_reg is 'x'\n", $time);
537
              $stop;
538
            end
539
    end
540
 
541
 
542
  always @(posedge clk or negedge reset_n)
543
    begin
544
      if (reset_n == 0)
545
        begin
546
        end
547
      else if (W_wr_dst_reg)
548
          if (^(W_dst_regnum) === 1'bx)
549
            begin
550
              $write("%0d ns: ERROR: cpu_1_test_bench/W_dst_regnum is 'x'\n", $time);
551
              $stop;
552
            end
553
    end
554
 
555
 
556
  always @(posedge clk)
557
    begin
558
      if (reset_n)
559
          if (^(W_valid) === 1'bx)
560
            begin
561
              $write("%0d ns: ERROR: cpu_1_test_bench/W_valid is 'x'\n", $time);
562
              $stop;
563
            end
564
    end
565
 
566
 
567
  always @(posedge clk or negedge reset_n)
568
    begin
569
      if (reset_n == 0)
570
        begin
571
        end
572
      else if (W_valid)
573
          if (^(W_pcb) === 1'bx)
574
            begin
575
              $write("%0d ns: ERROR: cpu_1_test_bench/W_pcb is 'x'\n", $time);
576
              $stop;
577
            end
578
    end
579
 
580
 
581
  always @(posedge clk or negedge reset_n)
582
    begin
583
      if (reset_n == 0)
584
        begin
585
        end
586
      else if (W_valid)
587
          if (^(W_iw) === 1'bx)
588
            begin
589
              $write("%0d ns: ERROR: cpu_1_test_bench/W_iw is 'x'\n", $time);
590
              $stop;
591
            end
592
    end
593
 
594
 
595
  always @(posedge clk)
596
    begin
597
      if (reset_n)
598
          if (^(A_en) === 1'bx)
599
            begin
600
              $write("%0d ns: ERROR: cpu_1_test_bench/A_en is 'x'\n", $time);
601
              $stop;
602
            end
603
    end
604
 
605
 
606
  always @(posedge clk)
607
    begin
608
      if (reset_n)
609
          if (^(E_valid) === 1'bx)
610
            begin
611
              $write("%0d ns: ERROR: cpu_1_test_bench/E_valid is 'x'\n", $time);
612
              $stop;
613
            end
614
    end
615
 
616
 
617
  always @(posedge clk)
618
    begin
619
      if (reset_n)
620
          if (^(M_valid) === 1'bx)
621
            begin
622
              $write("%0d ns: ERROR: cpu_1_test_bench/M_valid is 'x'\n", $time);
623
              $stop;
624
            end
625
    end
626
 
627
 
628
  always @(posedge clk)
629
    begin
630
      if (reset_n)
631
          if (^(A_valid) === 1'bx)
632
            begin
633
              $write("%0d ns: ERROR: cpu_1_test_bench/A_valid is 'x'\n", $time);
634
              $stop;
635
            end
636
    end
637
 
638
 
639
  always @(posedge clk or negedge reset_n)
640
    begin
641
      if (reset_n == 0)
642
        begin
643
        end
644
      else if (A_valid & A_en & A_wr_dst_reg)
645
          if (^(A_wr_data_unfiltered) === 1'bx)
646
            begin
647
              $write("%0d ns: WARNING: cpu_1_test_bench/A_wr_data_unfiltered is 'x'\n", $time);
648
            end
649
    end
650
 
651
 
652
  always @(posedge clk)
653
    begin
654
      if (reset_n)
655
          if (^(A_status_reg) === 1'bx)
656
            begin
657
              $write("%0d ns: ERROR: cpu_1_test_bench/A_status_reg is 'x'\n", $time);
658
              $stop;
659
            end
660
    end
661
 
662
 
663
  always @(posedge clk)
664
    begin
665
      if (reset_n)
666
          if (^(A_estatus_reg) === 1'bx)
667
            begin
668
              $write("%0d ns: ERROR: cpu_1_test_bench/A_estatus_reg is 'x'\n", $time);
669
              $stop;
670
            end
671
    end
672
 
673
 
674
  always @(posedge clk)
675
    begin
676
      if (reset_n)
677
          if (^(A_bstatus_reg) === 1'bx)
678
            begin
679
              $write("%0d ns: ERROR: cpu_1_test_bench/A_bstatus_reg is 'x'\n", $time);
680
              $stop;
681
            end
682
    end
683
 
684
 
685
  always @(posedge clk)
686
    begin
687
      if (reset_n)
688
          if (^(i_read) === 1'bx)
689
            begin
690
              $write("%0d ns: ERROR: cpu_1_test_bench/i_read is 'x'\n", $time);
691
              $stop;
692
            end
693
    end
694
 
695
 
696
  always @(posedge clk or negedge reset_n)
697
    begin
698
      if (reset_n == 0)
699
        begin
700
        end
701
      else if (i_read)
702
          if (^(i_address) === 1'bx)
703
            begin
704
              $write("%0d ns: ERROR: cpu_1_test_bench/i_address is 'x'\n", $time);
705
              $stop;
706
            end
707
    end
708
 
709
 
710
  always @(posedge clk)
711
    begin
712
      if (reset_n)
713
          if (^(i_readdatavalid) === 1'bx)
714
            begin
715
              $write("%0d ns: ERROR: cpu_1_test_bench/i_readdatavalid is 'x'\n", $time);
716
              $stop;
717
            end
718
    end
719
 
720
 
721
  always @(posedge clk)
722
    begin
723
      if (reset_n)
724
          if (^(d_write) === 1'bx)
725
            begin
726
              $write("%0d ns: ERROR: cpu_1_test_bench/d_write is 'x'\n", $time);
727
              $stop;
728
            end
729
    end
730
 
731
 
732
  always @(posedge clk or negedge reset_n)
733
    begin
734
      if (reset_n == 0)
735
        begin
736
        end
737
      else if (d_write)
738
          if (^(d_byteenable) === 1'bx)
739
            begin
740
              $write("%0d ns: ERROR: cpu_1_test_bench/d_byteenable is 'x'\n", $time);
741
              $stop;
742
            end
743
    end
744
 
745
 
746
  always @(posedge clk or negedge reset_n)
747
    begin
748
      if (reset_n == 0)
749
        begin
750
        end
751
      else if (d_write | d_read)
752
          if (^(d_address) === 1'bx)
753
            begin
754
              $write("%0d ns: ERROR: cpu_1_test_bench/d_address is 'x'\n", $time);
755
              $stop;
756
            end
757
    end
758
 
759
 
760
  always @(posedge clk)
761
    begin
762
      if (reset_n)
763
          if (^(d_read) === 1'bx)
764
            begin
765
              $write("%0d ns: ERROR: cpu_1_test_bench/d_read is 'x'\n", $time);
766
              $stop;
767
            end
768
    end
769
 
770
 
771
 
772
  reg [31:0] trace_handle; // for $fopen
773
  initial
774
  begin
775
    trace_handle = $fopen("cpu_1.tr");
776
    $fwrite(trace_handle, "version 3\nnumThreads 1\n");
777
  end
778
  always @(posedge clk)
779
    begin
780
      if ((~reset_n || (A_valid & A_en)) && ~test_has_ended)
781
          $fwrite(trace_handle, "%0d ns: %0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h,%0h\n", $time, ~reset_n, A_pcb, 0, A_op_intr, A_op_hbreak, A_iw, ~(A_op_intr | A_op_hbreak), A_wr_dst_reg, A_dst_regnum, 0, A_wr_data_filtered, A_mem_baddr, A_st_data, A_mem_byte_en, A_cmp_result, A_target_pcb, A_status_reg, A_estatus_reg, A_bstatus_reg, A_ienable_reg, A_ipending_reg, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, A_ctrl_exception ? 1 : 0, 0, 0, 0, 0);
782
    end
783
 
784
 
785
 
786
//////////////// END SIMULATION-ONLY CONTENTS
787
 
788
//synthesis translate_on
789
//synthesis read_comments_as_HDL on
790
//  
791
//  assign A_wr_data_filtered = A_wr_data_unfiltered;
792
//
793
//synthesis read_comments_as_HDL off
794
 
795
endmodule
796
 

powered by: WebSVN 2.1.0

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