
UVM
文章平均质量分 96
Zing冰
一只不爱说话的蜗牛
展开
-
SVA 断言笔记
SVA 断言一、断言介绍二、并发断言序列sequence运算符延迟运算符连续重复运算符非连续跟随重复符非连续(无所谓跟随)重复操作符and 运算符intersect运算符within运算符throughout运算符first_match三、sequence序列采样函数$rose$fell$change$stable$past其他会用到的内建函数四、并发断言属性property蕴含算子disable iff 与not用法参考简单而言就是检查某一行为与我们的预期是否相符,如果相符则断言成功否则断言失败。举个栗原创 2021-02-25 16:38:58 · 5640 阅读 · 3 评论 -
UVM--寄存器访问方法
前/后访问寄存器访问方法1.1.前门访问1.2. 后门访问1.2.1.访问前的地址映射1.2.2.后门访问1.3.前/后门访问的比较寄存器访问方法在没有寄存器模型之前,只能启动 sequence 通过前门(FRONTDOOR)访问的方式来读取寄存器,局限较大,在 scoreboard(或者其他 component )中难以控制。而有了寄存器模型之后,scoreboard 只与寄存器模型打交道,无论是发送读的指令还是获取读操作的返回值,都可以由寄存器模型完成。有了寄存器模型后,可以在任何耗费时间的pha原创 2020-12-16 21:56:16 · 6369 阅读 · 0 评论 -
UVM- 寄存器模型 Register Model(八)
寄存器模型 Register Model一、RAL : Register Abstraction Layer二.UVM 寄存器模型的层次三、RAL模型创建并使用3.1.对每个寄存器进行定义并创建3.2.将寄存器放入register block容器中,并加入到对应的Address Map3.3.创建RAL适配器(adapter)3.4.验证环境中实例化RAL模型并建立连接3.5.编写RAL的测试序列3.6.显式或隐式的运行RAL序列3.7.显式或隐式执行镜像预测四、总结一、RAL : Register Ab转载 2020-12-16 21:04:52 · 15921 阅读 · 2 评论 -
UVM--同步通信息元件(七)
同步通信息元件一、uvm_event用法二、uvm_barrier用法三、uvm_callback用法SV中用来做线程间同步方法分别是semaphore、event和mailbox。然而在UVM中,同步的不再只局限于同一个对象中的各个线程,而是还有各个组件之间的同步问题。一旦发生同步的要求发生在各个组件之间,这就要求组件之间通过某种可以同步的方法来实现。而考虑到UVM各个组件的封闭性原则,我们并不推荐通过层次索引的形式在组件中来索引公共的event或者semaphore。UVM为了解决封闭性的问题,定义了原创 2020-12-15 22:16:47 · 828 阅读 · 0 评论 -
UVM——sequence机制(六)
sequence机制(下)一、sequence的启动方式细节二、常见sequence/item发送的方法和宏三、sequence的仲裁机制四、sequence对sequencer的占用或失效六、Sequence的层次化virtual_sequencevirtual sequencersequence机制(五)已经了解到sequencer与driver之间的传递sequence item的握手过程,同时也掌握了sequence与item之间的关系。接下来,我们需要就sequence挂载到sequencer上原创 2020-12-15 15:47:06 · 3888 阅读 · 1 评论 -
UVM——sequence机制(五)
sequence机制【上】一、sequence的执行流程二、sequence和item三、Sequence 和 Driver3.1.Driver有哪些操作3.2.Sequence有哪些操作3.3.使用get()和put()完成通信3.4.response机制:Driver->Sequence的反馈一、sequence的执行流程控制和产生一系列的激励,并通过sequencer将激励发送给driver的机制。如果按照交通道路的车流来打比方,sequence就是道路,sequence item是道路上行原创 2020-12-15 11:18:34 · 4537 阅读 · 1 评论 -
UVM-TLM通信机制(四)
UVM-TLM通信机制一、两对象与三端口1.1.两个通信对象:initiator、target1.2.三个通信端口:port、export、imp二、一对一传输2.1.单向传输——put( )和get( )操作传输2.2.transport( )操作传输2.3.跨层次传输——uvm_analysis_port三、一对多传输3.1.fifo模式3.2.分析端口——Analysis port(一对多传输、最常用)TLM(transaction level modeling)是一个基于事务(transactio转载 2020-12-08 17:14:19 · 1780 阅读 · 0 评论 -
UVM config机制(三)
UVM config机制一、uvm_config_db机制1.1.virtual interface的传递(重要)1.2.配置单一变量1.3.config object对象传递(重要)1.4. config 机制建议1.5. 其他配置方法一、uvm_config_db机制uvm_config_db在uvm验证环境中的应用(interface,config,sequencer),它的使用可以极大的方便我们对一些需要全局可见的变量或类的处理,让我们能够更容易的去管理验证环境中的一些组件,也在一定程度上方便了原创 2020-12-08 11:55:54 · 1609 阅读 · 2 评论 -
UVM世界观 (二)
UVM 基础一、factory 机制1、为什么需要工厂2、使用工厂模式的步骤2.1.、登记注册1.2. 实例化对象1.3. 覆盖override1.4. 检查覆盖是否完成—factory.print()二、phase机制三、UVM 世界四、UVM 仿真结束一、factory 机制1、为什么需要工厂工厂设计模式是一种典型的软件设计模式,UVM工厂的存在就是为了更方便地替换验证环境中的实例或者注册了的类型,同时工厂的注册机制也带来了配置的灵活性。这里的实例或者类型替代,在UVM中称作覆盖(overri原创 2020-12-07 22:40:54 · 1705 阅读 · 2 评论 -
UVM 基础入门(一)
UVM 基础入门一、框架框架一框架二框架三二、各组建关系三、uvm_object类类的预定义类的方法类的声明变量声明方法声明方法的实现一、框架框架一构成环境的组件都从uvm_component类继承而来,这是因为它们都从uvm_component类继承了phase机制,都会经历各个phase阶段。常见组件如下:uvm_sequencer:所有的sequencer都要派生自uvm_sequencer。 sequencer功能:组织管理sequence,driver申请数据时,它就把s原创 2020-12-07 20:27:12 · 21503 阅读 · 1 评论