【问题标题】:Differences between pipeline and rising_edge in vhdl?vhdl中pipeline和rising_edge的区别?
【发布时间】:2017-02-18 22:49:18
【问题描述】:

我正在尝试理解一些 VHDL 代码,但我一直无法理解这部分:

...
accumulated_x <= input_x;
...
     if accumulated_x = '0' and input_x = '1' then

对我来说是一样的:

if rising_edge(input_x) then

但是当我这样替换它时,它不起作用,然后它意味着它不一样,为什么?

【问题讨论】:

  • 您需要提供更多上下文。 ... 背后隐藏的内容可能与此相关。

标签: vhdl


【解决方案1】:

rising_edge 仅适用于一个极短的时刻(正式地,delta 循环)。

大胆猜测你的两行

accumulated_x <= input_x;
if accumulated_x = '0' and input_x = '1' then

在一个时钟进程中,(正如标题中使用“管道”所暗示的那样,那么这个if 条件将在整个时钟周期内为真。

这就是区别。鉴于我们掌握的信息,无法说出这种差异对您的设计意味着什么。

【讨论】:

    【解决方案2】:

    rising_edge 对综合工具有特定的含义。用于表示该信号是设计的时钟。

    herehere 有一些很好的解释(我已经包含了第二个链接,因为我假设您已经有一个域时钟并且合成工具正在抛出错误)。

    【讨论】:

      猜你喜欢
      • 2021-07-14
      • 1970-01-01
      • 2019-05-05
      • 2011-12-20
      • 2020-02-22
      • 2018-12-21
      • 2012-08-09
      • 2012-08-27
      • 2017-04-04
      相关资源
      最近更新 更多