怎么用Vivado做覆盖率分析

关注公众号FPGA开源工坊获取更多内容。

在这里插入图片描述

在做仿真的时候往往会去做代码覆盖率和功能覆盖率的分析,来保证仿真是做的比较充分完备的。

在Vivado里面也支持我们做这项操作,现在就来看一下流程吧。

第一步:选择设置

图片

第二步:在仿真选项里面依次找到下面的设置选项,默认vivado是没有打开覆盖率分析这个选项的。

图片

第三步:做如下设置,其中cover是我们想要设置的覆盖率的名字,这个可以自己设置,./是覆盖率信息放置的位置,这两项都可以根据自己的使用来设置。sbct是设置想要收集哪些覆盖率信息,s是行覆盖率,b是分支覆盖率,c的条件覆盖率,t是翻转覆盖率。设置完成之后点击Apply保存设置就可以了。这样在我们仿真的时候就会进行覆盖率的收集了。

图片

第四步:点击仿真,跑一个测试用例

然后就可以看到在对应的仿真目录下生成一个xsim.codeCov的目录,因为我设置的./所以生成的信息放在了这个目录下。

图片

点进去的话,会发现是一个xsim.CCInfo文件,之后就需要我们处理一下,把他变成可读的html文件。

图片

第五步:在TCL里面输入下面的命令

xcrg.exe -cc_report E:/myreport1 -cc_db cover -cc_dir E:/fpga_image_sim/fpga_image_sim.sim/sim_1/behav/xsim/xsim.codeCov/
就可以看到vivado在帮我们生成相应的报告

图片

生成的报告:

图片

然后点击dashboard.html查看报告。

图片

就可以看到相应的报告了,我仿真就跑了很短的时间所以覆盖率很低。

并且我们可以按模块来查看相应的报告

图片

每个模块内部的报告也可以看到:

图片

然后可以根据详细的报告去构造特殊的测试案例来提升覆盖率。

图片

最后解释一下刚刚那句命令的含义:

这个参数用来控制生成的报告放到哪个目录下
-cc_report E:/myreport1
后面的cover就是我们在设置界面所设置的名字
-cc_db cover
这个是生成的覆盖率信息的路径,我设置的./所以vivado生成到了sim目录下
-cc_dir E:/fpga_image_sim/fpga_image_sim.sim/sim_1/behav/xsim/xsim.codeCov/

关于这个命令更多的信息可以参见:

**图片**
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/541002.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

每日一题---OJ题: 环形链表 II

片头 嗨! 小伙伴们,大家好! 我们又见面啦,在上一篇中,我们学习了环形链表I, 今天我们继续来打boss,准备好了吗? Ready Go ! ! ! emmm,同样都是环形链表,有什么不一样的地方呢? 肯定有, 要不然也不会一个标记为"简单" ,一个标记为"中等"了,哈哈哈哈哈 …

《AI创业浪潮:展望未来,解锁颠覆性创新机遇》

在科技革命的浪潮中,人工智能(AI)犹如一艘引领航向的旗舰,以其强大的变革力量重塑各行各业。随着技术的日益成熟与应用场景的不断拓宽,AI技术为创业者铺就了一条充满机遇与挑战的道路。本文将深入探讨未来AI技术领域的…

1.3 字符设备驱动

1、字符设备驱动工作原理 2、file_operations结构体 struct file_operations { struct module *owner; //拥有该结构的模块的指针,一般为THIS_MODULES loff_t (*llseek) (struct file *, lof…

10 Php学习:循环

在 PHP 中,提供了下列循环语句: while - 只要指定的条件成立,则循环执行代码块do…while - 首先执行一次代码块,然后在指定的条件成立时重复这个循环for - 循环执行代码块指定的次数foreach - 根据数组中每个元素来循环代码块 当…

(学习日记)2024.04.15:UCOSIII第四十三节:任务消息队列

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

橱窗带货真的能赚到钱吗?橱窗带货素材哪里找?什么是橱窗带货?

什么是橱窗带货? 橱窗带货,一种以货架电商为基础的营销手段,可类比线下实体店的展示柜和窗口。橱窗的曝光量较高,因此通常展示店铺中的重点产品和推荐系列商品。短视频已经积极进军电商领域,虽然一开始主打直播电商&a…

newman下载安装

postman是专为接口测试而生,Newman是专为postman而生。newman可以让我们的postman的脚本通过非GUI(命令行)的方式。 1. 安装node.js 安装步骤 查看已安装版本 node -v 2. 安装 Newman 运行命令:npm install -g newman,即可完成安装操作。 或者 npm i…

(Oracle)SQL优化案例:隐式转换优化

项目场景 项目现场的某个kettle模型执行非常缓慢,原因在于某个SQL执行效率非常的低。甲方得知此事要求公司赶紧优化,负责该模块的同事对SQL优化并不熟悉。所以作为一个立志成为优秀DBA的ETL工程师,我自告奋勇:不是DBA,…

两步解决 Flutter Your project requires a newer version of the Kotlin Gradle plugin

在开发Flutter项目的时候,遇到这个问题Flutter Your project requires a newer version of the Kotlin Gradle plugin 解决方案分两步: 1、在android/build.gradle里配置最新版本的kotlin 根据提示的kotlin官方网站搜到了Kotlin的最新版本是1.9.23,如下图所示: 同时在Ko…

人事|基于SpringBoot+vue的人事管理系统设计与实现(源码+数据库+文档)

人事管理系统目录 基于SpringBootvue的人事管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕设布道师,…

链表中常见的使用方法逻辑整理

文章目录 1. 链表特点2. 链表创建3. 链表遍历通用方法3.1 在链表的开头添加元素3.2 在链表的结尾添加元素3.3 删除链表的第一个元素3.4 删除链表的最后一个元素3.5 遍历链表3.6 查找链表中的元素3.7 反转链表 4. 常见面试题4.1 相交链表4.2 反转链表4.3 环形链表4.4 环形链表 I…

Nacos-默认token.secret.key-配置不当权限绕过漏洞复现

漏洞描述: Nacos 身份认证绕过漏洞(QVD-2023-6271),开源服务管理平台 Nacos在默认配置下未对 token.secret.key 进行修改,导致远程攻击者可以绕过密钥认证进入后台,造成系统受控等后果。 漏洞信息 公开时间:2023-03…

Windows安装MongoDB结合内网穿透轻松实现公网访问本地数据库

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Java 基于微信小程序的校园失物招领小程序,附源码

博主介绍:✌程序员徐师兄、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

Java基础第十一课——类与对象(2)

由于类与对象这一部分的知识点很多,而且操作方法也有很多,所以这次将继续深入讨论一下关于类与对象中方法传参、方法重载、构造方法以及this关键字使用方面的知识。 一、方法传参 1.return关键字 return关键字作用 作用场景:方法内 作用…

一站式开源持续测试平台 MerterSphere 之测试跟踪操作详解

一、MeterSphere平台介绍 MeterSphere是一站式的开源持续测试平台,遵循 GPL v3 开源许可协议,涵盖测试跟踪、接口测试、UI 测试和性能测试等功能,全面兼容JMeter、Selenium 等主流开源标准,有效助力开发和测试团队充分利用云弹性…

NCF代码运行

keras 2.1.4 tensorflow 1.12.0 python 3.6.4 numpy 1.14.5 一、准备工作 1、安装虚拟环境 conda create -n tensorflow python3.6.4conda activate tensorflowconda install tensorflow1.12.0conda install keras2.1.4conda info2、安装相应依赖 cd Py3_Recommender-Syste…

4.2 面向对象程序设计-类的继承实验

本文仅供学习交流,严禁用于商业用途,如本文涉及侵权请及时联系将于24小时内删除 目录 1.实验内容 2.实验原理 2.1类的继承 2.2 继承的优点和缺点 2.3 继承的方式 3.实验代码 1.实验内容 创建一个父类CalcTime,在父类中依次定义用于保存…

对装饰器模式的理解

目录 一、场景二、面对场景中的新需求,我们怎么办?1、暴力法:直接修改原有的代码。2、子类继承法:既然要增强行为,那我搞一个子类,覆写不就完事了?3、装饰器模式 三、对装饰器模式的思考1、从代…

C语言-----结构体详解

前面已经向大家介绍过一点结构体的知识了,这次我们再来深度了解一下结构体。结构体是能够方便表示一个物体具有多种属性的一种结构。物体的属性可以转换为结构体中的变量。 1.结构体类型的声明 1.1 结构体的声明 struct tag {member-list;//结构体成员变量 }vari…