复位端口在器件中用于在应用复位信号时,立即将连接到复位端口的寄存器和块 RAM 还原为初始值。通常 RTL 配置中最重要的操作即选择复位行为。
注释: 对于复位行为,重要的是理解初始化与复位之间的差异。如需了解更多信息,请参阅 初始化行为。
配置命令可用于控制 RTL 复位端口是否存在及其行为,如 RTL 配置 中所述,如下图所示。
图 1. RTL 配置
复位设置包含设置复位极性以及使用同步复位还是异步复位的功能,但更重要的是,它可通过reset选项来控制应用复位信号时要复位的寄存器。
重要: 当在设计上使用 AXI4 接口时,复位极性会自动更改为低电平有效,而与
config_rtl
配置中的设置无关。这符合 AXI4 标准的要求。reset选项包含 4 项设置:
- none
- 在设计中不添加复位。
- control
- 这是默认设置,用于确保将所有控制寄存器复位。控制寄存器即状态机中使用的寄存器,用于生成 I/O 协议信号。此设置可确保设计可立即启动其操作状态。
- state
- 该选项可为控制寄存器添加复位(与control设置相同),并且还可为衍生自 C/C++ 语言代码中的静态变量和全局变量的任意寄存器或存储器添加复位。此设置可确保应用复位后,C/C++ 语言代码中初始化的静态变量和全局变量均复位为其初始值。
- all
- 此设置用于为设计中的所有寄存器和存储器添加复位。
通过 RESET 编译指示或指令可提供更精细的复位控制,如 syn.directive.reset 中所述。静态变量和全局变量均可通过 RESET 指令来添加复位。还可使用 RESET 指令的 off
选项从复位的变量中移除变量。
重要: 使用
state
或 all
复位选项时,考量其对于阵列复位的影响是至关重要的。