always@(posedge system_clock)
out<=in;
上述代码中,通过检查系统时钟信号上升沿来临,给out赋值,波形图如下:
通过这个输出波形我们也大致可以看出:时序逻辑电路中,每当系统时钟上升沿来临的时候,实际上采集到的是输入信号前一时刻的值。
这是因为,在系统时钟上升沿到来的时候,这时数据想立即更新传入到输出Q端,但由于D触发器内部的物理连线以及上一级触发器的Q传到这一级D的时间,此时的Q并不能被直接更新成最新的数据输入,因此此时刻所采集到的数据其实是上一时刻传入的D值 ,这也就造成了在时序逻辑电路中,输出会滞后与输入一个时钟节拍的原因。
归根到电路本身,其实可以发现是由于触发器本身的物理延迟所导致的。