• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

SOC/IP验证工程师

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

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

posted on 2021-10-31 10:43  SOC验证工程师  阅读(2172)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3