VCS 在增量编译期间检查 .vcs.timestamp 文件(由 VCS 创建)中的环境变量设置。
如果在源文件中没有任何更改的情况下执行两次连续编译,则 VCS 不会重新编译设计单元,因为 .vcs.timestamp 文件中的源文件和环境设置没有区别。
有时在 LSF 上提交作业时,在两次连续编译之间有与 LSF 相关的环境变量(例如 __LSF_JOB_TMPDIR__、LS_JOBPID)发生变化。
因此,VCS 会重新编译设计单元,尽管设计单元中没有真正的变化。
为避免在两次连续编译之间dut没有任何更改时执行不必要的重新编译,请使用精化选项 -vts_ignore_env=ENV_NAME。
示例用法:
%vcs -vts_ignore_env=__LSF_JOB_TMPDIR__,LS_JOBPID,LSB_JOBRES_PID,LSB_JOBID,LSF_JOB_TIMESTAMP_VALUE,LSB_JOBFILENAME,LSB_DJOB_RANKFILE,LSB_DJOB_HOSTFILE,LSB_CHKFILENAME,LSB_BATCH_JID,LSB_AFFINITY_HOSTFILE,LSB_ACCT_FILE,LSB_JOBRES_CALLBACK,LSB_HOSTS,LSB_MCPU_HOSTS <all_other_options>
此选项 (-vt_ignore_env) 使你能够从 .vcs.timestamp 检查中排除某些环境变量。因此,VCS 避免了重新编译设计。
Following is the output:
The design hasn't changed and need not be recompiled. If you really want to, delete file simv.daidir/.vcs.timestamp and run VCS again.