vivado联合modelsim测试覆盖率

(1)配置环境

        安装modelsim和vivado。点击vivado菜单栏中的tools,在下拉选项中选择compile simulation libraries。simulator选项选择:modelsim simulator。compile library location表示编译库存放的路径。simulator executable path:表示modelsim安装路径,即modelsim.exe所在的路径。如下所示:

根据计算机配置,编译时间大概在10分钟左右。

(2)配置vivado环境

        这一步将vivado与modelsim联合起来。点击vivado菜单栏中的tools,在下拉菜单中选择setting,target simulator选择modelsim simulator ,compile library location选择刚才编译路的路径。再点击apply,最后点击ok。

(3)在vivado中开始仿真

        在vivado中建立工程后,创建源文件以及tb文件,点击simulation—>run behavior simulation。如下图所示:这一步骤将打开modelsim。

(4)在modelsim中设置覆盖率选项 

        在vivado中点击simulation 后,将自动打开modelsim界面。此时,在modelsim中的library、project、覆盖率coverage界面中都没有内容,这是因为vivado将工程创建在xil_defaultlib默认的库下,在modelsim命令窗口中会看到这条命令:

vsim -voptargs=""+acc"" -L xil_defaultlib -L unisims_ver -L unimacro_ver -L secureip -lib xil_defaultlib xil_defaultlib.tb xil_defaultlib.glbl 

(4.1)在modelsim中设置覆盖率的编译选项

        在modelsim界面中点击compile选项,在下拉菜单中选择compile option,在弹出的界面上点击coverage,在coverage界面中点击需要选择的覆盖率类型,最后点击apply,再点击ok。
        

        将编译选项设置好覆盖率选项后,需要再重新将设计文件编译一次,由于设计文件在vivado工程中,所以在编译的时候需要使用源文件的绝对路径,命令如下:

vlog   F:/modelsim_workspace/coverage_single/QD.v  +cover=bcesxf

vlog编译编译.v或者.sv文件的命令。
F:/modelsim_workspace/coverage_single/QD.v  表示设计文件所在的路径。
+cover=bcesxf 表示选择覆盖率的类型。

(4.2)设置modelsim 中simulation覆盖率选项

        在仿真时,也需要设置仿真覆盖率选项,点击modelsim菜单栏中的simulate选项,点击design optimization选项,点击coverage选项,选择覆盖率类型,点击start immediately选项,最后返回到design界面,手动填写output design name ,可以是任何合法的名字;在design unit中写入vivado编译后tb的名称。

        最后在modelsim命令行窗口中敲入仿真命令:xil_defaultlib.tb表示vivado编译后tb所在库的全名。

vsim -gui xil_defaultlib.tb -coverage -novopt

        在Modelsim菜单栏中点击view—>coverage—>instance coverage ,即可看到各个模块实例的覆盖率情况,点击view—>coverage—>code coverage analysis即可看到每个实例的语句覆盖情况。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java.sql.SQLException: Connection has already been closed

背景: 通过一个接口触发后台数据库的批量更新操作,原本只是一个触发动作,不需要返回值,因此没有关心出现的http超时问题。后面发现批量更新任务中断了,查日志发现了Connection has already been closed报错。 具体的…

【网络奇缘】- 计算机网络|性能指标|体系结构

🌈个人主页: Aileen_0v0🔥系列专栏: 一见倾心,再见倾城 --- 计算机网络~💫个人格言:"没有罗马,那就自己创造罗马~" 目录 温故而知新 计算机网络性能指标 时延 时延带宽积 往返时延RTT 访问百度​编辑 访问b站 访问谷歌 …

使用 .toISOString() 方法生成当前时间的ISO格式字符串,解决UTC时区差问题

方法分析: 日常开发中,有时我们需要向后端传递的时间值可能并非一个时间对象,而是字符串格式。 例 1:[2023-08-16T08:07:25.577Z] 但是我们通过 new Date() 之后直接使用 .toString() 方法得到的却并非这种格式。 例 2&#xff1…

MAX/MSP SDK学习08:设置入口的冷热标签

1. 默认所有的入口会显示为热标签(红色); 2. 若想让所有非最左入口都显示为冷标签,则需在ext_main函数中添加内置函数stdinletinfo: class_addmethod(c, (method)stdinletinfo, "inletinfo", A_CANT, 0); 3…

【从零开始学习Linux】一文带你了解Shell外壳及用户权限(一)

🚩纸上得来终觉浅, 绝知此事要躬行。 🌟主页:June-Frost 🚀专栏:Linux入门 🔭【从零开始学习Linux】系列均属于Linux入门,主要包含Linux操作系统下的指令、操作、权限以及开发工具&a…

@DS动态切换数据源

1.DS概述 DS是自定义注解,可以作用于方法或类上,用于切换数据源。当注解添加到类上时,意味着此类里的方法都使用此数据源;当注解添加到方法上时,意味着此方法上使用的数据源优先级高于其他一切配置。 2.DS使用 2.1 导…

基于.net framework4.0框架下winform项目实现寄宿式web api

首先Nuget中下载包:Microsoft.AspNet.WebApi.SelfHost,如下: 注意版本哦,最高版本只能4.0.30506能用。 1.配置路由 public static class WebApiConfig{public static void Register(this HttpSelfHostConfiguration config){// …

Axure插件浏览器一键安装:轻松享受高效工作!

Axure插件对原型设计师很熟悉,但由于Axure插件是在国外开发的,所以在安装Axure插件时不仅需要下载中文包,激活步骤也比较繁琐,有时Axure插件与计算机系统不匹配,Axure插件格式不兼容。本文将详细介绍如何安装Axure插件…

uniapp开发小程序-pc端小程序下载文件

fileName包含文件名后缀名,比如test.png这种格式 api.DownloadTmtFile后端接口返回的是文件的二进制流 值得注意的是,微信开发者工具中是测试不了wx.saveFileToDisk的,需要真机或者体验版测试 handleDownload(fileName) {if (!fileName) retu…

CCFCSP试题编号:201912-2试题名称:回收站选址

这题只要比较坐标的四周&#xff0c;然后计数就可以了。 #include <iostream> using namespace std;int main() {int n;cin >> n;int arr[1005][2] { 0 };int res[5] { 0 };int up 0;int down 0;int left 0;int right 0;int score 0;for (int i 0; i <…

QT 在Windows下实现ping功能(ICMP)

前言 很多时候&#xff0c;我们可能会图省事直接调用系统中的ping命令&#xff0c;但这是很不科学的~ 废话不多说&#xff0c;直接上代码.. .pro文件 在.pro文件末尾添加一行&#xff1a; LIBS -liphlpapi -lws2_32 .h文件 在.h文件中加入&#xff1a; #include <Q…

23款奔驰GLC260L升级原厂360全景影像 高清环绕

本次星骏汇小许介绍的是23款奔驰GLC260L升级原厂360全景影像&#xff0c;上帝视角看清车辆周围环境&#xff0c;更轻松驾驶 升级360全景影像系统共有前后左右4个摄像头&#xff0c;分别在车头&#xff0c;车尾&#xff0c;以及两边反光镜下各一个&#xff0c;分别用来采集车头&…

C# 宏--释义及实例

1.宏-释义 在C#中&#xff0c;宏&#xff08;Macro&#xff09;通常指的是预处理指令&#xff08;Preprocessor Directive&#xff09;&#xff0c;用于在编译时对源代码进行一些宏替换或条件编译的操作。C#中的宏使用预处理器指令#define和#undef来定义和取消定义宏&#xff…

C++string_view简介

1. 简介 C17之后才有string_view&#xff0c;主要为了解决C语言常量字符串在std::string中的拷贝问题。 即readonly的string。 2. 引入 2.1 隐式拷贝问题 将C常量字符串拷贝了一次 #include <iostream> #include <string>int main() {std::string s{ "He…

Modbus RTU、Modbus 库函数

Modbus RTU 与 Modbus TCP 的区别 一般在工业场景中&#xff0c;使用 Modbus RTU 的场景更多一些&#xff0c;Modbus RTU 基于串行协议进行收发数据&#xff0c;包括 RS232/485 等工业总线协议。采用主从问答式&#xff08;master / slave&#xff09;通信。 与 Modbus TCP 不…

基于springboot实现实习管理系统的设计与实现项目【项目源码+论文说明】计算机毕业设计

基于sprinmgboot实现实习管理系统的设计与实现演示 摘要 随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;实习管理也不例外&#xff0c;但目前国内仍都使用人工管理&#xff0c;市场规模越来越大&#xff0c;同时信息量也越来越庞大&#xff0c;…

普通平衡树

题意&#xff1a;略&#xff0c;题中较清晰。 用二叉查找树来存储数据&#xff0c;为了增加效率&#xff0c;尽量使左子树和右子树的深度差不超过一&#xff0c;这样可以时间控制在logn&#xff0c;效率比较高。 右旋和左旋&#xff0c;目的是为了维护二叉树的操作&#xff0…

Dubbo引入Zookeeper等注册中心简介以及DubboAdmin简要介绍,为后续详解Dubbo各种注册中心做铺垫!

文章目录 一&#xff1a;Dubbo注册中心引言 1&#xff1a;什么是Dubbo的注册中心&#xff1f; 2&#xff1a;注册中心关系图解 3&#xff1a;引入注册中心服务执行流程 4&#xff1a;Dubbo注册中心好处 5&#xff1a;注册中心核心作用 二&#xff1a;注册中心实现方案 …

Springboot+vue的新冠病毒密接者跟踪系统(有报告)。Javaee项目,springboot vue前后端分离项目

演示视频&#xff1a; Springbootvue的新冠病毒密接者跟踪系统(有报告)。Javaee项目&#xff0c;springboot vue前后端分离项目 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的新冠病毒密接者跟踪系统&#xff0c;采用M&#xff08;model&#xff09;V&#xff08;v…

HttpClient实现 get、post、put、delete请求【转】

来自&#xff1a;HttpClient实现 get、post、put、delete请求_httpclient put请求-CSDN博客 目录 HttpClient HttpClient的主要功能 httpclient使用示例主要步骤 Spring Boot 工程结构 HttpClient实现主要代码&#xff1a; GET POST PUT Delete HttpClient HttpCli…