UVM中的class
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)------uvm_resource/uvm_resoure_db/uvm_config_db
sequencer--------uvm_sequencer_base/uvm_sequencer_param/uvm_squencer/uvm_push_sequencer
sequence--------uvm_sequence_item/uvm_sequence_base/uvm_sequence
sychronization------uvm_event/uvm_event_callback/uvm_barrier/uvm_objection/uvm_heartbeat
containers----------uvm_pool/uvm_queue
TLM
component--------uvm_component/uvm_callback/uvm_test/uvm_env/uvm_agent/uvm_monitor/uvm_scoreboard/
uvm_driver/uvm_push_driver/uvm_random_stimulus/uvm_subscriber/comparators
Reg model
Macro
Commamd Line
uvm_event/uvm_pool/uvm_queue完成对SV中event, queue, mailbox的封装,实现tlm的通信;
uvm_source利用uvm_pool完成factory机制的实现,实现重载和config_db;
uvm_callback实现callback的基类;
uvm_phase/uvm_objection实现uvm中phase的控制;
uvm_sequence/uvm_sequencer实现blueprint的环境设置;
1)uvm_void(virtual)---一个没有member和function的纯虚类。所有class的基类。
2)uvm_object(virtual)---data和component的基类,定义了一系列常用操作
virtual function:get_name/get_full_name/get_inst_id/do_copy/create
function:copy/compare/pack/pack_bytes
3)uvm_transaction(virtual)------variable:events-----event pool中为该transaction instance的event
begin_event/end_event
function:get_event_pool/set_initiator(initiator of this transaction)/get_initiator
is_active
4)uvm_root------所有uvm的潜在top-level,同时控制整个phase的执行。
virtual methods:run_test(+testname)或者cmd中加+UVM_TESTNAME=
function:print_topology/set_timeout
variable:uvm_top------const uvm_root uvm_top = uvm_root::get()
5)uvm_phase------用户可以extend自己的phase,基类(uvm_task_phase/uvm_topdown_phase/uvm_bottomup_phase)
(build phase是topbottom phase,connect是bottomtop phase)
virtual function:raise_objection/drop_objection/ exec_func/exec_task(CB)
function:jump
(new的时候,会有uvm_objection的类型传递)
uvm_factory用来创建UVM中的object和component,通过typedef和macro invocation来实现。

6)uvm_component_registry#(T,Tname)--------virtual function:get_type_name
static function:create/set_type_override/set_inst_override
7)uvm_object_registry#(T,Tname)--------virtual function:get_type_name
static function:create/set_type_override/set_inst_override
8)uvm_factory--------function:set_inst_override_by_type/set_inst_override_by_name/
set_type_override_by_type/set_type_override_by_name/
create_object_by_type/create_component_by_type/
create_object_by_name/create_component_by_name/
Configuration和Resource Class,提供一个database,供读写。通过queues的方式,可以保存scalar/class handle/
queues/list/virtual interface的结构,保存三部分内容name_table, type_table, set_of scope(通过expression实现)
uvm_resource_db:较低水平的resource database
uvm_config_db:较高水平的resource database,提供configuration的interface
9) virtual class uvm_resource_base--------task:wait_modified()
function:set_scope()
10)uvm_resource_pool--------static function:get()
funciton:set()/set_override()/set_name_override()/set_type_override()
lookup_name()/get_by_name()

11)uvm_resoure #(T)-----------function: read/write()/set/get_by_name/get_by_type
12)uvm_resoure_db #(T)-----------function:/set/get_by_name/get_by_type
13)uvm_config_db #(T)-----------static function:get()/set()/exist()/wait_modified()
uvm_event对SV中的event类型的一次封装:

14)uvm_event---------virtual task wait_on/wait_off/wait_trigger
virtual function reset/add_callback
15)uvm_event_callback(virtual)-------virtual function pre_trigger/post_trigger(uvm_event e, uvm_object data = null)
16)uvm_barrier-------virtual task wait_for()
virtual function reset()/set_threshold/get_threshold/cancel

uvm_objection的class,提供end_of_test的机制。
17)uvm_objection------virtual function raise_objection/drop_objection/raised/dropped/set_drain_time
Container class,针对SV中的queue和associative array做的封装。
18)uvm_pool #(type KEY = int, T = uvm_void)-----------get/add/num/delete/first/last/nect/prev

19)uvm_queue #(T)

UVM中的class的更多相关文章
- UVM中的sequence使用(一)
UVM中Driver,transaction,sequence,sequencer之间的关系. UVM将原来在Driver中的数据定义部分,单独拿出来成为Transaction,主要完成数据的rand ...
- UVM中的regmodel建模(三)
总结一下UVM中的寄存器访问实现: 后门访问通过add_hdl_path命令来添加寄存器路径,并扩展uvm_reg_backdoor基类,定义read与write函数,最后在uvm_reg_block ...
- UVM中的regmodel建模(一)
UVM中的regmodel继承自VMM的RAL(Register Abstract Layer),现在可以先将寄存器模型进行XML建模,再通过Synopsys 家的工具ralgen来直接生成regmo ...
- UVM中factory机制的使用
UVM中的factory机制一般用在sequence的重载,尤其是virtual sequence.当Test_case变化时,通过virtual sequence的重载,可以很容易构建新的测试. 因 ...
- UVM中的factory机制实现
首先在Systemverilog中便有对于重载的最基本的支持. 1)定义task/function时,使用virtual关键字.那之后在test_case中调用时,便使用句柄指向的对象的类型而不是句柄 ...
- uvm_hdl——DPI在UVM中的实现(四)
我们可以在uvm中实现HDL的后门访问,具体包括的function有uvm_hdl_check_path,uvm_hdl_deposit, uvm_hdl_force,uvm_hdl_release, ...
- UVM中的driver组件
一般UVM环境中的Driver组件,派生自uvm_driver. uvm_dirver派生自uvm_component. class uvm_driver #(type REQ = uvm_sequ ...
- UVM中的regmodel建模(二)
UVM的寄存器模型,对一个寄存器bit中有两种数值,mirror值,尽可能的反映DUT中寄存器的值.expected值,尽可能的反映用户期望的值. 几种常用的操作: read/write:可以前门访问 ...
- UVM中Callback机制
Callback机制,其实是使用OOP来实现的一种程序开发者向程序使用者提供的模块内部的接口.可以在Test_case的高度改变其他component的一些行为. Systemverilog中已经提供 ...
随机推荐
- pushState()、popstate事件配合ajax实现浏览器前进后退页面局部刷新
最近研究pushState,看了网上的文章还是不怎么会用,于是自己摸索着理解使用,终于实现局部刷新同时前进后退. 首先说说pushState(),这个函数将当前的url等信息加入history堆栈中: ...
- [LintCode] Paint House 粉刷房子
There are a row of n houses, each house can be painted with one of the three colors: red, blue or gr ...
- [CareerCup] 17.5 Game of Master Mind 猜字游戏
17.5 The Came of Master Mind is played as follows: The computer has four slots, and each slot will c ...
- GUID相关知识。。。。转载
全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度为128位的数字标识符.GUID主要用于在拥有多个节点.多台计算机的网络 ...
- js再学习笔记
#js再学习笔记 ##基本 1.js严格区分大小写 2.js末尾的分号可加,也可不加 3.六种数据类型(使用typeof来检验数据的类型) `typeof` - undefined: `var ...
- NeuSoft(1)构建嵌入式交叉编译环境
操作系统版本:ubuntu 12.04 内核名称:Linux 内核发行版:3.2.0-generic 内核版本:#50-Ubuntu SMP Mon Sep 12 21:18:14 UTC 2011 ...
- db2数据库新手可能碰到的问题及详解(部分内容来自网络搜索)
一.db2安装好之后出现乱码,菜单栏呈现方框状,此时选择菜单第五项,点击选择下拉菜单中的最后一项,打开选择标签卡的第三项(字体),如果是无衬线都改为有衬线,如果是有衬线改为无衬线.乱码即可解决(网上一 ...
- Unity3d优化
检测方式: 一,Unity3D 渲染统计窗口 Game视窗的Stats去查看渲染统计的信息: 1.FPS fps其实就是 frames per second,也就是每一秒游戏执行的帧数,这个数值越小, ...
- session生命周期
session生命周期 原文链接:http://blog.sina.com.cn/s/blog_72c8c1150100qpgl.html 文中黄色字体为我的标记修改或添加 Session保存在服务器 ...
- BizTalk开发系列(十四) XML空白字符(WhiteSpace)
最近在做一个BizTalk项目,对XML文件的处理很复杂.本来是想找有没有方法可以一次性去除XML文件中节点和属性的值的空格.但是找了很久没有看到相关的方法.如果有知道该方法的麻烦跟我讲一下:cbcy ...