[...] my_seq my_seq_h; //Sequence handle constraint opcode_cnstr { my_seq_h.opcode inside {0,1,2,3,4}; } //opcode is a seqit field task body(); `uvm_do_on_with(my_seq_h.p_sequencer.my_seqr_h, {opcode_cnstr;} ) //`uvm_do_on_with(my_seq_h.p_sequencer.my_seqr...
相比于在普通Testbench中按照时序、延时和特定事件写好特定波形的激励信号输入,UVM提高了验证的抽象层次,把验证功能模块化、同时把过程变成一个个事务(Transaction)。如图9中一个简单的例子所示,这些模块包括DUT(Design Under Test)、Driver(根据事务生成具体模块引脚信号的驱动器)、Sequencer(根据实时情况调度、发送数据)...