阵列初始化和复位 - 2021.2 Chinese

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

Document ID
UG1399
Release Date
2021-12-15
Version
2021.2 Chinese
阵列通常定义为静态变量,这暗示所有元素都将初始化为 0,且阵列通常作为块 RAM 来实现。使用复位选项 stateall 时,会强制作为块 RAM 实现的所有阵列都在复位后返回初始化状态。这可能导致 RTL 设计中出现 2 个非常不利的条件:
  • 不同于上电初始化,显式复位要求 RTL 设计对块 RAM 中的每个地址进行迭代以设置该值:如果 N 较大,这可能导致时钟周期数量显著增加,并增加实现复位所需的面积资源。
  • 在设计中每个阵列中都添加复位。

为防止在每个此类 BRAM 上添加复位逻辑,并导致复位 RAM 内所有元素所需的周期开销,请指定默认 control 复位模式,并使用 RESET 指令来识别要复位的个别静态变量或全局变量。

或者,可使用 state 复位模式,并使用 RESET 指令 off 选项来识别要从中移除复位的个别静态变量或全局变量。