归档教程从打拍和延迟采样介绍慢时钟域到快时钟域的传输。阅读后,我先给跨域信号贴上三个标签:持续状态、一次事件,还是需要保持一致的数据字。它们需要的接口约定不同,不能仅靠两个时钟的频率大小判断方案。

同步链负责降低风险,事件协议负责不漏信息

一个源端寄存的状态电平,经目的时钟域同步链传递后,目的逻辑才使用稳定后的结果。同步链给潜在亚稳态更多恢复时间,但不是零风险保证,也不能修复所有毛刺或过短的有效窗口。

慢到快电平同步的概念路径

图只展示持续状态的路径。源寄存器使用源时钟,后面的同步寄存器使用目的时钟;它不表示每个源时钟周期的数据都被完整搬运。

我会以 AMD XPM_CDC_SINGLE 的输入采样条件核对稳定窗口,而不是把“目的时钟更快”当作充分条件。文档所示宏还有可配置同步级数和可选源寄存器,应按选定器件与工具版本核查。

多位数据需要一个共同的有效边界

教程用同步后的使能去采样数据。理解这类方案时,关键不是节省了多少寄存器,而是源数据在整个传递、捕获窗口内是否保持稳定,目的端何时可以读取它,源端何时可以更新下一字。

对于需要整体一致的总线,我不会把每一位独立打拍当作通用解决方案。控制信号同步后的延迟也不是一条固定的总线稳定时间保证;还要检查数据路径、接收协议及相关约束。无法给出稳定窗口时,应考虑完整握手或异步FIFO。

原文中不直接沿用的结论

原文有按同步级数描述成功百分比的说法。本文不沿用该数值:可靠性还与器件、频率、输入变化率和布局有关。本轮没有计算MTBF,也没有运行RTL仿真。教程另有通过检测慢时钟边沿并计数来选择采样位置的示例,它依赖特定时钟和数据时序,不能直接推广为任意异步接口。

下一次实现前的记录

  • 给每个跨域信号明确语义、源寄存器、目的时钟和稳定窗口。
  • 用最小脉宽与不同相位检查事件是否能被识别;单纯电平同步不保证逐事件计数。
  • 对多位数据写出源保持与目的捕获条件,检查复位期间是否允许发起传输。
  • 检查CDC报告和同步链布局;RTL波形正常不代表物理亚稳态风险已被测量。

阅读来源

原始阅读材料:4.2 Verilog 跨时钟域传输:慢到快 | 菜鸟教程。

本文为原创阅读整理;引用的宏文档有明确器件族与版本,实际实现须核对目标平台。整理日期不是原文发表日期。配图为原创概念示意,未复用原文截图。