UVM验证-objection机制

1、objection机制

objection字面的意思就是反对、异议,主要面向于task phase。在验证平台中,可以通过drop_objection来通知系统可以关闭验证平台。例如:

task driver::main_phase(uvm_phase phase);
phase.raise_objection(this);//检测到有objection被提起,该phase中的代码被执行
#100;
phase.drop_objection(this);//撤销objection
endtask
task monitor::main_phase(uvm_phase phase);//检测到driver中有objection被提起,该phase中的代码被执行
while(1) begin
…
end
endtask

UVM系统监测到所有的objection已被撤销,就直接停止monitor中的无限循环,并跳入到下一个phase。

task driver::main_phase(uvm_phase phase);
#100;
endtask
task monitor::main_phase(uvm_phase phase);
while(1) begin
…
end
endtask

当driver和minitor中都没有提起objection时,driver和monitor中的代码将不会被执行,而是直接跳入到下一个phase。
因此,如果想执行一些耗时的代码,就需要在此phase下的任意一个component中至少提起一次objection。
特别说明:以上只适用于12个run_time 的phase,对run_phase并不适用。如果12个run_time phase中有objection被提起,那么run_phase中不需要提起objection代码就可以自动执行。

2、控制objection的最佳选择

常用的有两种选择:一是在scoreboard中提起;二是在sequence中提起。

3、set_drain_time使用

通过set_drain_time可以为uvm所有的objection设置drain_time属性。

task base_test::main_phase(uvm_phase phase);
	phase.phase_done.set_drain_time(this, 200);
endtask
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值