最近使用vivado HLS工具模仿DAC比赛写了一段3×3卷积的代码,但在功能测试csim时,出现以下错误:
在其他博客中看到出现此错误最可能原因是数组访问越界,或者内存不足,经过检查之后(将其余全部代码注释,仅剩声明数组代码,仍然csim失败)访问越界被排除,以下是我设置的输入参数以及开辟的数组,实验发现一旦输入维度增大则cim直接失败。
当在Linker Flags中输入以下代码时:
-Wl,--stack,10485760
经过测试,最多可使用的数组大小为:
ap_uint<1> feature_in[10468624];
同时ap_uint所占用的空间大小为1字节,经过计算,在我设置的输入参数下,开辟的数组已经远远超过此范围,通过调整堆栈空间空间可解决此问题。
将此贴作为错误记录。