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的更多相关文章

  1. UVM中的class

    UVM中的类包括:基类(base)------------uvm_void/uvm_object/uvm_transaction/uvm_root/uvm_phase/uvm_port_base 报告 ...

  2. UVM中的sequence使用(一)

    UVM中Driver,transaction,sequence,sequencer之间的关系. UVM将原来在Driver中的数据定义部分,单独拿出来成为Transaction,主要完成数据的rand ...

  3. UVM中的regmodel建模(三)

    总结一下UVM中的寄存器访问实现: 后门访问通过add_hdl_path命令来添加寄存器路径,并扩展uvm_reg_backdoor基类,定义read与write函数,最后在uvm_reg_block ...

  4. UVM中的regmodel建模(一)

    UVM中的regmodel继承自VMM的RAL(Register Abstract Layer),现在可以先将寄存器模型进行XML建模,再通过Synopsys 家的工具ralgen来直接生成regmo ...

  5. UVM中factory机制的使用

    UVM中的factory机制一般用在sequence的重载,尤其是virtual sequence.当Test_case变化时,通过virtual sequence的重载,可以很容易构建新的测试. 因 ...

  6. UVM中的factory机制实现

    首先在Systemverilog中便有对于重载的最基本的支持. 1)定义task/function时,使用virtual关键字.那之后在test_case中调用时,便使用句柄指向的对象的类型而不是句柄 ...

  7. uvm_hdl——DPI在UVM中的实现(四)

    我们可以在uvm中实现HDL的后门访问,具体包括的function有uvm_hdl_check_path,uvm_hdl_deposit, uvm_hdl_force,uvm_hdl_release, ...

  8. UVM中的driver组件

    一般UVM环境中的Driver组件,派生自uvm_driver. uvm_dirver派生自uvm_component. class  uvm_driver #(type REQ = uvm_sequ ...

  9. UVM中的regmodel建模(二)

    UVM的寄存器模型,对一个寄存器bit中有两种数值,mirror值,尽可能的反映DUT中寄存器的值.expected值,尽可能的反映用户期望的值. 几种常用的操作: read/write:可以前门访问 ...

  10. UVM中Callback机制

    Callback机制,其实是使用OOP来实现的一种程序开发者向程序使用者提供的模块内部的接口.可以在Test_case的高度改变其他component的一些行为. Systemverilog中已经提供 ...

随机推荐

  1. CSS3随内容自动伸缩的背景【转】

    CSS3给我们带来一个非常实用的新属性:border-image,利用这个属性我们可以做出随着内容的增减自动伸缩的背景.废话不多说,看代码!HTML:<ol> <li>第一条列 ...

  2. ZeroclipboardJS+flash实现将内容复制到剪贴板实例

    Zeroclipboard 的实现原理 Zeroclipboard 利用 Flash 进行复制,之前有 Clipboard Copy 解决方案,其利用的是一个隐藏的 Flash.但最新的 Flash ...

  3. CWnd与HWND的简单辨析

    今天在写一个小的网络应用,需要用到HWND类型的一个参数.而程序中有的“窗口操作句柄”只有一个CWnd类型的指针.这俩不都是“窗口句柄”么?而且反正都是地址直接转换使用如何?结果出现了调用失效的情况. ...

  4. bzoj1855: [Scoi2010]股票交易--单调队列优化DP

    单调队列优化DP的模板题 不难列出DP方程: 对于买入的情况 由于dp[i][j]=max{dp[i-w-1][k]+k*Ap[i]-j*Ap[i]} AP[i]*j是固定的,在队列中维护dp[i-w ...

  5. Python 基础 - 随机列表最大的两个值

    # -*- coding: utf-8 -*- #author:v def sywmemeda(l): #list 冒泡排序 length = len(l) for i in range(length ...

  6. WordPress插件入口菜单创建的位置代码

    Add_management_page() 在Tools下面创建 Add_options_page() 在Settings下面创建 Add_theme_page() 在Appearance下面创建 A ...

  7. JS判断登陆端是PC还是手机

    前些天朋友问我怎么判断登陆端是PC还是手机...自己也是很困惑,然后自己查了资料,这些东西都藏在USER-AGENT里面,查了他的一些属性,写了一个简单的验证页面大家共同学习. 读取navigator ...

  8. AccessViolationException: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

    在使用SqlConnection.Open()连接到SQL Server 2008 R2 SP2时,一直报以下异常: AccessViolationException: 尝试读取或写入受保护的内存.这 ...

  9. embedded tomcat context.xml

    在网络下载相关的embedded tomcat jar.也可直接在maven中检索. 在main方法中,输入以下代码: //新建tomcat实例 Tomcat tomcat = new Tomcat( ...

  10. centos升级支持到C++11, gcc4.8.2

    升级到4.8[这个应该是目前最新的啦,不过网上查的话已经到5.2啦,感觉落后一点比较稳,当然还有就是这个版本是新的里面使用最多的] wget http://people.centos.org/tru/ ...