UVM
文章平均质量分 62
该专栏,总结UVM的使用和技巧
那么菜
仗剑天涯,谁来也不怕
展开
-
#UVM# 关于UVM 中的 uvm_resource 资源配置学习
介绍一下UVM是如何配置资源的以及获取资源的。转载 2023-05-11 17:27:41 · 1487 阅读 · 2 评论 -
#UVM# 对于验证平台中的 uvm_root 类,要知道这几点
可以看到uvm_root具备了单例模式的所有因素,所以调用uvm_root在整个UVM环境运行时有且只有一个实例,并且在uvm_root的325行还定义了一个全局可见的uvm_root的实例常量uvm_top,这就是为什么我们可以直接使用uvm_top来调用uvm_root中定义的诸如print_topology()之类的函数的原因。3、get 函数中将会判断m_inst是否已经被创建,如果还没被创建即null,那么就执行new函数,并将该实例赋值给步骤1中定义的m_inst并返回该实例;原创 2023-05-07 19:13:59 · 263 阅读 · 0 评论 -
#UVM# 搞清验证平台中的 uvm_top 和 null ,不清不白?
UVM# 搞清验证平台中的 uvm_top、uvm_test_top及module top的层次关系其实,在那片文章中,如果大家结合UVM 源码稍微分析,再结合自己工作中或者自己手动搭建的小小uvm 验证平台,就可以理解三者之间的关系,注意:对于初学者,弄清三者之间的关系,是非常重要的。今天,忽然想起一直悬在心里面的一个问题:实际工作中,大家不妨想想,是不是有遇到过 uvm_top 和 null 混用的场合,它们之间到底怎么个关系呢?今天我们一探究竟。原创 2023-05-07 16:07:54 · 533 阅读 · 0 评论 -
#systemverilog# 之 泛型类、参数化类
和BlueSpec和Chisel等等高级硬件语言相比,SystemVerilog缺乏对硬件模块(module)的泛型定义。或者说,SystemVerilog还不能将module对待成class从而实现对module的继承。SystemVerilog的泛型支持依赖于参数(parameter),但是长久以来parameter本身必须是以一个编译时可求值的常数(SystemVerilog已经支持浮点数的参数)。但是现在,SystemVerilog看来已经开始支持类型parameter,这绝对是个好事。如果参数可以原创 2022-02-15 12:13:49 · 723 阅读 · 0 评论 -
#UVM# 设计模式 : OOP特性、设计原则、规范与单元测试
开篇懂得“数据结构与算法” 写出高效的代码,懂得“设计模式”写出高质量的代码。何为高质量的代码?下面这些词汇是我们常用的形容好代码的词汇:????设计模式之美 灵活性(flexibility)、可扩展性(extensibility)、可维护性(maintainability)、可读性(readability)、可理解性(understandability)、易修改性(changeability)、可复用(reusability)、可测试性(testability)、模块化(modularity转载 2022-02-15 11:24:18 · 281 阅读 · 0 评论 -
#UVM# useage 解析 之 uvm_barrier 和 uvm_barrier_pool (三)小试牛刀
This example is similar to the above example. In this example, multiple processes are of the same task.(1条消息) [UVM]UVM進程同步之UVM Barrier(二)_元直的博客-CSDN博客该文章,作者详细讲述了 基本常用函数的用法,例子详细,多谢大佬分享!!!...转载 2022-02-11 10:37:15 · 99 阅读 · 0 评论 -
#UVM# useage 解析 之 uvm_barrier 和 uvm_barrier_pool (二)小试牛刀
barrier是通过调用ba.new()方法创建的,阈值或等待的进程数是新方法的参数这个示例中有4个带有延迟的进程,在延迟之后调用wati_for方法The statements after the wait_for will get executed only after the 3 process reaches to wait_for (3 is threshold have been set during creating the barrier)module uvm_barrier_.转载 2022-02-11 10:34:20 · 137 阅读 · 0 评论 -
#UVM# useage 解析 之 uvm_barrier 和 uvm_barrier_pool (一)小白易懂
UVM提供uvm_barrier对多个组件进行同步协调,同时为了解决组件独立运作的封闭性需要,定义了新的类uvm_barrier_pool来全局管理uvm_barrier对象。uvm_barrier 可以设置一定的等待阈值,仅在有不少于该阈值的进程在等待该对象时才会触发该事件,同时激活所有正在等待的进程,使其基础进行。virtual function void reset (bit wakeup = 1) Resets the barrier. This sets the wa...转载 2022-02-11 10:31:00 · 238 阅读 · 0 评论 -
#UVM# useage 解析 之 uvm_object
https://verificationacademy.com/verification-methodology-reference/uvm/src/base/uvm_object.svh原创 2022-02-10 22:05:01 · 118 阅读 · 0 评论 -
#UVM# useage 解析 之 uvm_event 和 uvm_event_pool (二)uvm_event 源码分析
#UVM# 简书 uvm_event 源码分析原创 2022-02-09 12:53:27 · 282 阅读 · 0 评论 -
#UVM# useage 解析 之 uvm_event 和 uvm_event_pool (三)uvm_event_pool 源码分析
#UVM# 简书 uvm_event_pool 源码分析要知道上面的的语句干了什么是就得知道uvm_event_pool的源代码:https://verificationacademy.com/verification-methodology-reference/uvm/src/base/uvm_pool.svh原创 2022-02-09 12:52:55 · 349 阅读 · 0 评论 -
#UVM# useage 解析 之 uvm_event 和 uvm_event_pool (一)小白易懂
在Systermverilog 中用于进程间同步的方式有 event, semaphore和mailbox。而在UVM中event进化成uvm_event,不仅仅拥有达成不同组件进程之间同步的功能,还能像TLM通信一样传递数据,并且作用范围更广(TLM通信只能在uvm_component之间,而uvm_event不限于此)。一 常见的uvm_event使用方法首先从常见的uvm_event达成同步的方式讲起。举例如下:`timescale 1ns/1psimport helloworld_.原创 2022-02-09 12:04:12 · 1854 阅读 · 0 评论 -
【UVM实战连载学习】C.1.2:学了UVM之后能做什么
叮叮当当原创 2022-01-19 10:00:07 · 308 阅读 · 0 评论 -
#UVM# 关于多次TB中 include “uvm_macros.svh“的验证篇(续)
在上一节中,我们用实际例子,验证了之前的论坛结论。但是我们留下一个问题:就是我们在分开编译的情况下,执行 ./simv, 却遇到了错误。 ./simv -l run.log +UVM_VERBOSITY=UVM_FULL +UVM_TESTNAME=${testname} 试想,为什么报如此错误?我们不是在test 中清楚的用 fatory 机制注册了吗?没有道理呀。其实不难发现,我们选择分开编译两个testbench 文件,如果两个文件之间没有依赖关系的话,不会遇到这个错误的。问题原创 2022-01-24 16:29:53 · 370 阅读 · 0 评论 -
#UVM# 关于多次TB中 include “uvm_macros.svh“的验证篇
上一节课,我们对提出的疑问,虽然一定程度上在心里上说服了自己。但是觉得还不够事实强硬。今天,我们花些时间来通过例子,验证一下。个人觉得哈,其实VCS 编译和仿真工具,同其它编程语言一样,都需要经过编译,链接,执行等类似步骤。我们只要记住这一点,就会心里上不惧怕它是个多么复杂的工具。我还是拿之前的系列文章中的例子来展示。仿真环境目录结构如下:tb_top.sv:`timescale 1ns/1psimport uvm_pkg::*;`include "uvm_macros.svh"m.原创 2022-01-24 15:33:30 · 949 阅读 · 0 评论 -
#UVM# 关于多次TB中 include “uvm_macros.svh“的疑问篇
笔者,作为ASIC 验证人员,虽然工作年限不多,经历了3家公司的TB验证环境。一直悬在心里的一个疑问就是:为什么 在TB验证文件中,发现多次`include "uvm_macros.svh"该行代码?追查了一下uvm_pkg::* 这个package . 源代码如下:我们发现,uvm_pkg.sv中,已经包含了 如下行:`include "uvm_macros.svh"既然,uvm_pkg.sv中已经包含了 上面一行,为什么我们还要自己手动去添加呢?...转载 2022-01-23 22:24:29 · 2238 阅读 · 0 评论 -
#UVM# 利用 uvm 后门访问硬件代码中的信号
在老的基于存SV 搭建的验证平台中,testbentch 和 RTL 代码是统一包含在同一个顶层之下,这就方便了我们随时随地的可以操作硬件代码中的信号,读取、赋值、force、@等操作。然而,随着UVM的横空问世,基于UVM 的验证平台成为主流。在基于UVM 的验证case 中,我们难免需要用到读取或者监控RTL 信号的行为,此时,我们就要动动脑筋,到底采取哪种方式,来达到目的。道路千万条,根据不同场合,灵活选取适当方式,会提高代码质量,达到验证目的。UVM提供了一种机制...原创 2021-12-07 13:54:04 · 2635 阅读 · 0 评论 -
#UVM# UVM 验证方法学之 仿真生态系统的创建、消耗和完结
随着当今IC设计规模的越来越庞大,对于涉及IC的验证需求越来越高。公司不惜花费重金,聘请专业的验证工程师,来尽可能降低设计bug 的存在,给公司带来的经济损失。故此,对于验证工程师来讲,掌握UVM和Systemverilog 相结合的验证方案,可以说是一项必备技能。常言道:活到老,学到老。。。。少扯淡,言归正传。原创 2021-05-17 12:13:09 · 601 阅读 · 0 评论 -
#UVM# 浅析快递小哥:uvm_config_db
1. 功能uvm_config_db#(T)是一个类,用于配置uvm_component实例的资源;uvm_config_db主要是提供了一种资源配置的简化方法。2. 命令解析class hierarchyuvm_config_db#(T)或者uvm_config_dbT 就是待配置选项的type类型。class定义class uvm_config_db#( type T = int) extends uvm_resource_db#(T)methods.原创 2020-12-11 11:25:14 · 408 阅读 · 0 评论 -
#UVM# 学习UVM基础(转载:面试总结)
这里写目录标题什么是UVM,优势是什么二级目录什么是UVM,优势是什么uvm_component和uvm_object之间有何区别?模块和基于class的tb,有什么区别什么是uvm_config_db?uvm_config_db和uvm_resource_db之间有什么区别?`uvm_do和`uvm_rand_send之间的区别是什么?用户是否可以自定义UVM中的phase?什么是UVM寄存器模型?为什么需要它?什么是analysis_port?什么是TLM fifo?什么是objection机制?什么原创 2020-11-14 10:32:03 · 2298 阅读 · 0 评论 -
#UVM# 简书UVM的打印技能
UVM 源代码提供了四个宏,用于方便用户将各种信息进行打印,进而辅助仿真与调试。主要有:(1) `uvm_info("","",UVM_*)(2) `uvm_warning("","")(3) `uvm_error("","")(4) `uvm_fatal("","")用户只要按照宏定义要求进行传递参数即可。这里主要说一下uvm_info宏的使用,其预定的打印消息冗余度级别如下图所示,UVM 提供一个UVM_VERBOSITY设置选项,用户可以在通过sim_run args重写该原创 2020-11-11 15:06:08 · 2321 阅读 · 0 评论 -
#UVM# uvm_phase 执行顺序
这里写目录标题概述代码运行结果总结概述本文通过一个小实验,展示uvm function/task phase 执行顺序怎样。代码本实验仅包含2个sv 文件。(1). 顶层 tb.svmodule tb (); import uvm_pkg::*; `include "uvm_macros.svh" import package_my_package::*; initial begin run_test("my_comp3"); end endmodule原创 2020-10-30 10:07:41 · 960 阅读 · 2 评论 -
#UVM# 关于run_test(““) 的几点理解
run_test("") 来自哪里原创 2020-10-29 16:17:38 · 3256 阅读 · 0 评论 -
#UVM# 搞清验证平台中的 uvm_top、uvm_test_top及module top的层次关系
探讨uvm 中的层次关系uvm_topuvm_test_topmodule topuvm 中的层次关系uvm_top 、uvm_test_top 、module top原创 2020-10-29 11:55:04 · 5314 阅读 · 2 评论