跨时钟域:单比特同步不等于总线安全
约 14 分钟
异步时钟域之间采样可能让触发器进入亚稳态。两级同步器降低单比特控制信号亚稳态传播概率,却不能保证多位总线各位在同一拍一致,也不能消除事件丢失。
亚稳态与MTBF
触发器在采样窗内输入变化,输出可能暂时停在中间。同步级给其更多恢复时间,平均故障间隔随恢复时间指数改善,但不是概率归零。工艺、频率、数据翻转率和布局都影响MTBF。
窄脉冲
源域脉冲若短于目的时钟周期,目的域可能完全看不到。可把事件变成电平握手、翻转编码或计数器,并确保确认前不重复覆盖。
多位数据
每位各用两级同步会产生撕裂字。稳定数据加请求/确认握手、Gray码计数器或异步FIFO才能保证一致快照。Gray码一次只变一位,仍需同步并约束位间偏斜。
异步FIFO
双口存储器在两域访问,读写指针转Gray码跨域,再比较生成空满。空满标志有本地域延迟,设计必须接受保守边界。
验证
CDC工具检查结构,仿真随机化时钟相位与频率;普通RTL仿真不会自然模拟真实亚稳态,不能只靠波形没X。
同步器寄存器应靠近布局并标专用属性。
练习:为8位数据跨域设计请求确认协议,写出源端数据保持与目的端采样条件。
小纸条
为什么多位总线不能把每一位分别接两级同步器?