01
对于仿真的激励测试,其实会有代码覆盖率一说,不过我们平常可能更多是功能覆盖,代码覆盖估计关注的人要少些,不过作为相对系统性的学习,还是大概看下这个功能吧~
02
涉及到的测试代码文件就文末自行获取了,直接开始正题吧。
把文件准备好后,打开modelsim,将路径切换到对于的文件路径
例:cd e:/soft_file/sim_file/coverage
接着创建工作库(work)=> 编译.v文件(指定覆盖测试的类项)
vlib work vlog *.v +cover=bcesxf
附:代码覆盖率,在modelsim中提供了以下几种覆盖的类型,简单说明一下
a-语句覆盖(statement coverage):逐行统计每个语句的执行情况
b-分支覆盖(branch coverage):统计每个条件“if/then/else”和“case”的执行情况
c-条件覆盖(condition coverage):算是分支覆盖的扩展吧,把判断条件都覆盖到
d-表达式覆盖(expression coverage):和条件覆盖又有点相似,就表达式左右侧的比对
e-跳转覆盖(toggle coverage):逻辑节点的跳转,状态发生变化的意思
f-fsm覆盖(fsm coverage):有限状态机的状态、转换还有路径统计
g-systemverilog类覆盖(systemverilog class coverage):这部分没咋涉及过,应该是sv的类统计
然后命令中的 +cover=bcesxf大概就知道是指什么了吧?除了x要特殊一丢丢
branch, condition,expression, statement, extended toggle, finite state machine
03
启动覆盖测试吧~
vsim -coverage test_sm
先关注这个界面,通过这个界面可以执行指定的的覆盖测试,然后分析的结果会以那个小图标的形式显示出来,或者,然后有对应的右下标字母,字母和刚刚介绍的一个意思,还会有个e的字样,就是被排除在覆盖测试之外产生的一些状态。
可以在这选对应的覆盖测试
稍微运行一下,做语句覆盖测试,结果发生改变
run 1ms
在files的窗口也能看到相应的代码覆盖率
打开sim的窗口,选中不同的目标,在右侧的分析窗口会变成相应的代码覆盖情况
直接双击对应的目标,会直接显示其在源码中的位置
接着在分析界面将覆盖类型换成toggle,然后选中test_sm,分析界面再点dat,详细说明的界面就会出现对应的跳转情况
要是没这个details的界面,可以在菜单里,view > coverage > details 将其使能
切换到sim窗口,选中test_sm,然后view > objects,再然后右键后show all columns
这时可以看到相应跳变的静态指示
04
在files的界面中双击beh_sram.v打开源码界面,然后看到40行,条件覆盖没满足的情况,点xc那个图标,在详细界面可以看到对应的描述
接着将覆盖次数显示出来,tools > code coverage > show coverage numbers
软件大小有点问题,50001只显示到了0001......
关掉数字的显示,恢复图标显示的情况,鼠标直接放到对应的代码位置,也能显示
05
在files界面,可以选定要排除覆盖测试的文件,右键 > code coverage > exclude selected file ,cancel...就可以取消排除。
然后可以看到整体发生变化,代码界面的√和×都变为了e的字样
e*指的就是被排除在外,但测试时还是被击中过,e就是完全被排除在外了,可以点那个图标,然后看详细描述里的信息理解。
06
完成代码覆盖的测试后,可以将其导出,tools > coverage report > text ,类型就看自己需要了
(也可以在instance, sim, files 界面右键找对应的导出键)
根据要的内容做报告
导出后,文件内容
导出那个html就相对图形化显示
如果要把使用了排除覆盖测试的文件状态也导出,就可以用这个
基本就这样了,结束本次仿真吧~
quit -sim
诺基亚新机 Nokia 6配置一公布 最担心的事还是发生了
24V继电器的工作原理以及接法解析
重磅|杭州大坝科技(悟空话务机器人)与杭州泽高机器人达成战略合作
H3C实验配置:动态路由介绍
如何故障电弧保护器的智能化
Modelsim的仿真之路
iphone8什么时候上市?iphone8最新消息:真机图曝光:iphone8外观大变样,确认采用双摄
C/S与B/S性能及优缺点分析
一种由TL494为控制核心的脉宽调制技术
车企扎堆推出这项技术,2025年渗透率将达15%
探求主要测试问题,铁路干扰信号检测的一次成功拜访演示
城市供水管网监测解决方案
大神Note3评测 续航能力相当出色
微软Windows 10 11月更新出现资源管理bug
一文看懂颜色模型和信号以及噪声
家用智能投影仪学网课的好处有哪些
芯动态 | 兆芯当选为openKylin社区理事单位
在人体传输信息的低能耗无线芯片
PT2021D(双触控单线编码输出 IC)
小米6最新消息:抢到就赚到!小米6明天10点正式开售:只有亮黑版本