返回介绍

15.13 同步的事件

发布于 2020-09-09 22:55:53 字数 776 浏览 1137 评论 0 收藏 0

显式的同步通过事件控制操作符@来实现,它允许一个进程来等待一个特定的信号值变化或者一个时钟控制事件(参见15.9节)。

同步操作符的语法在第8.10节给出。

与事件控制一起使用的表达式可以指示时钟控制块的输入(input或inout)或者一个分片。分片可以包含动态索引,它会在@表达式执行的时候进行一次计算。

下面是一些同步语句的例子:

  • 等待时钟控制块ram_bus中ack_1信号的下一次变化
@(ram_bus.ack_l);
  • 等待时钟控制块ram_bus中的下一个时钟控制事件
@(ram_bus);
  • 等待ram_bus.enable信号的上升沿
@(posedge ram_bus.enable);
  • 等待指定的一位分片dom.sign[a]的下降沿。注意,索引a在运行时计算。
@(negedge dom.sign[a]);
  • 等待dom.sig1的下一个上升沿或dom.sig2的下一次变化,无论哪一个最先发生。
@(posedge dom.sig1 or dom.sig2);
  • 等待dom.sig1的下降沿或dom.sig2的上升沿,无论哪一个最先发生。
@(negedge dom.sig1 or posedge dom.sig2);

同步事件控制所使用的值是同步的值,也就是在对应的时钟控制事件上采样的值。

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

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

发布评论

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