虚拟序列类计划

时间:2016-12-02 07:04:31

标签: uvm

我正在为虚拟序列编写一些代码,如下所示:

class base_v_seq extends uvm_sequence #(uvm_sequence_item);
seqr1 seqr1h;
seqr2 seqr2h;
//function new......
endclass

class v_seq1 extends base_v_seq #(uvm_sequence_item);
//...
task body();
seq1 seq1h;
seq2 seq2h;
seq1h=seq1::type_id::create("seq1");

start_item(seq1.w_transh);--------------(1)
assert(se1.w_trans.randomize);
finish_item(seq1.w_transh);

seq1.start(seqr1);
endclass

class test extends uvm_test();
//...
task run_phase();
v_seq1.start(null);
endtask
endclass

class seq1 extends uvm_sequence#(uvm_sequence_item);
//...
wr_trans wr_transh;

endclass

我怀疑当我在v_seq1中开始test时,它会调用task body方法,其中包含start_item() seq1 start_item() {1}};物理序列中存在的start_item是否会产生任何问题?如何在v_seq1seq1之间进行数据传输? 我的另一个问题是,是“seq1.start(seqr1);”需要?

1 个答案:

答案 0 :(得分:0)

Seq_1创建一个项目并将其直接发送到运行它的音序器。当驱动程序调用seq_item_port.get()时,顺控程序将检查项是否存在,如果是,则顺控程序将返回该项。因此seq_1和vseq之间没有数据传输。请记住,虚拟序列用于协调物理序列

相关问题