我试图了解一些VHDL代码,并且我仍然坚持理解这一部分:
...
accumulated_x <= input_x;
...
if accumulated_x = '0' and input_x = '1' then
对我而言,它与:
相同if rising_edge(input_x) then
但是当我像这样替换它时,它不起作用然后它意味着它不一样,为什么?
答案 0 :(得分:0)
答案 1 :(得分:0)
rising_edge
只适用于一个无限短暂的时刻(正式来说, delta cycle )。
疯狂猜测你的两行
accumulated_x <= input_x;
if accumulated_x = '0' and input_x = '1' then
在一个时钟进程内部(如标题中使用“管道”所暗示的那样),这个if
条件在整个时钟周期内都是正确的。
这就是区别。鉴于我们的信息,这种差异对您的设计意味着什么是不可能的。