代码覆盖率说明(个人总结).docx
11页本文格式为Word版,下载可任意编辑代码覆盖率说明(个人总结) 代码笼罩率说明 一、指令介绍 代码笼罩率分为行笼罩率、条件笼罩率、状态机笼罩率和翻转笼罩率在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 -dir CovData/vcs/test_1.cm -metric line+cond+fsm+tgl -report CovReport/vcs/test_1 -format text urg -dir CovData/vcs/test_2.cm -metric line+cond+fsm+tgl -report CovReport/vcs/test_2 -format text urg -dir CovData/vcs/test_3.cm -metric line+cond+fsm+tgl -report CovReport/vcs/test_3 -format text urg -dir CovData/vcs/*.cm -metric line+cond+fsm+tgl -report CovReport/vcs/total -format 1 text 2) 指令说明 (1)编译 -lca:增加LCA的支持,vcs0812及以后的版本需要,此前的版本不需要。
-cm line+cond+fsm+tgl:增加编译期添加行笼罩率、条件笼罩率、状态机笼罩率、翻转笼罩率信息 -cm_dir CovData/vcs/{TC_NAME}.cm:将编译期生成的笼罩率信息(不包括功能笼罩率)放到CovData/vcs目次中,若目次不存在,将自动创造生成的代码笼罩率数据库文件夹以cm后缀,名称要求同用例名,例:test_1.cm 注:在vcs仿真器下,代码笼罩率信息(行笼罩率、条件笼罩率、状态机笼罩率、翻转笼罩率)存放在cm后缀的数据库文件夹中;功能笼罩率和断言笼罩率存放在vdb后缀的数据库文件夹0中cm后缀的数据库的生成与编译和运行阶段都有关,vdb后缀的数据库的生成仅与运行阶段有关 (2)运行 -cm line+cond+fsm+tgl:增加运行期添加行笼罩率、条件笼罩率、状态机笼罩率、翻转笼罩率信息 -cm_dir CovData/vcs/{TC_NAME}.cm:将运行期生成的笼罩率数据库放到CovData/vcs目次中,若目次不存在,将自动创造代码笼罩率信息将写入以cm后缀的数据库文件夹中,生成的功能笼罩率数据库文件夹以vdb后缀,名称要求同用例名,例:test_1.vdb。
注:在运行期中,-cm_dir命令只能指定代码笼罩率信息存放的数据库文件夹,而以功能笼罩率信息存放的数据库文件夹是不能指定后缀的,且存放路径同代码笼罩率数据库文件夹,因此虽然指定了cm后缀,但生成的功能笼罩率数据库文件夹仍以.vdb后缀 (3)生成笼罩率报告 urg -dir CovData/vcs/{TC_NAME}.cm -metric line+cond+fsm+tgl -report CovReport/vcs/{TC_NAME} -format text:用于生成各个用例的代码笼罩率报告 urg -dir CovData/vcs/*.cm -metric line+cond+fsm+tgl -report CovReport/vcs/total -format text:用于生成总的代码笼罩率报告 其中:-dir用于读入指定目次下指定笼罩率数据库XXX.cm文件夹,通配符 * 表示读入指定目次下全体笼罩率数据库文件夹 -metric用于指定输出笼罩率类型,line表示行笼罩率、cond表示条件笼罩率、fsm表示状态机笼罩率,tgl表示跳转笼罩率。
这里务必和仿真环节相对应,否那么没有该类型的笼罩率信息,urg工具会报错 -report用于指定输出笼罩率报告的路径,每个用例的代码笼罩率报告要求分别输出到同用例名CovReport/vcs/{TC_NAME}的目次下,总的代码笼罩率报告要求输出到CovReport/vcs/total的目次下若指定的目次不存在,将自动创造 -format用于指定输出报告的格式,text表示输出文本格式,不指定那么输出html格式 注:由于指定了其他的笼罩率类型,因此此时在输出功能笼罩率报告时需要添加-metric group否那么不能得到功能笼罩率的报告 2、ncsim指令介绍 1) 样例 2 cov.cmd(ICCR脚本文件) FcovReport/ncsim/$TC_NAME/dashboard.txt FcovReport/ncsim/$TC_NAME/grpinfo.txt rm -r irun* iccr* CovData/ncsim/* FcovReport/ncsim/* CovReport/ncsim/* IN* mkdir FcovReport/ncsim irun -sv -svseed 666666 -covoverwrite test_1.sv -coverage a -covwork CovData -covdesign ncsim -covtest test_1 iccr -keywords+summary+detail+code+func+test_1 cov.cmd irun -sv -svseed 888888 -covoverwrite test_2.sv -coverage a -covwork CovData -covdesign ncsim -covtest test_2 iccr -keywords+summary+detail+code+func+test_2 cov.cmd irun -sv -svseed 555555 -covoverwrite test_3.sv -coverage a -covwork CovData -covdesign 3 ncsim -covtest test_3 iccr -keywords+summary+detail+code+func+test_3 cov.cmd iccr -keywords+summary+detail+func+total cov.cmd iccr -keywords+summary+detail+code+total cov.cmd 2) 指令说明 (1)编译 irun指令将编译和运行集成,因此对添加代码笼罩率没额外需求。
(2)运行 -coverage a:收集笼罩率选项,a表示全体的笼罩率,b表示行笼罩率,e表示条件笼罩率,f表示状态机笼罩率,t表示翻转笼罩率,u表示基于SV的功能笼罩率 -covoverwrite:再次运行时可笼罩已生成的笼罩率数据库,不加那么不能笼罩 -covwork:指定生成的cov_work目次,要求指定为CovData目次 -covdesign:指定成生的design目次,要求指定为ncsim目次 -covtest:指定生成的test目次,要求指定为{TC_NAME}目次,用于存放笼罩率数据库icc.data 注:ncsim仿真器下,全体的笼罩率信息都存放在icc.data库中,与vcs的分数据库文件夹存放有所不同 (3)生成笼罩率报告 -keywords … 脚本:用命令行的方式启动ICCR,关键字的功能在脚本中描述 ICCR生成笼罩率报告的流程为:合并笼罩率数据库(仅用于输出总笼罩率报告) => 读笼罩率数据库 => 输出笼罩报告(概要报告或者细致报告) cov.cmd脚本说明: 1) 和中间描述在-keywords中添加该关键字将执行的指令。





