1 代码覆盖率说明 一、指令介绍 代码覆盖率分为行覆盖率、条件覆盖率、状态机覆盖率和翻转覆盖率。在 vcs 仿真工具下覆盖率信息存储在.cm 文件中,使用 urg 工具解析、合并和生成报告;在 ncsim 仿真工具下覆盖率信息存储在 icc.data 文件中,使用 iccr 工具解析、合并和生成报告。代码覆盖率指令主要包括编译、运行和生成覆盖率报告三个部分,指令结构大体同功能覆盖率。 为了工具的统一性和方便界面提取,先做如下规定: ➢ 覆盖率数据库文件夹均放在 CovData 目录下,ncsim 生成的放入 ncsim 子目录、vcs生成的放入 vcs 子目录。 ➢ 覆盖率报告均放在 CovReport 目录下,ncsim 生成的放入 ncsim 子目录、vcs 生成的放入 vcs 子目录。 ➢ 每条用例都生成独自的同用例名的覆盖率数据库和覆盖率报告文件夹。 ➢ 最后生成总的覆盖率数据库和覆盖率报告文件夹,名称为 total。 文档指令描述中,{TC_NAME} 表示匹配用例名。 1、vcs 仿真环境 1) 样例 rm -r simv* CovData/vcs/* FcovReport/vcs/* CovReport/vcs/* vcs -lca +v2k -sverilog -cm line+cond+fsm+tgl -cm_dir CovData/vcs/test_1.cm +define+marco=VCS+ test_1.sv ./simv -cm line+cond+fsm+tgl -cm_dir CovData/vcs/test_1.cm +ntb_random_seed=666666 2>&1 |tee log/vcs/test_1.log vcs -lca +v2k -sverilog -cm line+cond+fsm+tgl -cm_dir CovData/vcs/test_2.cm +define+marco=VCS+ test_2.sv ./simv -cm line+cond+fsm+tgl -cm_dir CovData/vcs/test_2.cm +ntb_random_seed=888888 2>&1 |tee log/vcs/test_2.log vcs -lca +v2k -sverilog -cm line+cond+fsm+tgl -cm_dir CovData/vcs/test_3.cm +define+marco=VCS+ test_3.sv ./simv -cm line+cond+fsm+tgl -cm_dir CovData/vcs/test_3.cm +ntb_random_seed=555555 2>&1 |tee log/vcs/test_3.log urg -dir CovData/vcs/test_1.vdb -metric group -report FcovReport/vcs/test_1 -format text urg -dir CovData/vcs/test_2.vdb -metric group -report FcovReport/vcs/test_2 -format text urg -dir CovData/vcs/test_3.vdb -metric group -report FcovReport/vcs/test_3 -format text urg -dir CovData/vcs/*.vdb -metric group -report FcovReport/vcs/total -format text urg ...