uvm设计分析——tlm】的更多相关文章

tlm模块,用来在不同模块之间实现实时通信,主要基于两个定义在通信双方的port类来实现. 两个port之间,通过connect函数,来拿到双方的class指针,进而调用对方的function. 但是uvm规定,控制流(调用function与被调用方)只能按一定的方向来执行,所以只有某一类port类可以调对应port的function. 由于imp所在的class中,每次通信可能实现的function不同,而且做virtual function的重载也会引入新的class, 所以imp中的por…
项目中的reg_model一般只有一份,set到reg_sequence上,所以多个sequence并行启动结束的时候,reg model会成为一个共享资源. uvm_reg_field中的volatile,主要来设置m_check的变量, m_check,主要用在uvm_reg的mirror task,以及read task,(需要map中配置check_on_read) uvm_reg_field中的desired,mirrored,m_parent,m_access变量都是local的,继…
uvm的factory机制,通过实例一个static类型default factory,并且通过宏将所有例化extend出来的object,component register到该factory的内部变量中:所以有了可以override的条件: register通过注册一个proxy,该proxy是一个参数化的class,实现对被代理class的create: uvm_component_registry,是对uvm_component的proxy基类,目标component通过定义一个参数化的…
uvm中的field_automation主要实现了class中的基础元素的copy,compare等函数, 实现方式分为两种:1)用户注册,field系列宏:uvm内部调用static status container中的function:     2)用户自己实现do_copy,do_print等函数,调用static printer内的函数: uvm_object中实现了print,sprint等函数,实现调度接口,调度status_container和do_function: statu…
uvm_callback,设计者在进行class的function设计时,有意留下的一些hook,总是遍历某个pool中的对象: 使用者在使用时,将实现添加到某个pool中: callback中,最重要的三个class: 1)pool类,uvm_callbacks,实现pool的register和add: 2)调用接口类,uvm_callback_iter,实现对pool中对象的遍历: 3)uvm_callback,供extend的基础类,只是定义了callback的mode: uvm_call…
uvm_report实现中的类图,如下: 1)uvm_component均从uvm_report_object extend而来,其中定义了report_warning,error,info,fatal等方法接口: 2)uvm_report_message和uvm_report_handle,是一个中介者的角色,实现调用接口和实现的分离:将report信息, 打包成一个message的对象:并处理各种severity的override: 3)uvm_report_server,实现该messag…
By Moataz El-Metwally, Mentor Graphics Cairo Egypt Abstract : With the increasing adoption of OVM/UVM, there is a growing demand for guidelines and best practices to ensure successful SoC verification. It is true that the verification problems did no…
[转]http://www.asicdv.com/ 一个UVM验证平台可以看成由多个模块组合在一起的,这和以前的verilog代码,以及verilog结合其它各种语言的验证手段在理念上是一样的,最大的不同就是这些模块不再是函数或者过程,而是一个个对象,其实仔细想想如果想实现继承,多态等等这些功能,类的概念势必要引入的,这一点在学习SystemVerilog中也会深有体会. 参见下图,总的来说UVM验证平台包含Data Item, Driver, Sequencer, Monitor, Agent…
UVM中的类包括:基类(base)------------uvm_void/uvm_object/uvm_transaction/uvm_root/uvm_phase/uvm_port_base 报告(reporting)--------uvm_report_object/uvm_report_handler/uvm_report_server/uvm_report_catcher Factory---------uvm_*_register/uvm_factory 配置(config)----…
1. 类: 面向对象基础传统的面向对象编程与systemverilog类的特点,类的定义,成员与方法,构造函数,对象的复制和深/浅拷贝,父类/子类关系,类的继承,作用域的规则,对象的句柄以及赋值,方法的扩展和重写,local/protected关键字,虚基类,虚方法,虚接口. 2. UVM基础 :UVM的发展历史,可配置的测试组件,类库结构,UVM核心基类的介绍,include/macro,UVM交易(data),基本测试组件 (testbench components),组件的phase结构,…