pragma HLS reset - 2021.2 Chinese

Vitis 高层次综合用户指南 (UG1399)

Document ID
UG1399
Release Date
2021-12-15
Version
2021.2 Chinese

描述

用于为特定状态变量(全局或静态)添加或移除复位。

复位端口用于在应用复位信号时,立即将连接到复位端口的寄存器和块 RAM 还原为初始值。config_rtl 设置可用于控制 RTL 复位端口是否存在及其行为。复位设置包含设置复位极性以及指定使用同步复位还是异步复位的功能,但更重要的是,它可通过复位选项来控制应用复位信号时所复位的寄存器。如需了解更多信息,请参阅 控制复位行为

通过 RESET 编译指示可提供更大的复位控制。对于静态变量或全局变量,RESET 编译指示用于显式添加复位,或者可通过 off 关闭此编译指示来从复位中移除变量。当设计中存在静态阵列或全局阵列时,该选项非常实用。

语法

将 C 语言源代码中的编译指示置于变量生命周期边界内。

#pragma HLS reset variable=<a> off

其中:

variable=<a>
指定 RESET 编译指示应用到的变量。
off
指示针对指定变量不生成复位。

示例 1

此示例会为 foo 函数中的 a 变量添加复位,即使全局复位设置为 nonecontrol 也是如此。

void foo(int in[3], char a, char b, char c, int out[3]) {
#pragma HLS reset variable=a 

示例 2

foo 函数中的 a 变量移除复位,即使全局复位设置为 stateall 也是如此。

void foo(int in[3], char a, char b, char c, int out[3]) {
#pragma HLS reset variable=a off