这里需要注意的时create_item()比我们直接通过item_name::type_id::create()创建uvm_seuqence_item多了一步绑定sequencer的操作,只有绑定了sequencer的uvm_seuqence_item才能发送出去,这一点一定要注意,后面我们还会提及这个概念。 图7 src/seq/uvm_sequence_base.svh中的create()方法 图8是start_item()方法的...
`uvm_do(SEQ_OR_ITEM)//1. 根据sequence_item实例,随机化产生数据`uvm_do_with(SEQ_OR_ITEM, CONSTRAINTS)//2. 在随机化数据的基础上,添加约束`uvm_do_pri(SEQ_OR_ITEM, PRIORITY) `uvm_do_pri_with(SEQ_OR_ITEM, PRIORITY, CONSTRAINTS) `uvm_do_on(SEQ_OR_ITEM, SEQR)//3. 随机化同时,显式的...
`uvm_do_on_pri_with(SEQ_OR_ITEM, SEQR, PRIORITY, CONSTRAINTS) uvm_do系列的其他七个宏其实都是用uvm_do_on_pri_with宏来实现的。如uvm_do宏:`define uvm_do(SEQ_OR_ITEM) `uvm_do_on_pri_with(SEQ_OR_ITEM, m_sequencer, -1, {}) uvm_create与uvm_send `uvm_create(m_trans):uvm_create...
### Factory Configuration (*)## No instance overrides are registered with this factory## Requested Type Override Type# --- ---# seq_base seq1## All types registered with the factory: 288 total# Type Name# ---# ...# (*) Types with no associated type name will be printed as < un...
set_parent_seq get_parent_seq seq_item pre_do seq_item body seq_item mid_do seq_item post_do seq_item wait_for_grant seq_item send_request seq_item wait_for_item_done start_sequence OVM_REPORT_ ovm_seq_prod_if ovm_seq_cons_if ...
1.采用uvm_create & uvm_send宏 注1:`uvm_create与`uvm_send宏的第一个参数都可以是sequencer的指针,也可以是transaction的指针; (1)uvm_create/uvm_create_on调用uvm_sequence_base的create_item函数,并利用factory机制进行seq或seq_item的例化; (2)uvm_rand_send系列宏与uvm_send宏的区别在于前者包含了trans...
uvm_factory::debug_create_by_name():打印工厂根据参数实际会创建的类型 uvm_port_base::debug_connected_to():打印当前端口连接的下游端口网络,包括port/export/imp uvm_port_base::debug_provided_to():打印当前端口连接的上游端口网络,包括port/export ...
uvm_create(SEQ_OR_ITEM): 工厂模式创建一个transaction或sequence,只后用户应该随机化,或指定某个值给创建的trans。uvm_create(SEQ_OR_ITEM,SEQR): 和uvm_create宏一样,并且指定了对应的sequencer。 uvm_send(SEQ_OR_ITEM): 将有uvm_create创建的tr/seq发送出去,其他send宏如下:uvm_send_pri(SEQ_OR_ITEM,...
//seq_item_port.item_done(); end endtask: drive endclass: crc7_driver (其余代码请在文章末尾下载。 ) 其中,crc7_tb_top.sv第31行: #5 vif.sig_clk =~ vif.sig_clk; 表示每5个时钟单位反向一次。即时钟周期为10ns。 crc7_monitor.sv中第1行和第34行,分别新建一个名为crc7_monitor_before和...
'uvm_do_on_pri_with(SEQ_OR_ITEM,SEQR,PRIORITY,CON 39、STRAINTS) uvm_d原歹U macro 都是来源于这 个最长的 macro除了 uvm_do 系列 macro 之外,还可以用 uvm_create + uvm_send 。 使用 uvm_create + uvm_send 的 优势是可以在两个macro 之间加一些赋值操作等,当然也可以把约束随机加在这里。 uvm...