代码覆盖率说明个人总结_第1页
代码覆盖率说明个人总结_第2页
代码覆盖率说明个人总结_第3页
代码覆盖率说明个人总结_第4页
代码覆盖率说明个人总结_第5页
已阅读5页,还剩4页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、、指令介绍代码覆盖率说明代码覆盖率分为行覆盖率、条件覆盖率、状态机覆盖率和翻转覆盖率。在vcs仿真工具 下覆盖率信息存储在文件中,使用urg工具解析、合并和生成报告;在ncsim仿真工具下覆盖率信息存储在icc.data文件中,使用iccr工具解析、合并和生成报告。代码覆盖率指 令主要包括编译、运行和生成覆盖率报告三个局部,指令结构大体同功能覆盖率。为了工具的统一性和方便界面提取,先做如下规定:覆盖率数据库文件夹均放在CovData目录下,ncsim生成的放入ncsim子目录、vcs生成的放入vcs子目录。覆盖率报告均放在CovReport目录下,ncsim生成的放入ncsim子目录、vcs生

2、成 的放入vcs子目录。每条用例都生成单独的同用例名的覆盖率数据库和覆盖率报告文件夹。最后生成总的覆盖率数据库和覆盖率报告文件夹,名称为total o文档指令描述中,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+define+marco=VCS+ test1.sv./simv -cm line+cond+fsm+tgl 2&

3、;1|tee log/vcs/test_1.logvcs -lca +v2k -sverilog+define+marco=VCS+ test2.sv-cmdir CovData/vcs/test1+ntbrandomseed=666666-cm line+cond+fsm+tgl -cm_dir CovData/vcs/test_2./simv -cm line+cond+fsm+tgl2&1 |tee log/vcs/test_2.log-cmdir CovData/vcs/test2+ntbrandomseed=888888vcs -lca +v2k -sverilog+defi

4、ne+marco=VCS+ test3.sv-cm line+cond+fsm+tgl -cm_dir CovData/vcs/test_3./simv -cm line+cond+fsm+tgl-cmdir CovData/vcs/test3+ntbrandomseed=5555552&1 |tee log/vcs/test_3.logurg -dir CovData/vcs/test_1.vdb -metric group -report FcovReport/vcs/test_1 -format texturg -dir CovData/vcs/test_2.vdb -metri

5、c group -report FcovReport/vcs/test_2 -format texturg -dir CovData/vcs/test_3.vdb -metric group -report FcovReport/vcs/test_3 -format texturg -dir CovData/vcs/*.vdb -metric group -report FcovReport/vcs/total -format text1样例2urg -dir CovData/vcs/test_1-report CovReport/vcs/test_1-format text-format t

6、exturg -dir CovData/vcs/*-metric line+cond+fsm+tgl -report CovReport/vcs/total -format-metric line+cond+fsm+tglurg -dir CovData/vcs/test_2-metric line+cond+fsm+tgl-format texturg -dir CovData/vcs/test_3-metric line+cond+fsm+tgl-report CovReport/vcs/test_2-report CovReport/vcs/test_3text 2指令说明编译-lca:

7、增加LCA的支持,vcs0812及以后的版本需要,此前的版本不需要。-cm line+cond+fsm+tgl :增加编译期添加行覆盖率、条件覆盖率、状态机覆盖率、翻转 覆盖率信息。-cm_dir CovData/vcs/TC_NAME:将编译期生成的覆盖率信息 不包括功能覆盖 率 放到CovData/vcs目录中,假设目录不存在,将自动创立。生成的代码覆盖率数据库文件 夹以cm后缀,名称要求同用例名,例:test_1。注:在vcs仿真器下,代码覆盖率信息行覆盖率、条件覆盖率、状态机覆盖率、翻转 覆盖率存放在cm后缀的数据库文件夹中;功能覆盖率和断言覆盖率存放在vdb后缀的数据库文件夹0中。c

8、m后缀的数据库的生成与编译和运行阶段都有关,vdb后缀的数据库的生成仅与运行阶段有关。2运行-cm line+cond+fsm+tgl :增加运行期添加行覆盖率、条件覆盖率、状态机覆盖率、翻转 覆盖率信息。-cm_dir CovData/vcs/TC_NAME:将运行期生成的覆盖率数据库放到CovData/vcs目录中,假设目录不存在,将自动创立。代码覆盖率信息将写入以cm后缀的数据库文件夹中,生成的功能覆盖率数据库文件夹以vdb后缀,名称要求同用例名,例:test_1.vdb。注:在运行期中,-cm_dir命令只能指定代码覆盖率信息存放的数据库文件夹,而以功 能覆盖率信息存放的数据库文件夹是

9、不能指定后缀的,且存放路径同代码覆盖率数据库文件夹,因此虽然指定了cm后缀,但生成的功能覆盖率数据库文件夹仍以.vdb后缀。3生成覆盖率报告urg -dir CovData/vcs/TC_NAME-metric line+cond+fsm+tgl -report CovReport/vcs/TC_NAME -formattext:用于生成各个用例的代码覆盖率报告。urg -dir CovData/vcs/*-metric line+cond+fsm+tgl -report CovReport/vcs/total -format text:用于生成总的代码覆盖率报告。其中:-dir用于读入指定目

10、录下指定覆盖率数据库XXX文件夹,通配符*表示读入指定目录下所有覆盖率数据库文件夹。-metric用于指定输出覆盖率类型,line表示行覆盖率、cond表示条件覆盖率、fsm表示状态机覆盖率,tgl表示跳转覆盖率。这里必须和仿真环节相对应,否那么没有该类型的 覆盖率信息,urg工具会报错。-report用于指定输出覆盖率报告的路径,每个用例的代码覆盖率报告要求分别输 出到同用例名CovReport/vcs/TC_NAME的目录下,总的代码覆盖率报告要求输出到CovReport/vcs/total的目录下。假设指定的目录不存在,将自动创立。-format用于指定输出报告的格式,text表示输出文

11、本格式,不指定那么输出html格式。注:由于指定了其他的覆盖率类型,因此此时在输出功能覆盖率报告时需要添加-metricgroupo否那么不能得到功能覆盖率的报告。2、ncsim指令介绍covdICCR脚本文件set TC_NAME test_11样例4set TC_NAME test_2set TC_NAME test_3set TC_NAME totalset_dut_modules test DUV_TESTmerge CovData/ncsim/* -output totalsh mkdir -p FcovReport/ncsim/$TC_NAMEsh mkdir -p CovRepo

12、rt/ncsim/$TC_NAMEload_test CovData/ncsim/$TC_NAMEreport_summary -module -best DUV_TEST CovReport/ncsim/$TC_NAME/dashboard.txtreport_summary -d -instance -cgopt test FcovReport/ncsim/$TC_NAME/dashboard.txtreport_detail -both -module -best DUV_TEST CovReport/ncsim/$TC_NAME/modinfo.txtreport_detail -bo

13、th -d -instance -cgopt test FcovReport/ncsim/$TC_NAME/grpinfo.txtrm -r irun* iccr* CovData/ncsim/* FcovReport/ncsim/* CovReport/ncsim/* IN*mkdir FcovReport/ncsimirun -sv -svseed 666666 -covoverwrite test_1.sv -coverage a -covwork CovData -covdesign ncsim -covtesttest_1iccr -keywords+summary+detail+c

14、ode+func+test_1 covdirun -sv -svseed 888888 -covoverwrite test_2.sv -coverage a -covwork CovData -covdesign ncsim -covtesttest_2iccr -keywords+summary+detail+code+func+test_2 covdirun -sv -svseed 555555 -covoverwrite test_3.sv -coverage a -covwork CovData -covdesignncsim -covtest test_3iccr -keyword

15、s+summary+detail+code+func+test_3 covdiccr -keywords+summary+detail+func+total covdiccr -keywords+summary+detail+code+total covd52指令说明编译irun指令将编译和运行集成,因此对添加代码覆盖率没额外需求。2运行-coverage a:收集覆盖率选项,a表示所有的覆盖率,b表示行覆盖率,e表示条件覆盖 率,f表示状态机覆盖率,t表示翻转覆盖率,u表示基于SV的功能覆盖率。-covoverwrite :再次运行时可覆盖已生成的覆盖率数据库,不加那么不能覆盖。-covwo

16、rk:指定生成的cov_work目录,要求指定为CovData目录。-covdesign:指定成生的design目录,要求指定为ncsim目录。-covtest:指定生成的test目录,要求指定为TC_NAME目录,用于存放覆盖率数据库icc.data。注:ncsim仿真器下,所有的覆盖率信息都存放在icc.data库中,与vcs的分数据库文件夹存放有所不同。3生成覆盖率报告-keywords +关键字+关键字+关键字脚本:用命令行的方式启动ICCR,关键字的功能在脚本中描述。ICCR生成覆盖率报告的流程为:合并覆盖率数据库仅用于输出总覆盖率报告=读覆盖率数据库= 输出覆盖报告概要报告或者详细

17、报告。covd脚本说明:1关键字和/关键字中间描述在-keywords中添加该关键字将执行的指令。注意,一条指令只能在一行中描述,关键字 和/关键字也必须分列一行。2在-keywords中添加的关键字顺序和关键字所对应的指令执行的顺序无关。3每一条用例必须对应一套TC_NAME和/TC_NAME,在该套关键字描述内将给 通配符$TC_NAME赋值为用例名,如:set TC_NAME TC_NAME。用于在每次 运行用例时在-keywords中添加用例名使每次运行只输出以该条用例名命名的覆盖 率报告文件,以方便界面处理。4需在脚本中添加total和/total的关键字套,用于输出总的覆盖率报告。

18、其中的 指令包括:set:指定通配符为total;set_dut_modules:指定rtl代码的顶层模块名如DUV_TEST为了合并代码覆盖率, 指定用例模块名如test为了合并功能覆盖率,不指定那么合并不成功,可以同时指定多个。merge:合并覆盖率数据库,CovData/ncsim/*表示合并CovData/ncsim/目录下的所有覆盖率数据库文件,-output total表示输出合并后的覆盖率数据库至CovData/ncsim/total目 录下。5sh mkdir:在配置好通配名或者合并好覆盖率数据库后需要创立覆盖率报告目录,代码覆盖率目录按照要求为CovReport/ncsim/

19、TC_NAME|total,功能覆盖率目录按照要求为FcovReport/ncsim/TC_NAME|total。6load_test:读指定目录下覆盖率数据库,目录为CovData/ncsim/TC_NAME|total。7report_summary:输出覆盖率概要信息。-module表示为基于模块的;-b表示输出报告为行覆盖率,-e表示输出报告为条件覆盖率,-s表示为状态机覆盖率,-t表示 为翻转覆盖率,可以同时指定多个;DUV_TEST为rtl的顶层模块名;表示将覆盖率报告重镜象至指定文件中,按照要求每条用例或总代码覆盖率概要信息必须保存在CovReport/ncsim/TC_NAME

20、|total/dashboard.txt文件中。这些参数都是必须的,否那么输出报告有误。8report_detail:输出覆盖率详细信息。-module表示为基于模块的;-b表示输出报告6为行覆盖率,-e表示输出报告为条件覆盖率,-s表示为状态机覆盖率,-t表示为翻 转覆盖率,可以同时指定多个;DUV_TEST为rtl的顶层模块名;表示将覆盖率报告重镜象至指定文件中,按照要求每条用例或总代码覆盖率概要信息必须保存在CovReport/ncsim/TC_NAME|total/modinfo.txt文件中。这些参数都是必须的,否那么输出报告有误。以上第5至8条每次运行时都必须执行。通过配置关键字用

21、例名的方式,每运行一条用例时都启动一次ICCR输出一份该用例的覆盖率报告,所有用例运行完后再启动一次ICCR输出一份总的覆盖率报告。、输出分析代码覆盖率输出有两种方式,图形工具和文本输出。1、图形工具vcs仿真器下用的是cmView ,在命令行中键入cmView即可开启。开启cmView后点击design,选择/CovData/vcs/TC_NAME|total/db/verilog目录下的cm.decl_info翻开工程。然后再选择Line、Toggle、Cond、FSM、Branch中的一个翻开所需要查看的覆盖率信 息,展开ModuleHierarchy,选择到rtl顶层,点击左上角的Ad

22、d添加覆盖率信息,选择/CovData/vcs/TC_NAME|total/coverage/verilog/中的以相应后缀的覆盖率数据库行覆盖率为line、条件覆盖率为cond、状态机覆盖率为fsm、翻转覆盖率为tgl,即可以显示覆7盖率信息概要,双击概要可以翻开详细说明。详细说明使用不在此介绍。ncsim仿真器下用的是ICCR的图形界面,在命令行中键入iccr -GUI即可开启。开启8ICCR图形后点击File或者红圈标出的图标,选择 开工程。ICCR图形界面可以同时翻开多个工程,在2、文本输出vcs和ncsim两种仿真器下都可以输出文本格式的代码覆盖率报告,概要报告和详细报告分别存放在CovReport/vcs|ncsim/(TC_NAME|total/bashboard.txt和modinfo.txt中。详细报 告建议用界面调用工具查看,在此不介绍。vcs仿真器下的代码覆盖率概要报告:hi bo a rdFeb 24 142BieUser: ruizhangVersion: B-2&08.12-2Command line: urg -dir CovUata/vc5/te5t_lCDvData/vc5/test_2CovData/vcs/t est_3 -cm -met ric line+cond+f simtgl -report Co vR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论