因为解决不了modelsim综合后仿真一直报错的问题,只能先用Vivado自带的XSIM仿真,遇到了一个莫名其妙的bug。
在模块中定义了20位的计数器
reg [19:0] cnt;
因为计数器从8192倒序计数到0,综合后寄存器被优化为了14位。在综合后、布线后的行为仿真和时序仿真都显示高阻Z,且复位信号不起作用。
错误原因未知。
解决方法:
在变量定义前声明
(* DONT_TOUCH= "TRUE" *) reg [19:0] cnt;
避免被优化。综合后仿真波形正常。
说实话这并不是一个很好的办法...导致高阻的原因也不明确 还希望高人指点
在使用Vivado的XSIM仿真时,由于20位计数器在综合后被优化为14位,导致仿真出现高阻Z状态且复位无效。通过添加(*DONTTOUCH*=TRUE*)注解防止优化,解决了问题,但原因仍不明。寻求对优化导致高阻的解释。

1318

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



