触发器的setup和hold time也是IC设计工程师最常见的面试问题之一。
setup time是什么?
setup time是输入数据在时钟触发边沿之前必须稳定的所需时间。如果数据在此setup time窗口内发生变化,输入数据可能会丢失,因为可能会发生w亚稳态。
什么是亚稳态?当违反setup time和hold time要求时,触发器状态变得不稳定,在不可预测的持续时间后,触发器的状态可以以任何一种方式(1或0)稳定下来。这种现象被称为亚稳态。如下图所示,输出Q1通过缓慢的逻辑,并晚于FF2的输入setup 要求,这导致setup违例和数据丢失。
EDA工具如何知道标准单元中每个触发器的setup time要求?答案是timing library .lib。如果您设计自己的触发器电路,您需要对触发器的时序进行表征,也就是K库,并在芯片实现期间提供此时序库。用于时序表征的工具是Liberate
-Cadence EDA或SyliconSmart-Synopsys EDA。以下是时序库中setup timing的示例。基本上,它是一个查找表,根据输入transition提供不同的setup time。