【发布时间】:2014-05-05 18:39:00
【问题描述】:
Waveform link included 我对 VHDL 中对信号的赋值感到困惑。
令人困惑的是,我已经读到信号的值是在进程结束时分配的。
是否在进程完成或下次触发进程时正确分配值?
如果它是在过程结束时分配的,那么考虑这种情况(3 个触发器串联,即一个触发器的输出被输入到另一个),那么如果 D1 在时间 0 为 1,则不会输出 Q3同时为 1?
【问题讨论】:
-
您的 2. 示例是使用一串透明闩锁发生的情况。触发器仅在边缘更新,并且将看到驱动其 Q 输入的任何东西的旧值,而不是时钟后更新到的新值。在实际系统中,您可以在时钟之间引入足够的偏差以导致这种下降,但通常不会在同步设计中完成。 VHDL 仿真内核确保这不会发生,除非您明确地这样做。
-
感谢您的快速回复。我的教授说,在 VHDL 中,在为信号分配信号时的上升沿 clk 事件中形成了一个寄存器。处理(clk) if(clk='1' and clk'event)then output
标签: vhdl