1. 前言
当我们的验证环境比较大的时候,尤其是soc仿真环境,编译一次可能就需要数小时,验证阶段我们很可能只是修改了我们的vseq或者checker,但是需要全部重新编译一次,又需要花费数小时,为了减少来回的迭代时间,减少不必要的重复编译,vcs userguide里面有提到分块编译的方法,经过笔者实测,可用并且效果明显,本文介绍一下flow,然后对比一下效果。
2. 分块编译(partition compile)
分块编译是将单线程编译的工作,拆分成多个小的子线程,去并行执行,从而达到减少编译时间的目的,另外,在修改了部分代码重新进行编译的时候,也只需要编译修改代码的部分,其他的不需要重新编译,进一步减少了编译的时间。
分开编译分为:自动分块和手动指定两种方式。
2.1 自动分块编译 (Autopartitioning)
这种方式使用简单,只需要加上编译option:-partcomp即可,如果是多核系统,也可以加上option: -fastpartcomp=jx(x=2/3/4,代表线程数/核心数)