尝试在 HDL 代码中消除复位时出现问题 - 2023.2 简体中文

适用于 FPGA 和 SoC 的 UltraFast 设计方法指南 (UG949)

Document ID
UG949
Release Date
2023-11-29
Version
2023.2 简体中文

当最优化代码以消除复位时,注释掉复位声明中的条件无法生成期望的结构,反而导致出现问题。例如,下图显示了 3 个分别使用异步复位的流水线阶段。如果尝试通过注释掉含复位条件的代码来消除其中 2 个流水线阶段的复位条件,则将启用异步复位(rst 的逻辑取反)。

图 1. 注释掉含复位条件的代码

移除复位的最佳途径是创建独立的顺序逻辑过程,其中一个过程用于复位条件,另一个过程用于非复位条件,如下图所示。

图 2. 为含复位和无复位的寄存器创建独立的过程声明

提示: 使用复位时,请确保过程语句中的所有寄存器均已复位。