1 vcs编译增加覆盖率选项
1)编译的时候增加的选项
VCS增加如下选项
vcs ${vcs_elab_opts} xil_defaultlib.${top} xil_defaultlib.glbl -o ${top}_simv \
-cm line+cond+fsm+branch+tgl \
-cm_name ${top} \
-cm_dir ./${top}.vdb
上面的vcs中包含一些fpga的memory,所以有写xilinx的选项
2)仿真的时候增加的选项
在执行simv文件的时候,添加如下选项
sim:
./${top}_simv ${vcs_sim_opts} -do simulate.do +notimingcheck +nospecify \
-cm line+cond+fsm+branch+tgl \
-cm_name ${top} \
-cm_dir ./${top}.vdb
2 合并覆盖率
在仿真加密算法的时候,为了验证覆盖率,针对每个case都生成了覆盖率的文件,现在需要对覆盖率进行合并,合并的脚本如下:
其中每个sim_cov表示仿真一个case的simv仿真目录,下面包含覆盖率的db文件夹,需要注意的地方,-dbname 需要放在每个子文件夹的签名,放在后面的话,执行容易不过
每个选项的含义:
-noreport 不生成报告文件
脚本如下:
urg -full64 -metric line+tgl+cond+fsm+branch -noreport -warn none -dbname merged/simv_merge.vdb \
-dir sim_cov1/tb_top.vdb \
-dir sim_cov2/tb_top.vdb \
-dir sim_cov3/tb_top.vdb \
-dir sim_cov4/tb_top.vdb \
-dir sim_cov7/tb_top.vdb \
-dir sim_cov6/tb_top.vdb
3 合并后的覆盖率查看
执行如下脚本:
dve -cov -dir simv_merge.vdb &