笔记本 Logo

CDC 同步器 (Synchronizer) 与 异步桥 (Async Bridge) 的关系Orig

作者: 走来走去 | 时间: 2026-11-06 11:07:49 | 访问: 13 [更新状态: 成功 (+1)]
[i=s] 本帖最后由 走来走去 于 2026-11-6 11:20 编辑 [/i]

================================================================================
                CDC 同步器 (Synchronizer) 与 异步桥 (Async Bridge) 的关系
================================================================================

1. 核心关系:组件 vs. 系统
--------------------------------------------------------------------------------
CDC 同步器和异步桥是紧密相关但层级不同的两个概念。简单来说:
- **CDC 同步器**是构建异步桥的“砖块”或“基础组件”。
- **异步桥**是使用这些砖块搭建起来的完整“功能模块”或“子系统”。

-----------------------------------------------------------------------------------------------------
| 特性         | CDC 同步器 (Synchronizer)        | 异步桥 (Async Bridge)                           |
|--------------|----------------------------------|-------------------------------------------------|
| **层级**     | 门级/寄存器级 (Low-Level)        | 模块级/子系统级 (High-Level)                    |
| **主要目标** | 消除单比特信号的亚稳态           | 实现数据完整性、流控、高吞吐量传输              |
| **包含内容** | 2-3 个触发器,可能涉及格雷码编码 | FIFO RAM, 指针逻辑, **多个 CDC 同步器**, 状态机 |
| **设计重点** | MTBF (平均无故障时间) 计算       | 带宽匹配、延迟、面积、功耗、死锁避免            |
| **工具检查** | SpyGlass CDC, JasperGold         | 同样需要 CDC 检查,但更侧重功能仿真和形式验证   |
-----------------------------------------------------------------------------------------------------

2. 详细对比
--------------------------------------------------------------------------------

A. CDC 同步器 (Component)
   - 它是底层的电路结构,通常由几个触发器(Flip-Flops)组成。
   - **作用**:解决单个比特信号在跨时钟域时的**亚稳态(Metastability)**问题。
   - **例子**:打两拍(2-Flop Sync)、握手信号发生器、格雷码指针同步器。

B. 异步桥 (System/Module)
   - 它是一个完整的功能模块,内部包含了多个 CDC 同步器、存储器(如 RAM)、
     控制逻辑和数据通路。
   - **作用**:实现不同时钟域之间**大量数据**或**复杂协议**的安全、高效传输。
   - **例子**:异步 FIFO、AXI 跨时钟域桥接器、UART 接收同步模块。


3. 类比理解
--------------------------------------------------------------------------------
如果把数据传输比作**跨国物流**:

- **CDC 同步器**就像是**海关的检查员**。
  他们负责检查每一个包裹(比特信号)是否合法、稳定,防止危险品(亚稳态)
  进入国内。

- **异步桥**就像是整个**国际物流中心**。
  它不仅包含海关检查员(CDC 同步器),还包含仓库(FIFO RAM)、调度系统
  (控制逻辑)、卡车(数据总线)等。物流中心利用检查员来确保所有进出货物的安全。


4. 具体构成关系:异步桥内部如何使用 CDC 同步器?
--------------------------------------------------------------------------------
一个典型的异步桥(如异步 FIFO)内部必然包含 CDC 同步器:

-----------------------------------------------------------------------------------------------------------------------
| 异步桥的内部模块     | 使用的 CDC 同步器类型     | 作用                                                             |
|----------------------|---------------------------|------------------------------------------------------------------|
| 写指针(Write Pointer)| 格雷码 + 打两拍同步器     | 将写指针从写时钟域同步到读时钟域,用于判断“满”状态。           |
| 读指针(Read Pointer) | 格雷码 + 打两拍同步器     | 将读指针从读时钟域同步到写时钟域,用于判断“空”状态。           |
| 数据总线(Data Bus)   | 不直接同步,通过 FIFO 缓冲| 数据本身存储在双端口 RAM 中,避免了直接跨域传输多比特数据的风险。|
| 控制信号(Req/Ack)    | 握手同步器                | 如果异步桥使用握手协议而非 FIFO,则使用握手同步器来协调读写。    |
-----------------------------------------------------------------------------------------------------------------------

5. 在你提供的报告文件中的体现
--------------------------------------------------------------------------------

在你的 `STC_max_delay.rpt.txt` 中,路径终点是一个名为 `cdc_dff_array` 的结构:

  Endpoint: .../U_SYNC/.../cdc_dff_array_0__genblk1_u_sync_reg/u_dont_touch_cell

- **这里的 `cdc_dff_array` 就是一个 CDC 同步器**(具体来说是打多拍的同步器阵列)。
- **这个同步器所属的更大模块** `U_DW_apb_uart_rx/.../U_SYNC` 就是一个**异步桥**
  的一部分。它负责将外部 UART 的异步数据安全地引入内部 SCP 时钟域。


6. 总结
--------------------------------------------------------------------------------
你不能只用一个 CDC 同步器来传输一个 32 位的数据总线(因为会有 skew 问题),
但你可以用**四个** CDC 同步器(配合格雷码)来同步异步 FIFO 的指针,从而构建
一个能安全传输 32 位数据的**异步桥**。

因此,**CDC 同步器是异步桥的核心安全基石**,而异步桥是 CDC 技术在系统层面的
完整应用。

================================================================================

Solvnet Plus    Cadence ASK    SIEMENS(Calibre) Customer Center
回到首页 , 时钟 , 联系信箱:yzbox#163.com(把#换成@) 沪ICP备2026057371号-1 沪公网安备31011702892617号 沪公网安备31011702892617号