归档教程把快到慢信号区分为持续电平和窄脉冲,这个区分比“打几拍”更靠前。如果一个事件的高电平完整落在两个目的采样沿之间,目的端可能一次也没有观察到它。增加同步级数不能补回已经漏掉的采样。

先决定接收端需要什么

如果接收端只需要知道某个状态当前为高,持续电平同步与逐事件计数是不同需求。如果每个脉冲都代表一条命令,就必须明确最小事件间隔、接收吞吐率以及源端是否能够暂停。

请求保持与反馈确认的概念顺序

这是一种带反馈的事件传递思路,箭头表示协议进度,不能当作完整RTL接线图。请求和确认各自需要跨域同步,复位后的初始状态也必须一致。

展宽、翻转与握手各有边界

脉冲展宽可以增加目的端观察窗口,但多个相邻事件可能合并。把事件编码为翻转也需要足够的传递间隔;目的端还未观察到第一次翻转时,源端再次翻转可能让信息抵消。

AMD XPM_CDC_PULSE 明确给出相邻输入脉冲的最小间隔,并说明测量的是前一个脉冲下降沿到后一个脉冲上升沿。本文不把这一宏的条件当成所有自写脉冲同步器的共同参数;使用其他电路要重新证明它自己的条件。

原文的反馈示例应如何阅读

教程展示了保持请求直到确认、随后清零的结构,也指出紧邻窄脉冲可能被合并。我的阅读结论是:它可以传递“有请求”这个状态,但若业务要求每个事件都保留,就还需要明确busy/ready约定。单个保持位不是事件队列。

四阶段电平握手通常依次经历请求有效、确认有效、请求撤销、确认撤销。源端只有在完整返回空闲后才发下一笔;无法接受这种往返延迟的连续事件,应考虑带容量的计数协议或FIFO,并另外检查溢出条件。

待验证清单

  • 扫描时钟相位、频率比、脉宽与事件间隔,比较已接受事件和目的输出数量。
  • 在busy期间注入新请求,确认接口选择拒绝、排队还是暂停,不能默默合并命令。
  • 检查复位中断一次传输时的恢复策略和输出有效条件。
  • 区分目的输出的电平和单周期脉冲,明确下游消费规则。

本轮只整理阅读边界,没有运行教程代码或验证丢事件率。

阅读来源

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

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