归档文章借助XPM宏的综合结构比较单比特跨域电路。我更关心一个输入在业务中是什么意思:复位、状态电平和事件脉冲都可能只有一位,但不能因为位宽相同而使用同一种传递约定。
一位信号也有不同的协议
| 输入含义 | 阅读时要确认的问题 |
|---|---|
| 复位 | 断言和释放分别是否与本域时钟同步?时钟尚未运行时怎么办? |
| 持续状态 | 电平保持多久?后级是否只使用同步链的稳定输出? |
| 一次事件 | 两次事件最短间隔是什么?忙时能够拒绝或排队吗? |
图中三项是并列分类,不是复位、电平、脉冲串接的数据路径。
复位释放属于每个时钟域
常见复位结构会区分异步断言与本域同步释放。源复位被解除,并不代表所有目的域已经可以工作。阅读实例时还要核对有效极性、同步级数以及工具识别属性;跨域握手和FIFO还需要自己的复位完成与恢复约定。
原文部分标题把ASYNC与SYNC名称混写,正文又使用另一种缩写。本文不据此复制例化名;实际代码应查目标工具版本的模板。对于普通状态电平和事件脉冲,分别核对 XPM_CDC_SINGLE 与 XPM_CDC_PULSE 的输入、采样和事件间隔条件。
“转成电平”仍然有吞吐限制
原文指出连续两次翻转可能形成新的短脉冲,这个提醒很关键。翻转保存了一个事件的状态变化,并没有增加无限缓存容量。需要逐个保留所有事件时,必须规定源端事件速率、反馈或缓冲策略。
我会怎样复核一个例化
- 记录信号语义和复位后允许的第一笔传输。
- 对照相同器件族、相同工具版本的宏模板,核对端口与参数。
- 查看综合后的同步链识别与CDC报告,再检查约束覆盖;原作者的综合截图不是当前工程结果。
- 用短脉冲、连续事件、停止时钟与复位交错作为待设计的检查场景。
参考链接的UG974宏页面标注UltraScale/UltraScale+;本文用于概念阅读,不声称其模板可直接用于所有7系列或其他器件。本轮没有例化、综合或测试任何宏。
阅读来源
原始阅读材料:FPGA 设计之 跨时钟域(二 - 单比特设计) - 知乎。
本文为原创阅读整理;引用的宏文档有明确器件族与版本,实际实现须核对目标平台。整理日期不是原文发表日期。配图为原创概念示意,未复用原文截图。