关于用assign语句赋值的一个很诡异的问题
时间:10-02
整理:3721RD
点击:
整个代码用modelsim验证过没问题,下载到FPGA发现输出不对,然后用signaltap抓波形时发现了问题:我程序的其中一个module用了大量的assign语句,全是靠组合逻辑完成了异或和与的运算(aes算法的S盒运算)。其中end_mux_Aff[5]输出错误,具体逻辑是这样的:
signaltap:
可以看到,在同一时刻,bo[1]=0,b_aB=0,b_aC=1,所以根据关系式assign end_mux_Aff = (~bo[1]) ^ b_aB ^ b_aC; end_mux_Aff[5]应该为0,可采集到的波形却为1,这个问题困扰了我好久了。请问各位大大有遇到过吗,是因为竞争的问题吗,可我在同一时刻采到的等号右边的值没问题啊,为什么赋值赋错了呢?
时序问题啊,你所有的信号是不是都在同一个时钟域呢,如果不是你给他们变到同一个时钟域上
不懂 也在学习中 ,确实有时候出现各种自己想不明白的问题
应该是时序问题吧,采样时信号的输入是正确的,但输出可能还没变化或未稳定,导致输出结果错误