UVM

uvm中set_drain_time()的用法

任何模块都有其处理延时,比如: 在p时刻DUT输出才有数据,同时当DUT输入完成时,n+p时刻,DUT输出才完成。 在UVM中,针对run time phase, 如果在发送完激励后立即drop_objection会导致很多问题(比如DUT输出还未结束就结束仿真了),为解决这一问题,可以在每个run ......
set_drain_time drain time uvm set

UVM寄存器模型

1.创建流程 2.创建一个寄存器基类要extends uvm_reg,然后创建寄存器的域 3.调用`uvm_object_utils()注册基类 4.创建DUT存储器模型 5.封装到一起组成一整个寄存器 6.为实现前门操作创建转换器 uvm_sequence_item reg2bus可以返回一个se ......
寄存器 模型 UVM

C语言全局变量的extern+typedef函数指针+uvm_queue/pool/config_db/resource_db/barrier+接口设计分层+PCIe电气接口

C语言全局变量的extern 全局变量在不同的文件引用,需要加上extern,才能引用到。 如果没有extern关键词,则认为是一个定义,而不是引用,引发同名冲突。 函数也是一样。要在本文件引用其它文件的函数,需要增补extern关键字。 而其它文件,声明和定义过该函数。 typedef函数指针 h ......
接口 指针 全局 变量 resource_db

codeblock快捷键+VS code快捷键+DW_minmax文件+莱文斯坦距离+char* 和 char[]区别+可增删constraint的实现方法+$fatal的传参+巴科斯范式命令行语法+ralgen生成的寄存器模型存在覆盖率的警告(uvm-1.2)

codeblock快捷键 ctrl+G 跳转。 ctlr+J 生成补全。 cygwin用于获得开发环境。注意安装路径要对,特殊字符路径和codeblocks不兼容。 codeblock返回上一处:点击光标即可。 VS code快捷键 Shift Alt F:vs code格式化代码 Ctrl Shi ......
快捷键 寄存器 范式 覆盖率 char

UVM_factory机制

什么是factory机制?最大的优点? factory机制最主要的三个特点就是封装、继承、多态。其最主要的优势就是子类的指针以父类的类型传递时其表现形式仍然是子类行为。 virtual在重载里的作用,其函数仍然保留。 UVM重载的步骤 首先先注册 ·uvm_object_utils()和`uvm_c ......
UVM_factory 机制 factory UVM

UVM_intorduce

什么是UVM?它的优势是什么? uvm是一个设计验证方法学,它的主要优点有复用性高,即插即用,通用性和独立性高,支持覆盖驱动,支持随机约束等等 首先在top_tb文件中加入 import uvm_pkg::*; `include "uvm_macros.svh" UVM有哪些机制? factory机 ......
UVM_intorduce intorduce UVM

SATA基础+更改终端颜色+PCI.ids位置+Linux和Windows的scanf+C语言C++的局部变量与全局变量的重名问题+多个C文件编入到SV中+UVM event pool的例化+ar、nm和ranlib

SATA基础 https://zhuanlan.zhihu.com/p/554251608 物理信号 物理层功能 时钟恢复:对于高频传输,一般是采用差分信号传输,并且没有单独的时钟,时钟存在于编码内部 串并转换:对于高频传输,串联信号可以做到更高的频率。 字节对其:8/10 编码转换的10bit对其 ......
变量 全局 局部 终端 多个

uvm获取simulation option

获取sim option的传统方式是用 $test$plusargs(), 和$value$plusargs(). UVM提供了uvm_cmdline_processor来获取sim opt. 用法如下: uvm_cmdline_processor clp = uvm_cmdline_process ......
simulation option uvm

sv的LSB 使用+SV的protect类型+RAL模型的lock原因+C语言结构体中的冒号用法+uvm版本在退出机制的区别+sv的random的seed生效问题+verdi的reserve的debug+vcs禁用打印屏幕输出+清空seqr中的seq+sv使用process开启进程和结束

sv的LSB 使用 https://blog.csdn.net/gsjthxy/article/details/90722378 等价关系 [LSB+:STEP] = [LSB+STEP:LSB] 伪代码: bit [1023:0] mem; bit [7:0] data; j = 0..100 m ......
冒号 模型 进程 屏幕 机制

uvm 工厂机制3问

UVM工厂机制3问 1、注册在干啥 注册时添加的uvm_object_utils(class_name)或者uvm_component_utils(class_name)展开后有一条m_uvm_object_registry_internal的宏,这个宏定义了一个uvm_object_registr ......
机制 工厂 uvm

uvm 用例选择机制(run_test)

UVM的用例选择机制run_test() 1、编写基于UVM的最简单代码 harness.v module harness(clk, rst); input clk; input rst; endmodule test_uvm.sv ```sv `include "uvm_pkg.sv" impor ......
run_test 机制 test uvm run

uvm 重要函数

UVM重要函数 1、get_full_name() 获取这个节点的完整层次,这函数在object中就有定义,但是在component类中进行了重载,实现输出从uvm_test_top到当前节点的路径(是通过执行m_set_full_name是保存路径在m_name中)。返回值如:env.agt.dr ......
函数 uvm

sv宏展开+参数化类+uvm_coreservice_t+m_sequencer的出现

sv的宏展开 https://www.systemverilog.io/verification/macros/ `" 包括双引号,双引号内的参数应替换,并且任何嵌入的宏都应该展开。 `\`" 在宏拓展结果中使用双引号。 参数化类 如果是要传入一种类型,使用关键字type class packet ......

关于UVM寄存器模型的理解

UVM中的RAL寄存器模型的意义:让开发者能够方便,快速地配置dut的寄存器。 RAL寄存器模型的实质:仍然是UVM中的一个类,但不是作为组件,而是和sequence一样,在basetest中被实例化和使用。本质上,RAL模型与DUT的通信还是依赖于agent的,其顺序是RAL模型通过发起seque ......
寄存器 模型 UVM

UVM入门进阶4

# UVM结构回顾 ## UVM结构 ![Alt text](image.png) ### UVM_TOP UVM中真正的树根是uvm_top。uvm_top是一个全局变量,是uvm_root的唯一一个实例(设计模式中的singleton,单态模式),uvm_root派生于uvm_component ......
UVM

UVM入门进阶2

# UVM入门和进阶2 ## 核心基类(uvm_object) 在UVM世界的类库地图中除过事务接口类继承于uvm_port_base,其他所有的类都是从uvm_object类一步步继承来的 域的自动化:UVM通过域的自动化,使得用户在注册UVM类的同时也可以声明今后会参与到对象复制、克隆、打印等操 ......
UVM

UVM入门进阶3

# UVM组件 UVM组件家族是从uvm_component类继承的来的类 ##UVM_DRIVER 1.uvm_driver类会从uvm_sequencer中获取事务,经过转化然后再接口中对DUT进行时序激励 2.uvm_driver类是参数化类,在定义时需要声明参数的类型 `class uvm_ ......
UVM

UVM入门进阶1、2

#UVM入门进阶1 ##创建对象的四种方法 ``` verilog class trans extends uvm_object ... endclass class top extends uvm_test//uvm_test继承于uvm_component ... endclass class ......
UVM

UVM——宏终极分析

这里先撇开UVM中宏的分析,先来看看C++中对宏的分析 #define ASPECT_RATIO 1.653 记号名称ASPECT_RATIO也许从未被编译器看见;也许在编译器开始处理源码之前它就被预处理器移走了。于是记号名称ASPECT_RATIO有可能没进入记号表内。 当你运用此常量但获得一个编 ......
终极 UVM

UVM基础笔记

1、UVM基本概念(通用验证方法学) 2、简单构建一个UVM平台 env一旦构建完成,就不能更改,如果改了,那之前跑的测试案例都要重来。 每一个组件都有对应的基类 UVM中,穿梭于各个组件中的基本信息单元叫做transaction的数据对象,也叫事物(agent)对象。 不想截图了,见视频别人的笔记 ......
基础 笔记 UVM

解读uvm_config_db中的set和get方法

一、uvm_config_db简介 uvm_config_db的全称是configuration database,它是建立在 uvm_resource_db 之上的便利层,resource database储存的是与scope字符串相关联的name-value对(如下图所示) 。 uvm_conf ......
uvm_config_db 方法 config uvm set
共21篇  :1/1页 首页上一页1下一页尾页