使用先进技术来加速SoC验证

  作者:李响 时间:2013-11-27来源:电子产品世界

  增量编译

  在编译过程中,VCS会创建设计/验证的层次结构,当你重新编译的时候,VCS只会就那些更改的设计单元进行重新编译,这样可以缩短编译时间。现在增量编译选项已经成为VCS的默认选项。

  分区编译 (Partition Compile)

  分区编译是VCS提供的一个比较新的特性。这个特性可以让我们把设计/验证中的实例/模块分成不同的大得区块来编译。这样如果之后只对其中一部分区块相关的文件进行了修改,那么可以重用之前分区编译的数据库来减少其它区块编译的时间,只对修改的区块进行重新编译即可。同时针对验证环境中的package,比如像UVM标准库或者一些算法库,分区编译也可以提前把它们分块编译好,然后这样可以加速验证环境的编译速度。

  运行性能的提升的方法

  在仿真过程中,运行的时间以及内存消耗是单次仿真的主要瓶颈,因此本文会关注在运行过程中如何提升性能,包括如何找到运行过程的瓶颈以及使用多核技术来加速仿真。

  运行性能分析工具

  VCS提供了用于分析性能的Profile工具Simprofile,使用在仿真过程中生成时间/内存消耗的报告,然后可以通过对于报告的分析来找到限制当前仿真性能的瓶颈。使用方式:
  编译:%VCS –simprofile –lca –f filelist.f …
  运行:%simv –simprofile time|mem

  一般在运行后会自动生成名为simprofile_dir的报告目录,也可以后处理生成报告:
  %profrpt –output_dir simprofile_dir –view time_all|mem_all

  Simprofile会默认生成基于HTML的报告,然后可以进行选择查看相关的性能选项(支持模块/功能/DPI/PLI/约束/覆盖率等),同时支持对多次仿真的报告进行比较。

  多核仿真技术

  VCS提供了多核仿真技术用于使用服务器的物理多核来加速仿真。使用多核技术可以把一次仿真的不同部分分配到多个物理运算单元上以达到加速仿真的目的。现在提供了两种多核模式:应用级并行技术(ALP)和设计级并行技术(DLP),ALP/DLP以及二者的组合通过多核CPU来优化仿真进程。

  应用级多核技术(ALP)

  应用级多核技术(ALP)是把按照应用把验证的不同部分(Testbench、SystemVerilog断言、覆盖率统计、波形保存等等)放到多个处理核上去做并行运行。

  例如:在一个4核服务器上我们可以把覆盖率统计放到第一个核上,把断言检测放到第二个核上,把波形保存放到第三个核上,剩下的仿真放到最后一个核上。结果会看到仿真性能可以得到很大提升。表1是ALP支持的开关参数以及推荐的使用示例

  如果VCS使用了ALP+fsdb多核(+mtfsdb),那么会在控制台看到如下打印:
  *Novas* : Multi-Thread VCS dumping is enabled

  同时Verdi3自动支持对FSDB进行并行保存,如果使能了并行保存,那么会有如下信息:
  *Novas* : Enable parallel dumping

  设计级多核技术(DLP)

  DLP允许我们可以把一个大的设计分成多个区块,然后把不同的区块放入不同的计算核去运行。DLP的一般会根据profiler的报告结果以及设计部件之间的相关性分析来做划分。把划分写入一个配置文件中,然后把这个配置文件读入VCS进行仿真,比如:
  %vcs test.v –parallel+design=partition_cfg.cfg

  同时DLP还支持自动分区划分。考虑到DLP的适用情况以及进度,我们的项目上暂时没有使用,会在后继的项目中进行尝试。

  其他进行性能加速的模式

  Debug参数

  VCS支持-debug_pp/–debug/–debug_all参数,其中-debug_pp用于只进行波形保存后处理模式,而debug用于交互式,debug_all交互式仿真同时可以开启单步调试模式,不同的调试粒度带来更多方便的同时,也会带来性能的消耗。

  对于前期testbench开发,建议开启debug_all/debug参数,用于我们自己的验证环境的调试以及单步/断点调试等;当验证环境已经稳定以后,目的是进行DUT的验证一般就只开启debug_pp/debug来进行波形保存之后再调试。进入回归测试后,主要依赖验证环境中的检查器来做检查,当发现错误的时候才会打开debug_pp或者debug/debug_all来进行进一步的调试。

  波形保存的方法

  在影响仿真的性能参数中,文件I/O是占很大比重的一部分,所以对于性能的提升,可以从减少磁盘I/O读取来入手,比较多的磁盘I/O访问操作就是波形保存的动作。

1 2 3 4

关键词: SoC Synopsys GPU VCS 仿真 201312

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版