代码覆盖率说明

上传人:干*** 文档编号:185792124 上传时间:2023-02-06 格式:DOCX 页数:7 大小:171.76KB
收藏 版权申诉 举报 下载
代码覆盖率说明_第1页
第1页 / 共7页
代码覆盖率说明_第2页
第2页 / 共7页
代码覆盖率说明_第3页
第3页 / 共7页
资源描述:

《代码覆盖率说明》由会员分享,可在线阅读,更多相关《代码覆盖率说明(7页珍藏版)》请在装配图网上搜索。

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

2、子目录、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+

3、cond+fsm+tgl -cm_dir CovData/vcs/test_1.cm +ntb_random_seed=666666 2&1 |tee log/vcs/test_1.logvcs -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/te

4、st_2.logvcs -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.logurg -dir CovData/vcs/test_1.vdb -metric group -report FcovReport/vcs/test_1 -f

5、ormat 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 texturg -dir CovData/vcs/test_1.c

6、m -metric line+cond+fsm+tgl -report CovReport/vcs/test_1 -format texturg -dir CovData/vcs/test_2.cm -metric line+cond+fsm+tgl -report CovReport/vcs/test_2 -format texturg -dir CovData/vcs/test_3.cm -metric line+cond+fsm+tgl -report CovReport/vcs/test_3 -format texturg -dir CovData/vcs/*.cm -metric l

7、ine+cond+fsm+tgl -report CovReport/vcs/total -formattext 2) 指令说明(1) 编译-lea:增加LCA的支持,vcs0812及以后的版本需要,此前的版本不需要。-cm line+cond+fsm+tgl:增加编译期添加行覆盖率、条件覆盖率、状态机覆盖率、翻转 覆盖率信息。-cm_dir CovData/vcs/TC_NAME.cm:将编译期生成的覆盖率信息(不包括功能覆盖 率)放到CovData/vcs目录中,若目录不存在,将自动创建。生成的代码覆盖率数据库文件 夹以 cm 后缀,名称要求同用例名,例: test_1.cm。注:在vcs

8、仿真器下,代码覆盖率信息(行覆盖率、条件覆盖率、状态机覆盖率、翻转 覆盖率)存放在cm后缀的数据库文件夹中;功能覆盖率和断言覆盖率存放在vdb后缀的数 据库文件夹0中。cm后缀的数据库的生成与编译和运行阶段都有关,vdb后缀的数据库的 生成仅与运行阶段有关。(2) 运行-cm line+cond+fsm+tgl:增加运行期添加行覆盖率、条件覆盖率、状态机覆盖率、翻转 覆盖率信息。-cm_dir CovData/vcs/TC_NAME.cm:将运行期生成的覆盖率数据库放到CovData/vcs 目录中,若目录不存在,将自动创建。代码覆盖率信息将写入以cm后缀的数据库文件夹中, 生成的功能覆盖率数

9、据库文件夹以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

10、/vcs/*.cm -metric line+cond+fsm+tgl -report CovReport/vcs/total -format text :用于生成总的代码覆盖率报告。其中:-dir用于读入指定目录下指定覆盖率数据库XXX.cm文件夹,通配符*表示读 入指定目录下所有覆盖率数据库文件夹。-metric用于指定输出覆盖率类型,line表示行覆盖率、cond表示条件覆盖率、fsm 表示状态机覆盖率, tgl 表示跳转覆盖率。这里必须和仿真环节相对应,否则没有该类型的 覆盖率信息,urg工具会报错。-report用于指定输出覆盖率报告的路径,每个用例的代码覆盖率报告要求分别输 出到同

11、用例名CovReport/vcs/TC_NAME的目录下,总的代码覆盖率报告要求输出到 CovReport/vcs/total 的目录下。若指定的目录不存在,将自动创建。-format 用于指定输出报告的格式, text 表示输出文本格式,不指定则输出 html 格式。注:由于指定了其他的覆盖率类型,因此此时在输出功能覆盖率报告时需要添加-metric group。否则不能得到功能覆盖率的报告。2、ncsim 指令介绍1) 样例cov.cmd(ICCR 脚本文件)set TC_NAME test_1set TC_NAME test_2set TC_NAME test_3set TC_NAME

12、total set_dut_modules test DUV_TEST merge CovData/ncsim/* -output total sh mkdir -p FcovReport/ncsim/$TC_NAME sh mkdir -p CovReport/ncsim/$TC_NAME load_test CovData/ncsim/$TC_NAME report_summary -module -best DUV_TEST CovReport/ncsim/$TC_NAME/dashboard.txt report_summary -d -instance -cgopt test Fco

13、vReport/ncsim/$TC_NAME/dashboard.txt report_detail -both -module -best DUV_TEST CovReport/ncsim/$TC_NAME/modinfo.txt report_detail -both -d -instance -cgopt test FcovReport/ncsim/$TC_NAME/grpinfo.txt rm -r irun* iccr* CovData/ncsim/* FcovReport/ncsim/* CovReport/ncsim/* IN* mkdir FcovReport/ncsimiru

14、n -sv -svseed 666666 -covoverwrite test_1.sv -coverage a -covwork CovData -covdesign ncsim -covtest test_1iccr -keywords+summary+detail+code+func+test_1 cov.cmdirun -sv -svseed 888888 -covoverwrite test_2.sv -coverage a -covwork CovData -covdesign ncsim -covtest test_2iccr -keywords+summary+detail+c

15、ode+func+test_2 cov.cmdirun -sv -svseed 555555 -covoverwrite test_3.sv -coverage a -covwork CovData -covdesign ncsim -covtest test_3iccr -keywords+summary+detail+code+func+test_3 cov.cmdiccr -keywords+summary+detail+func+total cov.cmdiccr -keywords+summary+detail+code+total cov.cmd2) 指令说明(1)编译irun 指

16、令将编译和运行集成,因此对添加代码覆盖率没额外需求。(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仿真器下,

17、所有的覆盖率信息都存放在icc.data库中,与vcs的分数据库文 件夹存放有所不同。(3) 生成覆盖率报告-keywords v+关键字v+关键字+关键字 脚本:用命令行的方式启动ICCR,关键 字的功能在脚本中描述。ICCR生成覆盖率报告的流程为:合并覆盖率数据库(仅用于输出总覆盖率报告)= 读 覆盖率数据库 = 输出覆盖报告(概要报告或者详细报告)。cov.cmd脚本说明:1) 关键字和/关键字中间描述在-keywords中添加该关键字将执行的指令。注意, 一条指令只能在一行中描述, 关键字和/关键字也必须分列一行。2) 在-keywords中添加的关键字顺序和关键字所对应的指令执行的顺

18、序无关。3) 每一条用例必须对应一套vTC_NAME 和 /TC_NAME,在该套关键字描述内将给 通配符$TC_NAME赋值为用例名,如:set TC_NAME TC_NAME。用于在每次 运行用例时在-keywords中添加用例名使每次运行只输出以该条用例名命名的覆盖 率报告文件,以方便界面处理。4) 需在脚本中添加vtotal 和v/total 的关键字套,用于输出总的覆盖率报告。其中的 指令包括:set:指定通配符为total;set_dut_modules:指定rtl代码的顶层模块名如DUV_TEST为了合并代码覆盖率, 指定用例模块名如test为了合并功能覆盖率,不指定则合并不成功

19、,可以同时指定多个。merge:合并覆盖率数据库,CovData/ncsim/*表示合并CovData/ncsim/目录下的所 有覆盖率数据库文件, -output total 表示输出合并后的覆盖率数据库至 CovData/ncsim/total 目录下。5) sh mkdir :在配置好通配名或者合并好覆盖率数据库后需要创建覆盖率报告目录, 代码覆盖率目录按照要求为CovReport/ncsim/TC_NAMEltotal,功能覆盖率目录 按照要求为 FcovReport/ncsim/TC_NAME|total。6)load_test:读指定目录下覆盖率数据库,目录为CovData/ncs

20、im/TC_NAMEltotal。7)report_summary:输出覆盖率概要信息。-module表示为基于模块的;-b表示输出 报告为行覆盖率,-e表示输出报告为条件覆盖率,-s表示为状态机覆盖率,-1表示 为翻转覆盖率,可以同时指定多个;DUV_TEST为rtl的顶层模块名; 表示将覆 盖率报告重镜象至指定文件中,按照要求每条用例或总代码覆盖率概要信息必须 保存在 CovReport/ncsim/TC_NAMEltotal/dashboard.txt 文件中。这些参数都是必 须的,否则输出报告有误。8)report_detail:输出覆盖率详细信息。-module表示为基于模块的;-b

21、表示输出报告 为行覆盖率,-e表示输出报告为条件覆盖率,-s表示为状态机覆盖率,-1表示为翻 转覆盖率,可以同时指定多个;DUV_TEST为rtl的顶层模块名; 表示将覆盖率 报告重镜象至指定文件中,按照要求每条用例或总代码覆盖率概要信息必须保存 在 CovReport/ncsim/TC_NAMEltotal/modinfo.txt 文件中。这些参数都是必须的, 否则输出报告有误。以上第5)至8)条每次运行时都必须执行。通过配置关键字(用例名)的方式,每运行一条用例时都启动一次ICCR输出一份该用 例的覆盖率报告,所有用例运行完后再启动一次ICCR输出一份总的覆盖率报告。二、输出分析代码覆盖率

22、输出有两种方式,图形工具和文本输出。1、图形工具vcs仿真器下用的是cmView,在命令行中键入cmView即可开启。开启cmView后点击design,选择/CovData/vcs/TC_NAME|total.cm/db/verilog 目录下的 cm.decl_info 打开项目。Cpening然后再选择Line、Toggle、Cond、FSM、Branch中的一个打开所需要查看的覆盖率信 息,展开Module Hierarchy,选择到rtl顶层,点击左上角的Add添加覆盖率信息,选择/CovData/vcs/TC_NAMEltotal.cm/coverage/verilog/中的以相应

23、后缀的覆盖率数据库(行覆 盖率为line、条件覆盖率为cond、状态机覆盖率为fsm、翻转覆盖率为tgl),即可以显示覆盖率信息概要,双击概要可以打开详细说明。详细说明使用不在此介绍。ncsim仿真器下用的是ICCR的图形界面,在命令行中键入iccr -GUI即可开启。开启 ICCR图形后点击File或者红圈标出的图标,选择/CovData/ncsim/TC_NAMEltotal目录打 开项目。ICCR图形界面可以同时打开多个项目,在Test下拉菜单中选择显示。详细信息可 以在子页面中显示,也不在此介绍。2、文本输出vcs和ncsim两种仿真器下都可以输出文本格式的代码覆盖率报告,概要报告和详

24、细报 告分别存放在 CovReport/vcslncsim/TC_NAMEltotal/bashboard.txt 和 modinfo.txt 中。详细报 告建议用界面调用工具查看,在此不介绍。vcs仿真器下的代码覆盖率概要报告:Dote: Wed Feb 242010User: ruishangVersion: B-20BS.12-2Conunand line: urg -dir CovData/vc5/test_ 1 r cm CovDat3/vc5/te?t_2 Pcniest_3n 匚 m -met r i 匚 lin 已十匸 o- report co vR epo rt / vc s

25、 /t &t a I -format textTotal Coverage SummarySCORE LINE COND TOGGLE FSM64-17B1.2353.4497.7124.32Hierar匚hi匸吕L coverage data for top-level initancesSCORE LINE COMD TOGGLE F5M NAME64.17 Bl.2353.4497.7124.32 testncsim仿真器下的代码覆盖率概要报告: COVERAGE FILE: /horne/ryLzhang/coverage/CovIData/niCSLm/tcjtaWic匚.data匸

26、overage summary Report PB = Bio匚k. ER = Branchj E - ExpressionTF - Toggle full trans it ion, TA = Toggle it Lse transit LonTv = Toggle fall transitionS = FSM stateC = Cumulative 匚overage for that coversge type including sub hiera rchyDUV_TESTB:71r ii7/iM)BC:71%(117/164E:67%(235/351)EC:67%(235/35L)TF:g柚(32/371TFC:94%TA:TP0%(e/B7jTv:【即叭Tw匸:0(0/B7)5:71(5/7)SC:71(5/7

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!