在实现串口问题:每隔10ms发送一个数据,依次加一
在实现的过程中发送的数据[7:0]Data在综合时被优化掉了前面的位宽,只剩下了一位
解决办法:(*DONT_TOUCH="YES"*) reg [7:0]Data; 强制约束Data变量不被优化
原因:猜测可能设置Data初始化为0时,从0开始计数发送,没有用到后面的位宽,这就导致行为仿真时位宽正确,post-synthesis 功能仿真时位宽被优化掉。
下图为行为仿真时Data的位宽:
下图为增加强制约束时综合后的功能仿真:
在实现串口问题:每隔10ms发送一个数据,依次加一
在实现的过程中发送的数据[7:0]Data在综合时被优化掉了前面的位宽,只剩下了一位
解决办法:(*DONT_TOUCH="YES"*) reg [7:0]Data; 强制约束Data变量不被优化
原因:猜测可能设置Data初始化为0时,从0开始计数发送,没有用到后面的位宽,这就导致行为仿真时位宽正确,post-synthesis 功能仿真时位宽被优化掉。
下图为行为仿真时Data的位宽:
下图为增加强制约束时综合后的功能仿真: