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