一、数组仿真说明
1.数组在c仿真可能出现堆栈空间不够的问题
如果指定数组过大,可能导致C仿真失败,这种情况建议使用指针,然后使用malloc进行分配;
如果指定数组过大,导致C仿真失败,可以使用增加 C/C++ 代码开发中的内存资源的标准方法是使用连接器选项增大堆栈大小
例如以下选项将堆栈大小显式设置为
-Wl,--stack,10485760。在 Vivado® HLS 中可转至"Project Settings" → "Simulation" → "Linker flags"来应
用此类选项,或者还可作为 Tcl 命令的选项来提供此类选项:
csim_design -ldflags {-Wl,--stack,10485760}
cosim_design -ldflags {-Wl,--stack,10485760}
2.数组在c仿真中可能出现数组越界问题
二、数组综合
1.进行综合。而在设计内部,大小小于 1024 的数组将作为 SRL 来综合。大小大于 1024 的数组将综合到块 RAM、
LUTRAM 或 UltraRAM 中(取决于最优化设置)。
2.数组访问通常会造成性能瓶颈。作为内存来实现时,内存端口的数量会限制对数据的访问。数组初始化如未谨慎执
行,则可能导致 RTL 中不必要的长时间复位和初始化。