返回介绍

15.3 输入时滞与输出时滞

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

输入或双向信号在指定的时钟事件上采样。如果指定了一个输入时滞,那么信号在时钟事件之前的时滞时间单位上采样。类似地,输出或双向信号在相应的时钟事件之后的时滞仿真时间单位上被驱动。图15-1为一个上升沿时钟显示了基本的采样/驱动时序。

图15-1 — 包含相对于时钟上升沿的时滞的采样和驱动时间

一个时滞必须是一个常量表达式,并且可以被说明成一个参数。如果没有指定时滞的时间单位,那么会使用当前的时间单位。如果使用了一个数字的话,那么时滞会使用当前作用范围的时间比例来解释。

clocking dram @(clk);
    input #1ps address;
    input #5 output #6 data;
endclocking

一个1step的输入时滞指示信号将在前一个时间步值的结束处采样。也就是说,采样的值总是对应时钟沿之前的最后一个信号值。

具有显式的#0时滞的输入在对应时钟事件的同一时间采样,但为了避免竞争,它们在Observed区域被采样。同样,没有时滞(显式的#0时滞)的时钟控制块输出在对应时钟事件的同一时间被驱动,就像无阻塞赋值一样(在NBA区域)。

时滞是说明性的结构,因此它们与语法上类似的过程化延时语句在语义上非常不同。特别地,一个显式的#0时滞不会挂起任何进程,也不会在Inactive区域执行或采样值。

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

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

发布评论

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