Stack:no stack trace available, please use hs_err_<pid>.dmp instead.

博主在使用Vivado2020.2进行综合时遇到综合报错,但未明确指出错误位置。经过排查发现,问题出在ILA(Integrated Logic Analyzer)试图捕获一个直接连接到引脚的inout信号上。通过修改代码,避免ILA抓取该信号,成功解决了综合问题。综合后时序冗余仍有17ns,排除了资源和时序问题。博主认为这可能是Vivado的一个软件bug。
摘要由CSDN通过智能技术生成

一、遇见的问题

        这两天遇见了一个怪事,Vivado跑综合的时候报错,但是没有提示错误点在哪里。

        软件版本:Vivado2020.2

 去查看综合运行日志,提示如下:

 

 从网上查找了相关问题,有说关闭windows杀毒软件的,有说卸载Vivado重装的,有说更换Licence的,还有说将文件搬运到一个新的工程的,都没有解决。

二、调试过程: 

        折腾的两个晚上,主要是查找问题点,总结如下。

        首先我通过一个个禁用工程中的文件的形式,一遍一遍的跑了综合,发现是我的I2C 驱动程序部分导致的(禁用了I2C驱动程序,可以跑过综合)。

        然后我将I2C驱动程序中所有的宏定义开关,Debug原语全部都注释掉,再将I2C驱动程序加入工程,发现此时也可以跑过综合,并且跑完程序后时序冗余还有17ns多,显然不是资源时序问题;

        接下来依次将Debug原语还原,逐次跑综合,发现是这个信号导致的。

        找到相关的代码如下:

        sda是一个inout信号

        推测由于sda_out直接连接到引脚,不能使用ILA抓数据;修改如下:

 

此时再使用ILA抓sda_out数据,已经能够跑过综合了!!!!!

三、问题总结

        总体来说,这个综合报错是由于使用ILA抓直连 inout 引脚信号导致的,修改代码可以解决。

至于综合报错,但是不提示错误原因,并且日志显示Stack:no stack trace available, please use hs_err_<pid>.dmp instead.我觉得是软件bug吧。毕竟我就算用ILA抓了50多条信号,时序冗余还有17ns多。。。

        分享一下,希望别人在遇见这个问题的时候有个思路。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值