使用先进技术来加速SoC验证
(1)尽量只保存需要的层次结构的波形而不要总是保存所有芯片的波形
(a)FSDB波形保存
$fsdbDumpvars(1, tb_top);
$fsdbDumpvars(2, tb_top.design_inst);
(b)VPD波形保存
$vcdpluson (level|"LVL=integer",scope*,signal*);
(2)可以指定波形保存的时间来进行波形保存
(a)在VCS运行时参数行进行指定(以FSDB为例)
+fsdb+dumpon+time[+htime ]
+fsdb+dumpoff+time[+htime]
(b)在验证环境中进行指定(以VPD为例)
$vcdpluson; // Enable Dumping
#5 $vcdplusoff; //Disable Dumping after 5ns
测试场景和结果
为了能找到最适合我们验证环境的性能仿真模式(包括编译、执行和仿真),以使得我们能得到最大的性能提升增益,我们定义了三种场景模式进行测试,三种模式是:不保存波形、保存FSDB波形和保存VPD波形。然后每种模式下我们还会分为做覆盖率收集和不做覆盖率收集两种情况。
在模式1(不保存波形中)我们有四个基础场景,然后针对着四个基础场景,来进行了如下的组合,编译:是否开启快速编译,运行是否开启debug_all/debug_pp,是非开启覆盖率ALP,共扩展运行为24个场景。
在模式2(保存vpd波形)针对两个基础场景,选择是否开启和模式1类似的参数,同时还选择是否进行vpd波形ALP,总共运行16个场景。
模式3(保存fsdb波形)针对两个基础场景,在进行和模式2类似的组合之后还组合了是使用verdi3进行波形并行保存还是FSDB ALP,用于比较二者的性能差别。
模式1下各场景仿真性能比较
模式1下的性能比较如表3所示,从表3的运行结果可以看到快速编译有10%~40%的性能提升,多核技术的使用有最多20+%的速度提升,使用了性能参数之后整体仿真有最大20%的性能提升。

模式2下各场景仿真性能比较
在模式2下的各场景性能比较如表4所示。
(1)不做覆盖率分析
快速编译会有最多2倍左右的编译时间提升,并行VPD保存会有最多20%的仿真时间提升。对于内存空间最多有1.5倍的虚拟内存空间减少以及3倍的memory空间减少。
(2)做覆盖率分析
快速编译会有大概2倍左右的编译时间提升,就总的仿真时间,大概提升1%左右。
多核并行VPD保存以及并行覆盖率分析对于正常用例仿真时间有1%~9%的提升,会有2倍~3倍的内存使用减少。
评论