静态 - 2023.2 简体中文

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

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 简体中文

函数中的静态 (static) 类型在函数调用之间保留其值。硬件设计中的等效行为是寄存变量(触发器或存储器)。如果 C/C++ 语言函数要求变量为静态类型才能正确执行,则在最终的 RTL 设计中它必然属于寄存器。该值必须在函数和设计的调用之间保持不变。

综合后并不是 只有 static 类型会实现为寄存器。Vitis HLS 会判定在 RTL 设计中需要将哪些变量实现为寄存器。例如,如果必须在多个周期内保持变量赋值不变,则即使 C/C++ 语言函数中的原始变量不是静态类型,Vitis HLS 也会创建一个寄存器来保存该值。

Vitis HLS 会遵循静态函数的初始化行为,并在初始化期间对寄存器赋值 0(或任何显式初始化的值)。这意味着 static 变量在 RTL 代码和 FPGA 比特流中初始化。但这并不意味着每次复位信号时都会重新初始化该变量。

请参阅 RTL 配置 以确定有关系统复位的静态初始化值的实现方式。