HLS:csim由于内存不足而导致仿真失败——SIGSEGV

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

 

        当在Linker Flags中输入以下代码时:

-Wl,--stack,10485760

        经过测试,最多可使用的数组大小为:

ap_uint<1> feature_in[10468624];

        同时ap_uint所占用的空间大小为1字节,经过计算,在我设置的输入参数下,开辟的数组已经远远超过此范围,通过调整堆栈空间空间可解决此问题。

        将此贴作为错误记录。 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值