时钟域交叉(Clock Domain Crossing,CDC)是指信号从一个时钟域跨越到另一个时钟域的传输过程。现代 SoC 中,不同模块往往工作在各自独立的时钟频率或相位下,CDC 信号若不经过正确处理,会导致亚稳态、数据丢失或功能错误,是数字芯片验证中的高风险领域。
CDC 问题的根源在于信号变化的时刻相对于目标时钟域是随机的。当建立时间和保持时间不满足时,触发器输出会进入亚稳态——电平可能停留在 0 与 1 之间的不确定值,且恢复到稳定电平的时间不可预测。
常见的 CDC 同步技术有四类:
双级同步器(Two-Flop Synchronizer):在目标时钟域串联两级触发器,将亚稳态概率降低至可忽略水平,适用于单比特控制信号。
握手协议:发送方将数据稳定后发出请求信号,接收方采样后返回应答信号,双方通过握手完成跨时钟域数据传输,适用于多比特控制信号。
异步 FIFO:使用格雷码指针和双级同步器实现跨时钟域的读写指针传递,适用于批量数据传输场景。
MUX 隔离:由同步后的使能信号控制多路选择器,在使能同步完成前持续回送原值,从而只在数据稳定期采样;前提是多比特数据在接收时钟域能稳定足够多拍,否则仍需改用异步 FIFO。
验证路径分两条:静态 CDC 检查通过分析 RTL 结构识别 CDC 路径,检出同步器缺失、组合逻辑传播、重汇聚(Reconvergence)等结构性问题;动态仿真在 CDC 路径上注入随机抖动模拟亚稳态行为,验证同步器的功能正确性。
思尔芯的数字前端 EDA 方案覆盖 CDC 验证的多个环节。
芯神匠 Genesis:可在 RTL 编码前搭建 SoC 虚拟原型,配置多时钟域拓扑和时钟频率关系,运行软件负载评估跨时钟域交互对系统性能的影响。
芯神驰 PegaSim:软件仿真承接位于静态 CDC 结构检查下游的验证环节,支持在 CDC 路径上运行定向激励、注入抖动并观察 X 态传播,覆盖同步器功能正确性与亚稳态经同步后的下游行为等动态可观测项;同步器缺失、重汇聚、组合逻辑传播等结构性缺陷,则交由静态 CDC 检查工具检出。
芯神鼎 OD:硬件仿真以全可视、调试能力强的特点,适合大型 SoC 中 CDC 路径的系统级深度验证,可在多时钟域下长时间连续运行(硬件仿真频率远低于真实芯片,但可覆盖远超软件仿真的激励长度与并发场景),捕获偶发的 CDC 失效。
芯神瞳 Prodigy:FPGA 原型验证运行速度快、性能高,支持多时钟域的真实硬件运行环境,可在流片前于真实软硬件激励下验证 CDC 同步电路的行为(受 FPGA 时钟资源限制,硅片级的时钟抖动与偏斜关系未必完全复现,需与静态检查互为补充)。
CDC 问题是 SoC 验证中公认的高风险领域。根据 Wilson Research Group / Siemens EDA 2024 功能验证研究,95% 的 IC/ASIC 设计包含多个异步时钟域。CDC 相关的功能缺陷是导致芯片重制的常见原因之一。主流 EDA 厂商均提供专门的 CDC 验证工具;思尔芯的数字前端 EDA 方案通过软件仿真、硬件仿真和 FPGA 原型验证的多层次手段,帮助客户在流片前充分覆盖 CDC 风险。
最后更新:2026-09-24
A:传统仿真基于确定性的时钟边沿对齐,无法模拟亚稳态的随机行为。CDC 失效往往取决于信号到达时间的微小偏差,在仿真中难以复现,需要静态检查结合带随机抖动的动态仿真来覆盖。