uvm中uvm_event的方法

uvm_enent的方法有wait_on、wait_off、wait_trigger、wait_ptrigger、get_num_waiters、
1.wait_on:等待事件第一次被触发;
2.wait_off:如果事件已经被触发且保持on的状态,这个任务等待通过调用reset关闭;
3.wait_trigger:等待事件被触发;
4.wait_ptrgiger:等待事件的持久触发;
5.get_trigger_time:返回事件最后一次被触发的时间;
6.is_on:表明reset以后事件是否被触发;
7.is_off:表明事件是否被触发或reset;
8.reset:reset事件到off状态;
9.cancel:减少事件上等待者的数量;
10.get_num_waiters:返回等待事件的进程数;
11.wait_trigger_data:此方法调用<uvm_event_base::wait_trigger>然后调用<get_trigger_data>;
12.wait_ptrigger_data:此方法调用<uvm_event_base::wait_ptrigger>然后调用<get_trigger_data>;
13.trigger:触发事件,恢复所有等待的进程;
14.get_trigger_data:通过最后一次调用trigger得到的数据;
15.add_callback:用这个事件注册一个回调对象;
16.delete_callback:从这个事件注销指定的callback对象。

wait_on的用法:等待事件第一次被激活
1.如果事件已经被激活,则立即返回;
2.如果设置了delta,返回之前必须等待一个delta #0;这将防止调用者在先前等待的进程有机会恢复之前返回;
3.一旦事件被触发,将一直保持on,直到被事件被重新reset。

virtual task wait_on (bit delta = 0);
  if (on) begin
    if (delta)
      #0;
    return;
  end
  num_waiters++;
  @on;
endtask

wait_off的用法:如果事件已经被激活且保持on的状态,这个任务等待通过调用reset关闭。
1.如果事件没有被激活,任务立即返回;
2.如果设置了delta,返回之前必须等待一个delta #0;这将防止调用者在先前等待的进程有机会恢复之前返回;

virtual task wait_off (bit delta = 0);
  if (!on) begin
    if (delta)
      #0;
    return;
  end
  num_waiters++;
  @on;
endtask
  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值