增量编译
第一次是全部编译2200文件。
第二次编译采用了增量编译,但重新编译的文件也有1800个。
在第二次编译之前 没有做任何修改。
但compile log 里面说
This module or some inlined child module(s) has/have been modified.
跑过好多次,重新编译的文件基本都在1800左右。
请问各位大神们,这个病症的原因?
VCS仿真是吧?建议用三步仿真方法(使用vlogan,vhdlan),把文件编译成library
我研究研究你说的方法。
感谢分享,正愁这个问题呢,回头试试
你的问题和我的问题有相似之处?
但compile log 里面说
This module or some inlined child module(s) has/have been modified.
在vcs里面用什么参数才能看出,到底是那些地方改变了,才导致recompile
我试了试2楼的方法,我也发现我也有recompile,我怀疑是必要的,因为我vlogan时看log文件里只有parsing什么或者是warning,用vcs编译时才有的recompile,我这里也是比原本的模块数少点,原来大概290+现在大概200+,所以应该没什么问题。
在elaborate里总会有recompile,但是analyze那一步你可以把,之前编译过的库注释掉。例如你把dut编译到一个库里面,然后后面就可以把相应的vlogan和vhdlan注释掉了
嗯,我确实是你说的那么做的,我写了两个脚本,一个就是vlogan DUT 成一个库,另一个是之后要重复做的编译TB和仿真出波形,第一个脚本只需要执行一次,之后就是选case跑第二个脚本
那感觉增量编译对编译来说没有太多的改善。
我是全放在一个filelist里面,都做编译。从增量编译的解释来说,它只是看到有改动的才会重新编译。
我把filelist里面最简单的module都看了一遍,把include, 之类的都删除了,
就剩下简单的verilog code。
再重新第一次编译,在第二次编译的时候看这个module会不会再次编译,
结果,哎,还是再次被编译了。
找了user guide好久也没有找到问题的原因。
最让我感到好奇的是,到了门级仿真的时候,发现每次都会再来一次全编译,
每次都是新的一样。
在compile.log里面也找不到 increment 的关键字了,说明压根就没有用到增量编译。
几万的文件每次都是一次一次的再来一遍。
确实不明白这个的原理