1 2 module test; 3 4 int a[$][]; 5 int b[]; 6 int c[]; 7 8 int aa[][$]; 9 int bb[$]; 10 int cc[$]; 11 12 initial 13 begin 14 b = new[10]; 15 b[0] = 100; 16 a.push_back(b); 17 c = a.pop_back(); 18 $display("Read back value is: %0d\n", c[0]); 19 20 aa = new[10]; //Make 10 wide queues. 21 bb.push_back(1000); 22 aa[0] = bb; 23 cc = aa[0]; 24 $display("Read back value from que is: %0d\n", cc.pop_back()); 25 26 end 27 28 endmodule
Virtual sequences and sequencers in UVM are just virtual containers of multiple sequences and sequencers. Using virtual sequencers and sequences can be done in these three ways: Using only virtual Sequence and handles of sequencers inside the virtual sequence. Using Virtual sequencer to hold the sequencers Same as step 2, by using uvm_declare_p_sequencer. Virtual Sequencer does not create any sequencer objects, rather it points to other physical sequencers in different agents. Virtual Sequencer extends from uvm_sequencer. Virtual sequence will create its sequences and start them. Running sequences can be controlled by user in the body() task. virtual sequence extends from uvm_sequence. METHOD-1: In this method, we will have one base virtual sequence which will hold the handles to different sequencers. Here we dont use any virtual sequencer. We just use the nested seqeunces with handles ot sequencers inside sequence itself. //This is the base virtual se...
Comments
Post a Comment