违反时建立并保持时间输出


9

考虑一个具有输入信号X的上升沿触发D触发器,其建立时间为20 ns,保持时间为0 ns。输出是什么?

C是周期为40 ns的时钟信号。

在此处输入图片说明

在第6个上升沿期间,我们看到数据(或X)在从1变为0之前的20 ns(设置时间)内不稳定,因此输出是不可预测的,对吗?

当我问我的教授时,他说触发器的输出将是20 ns之前的输入(X)值,此处为1。

他说的对吗?

Answers:


17

如果触发器的建立时间为20 ns,则意味着数据必须在捕获时钟沿之前至少20ns稳定。类似地,保持时间是时间量,在出现时钟沿后数据必须保持稳定。因此,它们共同定义了一个“ setup-hold-window”,其中数据必须保持稳定。

在此处输入图片说明 如果数据在此窗口内更改/切换,则输出不可预测或亚稳态。

在您的问题中,第6个时钟沿之前的设置窗口中的数据切换表示输出不可预测。


也许您可以纠正您的教授tomo。
Mitu Raj

8
值得一提的是,根据内部延迟,保持时间可能为负。也就是说,对于某些IC,您实际上可以在时钟沿到达之前释放数据。但是仍然存在一个窗口,数据必须在其中保持稳定。
WhatRoughBeast

1
较小的校正:在现代过程中,真正的亚稳定性仅发生在飞秒级的窗口中。在绝大多数情况下,违反设置/保持的情况下,您将看不到亚稳性。在这些情况下,结果实际上是确定性的,但除了输入之外,还高度依赖于温度。我仍然不同意教授的观点,我也同意您的观点,即对于所有意图和目的而言,输出都是不可预测的,但是亚稳态不是问题所在(实际上很少有问题)。
jalalipop

7

你的教授需要减少草药。

由于数据在设置时间内变化,并且由于设置时间是时钟需要稳定数据之前的最短时间,因此无法确定输出是零还是1。实际上,它甚至可能进入亚稳态并振荡。


5

如果数据在建立和保持时间之间稳定,则D锁存器制造商保证D锁存器的输出是可预测的,即数据手册中所述。

如果在设置保持窗口期间数据发生变化,则输出可能为实数0或1,但制造商未对此进行断言。

它只能是实数0或1,不能保证。输出可能会变为亚稳态。这意味着,除了数据手册中引用的正常传播延迟之外,还可能存在有限且不可预测的额外时间,为此,由该输出驱动的两个门可能会对其是0还是1做出不同的决定。这是一件坏事。


4

如果输入满足建立和保持时间要求,则输出实质上是“保证”的,以反映输入;如果输入满足设置和保持时间要求,则该输出实际上是“保证”的。如果违反设置时间,则无法保证行为或完全可预测,如您所说。

您的教授在某种程度上可能是“可能的”,他可能会表达输出信号很可能最终成为的信号,特别是如果他将建立时间解释为对触发器行为的确定性描述,而不是最低要求,可能会从一组条件变化到下一组条件。但是您的解释和直觉确实可以达到目标。建立和保持时间通常用于表示最小值/最大值,对于这些最小值/最大值,可以在过程/电压/温度变化中可靠地预测其行为,并且只要输入违反它们,就不能可靠地预测输出。

如果触发器从输入到时钟沿生效的时间通常有20ns的延迟,那么输出最有可能最终成为输入在时钟沿之前“大约”(最多)20ns的延迟,如您的教授所建议。但是为设备指定的唯一一件事是,如果满足建立和保持时间,则输出将跟随输入。

因此,我想换句话来说,你们俩都可能在一定程度上是对的,但是您的解释是100%对的,而您教授的回答只是“可能”对,而他的回答对的程度是-正如您所说-不可预料的。

(当然,从实践意义上而非学术意义上讲,您只会在设计中使用该答案,在该设计中,在该时钟周期内将输出设为“大约1”是可以接受的,而没有任何说明这种可能性的大小或位置没有任何可能使触发器“暂时”进入亚稳状态的实际后果。这些应用程序往往更为罕见。)


3

输出将是未知的,模拟器将通过将输出值设置为“ X”来反映此情况。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.