最近使用vivado HLS工具模仿DAC比赛写了一段3×3卷积的代码,但在功能测试csim时,出现以下错误:

在其他博客中看到出现此错误最可能原因是数组访问越界,或者内存不足,经过检查之后(将其余全部代码注释,仅剩声明数组代码,仍然csim失败)访问越界被排除,以下是我设置的输入参数以及开辟的数组,实验发现一旦输入维度增大则cim直接失败。


当在Linker Flags中输入以下代码时:
-Wl,--stack,10485760
经过测试,最多可使用的数组大小为:
ap_uint<1> feature_in[10468624];
同时ap_uint所占用的空间大小为1字节,经过计算,在我设置的输入参数下,开辟的数组已经远远超过此范围,通过调整堆栈空间空间可解决此问题。

将此贴作为错误记录。
在使用VivadoHLS进行3×3卷积代码实现时,遇到csim功能测试失败的问题。错误可能源于数组访问越界或内存不足。经过排查,访问越界已被排除。通过增加LinkerFlags的堆栈空间设置(-Wl,--stack,10485760),发现最大支持的数组大小为ap_uint<1>feature_in[10468624],并确认了ap_uint占用1字节空间。调整堆栈大小能解决此问题。
2237

被折叠的 条评论
为什么被折叠?



