0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文详解Modelsim代码覆盖率功能使用

电子设计 来源:FPGA技术联盟 作者:默宸 2020-12-09 11:45 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者:默宸

Modelsim代码覆盖率功能Code coverage,能报告出statement(语句)、branch(分支)、condition(条件)、expression(表达)、toggle(信号翻转)、fsm(有限状态机)等多种覆盖率情况。

1、编译选项(compile option):

在Modelsim的Workspace里选中需要查看代码覆盖率的文件,然后点击右键选择compile—>compile properties,如下图所示。

之后选择“Coverage”选项,出现下图所示的窗口,根据需要选择选项,这里选statement、branch、condition、expression和toggle。选完点ok。

2、编译(compile)

点工具栏中的,编译所有的选中的文件,成功后进行下面的步骤。

3、仿真(simulate)

点工具栏中的,出现下面的窗口:

(注:不要选择“Enable optimization”)

选择Others,出现如下图所示的窗口:

选择“Enable code coverage”后点“ok”后出现下面的窗口:

4、观察结果

完成以上操作后,代码覆盖率的窗口就出现了,点击(run –all)之后代码覆盖率的情况就出现在各窗口中。

下面介绍各子窗口:

(1)Workspace窗口

在workspace窗口选择Files标签页并拖动滚动条到右侧,设计的每个文件显示了语句、分支、条件和表达式等语句的执行覆盖率汇总统计信息。

在workspace窗口选择Files标签页并拖动滚动条到右侧,本窗口将以设计中的每一条目来显示执行覆盖统计。

(2)Missed Coverage(未覆盖到对象列表窗)窗口
本窗口用于显示所选择文件未被执行的语句、分支、条件、表达式或未翻转过的信号。

在workspace窗口的Files标签页中选择不同的文件,Missed Coverage窗口的显示会随着选择的文件而更新。

上图为分支覆盖率的情况

上图为statement coverage(语句覆盖率)的情况。此时选择任何一个实体在源代码窗口中显示相应的行,设计如果包含为被执行的语句或分支的行,则被粉红色高亮显示,如下图。图中包含了Hits 和BC 栏用来显示语句执行(statement Hits)和分支覆盖(BC)的情况。

如下图所示,在主窗口菜单栏选择Tool—>Code Coverage—>Show coverage number.

Hits和BC 栏中的每一行图标将会被数字代替,这些数字代表了该语句或分支被执行的次数。

下表描述了个图标的含义:

pIYBAF9uDnKAOu80AABaDdAm_SU899.png

(3)Current Exclusion(当前不做覆盖率统计列表窗)

本窗口用于列出所指定的不进行覆盖统计的所有文件和行。

3.1 设置排出文件

如图,右击所选中的项,按图所示操作,

操作完后,在Current Exclusion窗口就会出现被排除的文件,同时源代码窗口的Hits栏的一些行会出现,表明这些行不做代码覆盖统计。

在Current Exclusion窗口中右击需要取消排除设置的文件,选择Cancel Selected Exclusions,恢复成原状,可以做代码覆盖率。

3.2 设置排出行

如图,在源代码窗口右击Hits栏中需要排除行的图标,图中为105行,选择第一个选项。

之后,在Current Exclusion窗口会显示出被排除的行信息,同时在源代码窗口,被排除行的Hits栏会出现,表明该行不做代码覆盖统计。

o4YBAF9uDoCAAbTBAAHnxVaqGE8498.png

取消排除行操作同上。

(4)Details(详细资料窗)窗口:

本窗口显示了如真值表或翻转细节等详细的未被覆盖到的情况。

当在Missed Coverage窗口中选择一行,可以在Details窗口中查看相应的详细信息,如下图:

(5)Instance Coverage(实例覆盖列表窗)

本窗口显示了每个实例的覆盖统计。

(6)Objects Window(信号窗口)

在该窗口中可以查看状态翻转统计,翻转覆盖统计了信号从一个状态变换到另一个状态的次数。

具体操作入下图所示:

o4YBAF9uDoqAI0n3AAKlF_576mo203.png

上述操作完之后出现Objects窗口,这样就可以查看每个信号翻转的具体情况。

pIYBAF9uDoyABFCiAAJCLy3HNXI633.png

5、创建代码覆盖率报告
如下图所示,在主窗口菜单栏选择Tool—>Code Coverage—>Reports

o4YBAF9uDo-AXL5zAAMGhb8k8jc518.png

出现下图所示的子窗口(报告设置窗口),根据需求设置各选项和报告存放路径。

点ok后即可查看Code Coverage Report:

o4YBAF9uDpSAWK9OAAHksFnniZc496.png

编辑:hfy


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ModelSim
    +关注

    关注

    5

    文章

    174

    浏览量

    48878
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73137
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    单片机开发功能安全中编译器

    的。出于这些原因,标准要求应用防御性编码,可测试的编码,有可能整理足够的编码覆盖率代码还必须实现高级别的代码覆盖率,在某些领域(尤其是汽车领域),设计通常需要复杂的外部诊断,校准
    发表于 12-01 06:44

    【产品介绍】Questa One Sim软件

    优势与平台支持优势行业领先的高性能多语言仿真器用于可测性设计(DFT)向量验证的最快仿真器高性能、高容量的集成调试环境覆盖率加速功能,助力更快实现覆盖率收敛智能编译(SmartCompile)和多核
    的头像 发表于 11-17 10:39 178次阅读
    【产品介绍】Questa One Sim软件

    【产品介绍】Modelsim:HDL语言仿真软件

    概述ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯的单内核支持VHDL和Verilog混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk技术、和单内核
    的头像 发表于 11-13 11:41 195次阅读
    【产品介绍】<b class='flag-5'>Modelsim</b>:HDL语言仿真软件

    嵌入式软件测试与专业测试工具的必要性深度解析

    系统化解决方案,其必要性体现在多个维度:满足行业合规要求汽车电子ISO 26262、航空DO-178C等标准强制要求代码覆盖率指标达到C1(分支覆盖)≥100%、MC/DC(修正条件判定覆盖
    发表于 09-28 17:42

    干货分享 | 功能安全常见疑难问题汇总

    场针对实操问题的线上答疑活动,我们分类整理了些热门问题及解答,可作为大家日后实践中的参考。干货满满,仔细阅读哦~关于功能安全机制及其诊断覆盖率问题Q外狗从功能
    的头像 发表于 09-05 16:21 1989次阅读
    干货分享 | <b class='flag-5'>功能</b>安全常见疑难问题汇总

    HarmonyOSAI编程单元测试用例

    根据选中的ArkTS方法名称,CodeGenie支持自动生成对应单元测试用例,提升测试覆盖率。 在ArkTS文档中,光标放置于方法名称上或框选完整的待测试方法代码块,右键选择CodeGenie
    发表于 08-27 14:33

    FCT自动测试设备:电路板性能检测利器

    FCT自动测试设备能够实现对电路板的功能自动化测试,提高测试覆盖率。设备通过预设的测试程序和自动化操作流程,对电路板的各项功能和性能指标进行检测和验证。例如,在通信设备的电路板测试中,FCT测试设备
    的头像 发表于 08-07 16:35 1471次阅读
    FCT自动测试设备:电路板性能检测利器

    太阳光模拟器关键参数 | 光谱匹配度、光谱覆盖率及光谱偏离

    太阳光模拟器作为模拟太阳辐射环境的核心设备,其性能直接关系到诸多领域实验数据的可靠性。光谱匹配度(SMD)、光谱覆盖率(SPC)和光谱偏离(SPD)作为评估其性能的关键指标,从不同维度决定了模拟
    的头像 发表于 07-24 11:26 853次阅读
    太阳光模拟器关键参数 | 光谱匹配度、光谱<b class='flag-5'>覆盖率</b>及光谱偏离<b class='flag-5'>率</b>

    太阳光模拟器性能的影响参数:光谱匹配度、光谱覆盖率及光谱偏离

    的性能评估从单的光谱匹配度,拓展至光谱匹配度、光谱覆盖率与光谱偏离的多维协同优化。因此,在选择太阳光模拟器时,不能单关注某指标,而应
    发表于 07-21 15:35

    HarmonyOS AI辅助编程工具(CodeGenie)代码测试

    功能从DevEco Studio 5.1.0 Release版本开始支持。 根据选中的ArkTS方法名称,CodeGenie支持自动生成对应单元测试用例,提升测试覆盖率。 在ArkTS文档中,光标
    发表于 07-14 17:33

    新思科技VSO.ai如何颠覆芯片验证

    随着片上系统(SoC)复杂性不断增加,IP的复杂性与验证难度以及用于验证的VIP的开发要求也日益提高。不断发展的协议标准要求为IP和VIP提供动态测试套件,并满足规定的功能代码覆盖率指标。
    的头像 发表于 05-21 14:49 978次阅读
    新思科技VSO.ai如何颠覆芯片验证

    【必看】开关电源中每个元器件的计算+51页图文详解

    开关电源的各个元器件怎么计算?损耗怎么估算?散热器的大小怎么计算? 51页图文详解带你弄懂! 纯分享贴,有需要可以直接下载附件获取完整资料! (如果内容有帮助可以关注、点赞、评论支持
    发表于 05-12 16:20

    智能驾驶域控测试革命:实现99.99% 功能安全的中国方案!

    行业警报:域控系统为何需要 "零缺陷" 验证?在 L3 + 自动驾驶时代,域控系统作为车辆 "大脑",其功能安全直接关乎生命安全。根据 ISO 26262 标准,功能安全验证覆盖率必须达到 99.99%,否则可能引发:
    的头像 发表于 03-31 13:39 1472次阅读
    智能驾驶域控测试革命:实现99.99% <b class='flag-5'>功能</b>安全的中国方案!

    STM32CubeMX生成代码就会覆盖CMakeLists.txt文件,怎么解决?

    请教下用STM32CubeMX生成代码后,我自己加了个头文件和源文件,这些自己加的文件不是要配置到CMakeLists.txt编译么,但下载在用STM32CubeMX生成成代码,就
    发表于 03-12 08:03

    DAC的采样是指的什么呢?

    DAC的采样是什么意思? 我记得ADC才会有采样说,那DAC的采样是指的什么呢?请详解,谢谢
    发表于 12-19 07:19