




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
代码覆盖率说明一、 指令介绍代码覆盖率分为行覆盖率、条件覆盖率、状态机覆盖率和翻转覆盖率。在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.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/test_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 -format texturg -dir CovData/vcs/test_2.vdb -metric 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 texturg -dir CovData/vcs/test_1.cm -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 line+cond+fsm+tgl -report CovReport/vcs/total -format text2) 指令说明(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) 样例cov.cmd(ICCR脚本文件)set TC_NAME test_1set 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 CovReport/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 -both -d -instance -cgopt test FcovReport/ncsim/$TC_NAME/grpinfo.txt rm -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 -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+code+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.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中添加该关键字将执行的指令。注意,一条指令只能在一行中描述,和也必须分列一行。2) 在-keywords中添加的关键字顺序和关键字所对应的指令执行的顺序无关。3) 每一条用例必须对应一套和,在该套关键字描述内将给通配符$TC_NAME赋值为用例名,如:set TC_NAME TC_NAME。用于在每次运行用例时在-keywords中添加用例名使每次运行只输出以该条用例名命名的覆盖率报告文件,以方便界面处理。4) 需在脚本中添加和的关键字套,用于输出总的覆盖率报告。其中的指令包括:set:指定通配符为total;set_dut_modules:指定rtl代码的顶层模块名如DUV_TEST为了合并代码覆盖率,指定用例模块名如test为了合并功能覆盖率,不指定则合并不成功,可以同时指定多个。merge:合并覆盖率数据库,CovData/ncsim/* 表示合并CovData/ncsim/目录下的所有覆盖率数据库文件,-output total表示输出合并后的覆盖率数据库至CovData/ncsim/total目录下。5) sh mkdir:在配置好通配名或者合并好覆盖率数据库后需要创建覆盖率报告目录,代码覆盖率目录按照要求为CovReport/ncsim/TC_NAME|total,功能覆盖率目录按照要求为FcovReport/ncsim/TC_NAME|total。6) load_test:读指定目录下覆盖率数据库,目录为CovData/ncsim/TC_NAME|total。7) report_summary:输出覆盖率概要信息。-module表示为基于模块的;-b表示输出报告为行覆盖率,-e表示输出报告为条件覆盖率,-s表示为状态机覆盖率,-t表示为翻转覆盖率,可以同时指定多个;DUV_TEST为rtl的顶层模块名; 表示将覆盖率报告重镜象至指定文件中,按照要求每条用例或总代码覆盖率概要信息必须保存在CovReport/ncsim/TC_NAME|total/dashboard.txt文件中。这些参数都是必须的,否则输出报告有误。8) report_detail:输出覆盖率详细信息。-module表示为基于模块的;-b表示输出报告为行覆盖率,-e表示输出报告为条件覆盖率,-s表示为状态机覆盖率,-t表示为翻转覆盖率,可以同时指定多个;DUV_TEST为rtl的顶层模块名; 表示将覆盖率报告重镜象至指定文件中,按照要求每条用例或总代码覆盖率概要信息必须保存在CovReport/ncsim/TC_NAME|total/modinfo.txt文件中。这些参数都是必须的,否则输出报告有误。以上第 5) 至 8) 条每次运行时都必须执行。通过配置关键字(用例名)的方式,每运行一条用例时都启动一次ICCR输出一份该用例的覆盖率报告,所有用例运行完后再启动一次ICCR输出一份总的覆盖率报告。二、 输出分析代码覆盖率输出有两种方式,图形工具和文本输出。1、图形工具vcs
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年河北承德医学院附属医院招聘技师岗工作人员7名考前自测高频考点模拟试题附答案详解(完整版)
- 2025河南洛阳市洛报集团招聘模拟试卷及完整答案详解1套
- 2025年福建省厦门市集美区杏东中学招聘1人模拟试卷带答案详解
- 2025广西能源集团有限公司社会招聘15人考前自测高频考点模拟试题及答案详解一套
- 2025江苏盐城工学院招聘专职辅导员13人考前自测高频考点模拟试题含答案详解
- 2025金华永康市产投运营管理有限公司招聘3人考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025河北中兴冀能实业有限公司招聘80人考前自测高频考点模拟试题及完整答案详解1套
- 2025河北雄安新区新建片区学校面向社会选聘教职人员102人模拟试卷完整参考答案详解
- 2025河南开封国禹运营管理有限公司招聘园区转运中心人员10人考前自测高频考点模拟试题及完整答案详解
- 2025河南郑州师范学院诚聘高层次人才模拟试卷附答案详解(典型题)
- GB/T 21073-2007环氧涂层七丝预应力钢绞线
- GB/T 17980.37-2000农药田间药效试验准则(一)杀线虫剂防治胞囊线虫病
- 压力管道特性表
- 高级会计师评审个人业绩报告(精选9篇)
- 血管活性药物(ICU)课件
- “手电筒”模型-高考数学解题方法
- 储能型虚拟电厂的建设与思考分析报告
- 楼地面装饰构造(史上最全面)
- 海关AEO管理体系高级认证企业名录
- TTAF 068-2020 移动智能终端及应用软件用户个人信息保护实施指南 第8部分:隐私政策
- DB32∕T 4065-2021 建筑幕墙工程技术标准
评论
0/150
提交评论