摘要:在sequence中可以使用starting_phase来控制验证平台的关闭。 有两种方式为starting_phase赋值。 第一种:手工启动sequence时为starting_phase赋值。 例如:seq.start(env.i_agt.sqr); class my_case0 extend
阅读全文
摘要:第一种时利用uvm_do系列宏 在一个sequence的body中,除了可以使用uvm_do宏产生transaction外,还可以启动其它sequence,这就是嵌套sequence。 uvm_do系列宏有uvm_do/uvm_do_pri/uvm_do_with/uvm_do_pri_with/u
阅读全文
摘要:当不在sequence组件中时,提起和撤销objection的方式: 当不在sequence中可以使用phase来控制验证平台的开启和关闭。 在driver中: task my_driver::main_phase(uvm_phase phase); my_transaction tr; phase
阅读全文
摘要:sequence中的objection的控制策略 在整颗UVM树中,树的结点很多,理论来说在任何组件中都可以控制objection。一般在sequence和virtual sequence中,也有在scoreboard和test中。 一般来说,在一个实际的验证平台中,通常会有以下两种objectio
阅读全文
摘要:每一个sequence都应该派生自uvm_sequence,并且在定义时指定要产生的transaction。 每一个sequence都有一个body任务,当一个sequence启动之后,会自动执行body中的代码。 第一种:使用宏uvm_do: class case0_sequence extend
阅读全文
摘要:第一种: 当完成一个sequence的定义后,可以使用start任务将其启动: task my_env::main_phase(uvm_phase phase); my_sequence seq; // phase.raise_objection(this); seq = my_sequence::
阅读全文
摘要:uvm中void'(A_port.try_put(tr)) 其中使用void'的意义表示不考虑返回值。对于括号中有返回值的函数,加上void'操作符的意思就是告诉仿真器这个函数虽然有返回值,但是我不需要这个返回值。 加上这个的唯一好处是可以让仿真器闭嘴:本来函数有返回值,但是你不使用,这时仿真器会抛
阅读全文