![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
uvm
亓磊
牛逼的人生,不需要简述
展开
-
UVM的构造函数new的个人理解
构造函数new自己总结的规律理解结合UVM实战这本书的阅读理解。 归纳一下自己对new函数的个人理解;只是书本前几章阅读后的认知,还不能完善,在此只为记录防丢失。构造函数new一般类的实例化,包含类的声明和类的构造。 比如,my_driver drv;drv=new();drv可以看做是一个句柄,一个指针,一个内存入口地址。这个指向的内存入口地址,存放着构造实现类的对象的初始化信息,包括变原创 2017-03-24 11:15:01 · 14659 阅读 · 0 评论 -
sequence_item、sequence、sequencer、driver的关系
框图简单描述driversequencersequencesequence_item细节理解最初的验证平台只需要driver即可为什么还需要sequence机制sequence机制的内部协议sequence还有很多细节需要补充试写,纯属看书个人理解;无任何实践经验。框图sequence_item,负责定义事务,就是transaction;sequence,负责产生事务。注意se原创 2017-03-23 18:01:45 · 6733 阅读 · 1 评论 -
uvm之virtual sequence机制
背景实现步骤细节分析背景《uvm实战》书上介绍的uvm验证平台,往往只有一个in_agent(即包括driver、in_monitor和sequencer)。然而,一个agent代表一种协议。 由sequence机制的简单理解,可以知道,1个sequencer负责多个sequence的顺序调度。如果出现多个driver或者多个sequencer,必然出现顺序执行的调度问题。举个例子,一个IP,原创 2017-04-13 15:52:51 · 11057 阅读 · 0 评论 -
uvm的config_db
[TOC] config_db,是用于在各个uvm对象里传递参数,一般参数类型,是interface、int等;据说参数必须是静态类型(这个可以在uvm config_db相关代码里确认)。 dut里的信号线状态,是无法通过config_db传递的。dut里的信号线状态,如果想在driver里查询的话,一般是直接使用dut的层次路径即可。举例,比如rapidio,需要等待phy_port_ok信原创 2017-04-05 20:16:08 · 2665 阅读 · 0 评论 -
uvm的随机化
uvm的随机化实现uvm的随机化实现在my_case0类里。 1. 利用宏'uvm_do实现随机化;在my_case0的task body代码段里。 2. 伪随机数,种子默认是1;每一个对象,其伪随机数的算法是独立的;但种子是1. 3. 如果想设置不同的种子,参考网上: 如何在SystemVerilog中手动设置随机化seed - jyaray - 博客园 http://www.cnblo原创 2017-04-05 20:04:32 · 6533 阅读 · 0 评论 -
uvm之寄存器模型
寄存器模型的意义寄存器模型的搭建寄存器模型的FAQ寄存器模型的意义寄存器模型,字面理解,跟参考模型类似。就是为工程里的寄存器提供一个参考模型。 这个模型里,包括各个寄存器字段描述、寄存器、寄存器组、寄存器地址映射等信息。有如下好处: 寄存器模型建立的目的,初始目的,是为了验证寄存器配置过程的。 uvm里提供内置sequence,可以实现后门访问的路径检查、寄存器初始值的检查、寄存器读写属性原创 2017-04-19 14:58:39 · 10203 阅读 · 1 评论