UVM入门和进阶实验0

news2025/1/15 18:33:04

一. 概述

UVM学习流程仍然按照SV时候的核心流程,即:

  • 如何搭建验证框架
  • 验证组件之间的连接和通信
  • 如何编写测试用例,继而完成复用和覆盖率的收敛

我们UVM入门和进阶实验0还是同之前SV验证实验0思想一样,让大家通过简单的实验要求,从而掌握下面的基本概念和仿真操作:

  • 懂得如何编译UVM代码。
  • 理解SV和UVM之间的关系。
  • 了解UVM验证顶层盒子与SV验证顶层盒子之间的联系。
  • 掌握启动UVM验证的必要步骤。

二. 编译UVM代码

(1)导入uvm_dass_inst.sv,sv_class_inst.sv,uvm_test_inst.sv,uvm_compile.sv并且compile select
在这里插入图片描述
(2)编译文件uvm_compile.sv,选项为:simulate without optimization,待正常编译结束。

module uvm_compile;
  // NOTE:: it is necessary to import uvm package and macros
  import uvm_pkg::*; //预编译的uvm的库
  `include "uvm_macros.svh"//预编译的uvm的库

  initial begin
    `uvm_info("UVM", "Hello, welcome to RKV UVM training!", UVM_LOW)
    #1us;
    `uvm_info("UVM", "Bye, and more gifts waiting for you!", UVM_LOW)
  end
endmodule

在这里插入图片描述
uvm_pkg可以在mtiUvm中找到。
在这里插入图片描述
(3)在命令窗口中敲入"run-all",可以观察到仿真输出语句:
在这里插入图片描述

三. SV和UVM之间的关系

(1)编译sv_class_inst

module sv_class_inst;
  import uvm_pkg::*;
  `include "uvm_macros.svh"

  class top;
    function new();
      `uvm_info("SV_TOP", "SV TOP creating", UVM_LOW)
    endfunction
  endclass

  initial begin
    top t; 
    `uvm_info("SV_TOP", "test started", UVM_LOW)
    t = new();
    `uvm_info("SV_TOP", "test finished", UVM_LOW)
  end
endmodule

编译结果:
在这里插入图片描述

反映在sim中的结构图:
在这里插入图片描述
其实在0时刻的时候创建了t,并且结束了仿真,但是在instance中没有显示。获得显示的过程为:
首先transcipt中输入restart
然后点击sv_class_inst,将断点设置在17行,
再者transcipt中输入run -all,
点击view-local,
选中initial过程块,local中会显示t变量。
在这里插入图片描述
run -all的仿真结果:
在这里插入图片描述
(2)编译uvm_class_inst

module uvm_compile;
  // NOTE:: it is necessary to import uvm package and macros
  import uvm_pkg::*;
  `include "uvm_macros.svh"
  
  class top extends uvm_component;
    `uvm_component_utils(top)
    function new(string name = "top", uvm_component parent = null);
      super.new(name, parent);
      `uvm_info("UVM_TOP", "SV TOP creating", UVM_LOW)
    endfunction
  endclass

  initial begin
    `uvm_info("UVM", "Hello, welcome to RKV UVM training!", UVM_LOW)
    #1us;
    `uvm_info("UVM", "Bye, and more gifts waiting for you!", UVM_LOW)
  end
endmodule

编译结果:
在这里插入图片描述
run -all仿真结果:
在这里插入图片描述

四. UVM验证顶层盒子与SV验证顶层盒子之间的联系。

编译并仿真uvm_test_inst.sv

package test_pkg;
  import uvm_pkg::*;
  `include "uvm_macros.svh"

  class top extends uvm_test;
    `uvm_component_utils(top)
    function new(string name = "top", uvm_component parent = null);
      super.new(name, parent);
      `uvm_info("UVM_TOP", "SV TOP creating", UVM_LOW)
    endfunction
    task run_phase(uvm_phase phase);
      phase.raise_objection(this);
      `uvm_info("UVM_TOP", "test is running", UVM_LOW)
      phase.drop_objection(this);
    endtask
  endclass
endpackage

module uvm_test_inst;
  import uvm_pkg::*;
  `include "uvm_macros.svh"
  import test_pkg::*;

  initial begin
    `uvm_info("UVM_TOP", "test started", UVM_LOW)
    run_test("top");
    `uvm_info("UVM_TOP", "test finished", UVM_LOW)
  end

endmodule

仿真结果:
在这里插入图片描述

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

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

相关文章

学习HTTP协议,这一篇就够啦 ~~

HTTP协议一、什么是HTTP1.1 应用层协议1.2 HTTP1.3 HTTP协议的工作过程二、HTTP协议格式2.1 Fiddler抓包工具2.2 协议格式三、HTTP请求 (Request)3.1 认识 "方法" (method)3.1.1 GET 方法3.1.2 POST 方法3.1.3 GET和POST比较3.1.4 其他方法3.2 认识URL3.2.1 URL基本格…

基于迅为3568开发板的多屏同/异显动态方案

iTOP-RK3568开发板采用四核Cortex-A55处理器,芯片内置VOP控制器,支持HDMI、LVDS、MIPI、EDP四种显示接口的多屏同显、异显和异触,可有效提高行业定制的拓展性。 iTOP-RK3568开发板支持以下屏幕: 迅为 LVDS 7 寸屏幕 迅为 LVDS …

【数学】三角函数小题

∣三角函数小题NightguardSeries.∣\begin{vmatrix}\huge{\textsf{ 三角函数小题 }}\\\texttt{Nightguard Series.}\end{vmatrix}​ 三角函数小题 Nightguard Series.​​ 以下是一些废话 不愿意看的可以跳过 最近守夜人更新得很慢,守夜人拖更主要有三个原因&#…

Hudi(1):Hudi概述

目录 0. 相关文章链接 1. Hudi简介 2. 发展历史 3. Hudi特性 4. 使用场景 4.1. 近实时写入 4.2. 近实时分析 4.3. 增量 pipeline 4.4. 增量导出 0. 相关文章链接 Hudi文章汇总 1. Hudi简介 Apache Hudi(Hadoop Upserts Delete and Incremental&#xff0…

servlet(三)文件的下载

主要有几个步骤: 1、获取要下载的文件名 2、读取要下载的文件内容 (通过 ServletContext 对象可以读取,这个也是 ServletContext的应用) 3、获取要下载的文件类型 4、在回传前,通过响应头告诉客户端返回的数据类型 5、还要告诉客户端收到的数据是用于下载使用&#…

Web APIs 简介、DOM

文章目录一、Web APIs 简介1、Web APIs 和 JS 基础关联性2、API 和 Web API二、DOM1、DOM简介2、获取元素(1)根据ID获取(2)根据标签名获取(3)通过HTML5新增的方法获取(4)获取特殊元素…

【数据库数据恢复】oracle数据库执行truncate table的数据恢复案例

数据库恢复环境: 操作系统:windows server; 数据库:win_oracle_x64。 数据库故障&分析: oracle数据库误truncate table,备份无法使用。 oracle数据库误操作导致数据丢失是比较常见的一种故障&#xf…

《Linux运维总结:Centos7.6二进制安装Mysql8.0.30》

一、安装Mysql服务 1.1、下载二进制安装包 官方:二进制安装包下载 [rootlocalhost ~]# cd /data/pkgs [rootlocalhost pkgs]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz [rootlocalhost pkgs]# tar a…

启动报异常:org.yaml.snakeyaml.parser.ParserException: while parsing a block mapping

目录 异常信息 异常原因 解决结果 异常信息 17:20:38.414 [main] ERROR o.s.b.SpringApplication - [reportFailure,870] - Application run failedorg.yaml.snakeyaml.parser.ParserException: while parsing a block mapping in reader, line 4, column 3: name: R…

JMeter分布式部署

目录 一、JMeter分布式执行原理 二、jmeter分布式部署 三、jmeter分布式执行 X、常见问题 1、Cannot start. localhost.localdomain is a loopback address 一、JMeter分布式执行原理 1、jmeter分布式压测时,选择其中一台作为调度机(master),其他机…

密码技术学习二:认证

1、单向散列函数 概念:单向散列函数有一个输入和一个输出,其中输入称为消息,输出称为散列值。单向散列函数可以根据消息的内容计算出散列值,而散列值就可以被用来检查消息的完整性; 单向散列函数输出的散列值也称为消…

ArcGis制作深度学习标签

项目场景: 在导入的tif文件上制作深度学习标签文件 问题描述 cv2读取导出标签tif文件是出现错误: imread_(/kaggle/input/a-small-jpg/headwrong.tif): cant read header: OpenCV(4.5.4) /tmp/pip-req-build-jpmv6t9_/opencv/modules/imgcodecs/src/grf…

independent watchdog 独立看门狗 window watchdog 窗口看门狗

看门狗(watchdog) 防止硬件因外界电磁场干扰或其他导致不能正常工作的,导致不可预料后果,对芯片进行实时检测的模块或芯片称为看门狗。 看门狗工作过程 启动看门狗后,有一个计数器从最大值递减,计数器减…

双层pdf-不用手动添加目录超链接教程

双层pdf最大的特点是文件既可以是文本型的(比如由word生成的文件),也可以是图像型的,既可以100%保留原始版面效果,又便于建立索引数据库,进行科学的管理。在标书中应用广泛。 使用软件:wordAdo…

Linux文件操作(基础IO)

在C、C、Python等语言中存在对文件操作的接口,通过这些接口我们可以创建文件,并实现文件内容的写入和读取,本文将介绍Linux下我们是如何进行文件操作的,并且深入底层的解析文件操作的原理。 文章目录一、C语言中的文件接口1.1 fop…

【pandas】教程:1-处理什么样的数据

pandas 处理什么样的数据? pandas 数据表格的表示 想存储一些 Titanic 乘客数据,知道姓名,年龄,性别等; df pd.DataFrame({"Name": ["Braund, Mr. Owen Harris","Allen, Mr. William Henry…

仪表板工具Stimulsoft Dashboards仪表板中的数据筛选元素介绍

Stimulsoft Ultimate是用于创建报告和仪表盘的通用工具集,包含九种产品,可以为任何受支持的平台创建报告和仪表板,适用于WinForms,ASP.NET,.NET Core,JavaScript,WPF,PHP&#xff0c…

Java EE 期末复习提纲【太原理工大学】

目录 一、题型 二、考点 1. MyBatis 2. Spring 3. Spring MVC 一、题型 1. 选择题 20 个,每个 1 分,共 20 分。 2. 填空题 20 个,每个 1 分,共 20 分。 3. 判断题 10 个,每个 1 分,共 10 分。 4. 程…

SSM1---MyBatis

MyBatis MyBatis环境搭建 我这个是使用IDEA&#xff0c;基于Maven搭建的 首先建立一个空的Maven项目或者模块在pom.xml中引入所需依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"…

技术分享| 复盘一起看球场景

卡塔尔世界杯已经落幕&#xff0c;作为“后新冠时代”的首个大型全球体育赛事&#xff0c;也同时被多个“史上首次”与“历史之最”所装点&#xff0c;但同时也是国内疫情的高峰期&#xff0c;相信大多数人都是顶着高烧咳嗽跟好友线上看完了总决赛&#xff0c;对于线上互动一起…