返回介绍

13.5 事件

发布于 2020-09-09 22:55:52 字数 783 浏览 1097 评论 0 收藏 0

在Verilog中,命名的事件是静态对象,它可以通过->操作符触发,并且通过@操作符进程可以等待一个事件被触发。SystemVerilog事件支持相同的基本操作,但它从几个方面增强了Verilog事件。最为显着的增强是:Verilog命名事件的触发状态没有持续时间,而在SystemVerilog中,这个触发状态在事件被触发的整个时间步值内持续。而且,SystemVerilog事件作为同步队列的句柄使用,因此,它们可以作为参数传递给任务,并且它们可以赋值到另外一个事件或者与另外一个事件进行比较。

现存的Verilog事件操作(@和->)是后向兼容的,当使用在静态Verilog上下文中的时候可以继续以相同的方式工作。下面所描述的其它功能可以在静态上下文或动态上下文中作用于所有的事件。

SystemVerilog事件为一个底层的同步对象提供了一个句柄。当进程等待一个事件被触发的时候,进程被放入到一个在同步对象内部维护的队列当中。进程可以或者通过@操作符,或者通过使用wait()结构检查它们的触发状态来等待一个SystemVerilog事件被触发。事件通过使用->或->>操作符来触发。

event_trigger ::=            // 引用自附录A.6.5
    -> hierarchical_event_identifier;
  | ->> [delay_or_event_control] hierarchical_event_identifier;

语法 13-1 — 事件触发语法(摘录自附录A)

声明命名事件的语法在3.8节中讨论。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文