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中已经提供 ...
随机推荐
- memcache 缓存失效问题(转)
在大并发的场合,当cache失效时,大量并发同时取不到cache,会同一瞬间去访问db并回设cache,可能会给系统带来潜在的超负荷风险. 解决方法 方法一 在load db之前先add一个mutex ...
- Java数组转成list,list转数组
下面介绍一下Java中数组和List集合如何互相转换. 数组转成list 第一种: String[] userid = {"aa","bb","cc& ...
- linux下定时重启tomcat
工具/原料 linux tomcat 方法/步骤 编写tomcat_shutdown.sh: #!/bin/sh export JAVA_HOME=/home/oracle/jdk1..0_67/ e ...
- Bone Collector(01背包)
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=87125#problem/N 题目: Description Many year ...
- Mysql bench执行sql语句批量操作数据所遇到的问题
一.错误 rror Code: 1175. You are using safe update mode and you tried to update a table without a WHERE ...
- CSS3初学篇章_3(属性选择符/字体样式/元素样式)
属性选择符 选择符 说明 E[att] 选择具有att属性的E元素. E[att="val"] 选择具有att属性且属性值等于val的E元素. E[att~=&quo ...
- 20145334 第五次 java 实验报告
实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统. 我和20145306张文锦组队编程 http://www.cnblogs.com/besti145306/ ...
- EDI - Biztalk Sample
1. EDI Control - Scripting Usage:
- CVTRES : fatal error CVT1100 , fatal error LNK1123:
CVTRES : fatal error CVT1100: duplicate resource. type:DIALOG, name:901, language:0x0804LINK : fatal ...
- Android课程---环境配置很重要