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 9

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
 
67
  `uvm_component_utils_begin(uart_base_test)
68
     `uvm_field_int(matched,UVM_ALL_ON)
69
  `uvm_component_utils_end
70 2 HanySalah
 
71
  function new (string name,uvm_component parent);
72
    super.new(name,parent);
73
  endfunction:new
74
 
75
  function void build_phase (uvm_phase phase);
76
    super.build_phase(phase);
77
 
78
    env = uart_env::type_id::create("env",this);
79
 
80
    _config = uart_config::type_id::create("_config",this);
81
 
82
    uvm_config_db#(uart_config)::set(this,"*","UART_CONFIGURATION",_config);
83 9 HanySalah
 
84 2 HanySalah
    printer = new();
85
    printer.knobs.depth = 3;
86 8 HanySalah
    env_configuration();
87 9 HanySalah
    uvm_resource_db#(int)::set("Reporting","matched_packets",0,null);
88 2 HanySalah
  endfunction:build_phase
89
 
90
  function void connect_phase (uvm_phase phase);
91
    super.connect_phase(phase);
92
  endfunction:connect_phase
93
 
94 8 HanySalah
  function void env_configuration ();
95 2 HanySalah
    _config._edge         = pos_edge;
96
    _config._start        = lsb;
97
    _config._datamode     = ascii;
98
    _config.num_stop_bits = 1;
99
    _config.num_of_bits   = 8;
100
    _config._paritymode   = parity_off;
101 3 HanySalah
    _config.response_time = 8680;
102
    _config.use_false_data= no;
103 8 HanySalah
  endfunction:env_configuration
104 2 HanySalah
 
105
  task run_phase (uvm_phase phase);
106
    phase.phase_done.set_drain_time(this,5000);
107
  endtask:run_phase
108 9 HanySalah
 
109
  function void report_phase (uvm_phase phase);
110
     uvm_resource_db#(int)::read_by_name("Reporting","matched_packets",matched);
111
     `uvm_info("FINAL STATUS",$sformatf("The number of matched packets are %0d",matched),UVM_NONE);
112
  endfunction // report_phase
113
 
114 2 HanySalah
endclass:uart_base_test
115
 
116 3 HanySalah
//-------------------------------------------------------------------------------------------------
117
//
118
//                          PURE TEXT MODE TESTS
119
//
120
//-------------------------------------------------------------------------------------------------
121 2 HanySalah
 
122 3 HanySalah
  //  This test apply thirteen successive tests of UART write request using text communication mode.
123
  //  Refer to test plan section in the testbench specifications document for more details.
124
  class write_text_mode extends uart_base_test;
125
 
126
    seq_1p1   seq1;
127
    seq_1p2   seq2;
128
    seq_1p3   seq3;
129
    seq_1p4   seq4;
130
    seq_1p5   seq5;
131
    seq_1p6   seq6;
132
    seq_1p7   seq7;
133
    seq_1p8   seq8;
134
    seq_1p9   seq9;
135
    seq_1p10  seq10;
136
    seq_1p11  seq11;
137
    seq_1p12  seq12;
138
    seq_1p13  seq13;
139 2 HanySalah
 
140 3 HanySalah
    `uvm_component_utils(write_text_mode)
141 2 HanySalah
 
142 3 HanySalah
    function new (string name,uvm_component parent);
143
      super.new(name,parent);
144
    endfunction:new
145 2 HanySalah
 
146 3 HanySalah
    function void build_phase (uvm_phase phase);
147
      super.build_phase (phase);
148
      seq1  = seq_1p1::type_id::create("seq1");
149
      seq2  = seq_1p2::type_id::create("seq2");
150
      seq3  = seq_1p3::type_id::create("seq3");
151
      seq4  = seq_1p4::type_id::create("seq4");
152
      seq5  = seq_1p5::type_id::create("seq5");
153
      seq6  = seq_1p6::type_id::create("seq6");
154
      seq7  = seq_1p7::type_id::create("seq7");
155
      seq8  = seq_1p8::type_id::create("seq8");
156
      seq9  = seq_1p9::type_id::create("seq9");
157
      seq10 = seq_1p10::type_id::create("seq10");
158
      seq11 = seq_1p11::type_id::create("seq11");
159
      seq12 = seq_1p12::type_id::create("seq12");
160
      seq13 = seq_1p13::type_id::create("seq13");
161
    endfunction:build_phase
162 2 HanySalah
 
163
 
164 3 HanySalah
    task run_phase (uvm_phase phase);
165
      super.run_phase(phase);
166
      phase.raise_objection(this);
167
      seq1.start(env.agent._seq,null);
168
      seq2.start(env.agent._seq,null);
169
      seq3.start(env.agent._seq,null);
170
      seq4.start(env.agent._seq,null);
171
      seq5.start(env.agent._seq,null);
172
      seq6.start(env.agent._seq,null);
173
      seq7.start(env.agent._seq,null);
174
      seq8.start(env.agent._seq,null);
175
      seq9.start(env.agent._seq,null);
176
      seq10.start(env.agent._seq,null);
177
      seq11.start(env.agent._seq,null);
178
      seq12.start(env.agent._seq,null);
179
      seq13.start(env.agent._seq,null);
180
      phase.drop_objection(this);
181
    endtask:run_phase
182
  endclass:write_text_mode
183 2 HanySalah
 
184 3 HanySalah
  //  This test apply thirteen successive tests of UART read request using text communication mode.
185
  //  Refer to test plan section in the testbench specifications document for more details.
186
  class read_text_mode extends uart_base_test;
187
 
188
    seq_2p1   seq1;
189
    seq_2p2   seq2;
190
    seq_2p3   seq3;
191
    seq_2p4   seq4;
192
    seq_2p5   seq5;
193
    seq_2p6   seq6;
194
    seq_2p7   seq7;
195
    seq_2p8   seq8;
196
    seq_2p9   seq9;
197
    seq_2p10  seq10;
198
    seq_2p11  seq11;
199
    seq_2p12  seq12;
200
    seq_2p13  seq13;
201 2 HanySalah
 
202
 
203 3 HanySalah
    `uvm_component_utils(read_text_mode)
204 2 HanySalah
 
205 3 HanySalah
    function new (string name,uvm_component parent);
206
      super.new(name,parent);
207
    endfunction:new
208 2 HanySalah
 
209 3 HanySalah
    function void build_phase (uvm_phase phase);
210
      super.build_phase(phase);
211
      seq1  = seq_2p1::type_id::create("seq1");
212
      seq2  = seq_2p2::type_id::create("seq2");
213
      seq3  = seq_2p3::type_id::create("seq3");
214
      seq4  = seq_2p4::type_id::create("seq4");
215
      seq5  = seq_2p5::type_id::create("seq5");
216
      seq6  = seq_2p6::type_id::create("seq6");
217
      seq7  = seq_2p7::type_id::create("seq7");
218
      seq8  = seq_2p8::type_id::create("seq8");
219
      seq9  = seq_2p9::type_id::create("seq9");
220
      seq10 = seq_2p10::type_id::create("seq10");
221
      seq11 = seq_2p11::type_id::create("seq11");
222
      seq12 = seq_2p12::type_id::create("seq12");
223
      seq13 = seq_2p13::type_id::create("seq13");
224
    endfunction:build_phase
225 2 HanySalah
 
226 3 HanySalah
    task run_phase (uvm_phase phase);
227
      super.run_phase(phase);
228
      phase.raise_objection(this);
229
      seq1.start(env.agent._seq,null);
230
      seq2.start(env.agent._seq,null);
231
      seq3.start(env.agent._seq,null);
232
      seq4.start(env.agent._seq,null);
233
      seq5.start(env.agent._seq,null);
234
      seq6.start(env.agent._seq,null);
235
      seq7.start(env.agent._seq,null);
236
      seq8.start(env.agent._seq,null);
237
      seq9.start(env.agent._seq,null);
238
      seq10.start(env.agent._seq,null);
239
      seq11.start(env.agent._seq,null);
240
      seq12.start(env.agent._seq,null);
241
      seq13.start(env.agent._seq,null);
242
      phase.drop_objection(this);
243
    endtask:run_phase
244
  endclass:read_text_mode
245 2 HanySalah
 
246 3 HanySalah
//-------------------------------------------------------------------------------------------------
247
//
248
//                          PURE BINARY MODE TESTS
249
//
250
//-------------------------------------------------------------------------------------------------
251 2 HanySalah
 
252 3 HanySalah
  //  This test apply six successive tests of UART nop request using binary communication mode.
253
  //  Refer to test plan section in the testbench specifications document for more details.
254
  class nop_command_mode extends uart_base_test;
255
 
256
    seq_3p1   seq1;
257
    seq_3p2   seq2;
258
    seq_3p3   seq3;
259
    seq_4p1   seq4;
260
    seq_4p2   seq5;
261
    seq_4p3   seq6;
262 2 HanySalah
 
263 3 HanySalah
    `uvm_component_utils(nop_command_mode)
264 2 HanySalah
 
265 3 HanySalah
    function new (string name,uvm_component parent);
266
      super.new(name,parent);
267
    endfunction:new
268 2 HanySalah
 
269 3 HanySalah
    function void build_phase (uvm_phase phase);
270
      super.build_phase(phase);
271
      seq1  = seq_3p1::type_id::create("seq1");
272
      seq2  = seq_3p2::type_id::create("seq2");
273
      seq3  = seq_3p3::type_id::create("seq3");
274
      seq4  = seq_4p1::type_id::create("seq4");
275
      seq5  = seq_4p2::type_id::create("seq5");
276
      seq6  = seq_4p3::type_id::create("seq6");
277
    endfunction:build_phase
278 2 HanySalah
 
279 3 HanySalah
    task run_phase(uvm_phase phase);
280
      super.run_phase(phase);
281
      phase.raise_objection(this);
282
      seq1.start(env.agent._seq,null);
283
      seq2.start(env.agent._seq,null);
284
      seq3.start(env.agent._seq,null);
285
      seq4.start(env.agent._seq,null);
286
      seq5.start(env.agent._seq,null);
287
      seq6.start(env.agent._seq,null);
288
      phase.drop_objection(this);
289
    endtask:run_phase
290
  endclass:nop_command_mode
291 2 HanySalah
 
292
 
293 3 HanySalah
  //  This test apply ten successive tests of UART write request using binary communication mode.
294
  //  Refer to test plan section in the testbench specifications document for more details.
295
  class write_command_mode extends uart_base_test;
296
 
297
    seq_5p1   seq1;
298
    seq_5p2   seq2;
299
    seq_5p3   seq3;
300
    seq_5p4   seq4;
301
    seq_5p5   seq5;
302
    seq_5p6   seq6;
303
    seq_5p7   seq7;
304
    seq_5p8   seq8;
305
    seq_5p9   seq9;
306
    seq_5p10  seq10;
307 2 HanySalah
 
308 3 HanySalah
    `uvm_component_utils(write_command_mode)
309 2 HanySalah
 
310 3 HanySalah
    function new (string name,uvm_component parent);
311
      super.new(name,parent);
312
    endfunction:new
313 2 HanySalah
 
314 3 HanySalah
    function void build_phase (uvm_phase phase);
315
      super.build_phase(phase);
316
      seq1  = seq_5p1::type_id::create("seq1");
317
      seq2  = seq_5p2::type_id::create("seq2");
318
      seq3  = seq_5p3::type_id::create("seq3");
319
      seq4  = seq_5p4::type_id::create("seq4");
320
      seq5  = seq_5p5::type_id::create("seq5");
321
      seq6  = seq_5p6::type_id::create("seq6");
322
      seq7  = seq_5p7::type_id::create("seq7");
323
      seq8  = seq_5p8::type_id::create("seq8");
324
      seq9  = seq_5p9::type_id::create("seq9");
325
      seq10 = seq_5p10::type_id::create("seq10");
326
    endfunction:build_phase
327 2 HanySalah
 
328 3 HanySalah
    task run_phase (uvm_phase phase);
329
      super.run_phase(phase);
330
      phase.raise_objection(this);
331
      uvm_test_done.set_drain_time(this,5000);
332
      //seq1.start(env.agent._seq,null);
333
      seq2.start(env.agent._seq,null);
334
      seq3.start(env.agent._seq,null);
335
      seq4.start(env.agent._seq,null);
336
      seq5.start(env.agent._seq,null);
337
      seq6.start(env.agent._seq,null);
338
      seq7.start(env.agent._seq,null);
339
      seq8.start(env.agent._seq,null);
340
      seq9.start(env.agent._seq,null);
341
      seq10.start(env.agent._seq,null);
342
      phase.drop_objection(this);
343
    endtask:run_phase
344
  endclass: write_command_mode
345 2 HanySalah
 
346
 
347 3 HanySalah
  //  This test apply ten successive tests of UART read request using binary communication mode.
348
  //  Refer to test plan section in the testbench specifications document for more details.
349
  class read_command_mode extends uart_base_test;
350
 
351
    seq_6p1   seq1;
352
    seq_6p2   seq2;
353
    seq_6p3   seq3;
354
    seq_6p4   seq4;
355
    seq_6p5   seq5;
356
    seq_6p6   seq6;
357
    seq_6p7   seq7;
358
    seq_6p8   seq8;
359
    seq_6p9   seq9;
360
    seq_6p10  seq10;
361 2 HanySalah
 
362 3 HanySalah
    `uvm_component_utils(read_command_mode)
363 2 HanySalah
 
364 3 HanySalah
    function new (string name,uvm_component parent);
365
      super.new(name,parent);
366
      seq1  = seq_6p1::type_id::create("seq1");
367
      seq2  = seq_6p2::type_id::create("seq2");
368
      seq3  = seq_6p3::type_id::create("seq3");
369
      seq4  = seq_6p4::type_id::create("seq4");
370
      seq5  = seq_6p5::type_id::create("seq5");
371
      seq6  = seq_6p6::type_id::create("seq6");
372
      seq7  = seq_6p7::type_id::create("seq7");
373
      seq8  = seq_6p8::type_id::create("seq8");
374
      seq9  = seq_6p9::type_id::create("seq9");
375
      seq10 = seq_6p10::type_id::create("seq10");
376
    endfunction:new
377 2 HanySalah
 
378 3 HanySalah
    function void build_phase (uvm_phase phase);
379
      super.build_phase(phase);
380
 
381
    endfunction:build_phase
382
 
383
    task run_phase (uvm_phase phase);
384
      super.run_phase(phase);
385
      phase.raise_objection(this);
386
      //seq1.start(env.agent._seq,null);
387
      seq2.start(env.agent._seq,null);
388
      seq3.start(env.agent._seq,null);
389
      seq4.start(env.agent._seq,null);
390
      seq5.start(env.agent._seq,null);
391
      seq6.start(env.agent._seq,null);
392
      seq7.start(env.agent._seq,null);
393
      seq8.start(env.agent._seq,null);
394
      seq9.start(env.agent._seq,null);
395
      seq10.start(env.agent._seq,null);
396
      phase.drop_objection(this);
397
    endtask:run_phase
398
  endclass:read_command_mode
399
 
400
//-------------------------------------------------------------------------------------------------
401
//
402
//                        COMBINED COMMAND TESTS
403
//
404
//-------------------------------------------------------------------------------------------------
405
 
406
  // this test randomly apply series of 100 text mode commands. They would be either read or write
407
  // sequences described in text mode tests in the testbench specifications document.
408
  class text_mode_test extends uart_base_test;
409
 
410
    rand int unsigned command_number;
411
 
412
    seq_1p1   seq1;
413
    seq_1p2   seq2;
414
    seq_1p3   seq3;
415
    seq_1p4   seq4;
416
    seq_1p5   seq5;
417
    seq_1p6   seq6;
418
    seq_1p7   seq7;
419
    seq_1p8   seq8;
420
    seq_1p9   seq9;
421
    seq_1p10  seq10;
422
    seq_1p11  seq11;
423
    seq_1p12  seq12;
424
    seq_1p13  seq13;
425
 
426
 
427
    seq_2p1   seq14;
428
    seq_2p2   seq15;
429
    seq_2p3   seq16;
430
    seq_2p4   seq17;
431
    seq_2p5   seq18;
432
    seq_2p6   seq19;
433
    seq_2p7   seq20;
434
    seq_2p8   seq21;
435
    seq_2p9   seq22;
436
    seq_2p10  seq23;
437
    seq_2p11  seq24;
438
    seq_2p12  seq25;
439
    seq_2p13  seq26;
440
 
441
    `uvm_component_utils(text_mode_test)
442
 
443
    constraint limit {
444
        command_number inside {[1:26]};
445
    }
446
 
447
    function new (string name , uvm_component parent);
448
      super.new(name,parent);
449
    endfunction:new
450
 
451
    function void build_phase (uvm_phase phase);
452
      super.build_phase(phase);
453
      seq1  = seq_1p1::type_id::create("seq1");
454
      seq2  = seq_1p2::type_id::create("seq2");
455
      seq3  = seq_1p3::type_id::create("seq3");
456
      seq4  = seq_1p4::type_id::create("seq4");
457
      seq5  = seq_1p5::type_id::create("seq5");
458
      seq6  = seq_1p6::type_id::create("seq6");
459
      seq7  = seq_1p7::type_id::create("seq7");
460
      seq8  = seq_1p8::type_id::create("seq8");
461
      seq9  = seq_1p9::type_id::create("seq9");
462
      seq10 = seq_1p10::type_id::create("seq10");
463
      seq11 = seq_1p11::type_id::create("seq11");
464
      seq12 = seq_1p12::type_id::create("seq12");
465
      seq13 = seq_1p13::type_id::create("seq13");
466
      seq14 = seq_2p1::type_id::create("seq14");
467
      seq15 = seq_2p2::type_id::create("seq15");
468
      seq16 = seq_2p3::type_id::create("seq16");
469
      seq17 = seq_2p4::type_id::create("seq17");
470
      seq18 = seq_2p5::type_id::create("seq18");
471
      seq19 = seq_2p6::type_id::create("seq19");
472
      seq20 = seq_2p7::type_id::create("seq20");
473
      seq21 = seq_2p8::type_id::create("seq21");
474
      seq22 = seq_2p9::type_id::create("seq22");
475
      seq23 = seq_2p10::type_id::create("seq23");
476
      seq24 = seq_2p11::type_id::create("seq24");
477
      seq25 = seq_2p12::type_id::create("seq25");
478
      seq26 = seq_2p13::type_id::create("seq26");
479
    endfunction:build_phase
480
 
481
    task run_phase (uvm_phase phase);
482
      super.run_phase(phase);
483
      phase.raise_objection(this);
484
      repeat (100)
485
        begin
486
        randomize();
487
        case (command_number)
488
          1:
489
            begin
490
            seq1.start(env.agent._seq,null);
491
            end
492
          2:
493
            begin
494
            seq2.start(env.agent._seq,null);
495
            end
496
          3:
497
            begin
498
            seq3.start(env.agent._seq,null);
499
            end
500
          4:
501
            begin
502
            seq4.start(env.agent._seq,null);
503
            end
504
          5:
505
            begin
506
            seq5.start(env.agent._seq,null);
507
            end
508
          6:
509
            begin
510
            seq6.start(env.agent._seq,null);
511
            end
512
          7:
513
            begin
514
            seq7.start(env.agent._seq,null);
515
            end
516
          8:
517
            begin
518
            seq8.start(env.agent._seq,null);
519
            end
520
          9:
521
            begin
522
            seq9.start(env.agent._seq,null);
523
            end
524
          10:
525
            begin
526
            seq10.start(env.agent._seq,null);
527
            end
528
          11:
529
            begin
530
            seq11.start(env.agent._seq,null);
531
            end
532
          12:
533
            begin
534
            seq12.start(env.agent._seq,null);
535
            end
536
          13:
537
            begin
538
            seq13.start(env.agent._seq,null);
539
            end
540
          14:
541
            begin
542
            seq14.start(env.agent._seq,null);
543
            end
544
          15:
545
            begin
546
            seq15.start(env.agent._seq,null);
547
            end
548
          16:
549
            begin
550
            seq16.start(env.agent._seq,null);
551
            end
552
          17:
553
            begin
554
            seq17.start(env.agent._seq,null);
555
            end
556
          18:
557
            begin
558
            seq18.start(env.agent._seq,null);
559
            end
560
          19:
561
            begin
562
            seq19.start(env.agent._seq,null);
563
            end
564
          20:
565
            begin
566
            seq20.start(env.agent._seq,null);
567
            end
568
          21:
569
            begin
570
            seq21.start(env.agent._seq,null);
571
            end
572
          22:
573
            begin
574
            seq22.start(env.agent._seq,null);
575
            end
576
          23:
577
            begin
578
            seq23.start(env.agent._seq,null);
579
            end
580
          24:
581
            begin
582
            seq24.start(env.agent._seq,null);
583
            end
584
          25:
585
            begin
586
            seq25.start(env.agent._seq,null);
587
            end
588
          26:
589
            begin
590
            seq26.start(env.agent._seq,null);
591
            end
592
          default:
593
            begin
594
            `uvm_fatal("OUT OF RANGE","Command Number is Out of Range")
595
            end
596
        endcase
597
        end
598
        phase.drop_objection(this);
599
    endtask:run_phase
600 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.