数字电子技术

亚稳态与跨时钟域

10 分钟

第一章埋下的雷:亚稳态

讲 D 触发器时我们说过:输入必须在时钟沿前后各稳定一小段(建立时间、保持时间),否则触发器可能进入亚稳态——输出卡在不高不低的电平上犹豫,几十纳秒后才倒向一边。同一芯片内部时钟统一,好办;可一旦信号来自「另一个世界」——按键、传感器、另一块时钟不同的芯片——违反时间要求几乎不可避免。

真实案例:一次按键,两次计数

按键信号和你板子上的时钟毫无关系。如果按键恰好在时钟沿附近变化,触发器输出可能抖着进入亚稳态,后面两级电路一个读到 1、一个读到 0——按一次键,计数器跳了两下。航天史上真有探测器因为跨时钟域信号没处理好,在太空中反复复位。

标准解法:打两拍

把一个异步信号先送进一个触发器,它的输出再送进第二个触发器,后面的电路只认第二级的输出。第一级就算进入亚稳态,也有一个完整时钟周期的时间「冷静下来」,轮到第二级采样时基本已经稳定。这不能消灭亚稳态,只是让出事的概率低到亿万年一遇——工程上这就够了。

常见误区:同步器不是滤波器,它不纠正毛刺,它解决的是「采样的时机不对」。

练一练:用「两个人对表」打比方,说说为什么外来信号直接用时钟采样可能出错,打两拍为什么能缓解。

小纸条

说出处理按键这类异步输入信号的标准做法。

登录 后可看答案