异步复位同步器 - 2023.2 简体中文

Vivado Design Suite 用户指南: 设计分析与收敛技巧 (UG906)

Document ID
UG906
Release Date
2023-10-19
Version
2023.2 简体中文

在下图中显示了基于 CLEAR 同步的异步复位同步过程,后一张图中显示了基于 PRESET 同步的异步复位同步过程。FF1 单元分别连接到已同步的清除 (CLEAR) 信号或预置 (PRESET) 信号,可根据 clk_a 以安全方式对这两个信号的断言无效进行时序约束。请注意,在异步复位同步器内不得混用含 CLEARPRESET 的触发器。

图 1. 基于 CLEAR 的异步复位同步器

图 2. 基于 PRESET 的异步复位同步器

通常建议避免在目标时钟域内包含多个复位信号的同步。这意味着从源时钟域到目标时钟域的复位不应存在任何扇出。此建议可防止目标时钟域在不同时间解复位从而导致设计处于未知状态。不遵循此建议会导致从发送触发器到目标时钟出现严重的 CDC-11 扇出违例。

但在某些涉及 FIFO Generator IP 的场景中,可在目标时钟域内安全进行多次复位信号同步。FIFO Generator 将异步进入复位状态,并脱离同步。它会对块 RAM 应用真正的同步复位,但 FIFO 会收到异步复位。只要设计使用逻辑的 wr_rst_busy 信号来保持数据流,就不会出现部分逻辑解复位而部分逻辑仍处于复位状态的状况。

AXI 接口使用 5 个 FIFO Generator IP 来同步每个目标时钟域中的复位,这也是构造安全的复位电路的另一个示例。在可放心对复位信号进行多次同步的场景中,可忽略 CDC-11 违例。

下图显示的是安全复位同步的示例,其中同一个目标时钟域中涉及 2 个 FIFO Generator。

图 3. 安全复位同步示例