电路仿真后模块消失问题
编写了tb文件进行仿真时,仿真的结果是正确的,但是进行综合后,代码中某一个模块直接消失掉了。这个问题之前也出现过。这次找了一下问题。
一定是因为代码的问题,不是仿真软件综合的锅。
1、顶层例化的时候有没有定义所有的信号,有没有把所有的信号线都连接在一起。
2、会出现一个critical warning 大概说是某个端口出现多重驱动,我们看一下综合后的电路也可以发现,很多信号会直接接地,或者直接拉高。这其实就是由于多重驱动导致的,可以先看一下RTL级文件有没有出现什么多重驱动(某一个端口由不同的线驱动)。warning中告知的错误行数未必是实际上的错误行数,所以还需要自己书写。
3、关于多重驱动的问题,一般还是由于对时序,阻塞非阻塞理解不到位导致的。
不同的always块不能对同一个信号赋值,同一个always块不能再不同的case内对同一个信号幅值。可以转变代码书写思路。规避掉这个问题。