UVM Testbench Example 1

2024-01-07
UVM

之前有用SystemVerilog語言寫出了一個testbench,這邊會用UVM寫出一個完整的testbench。

Alt text

Design

跟之前一樣是一個簡單的暫存器/記憶體design,這個design會將write request的資料寫入對應的address,如果是read request則是return正確的address的資料。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
module reg_ctrl
# (
parameter ADDR_WIDTH = 8,
parameter DATA_WIDTH = 16,
parameter DEPTH = 256,
parameter RESET_VAL = 16'h1234
)
( input clk,
input rstn,
input [ADDR_WIDTH-1:0] addr,
input sel,
input wr,
input [DATA_WIDTH-1:0] wdata,
output reg [DATA_WIDTH-1:0] rdata,
output reg ready);

reg [DATA_WIDTH-1:0] ctrl [DEPTH];
reg ready_dly;
wire ready_pe;

always @ (posedge clk) begin
if (!rstn) begin
for (int i = 0; i < DEPTH; i += 1) begin
ctrl[i] <= RESET_VAL;
end
end else begin
if (sel & ready & wr) begin
ctrl[addr] <= wdata;
end

if (sel & ready & !wr) begin
rdata <= ctrl[addr];
end else begin
rdata <= 0;
end
end
end

always @ (posedge clk) begin
if (!rstn) begin
ready <= 1;
end else begin
if (sel & ready_pe) begin
ready <= 1;
end
if (sel & ready & !wr) begin
ready <= 0;
end
end
end

always @ (posedge clk) begin
if (!rstn) ready_dly <= 1;
else ready_dly <= ready;
end

assign ready_pe = ~ready & ready_dly;
endmodule

Interface

與design的input/output符合的interface,Testbench與Design會透過這個interface溝通。

1
2
3
4
5
6
7
8
9
interface reg_if (input bit clk);
logic rstn;
logic [7:0] addr;
logic [15:0] wdata;
logic [15:0] rdata;
logic wr;
logic sel;
logic ready;
endinterface

Sequence Item

A data class called reg_item is defined to hold random input address and write data and will be randomized inside the sequence before it is sent to the driver. The class also has utility macros to help with common requirements like print, copy and clone.
中文 (繁體)
定義 reg_item 的data class來保存input address和write data,在發送到driver之前在sequence內把要傳送出去的資料準備好。Sequence item還有print,copy和clone這些資料的macro可以使用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class reg_item extends uvm_sequence_item;
bit [`ADDR_WIDTH-1:0] addr;
bit [`DATA_WIDTH-1:0] wdata;
bit wr;
bit [`DATA_WIDTH-1:0] rdata;

`uvm_object_utils_begin(reg_item)
`uvm_field_int(addr, UVM_DEFAULT)
`uvm_field_int(wdata, UVM_DEFAULT)
`uvm_field_int(wr, UVM_DEFAULT)
`uvm_field_int(rdata, UVM_DEFAULT)
`uvm_object_utils_end

virtual function string convert2str();
return $sformatf("addr=0x%0h wr=0x%0h wdata=0x%0h rdata=0x%0h", addr, wr, wdata, rdata);
endfunction

function new(string name = "reg_item");
super.new(name);
endfunction
endclass

UVM Driver

UVM Driver繼承自uvm_driver,並將他參數化(parameterize)來接受 reg_item 類型的object。 他還要把從sequencer收到的東西送到 virtual interface,用以toggle DUT的pin角。Driver呼叫 get_next_itemitem_donesequencer進行溝通。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class driver extends uvm_driver#(reg_item);
`uvm_component_utils(driver)
function new(string name = "driver", uvm_component parent = null);
super.new(name, parent);
endfunction

virtual reg_if vif;

virtual function void build_phase(uvm_phase phase);
super.build_phase(phase);
if(!uvm_config_db#(virtual reg_if)::get(this, "", "reg_if", vif))
`uvm_fatal("DRV", "Could NOT get vif");
endfunction

virtual task run_phase(uvm_phase phase);
super.run_phase(phase);
forever begin
reg_item m_item;
`uvm_info("DRV", $sformatf("wait for item from sequencer"), UVM_LOW);
seq_item_port.get_next_item(m_item);
drive_item(m_item);
seq_item_port.item_done();
end
endtask

virtual task drive_item(reg_item m_item);
vif.sel <= 1;
vif.addr <= m_item.addr;
vif.wr <= m_item.wr;
vif.wdata <= m_item.wdata;
@(posedge vif.clk);
while (!vif.ready) begin
`uvm_info("DRV", "wait until ready is high", UVM_LOW)
@(posedge vif.clk);
end

vif.sel <= 0;
endtask
endclass

UVM Monitor

UVM monitor繼承自uvm_monitor,monitor會有一個virtual interface用來偵聽interface的活動(activity)。然後將pin level的活動decode成protocol packet,然後將其送到其他的testbench component。以這個testbench的狀況,monitor會看 DUT interface上是否有一組address和data,並將它們capture到reg_item 的object,然後透過analysis port傳送出去。

因為monitor必須decode和capture這個 DUT interface上的任何activity,所以因此只要simulation於活動狀態,monitor就必須持續監控,所以monitor裡面的task是一個forever loop。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
class monitor extends uvm_monitor;
`uvm_component_utils(monitor)
function new(string name = "Monitor", uvm_component parent = null);
super.new(name, parent);
endfunction

uvm_analysis_port #(reg_item) mon_analysis_port;
virtual reg_if vif;
semaphore sema4;

virtual function void build_phase(uvm_phase phase);
super.build_phase(phase);

if(!uvm_config_db#(virtual reg_if)::get(this, "", "reg_if", vif)) begin
`uvm_fatal("MON", "Could not get vif");
end
else begin
`uvm_info("MON", "Could get vif", UVM_LOW);
end
sema4 = new(1);
mon_analysis_port = new("mon_analysis_port", this);
endfunction

virtual task run_phase(uvm_phase phase);
super.run_phase(phase);

forever begin
@ (posedge vif.clk);
if (vif.sel) begin
reg_item item = new;
item.addr = vif.addr;
item.wr = vif.wr;
item.wdata = vif.wdata;

if (!vif.wr) begin
@(posedge vif.clk);
item.rdata = vif.rdata;
end
`uvm_info(get_type_name(), $sformatf("Monitor found packet %s", item.convert2str()), UVM_LOW)
mon_analysis_port.write(item);
end
end
endtask
endclass

UVM Agent

UVM agent的作用是把sequencer、driver和monitor封裝到單一個容器(container)中。sequencer負責將給定的sequence的data object送給driver。sequencer參數化成可接受 reg_item 類型的object,並且其 seq_item_port 連接到driver的 seq_item_export。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class agent extends uvm_agent;
`uvm_component_utils(agent)
function new(string name="agent", uvm_component parent=null);
super.new(name, parent);
endfunction

driver d0; // Driver handle
monitor m0; // Monitor handle
uvm_sequencer #(reg_item) s0; // Sequencer Handle

virtual function void build_phase(uvm_phase phase);
super.build_phase(phase);
s0 = uvm_sequencer#(reg_item)::type_id::create("s0", this);
d0 = driver::type_id::create("d0", this);
m0 = monitor::type_id::create("m0", this);
endfunction

virtual function void connect_phase(uvm_phase phase);
super.connect_phase(phase);
d0.seq_item_port.connect(s0.seq_item_export);
endfunction
endclass

UVM Scoreboard

scoreboard 透過 uvm_analysis_imp port從monitor接收data object。scoreboard從monitor接收寫入和讀取操作的data packet,因此scoreboard可以預測給定位址的讀取資料應該要是什麼。只要scoreboard收到一個item,它的 write 方法就會被執行,然後執行checker並預測結果。

scoreboard有自己內部的internal array,用於儲存不同address的data用來模仿design的行為。也稱為reference model。根據design的functionality,reference model可以很簡單,也可能非常複雜。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
class scoreboard extends uvm_scoreboard;
`uvm_component_utils(scoreboard)
function new(string name = "scoreboard", uvm_component parent = null);
super.new(name, parent);
endfunction

reg_item refq[`DEPTH];
uvm_analysis_imp #(reg_item, scoreboard) m_analysis_imp;

virtual function void build_phase(uvm_phase phase);
super.build_phase(phase);
m_analysis_imp = new("m_analysis_imp", this);
endfunction

virtual function write(reg_item item);
if (item.wr) begin
if (refq[item.addr] == null)
refq[item.addr] = new();

refq[item.addr] = item;
`uvm_info(get_type_name(), $sformatf("store addr=0x%0h wr=0x%0h data=0x%0h", item.addr, item.wr, item.wdata), UVM_LOW);
end

if (!item.wr) begin
if (refq[item.addr] == null) begin
if (item.rdata != 'h1234) begin
`uvm_error(get_type_name(), $sformatf("first read addr=0x%0h exp=0x1234h act=0x%0h", item.addr, item.rdata));
end
else begin
`uvm_info(get_type_name(), $sformatf("PASS! first read addr=0x%0h exp=0x1234h act=0x%0h", item.addr, item.rdata), UVM_LOW);
end
end
else begin
if (item.rdata != refq[item.addr].wdata) begin
`uvm_error(get_type_name(), $sformatf("read addr=0x%0h exp=0x%0h act=0x%0h", item.addr, refq[item.addr].wdata, item.rdata));
end
else begin
`uvm_info(get_type_name(), $sformatf("PASS! read addr=0x%0h exp=0x%0h act=0x%0h", item.addr, refq[item.addr].wdata, item.rdata), UVM_LOW);
end
end
end
endfunction
endclass

UVM Environment

UVM environment負責實例化和連接所有testbench的元件。在environment裡面,agent裡面的monitor的analysis port會連接到scoreboard中的analysis implementation port。只要monitor將新資料推送到analysis port的時候,這個connection允許scoreboard接收資料包。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class env extends uvm_env;
`uvm_component_utils(env)
function new(string name="env", uvm_component parent=null);
super.new(name, parent);
endfunction

agent a0; // Agent handle
scoreboard sb0; // Scoreboard handle

virtual function void build_phase(uvm_phase phase);
super.build_phase(phase);
a0 = agent::type_id::create("a0", this);
sb0 = scoreboard::type_id::create("sb0", this);
endfunction

virtual function void connect_phase(uvm_phase phase);
super.connect_phase(phase);
a0.m0.mon_analysis_port.connect(sb0.m_analysis_imp);
endfunction
endclass

UVM Test

UVM Test會將一個environment實例化,​​設定 sub component的virtual interface並啟動sequence。這個範例中,還有建立一個reset task將DUT做reset,之後gen_item_seq這個sequence object會在sequencer啟動。
由於sequence會消耗simulation時間,並且只要sequence處於active狀態,所有其他testbench component就必須運行,因此在對的時機使用raise objection和drop objection非常重要。通常sequence會使用rand function來產生隨機的值用來測試DUT,並且以 constrain條件限制隨機的範圍,讓testbench可以測試到各種不同的address和data組合。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class env extends uvm_env;
`uvm_component_utils(env)
function new(string name = "env", uvm_component parent = null);
super.new(name, parent);
endfunction

agent a0;
scoreboard sb0;

virtual function void build_phase(uvm_phase phase);
super.build_phase(phase);
a0 = agent::type_id::create("a0", this);
sb0 = scoreboard::type_id::create("sb0", this);
endfunction

virtual function void connect_phase(uvm_phase phase);
super.connect_phase(phase);
a0.m0.mon_analysis_port.connect(sb0.m_analysis_imp);
endfunction
endclass

UVM Sequence

最後有構成testbench的stimulus的main sequence。在定序器上啟動時,序列會執行主體方法,sequencer會得到sequence的body method產生的address/data的reg_item的object並將它們傳送到driver。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
class gen_item_seq extends uvm_sequence;
`uvm_object_utils(gen_item_seq)
function new(string name = "gen_item_seq");
super.new(name);
endfunction

int num = 1;

virtual task body();

for (int i = 0; i < 5; i++) begin
reg_item m_item = reg_item::type_id::create("m_item");
start_item(m_item);
m_item.addr = i;
m_item.wr = 0;
m_item.wdata = $random;
m_item.rdata = $random;

`uvm_info("SEQ", $sformatf("Generate1 new item: "), UVM_LOW)
m_item.print();
finish_item(m_item);
end

for (int i = 0; i < num; i++) begin
reg_item m_item = reg_item::type_id::create("m_item");
start_item(m_item);
m_item.addr = i;
m_item.wr = 1;
m_item.wdata = $random;
m_item.rdata = $random;

`uvm_info("SEQ", $sformatf("Generate2 new item: "), UVM_LOW)
m_item.print();
finish_item(m_item);
end

for (int i = 0; i < num; i++) begin
reg_item m_item = reg_item::type_id::create("m_item");
start_item(m_item);
m_item.addr = i;
m_item.wr = 0;
m_item.wdata = $random;
m_item.rdata = $random;

`uvm_info("SEQ", $sformatf("Generate3 new item: "), UVM_LOW)
m_item.print();
finish_item(m_item);
end
`uvm_info("SEQ", $sformatf("done %0d time", num), UVM_LOW)
endtask
endclass

TB Top

最上層的Testbench要產生clock和interface與design的實例,並將interface和design串起來,並且把interface透過uvm_config_db讓UVM testbench可以得到這個interface,並且把這個test透過run_test將完整的UVM test跑起來。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
module tb;
reg clk = 0;
always #10 clk = ~clk;
reg_if _if(clk);

reg_ctrl u0(.clk(clk),
.rstn(_if.rstn),
.addr(_if.addr),
.sel(_if.sel),
.wr(_if.wr),
.wdata(_if.wdata),
.rdata(_if.rdata),
.ready(_if.ready)
);
initial begin
$display("tb_start");
uvm_config_db #(virtual reg_if)::set (null, "uvm_test_top", "reg_if", _if);
run_test("test");
$display("tb_end");
end
endmodule

Output

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
Reading pref.tcl

# 2021.2

# vsim -c tb -do "run 10000; quit -f"
# Start time: 12:50:10 on Jan 14,2024
# ** Note: (vsim-8009) Loading existing optimized design _opt
# // Questa Intel Starter FPGA Edition-64
# // Version 2021.2 win64 Apr 14 2021
# //
# // Copyright 1991-2021 Mentor Graphics Corporation
# // All Rights Reserved.
# //
# // QuestaSim and its associated documentation contain trade
# // secrets and commercial or financial information that are the property of
# // Mentor Graphics Corporation and are privileged, confidential,
# // and exempt from disclosure under the Freedom of Information Act,
# // 5 U.S.C. Section 552. Furthermore, this information
# // is prohibited from disclosure under the Trade Secrets Act,
# // 18 U.S.C. Section 1905.
# //
# Loading sv_std.std
# Loading mtiUvm.uvm_pkg(fast)
# Loading work.tb_sv_unit(fast)
# Loading mtiUvm.questa_uvm_pkg(fast)
# Loading work.tb(fast)
# Loading work.reg_if(fast)
# ** Warning: (vsim-3764) Stand-alone call to function 'write' treated as implicit void cast.
# Time: 0 ns Iteration: 0 Region: /uvm_pkg::uvm_analysis_imp #(tb_sv_unit::reg_item, tb_sv_unit::scoreboard) File: C:/intelFPGA/22.1std/questa_fse/win64/../verilog_src/uvm-1.1d/src/tlm1/uvm_analysis_port.svh Line: 114
# Loading C:/intelFPGA/22.1std/questa_fse/uvm-1.1d\win64\uvm_dpi.dll
# run 10000
# ----------------------------------------------------------------
# UVM-1.1d
# (C) 2007-2013 Mentor Graphics Corporation
# (C) 2007-2013 Cadence Design Systems, Inc.
# (C) 2006-2013 Synopsys, Inc.
# (C) 2011-2013 Cypress Semiconductor Corp.
# ----------------------------------------------------------------
#
# *********** IMPORTANT RELEASE NOTES ************
#
# You are using a version of the UVM library that has been compiled
# with `UVM_NO_DEPRECATED undefined.
# See http://www.eda.org/svdb/view.php?id=3313 for more details.
#
# You are using a version of the UVM library that has been compiled
# with `UVM_OBJECT_MUST_HAVE_CONSTRUCTOR undefined.
# See http://www.eda.org/svdb/view.php?id=3770 for more details.
#
# (Specify +UVM_NO_RELNOTES to turn off this notice)
#
# UVM_INFO verilog_src/questa_uvm_pkg-1.2/src/questa_uvm_pkg.sv(277) @ 0: reporter [Questa UVM] QUESTA_UVM-1.2.3
# UVM_INFO verilog_src/questa_uvm_pkg-1.2/src/questa_uvm_pkg.sv(278) @ 0: reporter [Questa UVM] questa_uvm::init(+struct)
# tb_start
# UVM_INFO @ 0: reporter [RNTST] Running test test...
# UVM_INFO .\tb.sv(157) @ 0: uvm_test_top.e0.a0.m0 [MON] Could get vif
# UVM_INFO @ 0: reporter [UVMTOP] UVM testbench topology:
# --------------------------------------------------------------
# Name Type Size Value
# --------------------------------------------------------------
# uvm_test_top test - @471
# e0 env - @478
# a0 agent - @488
# d0 driver - @510
# rsp_port uvm_analysis_port - @525
# seq_item_port uvm_seq_item_pull_port - @517
# m0 monitor - @503
# mon_analysis_port uvm_analysis_port - @644
# s0 uvm_sequencer - @533
# rsp_export uvm_analysis_export - @540
# seq_item_export uvm_seq_item_pull_imp - @634
# arbitration_queue array 0 -
# lock_queue array 0 -
# num_last_reqs integral 32 'd1
# num_last_rsps integral 32 'd1
# sb0 scoreboard - @495
# m_analysis_imp uvm_analysis_imp - @657
# --------------------------------------------------------------
#
# apply_reset vif.rstn:x
# UVM_INFO .\tb.sv(117) @ 0: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# apply_reset vif.rstn:0
# apply_reset vif.rstn:1
# UVM_INFO .\tb.sv(291) @ 290: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate1 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @696
# addr integral 8 'h0
# wdata integral 16 'h3524
# wr integral 1 'h0
# rdata integral 16 'h5e81
# begin_time time 64 290
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 310: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(291) @ 310: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate1 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @705
# addr integral 8 'h1
# wdata integral 16 'hd609
# wr integral 1 'h0
# rdata integral 16 'h5663
# begin_time time 64 310
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 330: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 330: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x0 wr=0x0 wdata=0x3524 rdata=0x1234
# UVM_INFO .\tb.sv(237) @ 330: uvm_test_top.e0.sb0 [scoreboard] PASS! first read addr=0x0 exp=0x1234h act=0x1234
# UVM_INFO .\tb.sv(117) @ 350: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(291) @ 350: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate1 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @713
# addr integral 8 'h2
# wdata integral 16 'h7b0d
# wr integral 1 'h0
# rdata integral 16 'h998d
# begin_time time 64 350
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 370: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 370: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x1 wr=0x0 wdata=0xd609 rdata=0x1234
# UVM_INFO .\tb.sv(237) @ 370: uvm_test_top.e0.sb0 [scoreboard] PASS! first read addr=0x1 exp=0x1234h act=0x1234
# UVM_INFO .\tb.sv(117) @ 390: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(291) @ 390: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate1 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @721
# addr integral 8 'h3
# wdata integral 16 'h8465
# wr integral 1 'h0
# rdata integral 16 'h5212
# begin_time time 64 390
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 410: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 410: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x2 wr=0x0 wdata=0x7b0d rdata=0x1234
# UVM_INFO .\tb.sv(237) @ 410: uvm_test_top.e0.sb0 [scoreboard] PASS! first read addr=0x2 exp=0x1234h act=0x1234
# UVM_INFO .\tb.sv(117) @ 430: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(291) @ 430: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate1 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @729
# addr integral 8 'h4
# wdata integral 16 'he301
# wr integral 1 'h0
# rdata integral 16 'hcd0d
# begin_time time 64 430
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 450: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 450: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x3 wr=0x0 wdata=0x8465 rdata=0x1234
# UVM_INFO .\tb.sv(237) @ 450: uvm_test_top.e0.sb0 [scoreboard] PASS! first read addr=0x3 exp=0x1234h act=0x1234
# UVM_INFO .\tb.sv(117) @ 470: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(304) @ 470: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate2 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @737
# addr integral 8 'h0
# wdata integral 16 'hf176
# wr integral 1 'h1
# rdata integral 16 'hcd3d
# begin_time time 64 470
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 490: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 490: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x4 wr=0x0 wdata=0xe301 rdata=0x1234
# UVM_INFO .\tb.sv(237) @ 490: uvm_test_top.e0.sb0 [scoreboard] PASS! first read addr=0x4 exp=0x1234h act=0x1234
# UVM_INFO .\tb.sv(178) @ 510: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x0 wr=0x1 wdata=0xf176 rdata=0x0
# UVM_INFO .\tb.sv(228) @ 510: uvm_test_top.e0.sb0 [scoreboard] store addr=0x0 wr=0x1 data=0xf176
# UVM_INFO .\tb.sv(117) @ 510: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(304) @ 510: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate2 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @749
# addr integral 8 'h1
# wdata integral 16 'h57ed
# wr integral 1 'h1
# rdata integral 16 'hf78c
# begin_time time 64 510
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 530: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(178) @ 530: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x1 wr=0x1 wdata=0x57ed rdata=0x0
# UVM_INFO .\tb.sv(228) @ 530: uvm_test_top.e0.sb0 [scoreboard] store addr=0x1 wr=0x1 data=0x57ed
# UVM_INFO .\tb.sv(304) @ 530: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate2 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @761
# addr integral 8 'h2
# wdata integral 16 'he9f9
# wr integral 1 'h1
# rdata integral 16 'h24c6
# begin_time time 64 530
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 550: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(178) @ 550: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x2 wr=0x1 wdata=0xe9f9 rdata=0x0
# UVM_INFO .\tb.sv(228) @ 550: uvm_test_top.e0.sb0 [scoreboard] store addr=0x2 wr=0x1 data=0xe9f9
# UVM_INFO .\tb.sv(304) @ 550: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate2 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @773
# addr integral 8 'h3
# wdata integral 16 'h84c5
# wr integral 1 'h1
# rdata integral 16 'hd2aa
# begin_time time 64 550
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 570: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(178) @ 570: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x3 wr=0x1 wdata=0x84c5 rdata=0x0
# UVM_INFO .\tb.sv(228) @ 570: uvm_test_top.e0.sb0 [scoreboard] store addr=0x3 wr=0x1 data=0x84c5
# UVM_INFO .\tb.sv(304) @ 570: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate2 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @785
# addr integral 8 'h4
# wdata integral 16 'hf7e5
# wr integral 1 'h1
# rdata integral 16 'h7277
# begin_time time 64 570
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 590: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(178) @ 590: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x4 wr=0x1 wdata=0xf7e5 rdata=0x0
# UVM_INFO .\tb.sv(228) @ 590: uvm_test_top.e0.sb0 [scoreboard] store addr=0x4 wr=0x1 data=0xf7e5
# UVM_INFO .\tb.sv(304) @ 590: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate2 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @797
# addr integral 8 'h5
# wdata integral 16 'hd612
# wr integral 1 'h1
# rdata integral 16 'hdb8f
# begin_time time 64 590
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 610: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(178) @ 610: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x5 wr=0x1 wdata=0xd612 rdata=0x0
# UVM_INFO .\tb.sv(228) @ 610: uvm_test_top.e0.sb0 [scoreboard] store addr=0x5 wr=0x1 data=0xd612
# UVM_INFO .\tb.sv(304) @ 610: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate2 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @809
# addr integral 8 'h6
# wdata integral 16 'h69f2
# wr integral 1 'h1
# rdata integral 16 'h96ce
# begin_time time 64 610
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 630: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(178) @ 630: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x6 wr=0x1 wdata=0x69f2 rdata=0x0
# UVM_INFO .\tb.sv(228) @ 630: uvm_test_top.e0.sb0 [scoreboard] store addr=0x6 wr=0x1 data=0x69f2
# UVM_INFO .\tb.sv(304) @ 630: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate2 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @821
# addr integral 8 'h7
# wdata integral 16 'h7ae8
# wr integral 1 'h1
# rdata integral 16 'h4ec5
# begin_time time 64 630
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 650: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(178) @ 650: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x7 wr=0x1 wdata=0x7ae8 rdata=0x0
# UVM_INFO .\tb.sv(228) @ 650: uvm_test_top.e0.sb0 [scoreboard] store addr=0x7 wr=0x1 data=0x7ae8
# UVM_INFO .\tb.sv(304) @ 650: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate2 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @833
# addr integral 8 'h8
# wdata integral 16 'h495c
# wr integral 1 'h1
# rdata integral 16 'h28bd
# begin_time time 64 650
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 670: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(178) @ 670: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x8 wr=0x1 wdata=0x495c rdata=0x0
# UVM_INFO .\tb.sv(228) @ 670: uvm_test_top.e0.sb0 [scoreboard] store addr=0x8 wr=0x1 data=0x495c
# UVM_INFO .\tb.sv(304) @ 670: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate2 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @845
# addr integral 8 'h9
# wdata integral 16 'h582d
# wr integral 1 'h1
# rdata integral 16 'h2665
# begin_time time 64 670
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 690: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(178) @ 690: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x9 wr=0x1 wdata=0x582d rdata=0x0
# UVM_INFO .\tb.sv(228) @ 690: uvm_test_top.e0.sb0 [scoreboard] store addr=0x9 wr=0x1 data=0x582d
# UVM_INFO .\tb.sv(304) @ 690: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate2 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @857
# addr integral 8 'ha
# wdata integral 16 'h6263
# wr integral 1 'h1
# rdata integral 16 'h870a
# begin_time time 64 690
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 710: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(178) @ 710: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0xa wr=0x1 wdata=0x6263 rdata=0x0
# UVM_INFO .\tb.sv(228) @ 710: uvm_test_top.e0.sb0 [scoreboard] store addr=0xa wr=0x1 data=0x6263
# UVM_INFO .\tb.sv(304) @ 710: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate2 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @869
# addr integral 8 'hb
# wdata integral 16 'h2280
# wr integral 1 'h1
# rdata integral 16 'h2120
# begin_time time 64 710
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 730: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(178) @ 730: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0xb wr=0x1 wdata=0x2280 rdata=0x0
# UVM_INFO .\tb.sv(228) @ 730: uvm_test_top.e0.sb0 [scoreboard] store addr=0xb wr=0x1 data=0x2280
# UVM_INFO .\tb.sv(304) @ 730: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate2 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @881
# addr integral 8 'hc
# wdata integral 16 'h45aa
# wr integral 1 'h1
# rdata integral 16 'hcc9d
# begin_time time 64 730
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 750: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(178) @ 750: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0xc wr=0x1 wdata=0x45aa rdata=0x0
# UVM_INFO .\tb.sv(228) @ 750: uvm_test_top.e0.sb0 [scoreboard] store addr=0xc wr=0x1 data=0x45aa
# UVM_INFO .\tb.sv(304) @ 750: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate2 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @893
# addr integral 8 'hd
# wdata integral 16 'h3e96
# wr integral 1 'h1
# rdata integral 16 'hb813
# begin_time time 64 750
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 770: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(178) @ 770: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0xd wr=0x1 wdata=0x3e96 rdata=0x0
# UVM_INFO .\tb.sv(228) @ 770: uvm_test_top.e0.sb0 [scoreboard] store addr=0xd wr=0x1 data=0x3e96
# UVM_INFO .\tb.sv(304) @ 770: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate2 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @905
# addr integral 8 'he
# wdata integral 16 'h380d
# wr integral 1 'h1
# rdata integral 16 'hd653
# begin_time time 64 770
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 790: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(178) @ 790: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0xe wr=0x1 wdata=0x380d rdata=0x0
# UVM_INFO .\tb.sv(228) @ 790: uvm_test_top.e0.sb0 [scoreboard] store addr=0xe wr=0x1 data=0x380d
# UVM_INFO .\tb.sv(304) @ 790: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate2 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @917
# addr integral 8 'hf
# wdata integral 16 'hdd6b
# wr integral 1 'h1
# rdata integral 16 'h2ad5
# begin_time time 64 790
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 810: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(178) @ 810: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0xf wr=0x1 wdata=0xdd6b rdata=0x0
# UVM_INFO .\tb.sv(228) @ 810: uvm_test_top.e0.sb0 [scoreboard] store addr=0xf wr=0x1 data=0xdd6b
# UVM_INFO .\tb.sv(304) @ 810: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate2 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @929
# addr integral 8 'h10
# wdata integral 16 'h4a02
# wr integral 1 'h1
# rdata integral 16 'h3eae
# begin_time time 64 810
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 830: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(178) @ 830: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x10 wr=0x1 wdata=0x4a02 rdata=0x0
# UVM_INFO .\tb.sv(228) @ 830: uvm_test_top.e0.sb0 [scoreboard] store addr=0x10 wr=0x1 data=0x4a02
# UVM_INFO .\tb.sv(304) @ 830: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate2 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @941
# addr integral 8 'h11
# wdata integral 16 'he91d
# wr integral 1 'h1
# rdata integral 16 'h72cf
# begin_time time 64 830
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 850: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(178) @ 850: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x11 wr=0x1 wdata=0xe91d rdata=0x0
# UVM_INFO .\tb.sv(228) @ 850: uvm_test_top.e0.sb0 [scoreboard] store addr=0x11 wr=0x1 data=0xe91d
# UVM_INFO .\tb.sv(304) @ 850: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate2 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @953
# addr integral 8 'h12
# wdata integral 16 'h4923
# wr integral 1 'h1
# rdata integral 16 'h650a
# begin_time time 64 850
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 870: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(178) @ 870: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x12 wr=0x1 wdata=0x4923 rdata=0x0
# UVM_INFO .\tb.sv(228) @ 870: uvm_test_top.e0.sb0 [scoreboard] store addr=0x12 wr=0x1 data=0x4923
# UVM_INFO .\tb.sv(304) @ 870: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate2 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @965
# addr integral 8 'h13
# wdata integral 16 'haca
# wr integral 1 'h1
# rdata integral 16 'h4c3c
# begin_time time 64 870
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 890: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(178) @ 890: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x13 wr=0x1 wdata=0xaca rdata=0x0
# UVM_INFO .\tb.sv(228) @ 890: uvm_test_top.e0.sb0 [scoreboard] store addr=0x13 wr=0x1 data=0xaca
# UVM_INFO .\tb.sv(304) @ 890: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate2 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @977
# addr integral 8 'h14
# wdata integral 16 'hbdf2
# wr integral 1 'h1
# rdata integral 16 'h618a
# begin_time time 64 890
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 910: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(178) @ 910: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x14 wr=0x1 wdata=0xbdf2 rdata=0x0
# UVM_INFO .\tb.sv(228) @ 910: uvm_test_top.e0.sb0 [scoreboard] store addr=0x14 wr=0x1 data=0xbdf2
# UVM_INFO .\tb.sv(304) @ 910: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate2 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @989
# addr integral 8 'h15
# wdata integral 16 'hb341
# wr integral 1 'h1
# rdata integral 16 'h34d8
# begin_time time 64 910
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 930: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(178) @ 930: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x15 wr=0x1 wdata=0xb341 rdata=0x0
# UVM_INFO .\tb.sv(228) @ 930: uvm_test_top.e0.sb0 [scoreboard] store addr=0x15 wr=0x1 data=0xb341
# UVM_INFO .\tb.sv(304) @ 930: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate2 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1001
# addr integral 8 'h16
# wdata integral 16 'hf378
# wr integral 1 'h1
# rdata integral 16 'h1289
# begin_time time 64 930
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 950: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(178) @ 950: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x16 wr=0x1 wdata=0xf378 rdata=0x0
# UVM_INFO .\tb.sv(228) @ 950: uvm_test_top.e0.sb0 [scoreboard] store addr=0x16 wr=0x1 data=0xf378
# UVM_INFO .\tb.sv(304) @ 950: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate2 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1013
# addr integral 8 'h17
# wdata integral 16 'hdeb
# wr integral 1 'h1
# rdata integral 16 'h65b6
# begin_time time 64 950
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 970: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(178) @ 970: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x17 wr=0x1 wdata=0xdeb rdata=0x0
# UVM_INFO .\tb.sv(228) @ 970: uvm_test_top.e0.sb0 [scoreboard] store addr=0x17 wr=0x1 data=0xdeb
# UVM_INFO .\tb.sv(304) @ 970: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate2 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1025
# addr integral 8 'h18
# wdata integral 16 'hf9c6
# wr integral 1 'h1
# rdata integral 16 'h13ae
# begin_time time 64 970
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 990: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(178) @ 990: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x18 wr=0x1 wdata=0xf9c6 rdata=0x0
# UVM_INFO .\tb.sv(228) @ 990: uvm_test_top.e0.sb0 [scoreboard] store addr=0x18 wr=0x1 data=0xf9c6
# UVM_INFO .\tb.sv(317) @ 990: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate3 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1037
# addr integral 8 'h0
# wdata integral 16 'h2bc
# wr integral 1 'h0
# rdata integral 16 'hdd2a
# begin_time time 64 990
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(117) @ 1010: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(317) @ 1010: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate3 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1045
# addr integral 8 'h1
# wdata integral 16 'h9a0b
# wr integral 1 'h0
# rdata integral 16 'hbe71
# begin_time time 64 1010
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 1030: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 1030: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x0 wr=0x0 wdata=0x2bc rdata=0xf176
# UVM_INFO .\tb.sv(245) @ 1030: uvm_test_top.e0.sb0 [scoreboard] PASS! read addr=0x0 exp=0xf176 act=0xf176
# UVM_INFO .\tb.sv(117) @ 1050: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(317) @ 1050: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate3 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1053
# addr integral 8 'h2
# wdata integral 16 'h4185
# wr integral 1 'h0
# rdata integral 16 'h554f
# begin_time time 64 1050
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 1070: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 1070: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x1 wr=0x0 wdata=0x9a0b rdata=0x57ed
# UVM_INFO .\tb.sv(245) @ 1070: uvm_test_top.e0.sb0 [scoreboard] PASS! read addr=0x1 exp=0x57ed act=0x57ed
# UVM_INFO .\tb.sv(117) @ 1090: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(317) @ 1090: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate3 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1061
# addr integral 8 'h3
# wdata integral 16 'h603b
# wr integral 1 'h0
# rdata integral 16 'h333a
# begin_time time 64 1090
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 1110: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 1110: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x2 wr=0x0 wdata=0x4185 rdata=0xe9f9
# UVM_INFO .\tb.sv(245) @ 1110: uvm_test_top.e0.sb0 [scoreboard] PASS! read addr=0x2 exp=0xe9f9 act=0xe9f9
# UVM_INFO .\tb.sv(117) @ 1130: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(317) @ 1130: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate3 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1069
# addr integral 8 'h4
# wdata integral 16 'h327e
# wr integral 1 'h0
# rdata integral 16 'h4b15
# begin_time time 64 1130
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 1150: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 1150: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x3 wr=0x0 wdata=0x603b rdata=0x84c5
# UVM_INFO .\tb.sv(245) @ 1150: uvm_test_top.e0.sb0 [scoreboard] PASS! read addr=0x3 exp=0x84c5 act=0x84c5
# UVM_INFO .\tb.sv(117) @ 1170: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(317) @ 1170: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate3 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1077
# addr integral 8 'h5
# wdata integral 16 'h9bf1
# wr integral 1 'h0
# rdata integral 16 'h4bd9
# begin_time time 64 1170
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 1190: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 1190: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x4 wr=0x0 wdata=0x327e rdata=0xf7e5
# UVM_INFO .\tb.sv(245) @ 1190: uvm_test_top.e0.sb0 [scoreboard] PASS! read addr=0x4 exp=0xf7e5 act=0xf7e5
# UVM_INFO .\tb.sv(117) @ 1210: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(317) @ 1210: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate3 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1085
# addr integral 8 'h6
# wdata integral 16 'h762
# wr integral 1 'h0
# rdata integral 16 'hfb4c
# begin_time time 64 1210
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 1230: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 1230: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x5 wr=0x0 wdata=0x9bf1 rdata=0xd612
# UVM_INFO .\tb.sv(245) @ 1230: uvm_test_top.e0.sb0 [scoreboard] PASS! read addr=0x5 exp=0xd612 act=0xd612
# UVM_INFO .\tb.sv(117) @ 1250: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(317) @ 1250: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate3 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1093
# addr integral 8 'h7
# wdata integral 16 'h559f
# wr integral 1 'h0
# rdata integral 16 'ha18f
# begin_time time 64 1250
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 1270: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 1270: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x6 wr=0x0 wdata=0x762 rdata=0x69f2
# UVM_INFO .\tb.sv(245) @ 1270: uvm_test_top.e0.sb0 [scoreboard] PASS! read addr=0x6 exp=0x69f2 act=0x69f2
# UVM_INFO .\tb.sv(117) @ 1290: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(317) @ 1290: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate3 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1101
# addr integral 8 'h8
# wdata integral 16 'ha9f8
# wr integral 1 'h0
# rdata integral 16 'h60b7
# begin_time time 64 1290
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 1310: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 1310: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x7 wr=0x0 wdata=0x559f rdata=0x7ae8
# UVM_INFO .\tb.sv(245) @ 1310: uvm_test_top.e0.sb0 [scoreboard] PASS! read addr=0x7 exp=0x7ae8 act=0x7ae8
# UVM_INFO .\tb.sv(117) @ 1330: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(317) @ 1330: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate3 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1109
# addr integral 8 'h9
# wdata integral 16 'h569f
# wr integral 1 'h0
# rdata integral 16 'h945c
# begin_time time 64 1330
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 1350: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 1350: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x8 wr=0x0 wdata=0xa9f8 rdata=0x495c
# UVM_INFO .\tb.sv(245) @ 1350: uvm_test_top.e0.sb0 [scoreboard] PASS! read addr=0x8 exp=0x495c act=0x495c
# UVM_INFO .\tb.sv(117) @ 1370: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(317) @ 1370: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate3 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1117
# addr integral 8 'ha
# wdata integral 16 'hc05b
# wr integral 1 'h0
# rdata integral 16 'h3789
# begin_time time 64 1370
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 1390: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 1390: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x9 wr=0x0 wdata=0x569f rdata=0x582d
# UVM_INFO .\tb.sv(245) @ 1390: uvm_test_top.e0.sb0 [scoreboard] PASS! read addr=0x9 exp=0x582d act=0x582d
# UVM_INFO .\tb.sv(117) @ 1410: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(317) @ 1410: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate3 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1125
# addr integral 8 'hb
# wdata integral 16 'h3249
# wr integral 1 'h0
# rdata integral 16 'h3ed0
# begin_time time 64 1410
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 1430: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 1430: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0xa wr=0x0 wdata=0xc05b rdata=0x6263
# UVM_INFO .\tb.sv(245) @ 1430: uvm_test_top.e0.sb0 [scoreboard] PASS! read addr=0xa exp=0x6263 act=0x6263
# UVM_INFO .\tb.sv(117) @ 1450: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(317) @ 1450: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate3 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1133
# addr integral 8 'hc
# wdata integral 16 'hc0d7
# wr integral 1 'h0
# rdata integral 16 'hfc51
# begin_time time 64 1450
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 1470: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 1470: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0xb wr=0x0 wdata=0x3249 rdata=0x2280
# UVM_INFO .\tb.sv(245) @ 1470: uvm_test_top.e0.sb0 [scoreboard] PASS! read addr=0xb exp=0x2280 act=0x2280
# UVM_INFO .\tb.sv(117) @ 1490: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(317) @ 1490: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate3 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1141
# addr integral 8 'hd
# wdata integral 16 'h2f96
# wr integral 1 'h0
# rdata integral 16 'h7f0c
# begin_time time 64 1490
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 1510: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 1510: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0xc wr=0x0 wdata=0xc0d7 rdata=0x45aa
# UVM_INFO .\tb.sv(245) @ 1510: uvm_test_top.e0.sb0 [scoreboard] PASS! read addr=0xc exp=0x45aa act=0x45aa
# UVM_INFO .\tb.sv(117) @ 1530: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(317) @ 1530: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate3 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1149
# addr integral 8 'he
# wdata integral 16 'hcec2
# wr integral 1 'h0
# rdata integral 16 'hedc8
# begin_time time 64 1530
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 1550: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 1550: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0xd wr=0x0 wdata=0x2f96 rdata=0x3e96
# UVM_INFO .\tb.sv(245) @ 1550: uvm_test_top.e0.sb0 [scoreboard] PASS! read addr=0xd exp=0x3e96 act=0x3e96
# UVM_INFO .\tb.sv(117) @ 1570: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(317) @ 1570: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate3 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1157
# addr integral 8 'hf
# wdata integral 16 'h5a77
# wr integral 1 'h0
# rdata integral 16 'hed3d
# begin_time time 64 1570
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 1590: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 1590: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0xe wr=0x0 wdata=0xcec2 rdata=0x380d
# UVM_INFO .\tb.sv(245) @ 1590: uvm_test_top.e0.sb0 [scoreboard] PASS! read addr=0xe exp=0x380d act=0x380d
# UVM_INFO .\tb.sv(117) @ 1610: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(317) @ 1610: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate3 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1165
# addr integral 8 'h10
# wdata integral 16 'hdb12
# wr integral 1 'h0
# rdata integral 16 'h7e
# begin_time time 64 1610
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 1630: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 1630: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0xf wr=0x0 wdata=0x5a77 rdata=0xdd6b
# UVM_INFO .\tb.sv(245) @ 1630: uvm_test_top.e0.sb0 [scoreboard] PASS! read addr=0xf exp=0xdd6b act=0xdd6b
# UVM_INFO .\tb.sv(117) @ 1650: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(317) @ 1650: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate3 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1173
# addr integral 8 'h11
# wdata integral 16 'h816d
# wr integral 1 'h0
# rdata integral 16 'he739
# begin_time time 64 1650
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 1670: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 1670: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x10 wr=0x0 wdata=0xdb12 rdata=0x4a02
# UVM_INFO .\tb.sv(245) @ 1670: uvm_test_top.e0.sb0 [scoreboard] PASS! read addr=0x10 exp=0x4a02 act=0x4a02
# UVM_INFO .\tb.sv(117) @ 1690: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(317) @ 1690: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate3 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1181
# addr integral 8 'h12
# wdata integral 16 'h8f1f
# wr integral 1 'h0
# rdata integral 16 'hf6d3
# begin_time time 64 1690
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 1710: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 1710: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x11 wr=0x0 wdata=0x816d rdata=0xe91d
# UVM_INFO .\tb.sv(245) @ 1710: uvm_test_top.e0.sb0 [scoreboard] PASS! read addr=0x11 exp=0xe91d act=0xe91d
# UVM_INFO .\tb.sv(117) @ 1730: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(317) @ 1730: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate3 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1189
# addr integral 8 'h13
# wdata integral 16 'h2f85
# wr integral 1 'h0
# rdata integral 16 'h8878
# begin_time time 64 1730
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 1750: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 1750: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x12 wr=0x0 wdata=0x8f1f rdata=0x4923
# UVM_INFO .\tb.sv(245) @ 1750: uvm_test_top.e0.sb0 [scoreboard] PASS! read addr=0x12 exp=0x4923 act=0x4923
# UVM_INFO .\tb.sv(117) @ 1770: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(317) @ 1770: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate3 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1197
# addr integral 8 'h14
# wdata integral 16 'h595b
# wr integral 1 'h0
# rdata integral 16 'h4b49
# begin_time time 64 1770
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 1790: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 1790: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x13 wr=0x0 wdata=0x2f85 rdata=0xaca
# UVM_INFO .\tb.sv(245) @ 1790: uvm_test_top.e0.sb0 [scoreboard] PASS! read addr=0x13 exp=0xaca act=0xaca
# UVM_INFO .\tb.sv(117) @ 1810: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(317) @ 1810: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate3 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1205
# addr integral 8 'h15
# wdata integral 16 'hae3f
# wr integral 1 'h0
# rdata integral 16 'haf2a
# begin_time time 64 1810
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 1830: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 1830: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x14 wr=0x0 wdata=0x595b rdata=0xbdf2
# UVM_INFO .\tb.sv(245) @ 1830: uvm_test_top.e0.sb0 [scoreboard] PASS! read addr=0x14 exp=0xbdf2 act=0xbdf2
# UVM_INFO .\tb.sv(117) @ 1850: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(317) @ 1850: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate3 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1213
# addr integral 8 'h16
# wdata integral 16 'h6358
# wr integral 1 'h0
# rdata integral 16 'h3886
# begin_time time 64 1850
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 1870: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 1870: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x15 wr=0x0 wdata=0xae3f rdata=0xb341
# UVM_INFO .\tb.sv(245) @ 1870: uvm_test_top.e0.sb0 [scoreboard] PASS! read addr=0x15 exp=0xb341 act=0xb341
# UVM_INFO .\tb.sv(117) @ 1890: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(317) @ 1890: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate3 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1221
# addr integral 8 'h17
# wdata integral 16 'hc8e
# wr integral 1 'h0
# rdata integral 16 'hf29c
# begin_time time 64 1890
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 1910: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 1910: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x16 wr=0x0 wdata=0x6358 rdata=0xf378
# UVM_INFO .\tb.sv(245) @ 1910: uvm_test_top.e0.sb0 [scoreboard] PASS! read addr=0x16 exp=0xf378 act=0xf378
# UVM_INFO .\tb.sv(117) @ 1930: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(317) @ 1930: uvm_test_top.e0.a0.s0@@seq [SEQ] Generate3 new item:
# ------------------------------------------------------------------------
# Name Type Size Value
# ------------------------------------------------------------------------
# m_item reg_item - @1229
# addr integral 8 'h18
# wdata integral 16 'h99fa
# wr integral 1 'h0
# rdata integral 16 'hbc26
# begin_time time 64 1930
# depth int 32 'd2
# parent sequence (name) string 3 seq
# parent sequence (full name) string 25 uvm_test_top.e0.a0.s0.seq
# sequencer string 21 uvm_test_top.e0.a0.s0
# ------------------------------------------------------------------------
# UVM_INFO .\tb.sv(131) @ 1950: uvm_test_top.e0.a0.d0 [DRV] wait until ready is high
# UVM_INFO .\tb.sv(178) @ 1950: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x17 wr=0x0 wdata=0xc8e rdata=0xdeb
# UVM_INFO .\tb.sv(245) @ 1950: uvm_test_top.e0.sb0 [scoreboard] PASS! read addr=0x17 exp=0xdeb act=0xdeb
# UVM_INFO .\tb.sv(117) @ 1970: uvm_test_top.e0.a0.d0 [DRV] wait for item from sequencer
# UVM_INFO .\tb.sv(321) @ 1970: uvm_test_top.e0.a0.s0@@seq [SEQ] done 25 time
# UVM_INFO .\tb.sv(178) @ 1990: uvm_test_top.e0.a0.m0 [monitor] Monitor found packet addr=0x18 wr=0x0 wdata=0x99fa rdata=0xf9c6
# UVM_INFO .\tb.sv(245) @ 1990: uvm_test_top.e0.sb0 [scoreboard] PASS! read addr=0x18 exp=0xf9c6 act=0xf9c6
# quit -f
# End time: 12:50:12 on Jan 14,2024, Elapsed time: 0:00:02
# Errors: 0, Warnings: 1