文章目录
- 基本概念
- 亚稳态
- 建立时间和保持时间
- 常见问题
- 1.为什么触发器要满足建立时间和保持时间?
- 2.建立时间裕量和保持时间裕量的计算?
- 3.最高时钟频率的计算?流水线思想?
- 4.时序违例的解决办法?
基本概念
亚稳态
亚稳态(metastable)指的是触发器在时钟上升沿前后一段时间内无法达到确定的状态,在这个时间区间内输入如果不能保持稳定,采样到的数据不一定是正确的数值。
建立时间和保持时间
建立时间:触发器在时钟上升沿到来之前,其数据输入端的数据必须保持不变的最小时间。
保持时间:触发器在时钟上升沿到来之后,其数据输入端的数据必须保持不变的最小时间。
常见问题
1.为什么触发器要满足建立时间和保持时间?
因为触发器内部数据的形成是需要一定的时间的,如果不满足建立和保持时间,触发器将进入亚稳态,进入亚稳态后触发器的输出将不稳定,在 0 和 1 之间变化,这时需要经过一个恢复时间,其输出才能稳定,但稳定后的值并不一定是你的输入值。这就是为什么要用两级触发器来同步异步输入信号。这样做可以防止由于异步输入信号对于本级时钟可能不满足建立保持时间而使本级触发器产生的亚稳态传播到后面逻辑中,导致亚稳态的传播。
(比较容易理解的方式)换个方式理解:需要建立时间是因为触发器的 D 端像一个锁存器在接受数据,为了稳定的设置前级门的状态需要一段稳定时间;需要保持时间是因为在时钟沿到来之后,触发器要通过反馈来锁存状态,从后级门传到前级门需要时间。
2.建立时间裕量和保持时间裕量的计算?
如下图所示
3.最高时钟频率的计算?流水线思想?
最高的时钟频率对应最小的时钟周期,最小时钟周期由最长的组合逻辑来决定。经典的考虑场景如下,组合逻辑两端各由一个D触发器,假设Tco是第一个触发器D端采样到Q端输出的延时时间,Tdelay是组合逻辑的延时,Tsetup是第二个D触发器的建立时间,那么最小时钟周期Tmin=Tco+Tdelay+Tsetup,最高主频Tmax=1/Tmin。为什么呢?因为如果时钟周期更小的话,就会不满足建立时间(组合逻辑结果还没输出稳定的结果你采什么样?)
从这个公式可以看出,决定最高主频的关键因素在组合逻辑延时Tdelay。因为对设计人员来说,Tco和Tsetup属于器件特性,无法改变,只有组合逻辑延时可以想办法减少。减少组合逻辑的一个常用技术就是将组合逻辑分为几段,用触发器来存储前一段的计算结果,输出给后一段。各段组合逻辑就像工厂里的人一样是并行作业的,触发器就像存储了前一个人的工作结果给后一个人。
可以看出来,采用流水线的好处是提高主频,坏处是多用了一些寄存器,并且从数据通路上增加了一些延时。
4.时序违例的解决办法?