1.除了uvm_do 产生transaction,还可以使用uvm_create 与uvm_send 产生: 1)uvm_create 作用是例化transaction。可以做更灵活的处理。 2.可以不用uvm_create 宏,直接调用new 进行例化: 3.uvm_send_pri:
1)和uvm_send 的唯一区别是它会对transaction 进行随机化。 2)使用前提是transaction 被分配了空间,(就是uvm_create) 2.uvm_rand_send 系列宏及uvm_send 系列宏的意义在于,如果一个transaction 占用内存较大,希望前后两次发送的transaction都是用同一块内存。比较节省内存。
uvm_create宏的作用是实例化transaction,当一个transaction被实例化后,可以对其做更多的处理(如随机化),处理完毕后使用uvm_send宏发送出去。当然,也可以不用uvm_create而直接使用new函数来进行实例化。uvm_send也可以增加pri关键词以设置其优先级。 此外,还可以将随机化处理与发送合并为uvm_rand_send系列宏来实现。这...
virtual sequence是一个包含和执行多个子sequence的容器,virtual sequencer是包含其他sequencer的容器以使得virtual sequence中的每个子sequence都能在相应的sequencer上获得执行。67、uvm_do和uvm_send有什么区别?uvm_do自动地创建、随机化 和 发送 新的对象 `uvm_send用于发送已经完成创建和随机化之后的对象 68、我们可以...
第四种:uvm_create和uvm_send classcase0_sequenceextendsuvm_sequence#(fish_transaction) ...taskcase0_sequence::body() `uvm_create(f_trans) ...//对transaction做处理`uvm_send(f_trans)endtask uvm_create宏的作用就是实例化transaction,实例化之后,可以对其做更多的处理,处理完毕再使用`uvm_send宏发送...
第二种:使用宏uvm_create和宏uvm_send virtualtaskbody(); my_transaction m_tr; byteunsigneddata_q[]; intdata_size; repeat(10)begin data_size = ip_tr.pack_bytes(data_q) /8; m_tr =new("m_tr");//或者`uvm_create(m_tr) assert(m_tr.randomizewith{m_tr.pload.size() == data_size...
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_on_pri_with(SEQ_OR_ITEM,SEQR,PRIORIT,CONSTRAINTS)uvm_d(系列 macro 都是来源于这个最长的 macro 除了 uvm_do 系列 macro 之外,还可以用 uvm_ereate+uvm_send。使用 uvm_ereate+uvm_send 的优势是可以 在两个macro之间加一些赋值操作等,当然也可以把约 29、束随机加在这里。uvm_create是实例化...
uvm_rand_send系列宏:对transaction进行随机化+将transaction交给sequencer(对应start_item与finish_item任务) 不同类型sequence共用sequencer的方法(一个driver): transaction类型例化的一个sequencer 对应 多个不同约束的transaction包 可以通过一个sequence启动其他sequence(即嵌套的sequence),然后间接生成多个不同约束的transac...
第四种:`uvm_create和`uvm_send 代码语言:javascript 复制 classcase0_sequenceextendsuvm_sequence#(fish_transaction)...task case0_sequence::body()`uvm_create(f_trans) ...//对transaction做处理`uvm_send(f_trans)endtask uvm_create宏的作用就是实例化transaction,实例化之后,可以对其做更多的处理,处理...