本文章旨在学习总结备份、便于日后查询,由于是个人总结,如有错误欢迎留言指出;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。
sequence机制提供了丰富的宏用于产生和发送transaction(tr),`uvm_do和`uvm_send都可用于发送tr。
区别是`uvm_do可以兼顾创建和随机化tr,`uvm_send仅用于发送tr,通常搭配`uvm_create使用。
`uvm_do 系列
`uvm_do(SEQ_OR_ITEM) `uvm_do_pri(SEQ_OR_ITEM, PRIORITY) `uvm_do_with(SEQ_OR_ITEM, CONSTRAINTS) `uvm_do_pri_with(SEQ_OR_ITEM, PRIORITY, CONSTRAINTS)
`uvm_create/`uvm_send
`uvm_create(SEQ_OR_ITEM) `uvm_send(SEQ_OR_ITEM) `uvm_send_pri(SEQ_OR_ITEM, PRIORITY) `uvm_rand_send(SEQ_OR_ITEM) `uvm_rand_send_with(SEQ_OR_ITEM, CONSTRAINTS) `uvm_rand_send_pri_with(SEQ_OR_ITEM, PRIORITY, CONSTRAINTS)
pri:传递参数“PRIORITY",该参数是大于-1的整数,表明tr优先级;
with:传递参数”CONSTRAINT“,由{ }包含在内,表明SEQ_OR_ITEM的约束;
rand:SEQ_OR_ITEM在被发送前先进行随机化;