1 热点分析
编译选项 -simprofile
1.Compile your design using the -simprofile compile-time option.
Important:
If this is not the first compilation of your design, delete the csrc and simv.daidir directories and simv executable file before this step. Incremental compilation is not yet supported for the unified profiler.
仿真选项 -simprofile time+mem
2.At runtime, you can enter the -simprofile runtime option with a keyword argument or sub-option to specify the type of data VCS MX collects during the simulation. These keyword arguments or sub-options are as follows:
time
The time argument specifies collecting CPU time profile information.
mem
The mem argument specifies collecting machine memory profile information.
noprof
Tells VCS MX not to collect profiling information at runtime. Synopsys recommends entering this runtime option and keyword argument or sub-option instead of simply omitting the -simprofile runtime option.
noreport
Tells VCS MX to collect profile information at runtime but not write the profileReport.html file or the profileReport directory after simulation
2 性能统计
You can capture the CPU resource statistics for compilation and simulation using the -reportstats option.
You can specify this option at compile time as well as runtime or both depending on your requirement.
3 性能优化
如果PLI/DPI/DirectC 这一项占的比例较大,而且是DPI中的uvm_re_match占的时间较多,
可以在编译选项中 加上 +define+UVM_REGEX_NO_DPI 可以大大降低这个部分的时间消耗
当有PLI访问Design时,由于有数据交互,会有不小的仿真性能损失。尤其是当我们使用debug_access+all等方式为整个Desgin开放ACC权限时,性能损失就更大。
其实有的时候,我们只需要少数模块提供ACC权限给PLI就可以了。比如,我们可能只有少数的模块需要force, deposit等等。我们可以使用 +vcs+learn+pli sim option来进行pli tab的学习。当我们把这个仿真选项加上后,再进行用例的回归,就会在用例的run目录下生成一个pli_lean.tab文件,这个文件就指定了跑该条case需要加那些ACC权限。我们可以随便写个脚本把所有测试用例的pli_learn.tab文件merge到一起,相当于求个并集。然后在以后的编译时加上 +applylearn+merge_pli_learn.tab, 就不再需要将debug_access的权限开得很高了。这种方法可以一定程度上提高房展性能。
注:以上总结基于VCS 2018