Vivado XSIM仿真器 前仿真、后仿真寄存器信号输出高阻态

在使用Vivado的XSIM仿真时,由于20位计数器在综合后被优化为14位,导致仿真出现高阻Z状态且复位无效。通过添加(*DONTTOUCH*=TRUE*)注解防止优化,解决了问题,但原因仍不明。寻求对优化导致高阻的解释。

想深耕嵌入式?这个专辑值得收藏

MCU、FPGA、工控、传感器一站式学习,实战项目直接抄

因为解决不了modelsim综合后仿真一直报错的问题,只能先用Vivado自带的XSIM仿真,遇到了一个莫名其妙的bug。

在模块中定义了20位的计数器

reg [19:0] cnt;

因为计数器从8192倒序计数到0,综合后寄存器被优化为了14位。在综合后、布线后的行为仿真和时序仿真都显示高阻Z,且复位信号不起作用。

错误原因未知。

解决方法:

在变量定义前声明

(* DONT_TOUCH= "TRUE" *) reg [19:0] cnt;

避免被优化。综合后仿真波形正常。

说实话这并不是一个很好的办法...导致高阻的原因也不明确 还希望高人指点

想深耕嵌入式?这个专辑值得收藏

MCU、FPGA、工控、传感器一站式学习,实战项目直接抄

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值