除了uvm_do外,前述介绍的uvm_send,uvm_rand_send,uvm_create宏等,其第一个参数均可以是sequence的指针。 与transaction类似,sequence中也可以加入rand修饰的变量,用以进行对其产生的transaction进行约束。加入了rand变量的sequence可以通过uvm_do_with等宏添加约束条件。不过有一个需要注意的地方,在sequence中定义rand类...
乍一看有点类似于`uvm_do系列宏后缀的排列组合,但是后缀又有些区别,`uvm_send系列宏一般跟`uvm_create是配合使用的,`uvm_create执行的时候会指定item所在的sequencer,所以在`uvm_send执行的时候就不需要指定sequencer了,所以不需要_on的后缀。_rand表示是否需要随机,_pri指定优先级,_with指定随机约束。`uvm_rand_s...
除了uvm_do外,前述介绍的uvm_send,uvm_rand_send,uvm_create宏等,其第一个参数均可以是sequence的指针。 与transaction类似,sequence中也可以加入rand修饰的变量,用以进行对其产生的transaction进行约束。加入了rand变量的sequence可以通过uvm_do_with等宏添加约束条件。不过有一个需要注意的地方,在sequence中定义rand类...
`uvm_rand_send(req) // Randomize and process again, this time with inline constraints. `uvm_rand_send_with(req, {data < 1000;}) endtask : body endclass: my_seq my question is, when we call `uvm_rand_send(req) isn’t it randomize the req.addr field and cause the “req.addr =...
uvm_send(SEQ_OR_ITEM): 将有uvm_create创建的tr/seq发送出去,其他send宏如下:uvm_send_pri(SEQ_OR_ITEM, PRIORITY) uvm_rand_send(SEQ_OR_ITEM)uvm_rand_send_pri(SEQ_OR_ITEM, PRIORITY) uvm_rand_send_with(SEQ_OR_ITEM, CONSTRAINTS)uvm_rand_send_pri_with(SEQ_OR_ITEM, PRIORITY, CONSTRAINTS ...
uvm_create是实例化transaetion, uvm_send 是把 transaction 发送出去。 uvm_rand_senduvm_rand_send_priuvm_rand_send_withuvm_rand_send_pri_with与 uvm_do 系列 macro 类彳以 start_item和finish_item上述macro的实际实现函数我觉得我们代码里应该不会用这两个函数。 taskpre_do(bitis_item) fun etio n...
3)利用uvm_send或uvm_send_pri发送出去。 第三种:利用uvm_rand_send系列宏 m_trans =new("m_trans");//实例化 `uvm_rand_send(m_trans)//随机化+发送 //`uvm_rand_send_pri `uvm_rand_send_with `uvm_rand_send_pri_with uvm_rand_send与uvm_send宏类似,唯一的区别是它会对transaction进行随机化...
classchild_seqextendsuvm_sequence;...taskbody();bus_trans req;`uvm_create(req)`uvm_rand_send_with(req,{data==10};)//上面两行宏定义也可以合并成一条:uvm_do_with(req, {data == 10};)endtask endclassclasstop_seqextendsuvm_sequence;...taskbody();child_seq cseq;//sequencebus_trans req...
uvm_create 是实例化 transaction , uvm_send 是把 transaction 发送出去。uvm_rand_send uvm_rand_send_pri uvm_rand_send_with uvm_rand_send_pri_with 与 uvm_ 40、do 系列 macro 类似start_item 和 finish_item 上述 macro 的实际实现函数 我觉得我们代码里应该不会用这两个函数。task pre_do(bit is...
除了uvm_do系列宏,uvm_create、uvm_send、uvm_rand_send的第一个参数都可以说是sequence的指针。 唯一不能是sequence指针的是start_item和finish_item,这两个参数必须是transacion的指针。 classcase0_sequenceextendsuvm_sequence#(my_transaction); my_transaction m_trans; ...