在理想的数字逻辑设计模型中,器件表现出以下特性:
- 触发器输出无延迟
- 组合逻辑单元无延迟
- 线网信号传输无延迟
- 触发器在有效时钟沿的前一瞬间(0-)采样,在有效时钟沿的后一瞬间(0+)输出
以一个触发器和一个反相器为例,触发器的输入输出不断翻转,电路的理想波形如下所示:
由于是理想元件,所有的延迟Txx
都无限趋向于0,建立时间/保持时间根本不存在,不会发生任何的时序问题。
理想的数字逻辑设计模型只是一种抽象的问题分析工具,现实的数字电路需要考虑更多“模拟”的问题:
- 触发器输出存在延迟Tc2q
- 组合逻辑单元存在延迟Tcomb
- 线网信号传输存在延迟Twd1,Twd2
- 触发器采样需要满足建立时间Ts和保持时间Th的要求
同样是一个触发器和一个反相器的电路,实际波形会呈现更加真实的特性:
其中,Q1
为触发器的输出端Q,Q2
为反相器的输入端,D1
为反相器的输出端,D2
为触发器的输入端D。
如图所示,D2
信号经过了线网和组合逻辑,相对于CLK
的触发沿已经延迟了1/3个周期,这是理想元件无法产生的现象。
这不禁让人思考:如果触发沿到D2
的延迟继续扩大,接近甚至超过一个周期,电路是否还能正常工作?
聪明的同学应该可以看出,如果触发沿到D2
的延迟超过一个周期,电路无法工作。
那么,是不是只要延迟小于一个周期,就能正常工作了?
也不是哦,还需要考虑建立时间和保持时间。
- 建立时间:时钟触发沿之前,数据需要保持稳定的最小时间,以便数据能够被时钟正确的采样。
- 保持时间:时钟触发沿之后,数据需要保持稳定的最小时间,以便数据能够被电路准确的传输。
- 通俗解释:时钟触发沿前后,数据需要在一小段时间内保持不变,这个时间窗口就是建立时间和保持时间。
建立时间与保持时间是相互制约的。
时序逻辑设计,电路必须满足建立/保持时间的要求。
静态时序分析(STA),检查电路是否满足建立/保持时间。
如果电路不满足建立/保持时间的要求,那么就有概率产生亚稳态现象,导致数字系统无法稳定运行。