UVM中的class--2
1)uvm_component从uvm_report_object继承而来,提供的功能包括:
1)Hierarchy,-----searching and traversing component hierachy

2)Phasing-----调用uvm_phase以及预先定义的很多phase


3)config-------调用config_db的methods

4)report-------调用uvm_report的methods

5)Factory-----调用factory的methods

6)Transaction recording-----调用recording的methods
Callbacks Classes用来做registration/user-defined的callback
uvm_callbacks,实现callback的注册,
uvm_callback,自定义callback的基类。
2)uvm_callbacks#(T,CB),T表示基本的object类型,CB表示定义的callback,完成注册。
3)uvm_callback------------function callback_mode(Enable/disable callbacks)像constraint mode
is_enabled(返回callback的enable/disable)
4)uvm_test,用户自定义的test的虚基类,run_test必须放在initial内部。
virtual class uvm_test extends uvm_component
并没有很多新的variable和methods
5)uvm_env,hierarchy上的container,包含其他的component,来组成和一个整体。
virtual class uvm_test extends uvm_component
并没有很多新的variable和methods
6)uvm_agent, virtual class uvm_agent extends uvm_component
新加一个virtual function get_is_active(),返回1表示UVM_ACTIVE,返回零表示UVM_PASSIVE
7)uvm_monitor, virtual class uvm_monitor extends uvm_component
并没有很多新的variable和methods
8)uvm_scoreboard, virtual class uvm_scoreboard extends uvm_component
并没有很多新的variable和methods
9)uvm_driver, virtual class uvm_driver extends uvm_component
uvm_driver #(REQ, RSP)
新增的port,seq_item_port(request items from sequencer)
rsp_port(sending responses)
10)uvm_subscriber, virtual class uvm_subscriber extends uvm_component
uvm_subscriber #(T)
新增的port,analysis port(提供给write函数)
新增的methods,write(pure virtual class)
11)Comparators,应用在transaction的比较,从DUT出来的和expected results
uvm_in_order_comparator #(T,comp_type,convert,pair_type)
新增的port,before_export:一个transaction从这个port写入
after_export:另一个transaction从这个port写入
pair_ap:comparator输出transaction从这个analysis port
新增的methods(virtual function):set m_matches和m_mismatches为零。
12)uvm_sequence_item:用户自定义transaction的基类,从uvm_transaction继承来
virtual function---set_sequencer()
function---get_sequencer()/uvm_report_info/warning/error/fatal
virtual task---start_item()/finish_item()/
13)uvm_sequence_base:
class uvm_phase starting_phase
virtual task---start()/pre_body()/pre_do()/mid_do()/body()/post_do()/start_item/finish_item/wait_for_grant
task----lock()/grab()/
function---set_priority()/unlock()/ungrab()/
14)uvm_sequence(virtual) #(uvm_sequence_item, REQ)
function---send_request(uvm_sequence_item req)/
virtual task---get_response(RSP)
15)uvm_sequencer_base,从uvm_component继承而来,

16)uvm_sequencer_param_base #(REQ= uvm_sequence_item, RSP)
17)uvm_sequencer #(REQ = uvm_sequence_item, RSP)
新增port:seq_item_export
18)uvm_push_sequencer #(REQ = uvm_sequence_item, RSP)
新增port:req_port
UVM中的class--2的更多相关文章
- UVM中的class
UVM中的类包括:基类(base)------------uvm_void/uvm_object/uvm_transaction/uvm_root/uvm_phase/uvm_port_base 报告 ...
- 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中已经提供 ...
随机推荐
- FS210开发板上Qt4.7.0移植过程
作者:冯老师,华清远见嵌入式学院讲师. 1. 搭建Qt开发环境平台 1.开发环境:ubuntu 12.04 2.交叉编译链:arm-cortex_a8-linux-gnueabi 3.开发板:FS21 ...
- js 遮罩层 loading 效果
//调用方法 //关闭事件<button onclick='LayerHide()'>关闭</button>,在loadDiv(text)中,剔除出来 //调用LayerSho ...
- [LintCode] Scramble String 爬行字符串
Given a string s1, we may represent it as a binary tree by partitioning it to two non-empty substrin ...
- 如何判断js中对象的类型
1.typeof 形如 var x = "xx"; typeof x == 'string' typeof(x); 返回类型有:'undefined' "string&q ...
- Jfinal验证码功能
//验证码工具类 import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.image.B ...
- div半透明背景,文字不透明
background: rgba(255, 255, 255, 0.8) !important; /* IE无效,FF有效 */ background: #fff; filter: alpha(opa ...
- HTML-embed标签详解
Embed(一).基本语法:embed src=url说明:embed可以用来插入各种多媒体,格式可以是 Midi.Wav.AIFF.AU.MP3等等, Netscape及新版的IE 都支持 ...
- PHPExcel创建文件格式写入对象实例
首先到http://www.codeplex.com/PHPExcel下载PHPExcel 下面就是php导出excel的程序 <?phpini_set("display_errors ...
- 计划任务设置(/etc/crontab)
# /etc/crontab: system-wide crontab# Unlike any other crontab you don't have to run the `crontab'# c ...
- JavaDate类
在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理.这里简单介绍一下Date类的使用. ...