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

Subversion Repositories uart2bus_testbench

[/] [uart2bus_testbench/] [trunk/] [tb/] [test/] [uart_test.svh] - Blame information for rev 10

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 HanySalah
//-------------------------------------------------------------------------------------------------
2 2 HanySalah
//
3
//                             UART2BUS VERIFICATION
4
//
5 3 HanySalah
//-------------------------------------------------------------------------------------------------
6 2 HanySalah
// CREATOR    : HANY SALAH
7
// PROJECT    : UART2BUS UVM TEST BENCH
8
// UNIT       : TEST
9 3 HanySalah
//-------------------------------------------------------------------------------------------------
10 2 HanySalah
// TITLE      : UART TEST
11 3 HanySalah
// DESCRIPTION: THIS COMPONENT INCLUDES THE MAIN TESTS THAT WILL BE FORCED TO THE DUT. IT INCLUDES
12
//              VIRTUAL BASE TEST FUNCTION THAT SHARES THE MOST COMMON ATTRIBUTES OF ALL TESTS.
13
//              THE TESTS IMPLEMENTED THROUGH BELOW ARE RELATED TO THE TESTBENCH SPECIFICATIONS
14
//              DOCUMENT. YOU CAN DOWNLOAD IT DIRECTLY THROUGH OPENCORES.COM OR FIND IT IN THE DOC
15
//              DIRECTORY.
16
//-------------------------------------------------------------------------------------------------
17 2 HanySalah
// LOG DETAILS
18
//-------------
19
// VERSION      NAME        DATE        DESCRIPTION
20
//    1       HANY SALAH    10012016    FILE CREATION
21 3 HanySalah
//    2       HANY SALAH    20012016    ADD BINARY MODE TESTS AND INVALID TESTS
22
//    3       HANY SALAH    12022016    IMPROVE BLOCK DESCRIPTION & ADD COMMENTS
23
//-------------------------------------------------------------------------------------------------
24
// ALL COPYRIGHTS ARE RESERVED FOR THE PRODUCER ONLY .THIS FILE IS PRODUCED FOR OPENCORES MEMBERS
25
// ONLY AND IT IS PROHIBTED TO USE THIS MATERIAL WITHOUT THE CREATOR'S PERMISSION
26
//-------------------------------------------------------------------------------------------------
27
 
28
//  The base test class that includes the uvm printer and establish the whole environment.
29
//  It also responsible for setting the environment configurations described in details through the
30
//  testbench specifications document.
31
//  The environment configurations are set during the end of elaboration phase. It includes:
32
//    ----------------------------------------------------------------------------------------
33
//  - The active edge   : The active clock edge at which, the data is changed on the UART buses.
34
//                        It could be positive edge or negative edge.
35
//    ----------------------------------------------------------------------------------------
36
//  - The start bit     : Represent the sequence through which the byte is serialized; either to
37
//                        start with the most significant bit or the least significant bit.
38
//    ----------------------------------------------------------------------------------------
39
//  - The data format   : The data representation through the text commands either to be ASCII
40
//                        format or ordinary binary format.
41
//    ----------------------------------------------------------------------------------------
42
//  - The number of stop: The number of stop bits sent after the latest bit of each byte. It
43
//    bit(s)              would be either one or two bits
44
//    ----------------------------------------------------------------------------------------
45
//  - The number of bits: The number of bits within each transferred field. It would be either
46
//    in the field        7 or 8 bits per field.
47
//    ----------------------------------------------------------------------------------------
48
//  - The parity mode   : The used parity type of each field. It would be either no parity bit,
49
//                        odd parity or even parity.
50
//    ----------------------------------------------------------------------------------------
51
//  - The response time : Represent the maximum allowable time within which DUT should respond
52
//                        to the driven request.
53
//    ----------------------------------------------------------------------------------------
54
//  - The false data    : Enable force false data on the output port within the read command
55
//    enable              through the both modes; text or binary.
56
//    ----------------------------------------------------------------------------------------
57
virtual class uart_base_test extends uvm_test;
58
 
59 2 HanySalah
  uart_env          env;
60
 
61
  uvm_table_printer printer;
62
 
63
  uart_config       _config;
64
 
65 9 HanySalah
  int               matched ;
66 10 HanySalah
 
67
  uvm_report_server    report_server;
68 9 HanySalah
 
69
  `uvm_component_utils_begin(uart_base_test)
70
     `uvm_field_int(matched,UVM_ALL_ON)
71
  `uvm_component_utils_end
72 2 HanySalah
 
73
  function new (string name,uvm_component parent);
74
    super.new(name,parent);
75
  endfunction:new
76
 
77
  function void build_phase (uvm_phase phase);
78
    super.build_phase(phase);
79
 
80
    env = uart_env::type_id::create("env",this);
81
 
82
    _config = uart_config::type_id::create("_config",this);
83 9 HanySalah
 
84 2 HanySalah
    printer = new();
85 10 HanySalah
    report_server = new();
86 8 HanySalah
    env_configuration();
87 10 HanySalah
    TE_configuration();
88
    uvm_config_db#(uart_config)::set(this,"*","UART_CONFIGURATION",_config);
89 2 HanySalah
  endfunction:build_phase
90
 
91
  function void connect_phase (uvm_phase phase);
92
    super.connect_phase(phase);
93
  endfunction:connect_phase
94
 
95 8 HanySalah
  function void env_configuration ();
96 2 HanySalah
    _config._edge         = pos_edge;
97
    _config._start        = lsb;
98
    _config._datamode     = ascii;
99
    _config.num_stop_bits = 1;
100
    _config.num_of_bits   = 8;
101
    _config._paritymode   = parity_off;
102 3 HanySalah
    _config.response_time = 8680;
103
    _config.use_false_data= no;
104 8 HanySalah
  endfunction:env_configuration
105 2 HanySalah
 
106 10 HanySalah
 function void TE_configuration();
107
    report_server.set_server(report_server);
108
    printer.knobs.depth = 3;
109
    uvm_resource_db#(int)::set("Reporting","matched_packets",0,null);
110
    uvm_root::get().set_timeout(10s);
111
 endfunction // TE_configuration
112
 
113 2 HanySalah
  task run_phase (uvm_phase phase);
114
    phase.phase_done.set_drain_time(this,5000);
115
  endtask:run_phase
116 9 HanySalah
 
117
  function void report_phase (uvm_phase phase);
118 10 HanySalah
     int num_errors;
119
     string status;
120
     num_errors = report_server.get_severity_count(UVM_ERROR);
121 9 HanySalah
     uvm_resource_db#(int)::read_by_name("Reporting","matched_packets",matched);
122 10 HanySalah
     if(num_errors == 0) status =  "PASSED";
123
     else status = "FAILED";
124
     $display("--------------------------------------------------\n");
125
     $display("\t\t SIMULATION %s \n",status);
126
     $display("--------------------------------------------------");
127 9 HanySalah
     `uvm_info("FINAL STATUS",$sformatf("The number of matched packets are %0d",matched),UVM_NONE);
128
  endfunction // report_phase
129
 
130 2 HanySalah
endclass:uart_base_test
131
 
132 3 HanySalah
//-------------------------------------------------------------------------------------------------
133
//
134
//                          PURE TEXT MODE TESTS
135
//
136
//-------------------------------------------------------------------------------------------------
137 2 HanySalah
 
138 3 HanySalah
  //  This test apply thirteen successive tests of UART write request using text communication mode.
139
  //  Refer to test plan section in the testbench specifications document for more details.
140
  class write_text_mode extends uart_base_test;
141
 
142
    seq_1p1   seq1;
143
    seq_1p2   seq2;
144
    seq_1p3   seq3;
145
    seq_1p4   seq4;
146
    seq_1p5   seq5;
147
    seq_1p6   seq6;
148
    seq_1p7   seq7;
149
    seq_1p8   seq8;
150
    seq_1p9   seq9;
151
    seq_1p10  seq10;
152
    seq_1p11  seq11;
153
    seq_1p12  seq12;
154
    seq_1p13  seq13;
155 2 HanySalah
 
156 3 HanySalah
    `uvm_component_utils(write_text_mode)
157 2 HanySalah
 
158 3 HanySalah
    function new (string name,uvm_component parent);
159
      super.new(name,parent);
160
    endfunction:new
161 2 HanySalah
 
162 3 HanySalah
    function void build_phase (uvm_phase phase);
163
      super.build_phase (phase);
164
      seq1  = seq_1p1::type_id::create("seq1");
165
      seq2  = seq_1p2::type_id::create("seq2");
166
      seq3  = seq_1p3::type_id::create("seq3");
167
      seq4  = seq_1p4::type_id::create("seq4");
168
      seq5  = seq_1p5::type_id::create("seq5");
169
      seq6  = seq_1p6::type_id::create("seq6");
170
      seq7  = seq_1p7::type_id::create("seq7");
171
      seq8  = seq_1p8::type_id::create("seq8");
172
      seq9  = seq_1p9::type_id::create("seq9");
173
      seq10 = seq_1p10::type_id::create("seq10");
174
      seq11 = seq_1p11::type_id::create("seq11");
175
      seq12 = seq_1p12::type_id::create("seq12");
176
      seq13 = seq_1p13::type_id::create("seq13");
177
    endfunction:build_phase
178 2 HanySalah
 
179
 
180 3 HanySalah
    task run_phase (uvm_phase phase);
181
      super.run_phase(phase);
182
      phase.raise_objection(this);
183
      seq1.start(env.agent._seq,null);
184
      seq2.start(env.agent._seq,null);
185
      seq3.start(env.agent._seq,null);
186
      seq4.start(env.agent._seq,null);
187
      seq5.start(env.agent._seq,null);
188
      seq6.start(env.agent._seq,null);
189
      seq7.start(env.agent._seq,null);
190
      seq8.start(env.agent._seq,null);
191
      seq9.start(env.agent._seq,null);
192
      seq10.start(env.agent._seq,null);
193
      seq11.start(env.agent._seq,null);
194
      seq12.start(env.agent._seq,null);
195
      seq13.start(env.agent._seq,null);
196
      phase.drop_objection(this);
197
    endtask:run_phase
198
  endclass:write_text_mode
199 2 HanySalah
 
200 3 HanySalah
  //  This test apply thirteen successive tests of UART read request using text communication mode.
201
  //  Refer to test plan section in the testbench specifications document for more details.
202
  class read_text_mode extends uart_base_test;
203
 
204
    seq_2p1   seq1;
205
    seq_2p2   seq2;
206
    seq_2p3   seq3;
207
    seq_2p4   seq4;
208
    seq_2p5   seq5;
209
    seq_2p6   seq6;
210
    seq_2p7   seq7;
211
    seq_2p8   seq8;
212
    seq_2p9   seq9;
213
    seq_2p10  seq10;
214
    seq_2p11  seq11;
215
    seq_2p12  seq12;
216
    seq_2p13  seq13;
217 2 HanySalah
 
218
 
219 3 HanySalah
    `uvm_component_utils(read_text_mode)
220 2 HanySalah
 
221 3 HanySalah
    function new (string name,uvm_component parent);
222
      super.new(name,parent);
223
    endfunction:new
224 2 HanySalah
 
225 3 HanySalah
    function void build_phase (uvm_phase phase);
226
      super.build_phase(phase);
227
      seq1  = seq_2p1::type_id::create("seq1");
228
      seq2  = seq_2p2::type_id::create("seq2");
229
      seq3  = seq_2p3::type_id::create("seq3");
230
      seq4  = seq_2p4::type_id::create("seq4");
231
      seq5  = seq_2p5::type_id::create("seq5");
232
      seq6  = seq_2p6::type_id::create("seq6");
233
      seq7  = seq_2p7::type_id::create("seq7");
234
      seq8  = seq_2p8::type_id::create("seq8");
235
      seq9  = seq_2p9::type_id::create("seq9");
236
      seq10 = seq_2p10::type_id::create("seq10");
237
      seq11 = seq_2p11::type_id::create("seq11");
238
      seq12 = seq_2p12::type_id::create("seq12");
239
      seq13 = seq_2p13::type_id::create("seq13");
240
    endfunction:build_phase
241 2 HanySalah
 
242 3 HanySalah
    task run_phase (uvm_phase phase);
243
      super.run_phase(phase);
244
      phase.raise_objection(this);
245
      seq1.start(env.agent._seq,null);
246
      seq2.start(env.agent._seq,null);
247
      seq3.start(env.agent._seq,null);
248
      seq4.start(env.agent._seq,null);
249
      seq5.start(env.agent._seq,null);
250
      seq6.start(env.agent._seq,null);
251
      seq7.start(env.agent._seq,null);
252
      seq8.start(env.agent._seq,null);
253
      seq9.start(env.agent._seq,null);
254
      seq10.start(env.agent._seq,null);
255
      seq11.start(env.agent._seq,null);
256
      seq12.start(env.agent._seq,null);
257
      seq13.start(env.agent._seq,null);
258
      phase.drop_objection(this);
259
    endtask:run_phase
260
  endclass:read_text_mode
261 2 HanySalah
 
262 3 HanySalah
//-------------------------------------------------------------------------------------------------
263
//
264
//                          PURE BINARY MODE TESTS
265
//
266
//-------------------------------------------------------------------------------------------------
267 2 HanySalah
 
268 3 HanySalah
  //  This test apply six successive tests of UART nop request using binary communication mode.
269
  //  Refer to test plan section in the testbench specifications document for more details.
270
  class nop_command_mode extends uart_base_test;
271
 
272
    seq_3p1   seq1;
273
    seq_3p2   seq2;
274
    seq_3p3   seq3;
275
    seq_4p1   seq4;
276
    seq_4p2   seq5;
277
    seq_4p3   seq6;
278 2 HanySalah
 
279 3 HanySalah
    `uvm_component_utils(nop_command_mode)
280 2 HanySalah
 
281 3 HanySalah
    function new (string name,uvm_component parent);
282
      super.new(name,parent);
283
    endfunction:new
284 2 HanySalah
 
285 3 HanySalah
    function void build_phase (uvm_phase phase);
286
      super.build_phase(phase);
287
      seq1  = seq_3p1::type_id::create("seq1");
288
      seq2  = seq_3p2::type_id::create("seq2");
289
      seq3  = seq_3p3::type_id::create("seq3");
290
      seq4  = seq_4p1::type_id::create("seq4");
291
      seq5  = seq_4p2::type_id::create("seq5");
292
      seq6  = seq_4p3::type_id::create("seq6");
293
    endfunction:build_phase
294 2 HanySalah
 
295 3 HanySalah
    task run_phase(uvm_phase phase);
296
      super.run_phase(phase);
297
      phase.raise_objection(this);
298
      seq1.start(env.agent._seq,null);
299
      seq2.start(env.agent._seq,null);
300
      seq3.start(env.agent._seq,null);
301
      seq4.start(env.agent._seq,null);
302
      seq5.start(env.agent._seq,null);
303
      seq6.start(env.agent._seq,null);
304
      phase.drop_objection(this);
305
    endtask:run_phase
306
  endclass:nop_command_mode
307 2 HanySalah
 
308
 
309 3 HanySalah
  //  This test apply ten successive tests of UART write request using binary communication mode.
310
  //  Refer to test plan section in the testbench specifications document for more details.
311
  class write_command_mode extends uart_base_test;
312
 
313
    seq_5p1   seq1;
314
    seq_5p2   seq2;
315
    seq_5p3   seq3;
316
    seq_5p4   seq4;
317
    seq_5p5   seq5;
318
    seq_5p6   seq6;
319
    seq_5p7   seq7;
320
    seq_5p8   seq8;
321
    seq_5p9   seq9;
322
    seq_5p10  seq10;
323 2 HanySalah
 
324 3 HanySalah
    `uvm_component_utils(write_command_mode)
325 2 HanySalah
 
326 3 HanySalah
    function new (string name,uvm_component parent);
327
      super.new(name,parent);
328
    endfunction:new
329 2 HanySalah
 
330 3 HanySalah
    function void build_phase (uvm_phase phase);
331
      super.build_phase(phase);
332
      seq1  = seq_5p1::type_id::create("seq1");
333
      seq2  = seq_5p2::type_id::create("seq2");
334
      seq3  = seq_5p3::type_id::create("seq3");
335
      seq4  = seq_5p4::type_id::create("seq4");
336
      seq5  = seq_5p5::type_id::create("seq5");
337
      seq6  = seq_5p6::type_id::create("seq6");
338
      seq7  = seq_5p7::type_id::create("seq7");
339
      seq8  = seq_5p8::type_id::create("seq8");
340
      seq9  = seq_5p9::type_id::create("seq9");
341
      seq10 = seq_5p10::type_id::create("seq10");
342
    endfunction:build_phase
343 2 HanySalah
 
344 3 HanySalah
    task run_phase (uvm_phase phase);
345
      super.run_phase(phase);
346
      phase.raise_objection(this);
347
      uvm_test_done.set_drain_time(this,5000);
348
      //seq1.start(env.agent._seq,null);
349
      seq2.start(env.agent._seq,null);
350
      seq3.start(env.agent._seq,null);
351
      seq4.start(env.agent._seq,null);
352
      seq5.start(env.agent._seq,null);
353
      seq6.start(env.agent._seq,null);
354
      seq7.start(env.agent._seq,null);
355
      seq8.start(env.agent._seq,null);
356
      seq9.start(env.agent._seq,null);
357
      seq10.start(env.agent._seq,null);
358
      phase.drop_objection(this);
359
    endtask:run_phase
360
  endclass: write_command_mode
361 2 HanySalah
 
362
 
363 3 HanySalah
  //  This test apply ten successive tests of UART read request using binary communication mode.
364
  //  Refer to test plan section in the testbench specifications document for more details.
365
  class read_command_mode extends uart_base_test;
366
 
367
    seq_6p1   seq1;
368
    seq_6p2   seq2;
369
    seq_6p3   seq3;
370
    seq_6p4   seq4;
371
    seq_6p5   seq5;
372
    seq_6p6   seq6;
373
    seq_6p7   seq7;
374
    seq_6p8   seq8;
375
    seq_6p9   seq9;
376
    seq_6p10  seq10;
377 2 HanySalah
 
378 3 HanySalah
    `uvm_component_utils(read_command_mode)
379 2 HanySalah
 
380 3 HanySalah
    function new (string name,uvm_component parent);
381
      super.new(name,parent);
382
      seq1  = seq_6p1::type_id::create("seq1");
383
      seq2  = seq_6p2::type_id::create("seq2");
384
      seq3  = seq_6p3::type_id::create("seq3");
385
      seq4  = seq_6p4::type_id::create("seq4");
386
      seq5  = seq_6p5::type_id::create("seq5");
387
      seq6  = seq_6p6::type_id::create("seq6");
388
      seq7  = seq_6p7::type_id::create("seq7");
389
      seq8  = seq_6p8::type_id::create("seq8");
390
      seq9  = seq_6p9::type_id::create("seq9");
391
      seq10 = seq_6p10::type_id::create("seq10");
392
    endfunction:new
393 2 HanySalah
 
394 3 HanySalah
    function void build_phase (uvm_phase phase);
395
      super.build_phase(phase);
396
 
397
    endfunction:build_phase
398
 
399
    task run_phase (uvm_phase phase);
400
      super.run_phase(phase);
401
      phase.raise_objection(this);
402
      //seq1.start(env.agent._seq,null);
403
      seq2.start(env.agent._seq,null);
404
      seq3.start(env.agent._seq,null);
405
      seq4.start(env.agent._seq,null);
406
      seq5.start(env.agent._seq,null);
407
      seq6.start(env.agent._seq,null);
408
      seq7.start(env.agent._seq,null);
409
      seq8.start(env.agent._seq,null);
410
      seq9.start(env.agent._seq,null);
411
      seq10.start(env.agent._seq,null);
412
      phase.drop_objection(this);
413
    endtask:run_phase
414
  endclass:read_command_mode
415
 
416
//-------------------------------------------------------------------------------------------------
417
//
418
//                        COMBINED COMMAND TESTS
419
//
420
//-------------------------------------------------------------------------------------------------
421
 
422
  // this test randomly apply series of 100 text mode commands. They would be either read or write
423
  // sequences described in text mode tests in the testbench specifications document.
424
  class text_mode_test extends uart_base_test;
425
 
426
    rand int unsigned command_number;
427
 
428
    seq_1p1   seq1;
429
    seq_1p2   seq2;
430
    seq_1p3   seq3;
431
    seq_1p4   seq4;
432
    seq_1p5   seq5;
433
    seq_1p6   seq6;
434
    seq_1p7   seq7;
435
    seq_1p8   seq8;
436
    seq_1p9   seq9;
437
    seq_1p10  seq10;
438
    seq_1p11  seq11;
439
    seq_1p12  seq12;
440
    seq_1p13  seq13;
441
 
442
 
443
    seq_2p1   seq14;
444
    seq_2p2   seq15;
445
    seq_2p3   seq16;
446
    seq_2p4   seq17;
447
    seq_2p5   seq18;
448
    seq_2p6   seq19;
449
    seq_2p7   seq20;
450
    seq_2p8   seq21;
451
    seq_2p9   seq22;
452
    seq_2p10  seq23;
453
    seq_2p11  seq24;
454
    seq_2p12  seq25;
455
    seq_2p13  seq26;
456
 
457
    `uvm_component_utils(text_mode_test)
458
 
459
    constraint limit {
460
        command_number inside {[1:26]};
461
    }
462
 
463
    function new (string name , uvm_component parent);
464
      super.new(name,parent);
465
    endfunction:new
466
 
467
    function void build_phase (uvm_phase phase);
468
      super.build_phase(phase);
469
      seq1  = seq_1p1::type_id::create("seq1");
470
      seq2  = seq_1p2::type_id::create("seq2");
471
      seq3  = seq_1p3::type_id::create("seq3");
472
      seq4  = seq_1p4::type_id::create("seq4");
473
      seq5  = seq_1p5::type_id::create("seq5");
474
      seq6  = seq_1p6::type_id::create("seq6");
475
      seq7  = seq_1p7::type_id::create("seq7");
476
      seq8  = seq_1p8::type_id::create("seq8");
477
      seq9  = seq_1p9::type_id::create("seq9");
478
      seq10 = seq_1p10::type_id::create("seq10");
479
      seq11 = seq_1p11::type_id::create("seq11");
480
      seq12 = seq_1p12::type_id::create("seq12");
481
      seq13 = seq_1p13::type_id::create("seq13");
482
      seq14 = seq_2p1::type_id::create("seq14");
483
      seq15 = seq_2p2::type_id::create("seq15");
484
      seq16 = seq_2p3::type_id::create("seq16");
485
      seq17 = seq_2p4::type_id::create("seq17");
486
      seq18 = seq_2p5::type_id::create("seq18");
487
      seq19 = seq_2p6::type_id::create("seq19");
488
      seq20 = seq_2p7::type_id::create("seq20");
489
      seq21 = seq_2p8::type_id::create("seq21");
490
      seq22 = seq_2p9::type_id::create("seq22");
491
      seq23 = seq_2p10::type_id::create("seq23");
492
      seq24 = seq_2p11::type_id::create("seq24");
493
      seq25 = seq_2p12::type_id::create("seq25");
494
      seq26 = seq_2p13::type_id::create("seq26");
495
    endfunction:build_phase
496
 
497
    task run_phase (uvm_phase phase);
498
      super.run_phase(phase);
499
      phase.raise_objection(this);
500
      repeat (100)
501
        begin
502
        randomize();
503
        case (command_number)
504
          1:
505
            begin
506
            seq1.start(env.agent._seq,null);
507
            end
508
          2:
509
            begin
510
            seq2.start(env.agent._seq,null);
511
            end
512
          3:
513
            begin
514
            seq3.start(env.agent._seq,null);
515
            end
516
          4:
517
            begin
518
            seq4.start(env.agent._seq,null);
519
            end
520
          5:
521
            begin
522
            seq5.start(env.agent._seq,null);
523
            end
524
          6:
525
            begin
526
            seq6.start(env.agent._seq,null);
527
            end
528
          7:
529
            begin
530
            seq7.start(env.agent._seq,null);
531
            end
532
          8:
533
            begin
534
            seq8.start(env.agent._seq,null);
535
            end
536
          9:
537
            begin
538
            seq9.start(env.agent._seq,null);
539
            end
540
          10:
541
            begin
542
            seq10.start(env.agent._seq,null);
543
            end
544
          11:
545
            begin
546
            seq11.start(env.agent._seq,null);
547
            end
548
          12:
549
            begin
550
            seq12.start(env.agent._seq,null);
551
            end
552
          13:
553
            begin
554
            seq13.start(env.agent._seq,null);
555
            end
556
          14:
557
            begin
558
            seq14.start(env.agent._seq,null);
559
            end
560
          15:
561
            begin
562
            seq15.start(env.agent._seq,null);
563
            end
564
          16:
565
            begin
566
            seq16.start(env.agent._seq,null);
567
            end
568
          17:
569
            begin
570
            seq17.start(env.agent._seq,null);
571
            end
572
          18:
573
            begin
574
            seq18.start(env.agent._seq,null);
575
            end
576
          19:
577
            begin
578
            seq19.start(env.agent._seq,null);
579
            end
580
          20:
581
            begin
582
            seq20.start(env.agent._seq,null);
583
            end
584
          21:
585
            begin
586
            seq21.start(env.agent._seq,null);
587
            end
588
          22:
589
            begin
590
            seq22.start(env.agent._seq,null);
591
            end
592
          23:
593
            begin
594
            seq23.start(env.agent._seq,null);
595
            end
596
          24:
597
            begin
598
            seq24.start(env.agent._seq,null);
599
            end
600
          25:
601
            begin
602
            seq25.start(env.agent._seq,null);
603
            end
604
          26:
605
            begin
606
            seq26.start(env.agent._seq,null);
607
            end
608
          default:
609
            begin
610
            `uvm_fatal("OUT OF RANGE","Command Number is Out of Range")
611
            end
612
        endcase
613
        end
614
        phase.drop_objection(this);
615
    endtask:run_phase
616 9 HanySalah
  endclass:text_mode_test

powered by: WebSVN 2.1.0

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