接前文
为什么数字IC设计需要setup time
什么是hold time?
hold time是输入数据在时钟触发边沿后必须稳定的所需持续时间。与serup time违例类似,hild time 违例将导致数据亚稳态,新数据可能无法正确存储在触发器中。如下图所示,输出Q1通过快速逻辑,过早地到达FF2的输入D2,这导致hold time违例和亚稳态。
同样,触发器的hold time在时序库中给出。下面是时序库中hold time的示例。
但是,为什么需要hold time?为什么hold time违例会导致亚稳态?
当时钟变高时,输入传输门会关闭,以将输入D与master latch隔离开。然而,在时钟上升边沿后,传输门不会立即关闭,因为传输门本身也需要时间才能关闭。因此,在传输门完全关闭之前,不得更改输入数据。否则,在hold time窗口期间D的更改(因为输入传输门尚未关闭)将影响madter latch中存储的数据(B、C、Z)。如果hold time窗口期间的输入数据更改到达B或C,更改的数据(B/C)和存储的数据(Z)之间的竞争将导致master latch的亚稳态。
当然,如果D中的更改在输入传输门关闭之前到达Z,新数据将存储在latch中。
这就是为什么在时钟上升沿后需要数据保持时间,以便存储的数据可靠地保持在master latch中,而没有亚稳态。