irpas技术客

VCS查看代码覆盖率(行、状态机、翻转、条件、分支覆盖率等)_xlinxdu_vcs覆盖率命令

irpas 1287


虚拟机:VMware -14.0.0.24051 环?境:ubuntu 18.04.1 脚?本:makefile(点击直达)原来的脚本没有代码覆盖率查看功能,新添加了这个功能


文章目录 一、脚本内容二、讲解(1)代码覆盖率选项(2)查看方法


一、脚本内容 #LAB_DIR = /home/cyl/target/personal/sync_fifo #LAB_DIR = /home/cyl/target/personal/async_fifo #LAB_DIR = /home/cyl/target/personal/uart #LAB_DIR = /home/cyl/target/personal/spi #LAB_DIR = /home/cyl/target/personal/apb #LAB_DIR = /home/cyl/target/personal/ahb2apb DFILES = $(LAB_DIR)/*.v # code coverage command CM = -cm line+cond+fsm+branch+tgl CM_NAME = -cm_name simv CM_DIR = -cm_dir ./covdir.vdb all :clean elab rung all1:clean elab run cov verdi all2:clean elab run verdi elab: vcs -full64 -LDFLAGS -Wl,-no-as-needed -debug_acc+all -timescale=1ns/1ns \ -fsdb -sverilog -l comp.log \ ${DFILES} \ ${CM} \ ${CM_NAME} \ ${CM_DIR} run: ./simv -l run.log \ ${DFILES} \ ${CM} \ ${CM_NAME} \ ${CM_DIR} rung: ./simv -gui -l run.log \ ${DFILES} \ ${CM} \ ${CM_NAME} \ ${CM_DIR} verdi: verdi ${DFILES} \ -ssf ./*.fsdb & cov: dve -full64 -covdir *.vdb & clean: rm -rf AN.DB \ rm -rf DVEfiles \ rm -rf csrc \ rm -rf simv.* \ rm -rf *simv \ rm -rf inter.vpd \ rm -rf ucli.key \ rm -rf *.log \ rm -rf verdiLog \ rm -rf novas* \ rm -rf *.fsdb \ rm -rf *.vdb
二、讲解

VCS在统计代码覆盖率的过程中,需要在编译和仿真命令上添加对应的开关命令,生成.vdb文件记录覆盖率情况,再使用dve打开该文件进行查看覆盖率。

(1)代码覆盖率选项 # code coverage command CM = -cm line+cond+fsm+branch+tgl CM_NAME = -cm_name simv CM_DIR = -cm_dir ./covdir.vdb -cm < coveragetype > :打开对应类型覆盖率,例如 -cm cond+tgl+lin+fsm+path为统计所有覆盖率。-cm_name:统计覆盖率文件名字。-cm_dir:指定生成.vdb文件目录。-cm_log+filename.log:记录仿真过程中log信息。-cm_nocasedef: 在统计case语句的条件覆盖率时,不考虑default条件未达到的情况。-cm_hier xxx.cfg:通过.cfg文件选择要查看覆盖率的模块或文件。 (2)查看方法

就上面的脚本而言,在make all查看波形之后,再make cov即可查看。或者直接make all1,用verdi查看波形,用DVE查看代码覆盖率。绿色是覆盖到的,红色是没有覆盖到的。总之是编译仿真完成之后,make cov就能查看。

方法二,通过文本格式查看


作者:xlinxdu 版权:本文是作者原创,版权归作者所有。 转载:未经作者允许,禁止转载,转载必须保留此段声明,必须在文章中给出原文连接。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #vcs覆盖率命令