SystemVerilog中的电平敏感事件控制

描述

在verilog中绝大多数使用的都是边沿敏感事件,例如@(posedge event)@(negedge event)

在SystemVerilog中使用电平敏感事件控制的语法关键词是“wait”。


“wait”不是去检测一个边沿事件的发生,而是去等待一个条件的满足,否则会一直仿真进程阻塞。

 

module level;
 int a;
 
 initial
 begin
 # 10; 
 wait (a == 1);
 $display($stime,,, "wait complete");
 end
 
 initial begin
 a = 1;
 end
endmodule

 

仿真log:

 

wait complete
V C S S i m u l a t i o n R e p o r t

 

在这个例子中,我们使用“wait”等待a的值为1,只要在语句“wait (a == 1);” 后面时间满足条件才会仿真继续执行。

因为在时间0,a赋值为1,所有在时间10就打印了“wait complete”。

但是,如果我们使用的是@(posedge a),实际上在这个例子当中是永远等待不到的。

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分