Waveform link included 我对VHDL信号的值分配感到困惑。
令人困惑的是,我已经读过信号的值在过程结束时被分配。
当流程完成或下次触发流程时,是否正确分配值?
如果在过程结束时分配,则考虑这种情况(3个触发器串联,即一个触发器的输出输入到另一个)然后如果D1在时间0为1则不会输出Q3是1同时?
答案 0 :(得分:0)
(1)当过程结束时正确。更确切地说,正确之后这个以及与此流程一起运行的所有流程已经完成,并且在随后启动任何流程之前。因此,当发生任何信号分配时,没有进程正在运行。
(2)Q3将在三个时钟周期之前成为D1上的值。这个价值是否是' 1'或不是我不能从你的问题中说出来!
答案 1 :(得分:0)
信号分配仅在过程结束时完成。在信号分配之后,可能存在信号更新,并且由于信号更新,将触发过程本身或可能对一些更新信号敏感的其他过程。这是delta-cycle的概念。它发生在零模拟时间。 信号更新 - >触发过程 - >在过程结束时,信号被更新 ----------------------------------- --------------- -------------------- 这是从第二个delta周期开始的一个delta周期
当没有信号更新时,过程结束,模拟时间增加。