控制和同步器件启动 - 2023.2 简体中文

Versal 自适应 SoC 硬件、IP 和平台开发方法指南 (UG1387)

Document ID
UG1387
Release Date
2023-11-15
Version
2023.2 简体中文

器件完成配置后,器件将按顺序经历一系列事件并完成配置,随后进入正常工作状态。大部分配置序列中,最终步骤之一是断言全局置位复位 (GSR) 无效,随后断言全局使能 (GWE) 信号无效。在此过程中,设计处于已知的初始状态,随后经释放即可正常工作。

如果此释放点尚未同步到给定时钟域,或者如果时钟运行速度超过安全释放 GWE 的速度,那么部分设计可能会进入未知状态。对于某些设计,这无关紧要。而对于其他设计,这可能导致设计不稳定或者以错误方式处理初始数据集。

如果设计必须以已知状态启动,AMD 建议您采取行动,采用如下任一方法启动同步流程:

  • 在设计的关键部分(例如,状态机)上使用时钟使能和/或局部复位(已同步)来确保这些设计部分的启动可控且已知。
  • 使用含时钟使能功能的例化时钟缓冲器组件。

    启用设计时钟前,延迟执行复位释放操作,且延迟的周期数按需增加。以下示例演示了如何在释放复位后延迟首个设计时钟沿。通过在同步器寄存器上设置 ASYNC_REG=TRUE,所有寄存器都将布局在单个 slice 中,因此无需受全局时钟资源驱动。为防止同步器时钟上发生时钟缓冲器插入,请在输入时钟端口上使用 CLOCK_BUFFER_TYPE=NONE 属性。

    图 1. 复位安全时钟启动的同步和延迟示例

  • 使用 MMCM 时,可以从 Clocking Wizard 中选择Safe Clock Startup(安全时钟启动)选项,以确保只有在设计时钟稳定可靠之后才能启用设计时钟。

    以下示例显示了 MMCM LOCKED 信号的同步阶段,该信号已连接到 BUFGCE 的 CE 管脚,此管脚用于驱动用户逻辑。第二个 BUFGCE 已并行连接到高扇出 BUFGCE(用户时钟),专用于控制 BUFGCE/CE 管脚的逻辑。此拓扑结构有助于在 BUFGCE/CE 上实现时序收敛,因为它可最大限度减小同步器与 BUFGCE 管脚之间的时钟偏差。

    图 2. MMCM 安全时钟启动示例

    提示: 如果 MMCM 补偿模式设置为 BUF_IN,那么来自 CLKOUT0 的所有时钟都将与反馈时钟组合,并使用相同的 CLOCK_ROOT。如果由此导致在 BUFGCE/CE 上出现时序违例,请仅在高扇出时钟与反馈时钟之间创建 CLOCK_DELAY_GROUP 约束。或者,您还可在低扇出时钟信号线上设置 CLOCK_LOW_FANOUT 约束,这将导致负载布局到与 BUFG 和 MMCM 相同的时钟区域内。