1、uvm_do系列宏8个:
- `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_do_on (SEQ_OR_ITEM, SEQR)
- `uvm_do_on_pri (SEQ_OR_ITEM, SEQR, PRIORITY)
- `uvm_do_on_with (SEQ_OR_ITEM, SEQR, CONSTRAINTS)
- `uvm_do_on_pri_with (SEQ_OR_ITEM, SEQR, PRIORITY, CONSTRAINTS)
总共8个,分两组,一组带on,一组不带on。每组都是由pri,with的有无组合,所以每组共四个。
参考记忆:
- 第一、所有宏都有参数"SEQ_OR_ITEM",该参数可以是sequence或者transaction,与do对应;
- 第二、带有on的宏,要传递一个“SEQR"的参数,该参数是sequencer,用来指定将后面产生的sequence或者transaction发送给哪一个sequencer,与on对应;
- 第三、带有pri的宏,都要传递一个"PRIORITY"的参数,该参数是大于-1的整数,表示要产生的sequence或者transaction的优先级,与pri对应;
- 第四、带有with的宏,都要传一个“CONSTRAINTS"的参数,该参数是由{ }包括的约束,表示对SEQ_OR_ITEM的一个约束,与with对应。
总结:就是SEQR的默认参数是m_sequencer, PRIORITY的默认参数是-1, with的默认参数是{},不指明参数的将用默认参数代替。