代码覆盖率测试一般包括行覆盖,条件覆盖,FSM覆盖,翻转覆盖率等,不是所有的都要达到100%。line、branch和FSM要达到100%,condhe和tooggle很难达到100%,不能达到100%的代码,需要进行分析,人工排除掉。 代码可参考IC仿真makefile模板
编译时加入命令:
-cm line+tgl+cond+branch+assert+fsm -cm_line contassign -cm_tgl mda
run时加入命令:
-cm line+tgl+cond+branch+assert+fsm -cm_name $(case)
-cm_name $(case) 在查看多个case的覆盖率时必须加,否则产生的新的覆盖率文件会被覆盖掉
VCS 会在工作目录下默认生成simv.vdb 文件夹,其中包含了代码覆盖率相关的信息,可以用以下命令来查看代码覆盖率:
dve -cov-covdir simv.vdb &