UVM中的class--2

摘要:
2) uvm_Callbacks#,T表示基本对象类型,CB表示定义的回调,并完成注册。3) uvm_回调----------------函数callback_模式类似于constraintmodeis_enabled4)uvm_测试,用户定义测试的虚拟基类,run_测试必须放在initial中。virtualclassuvm_testextendsuvm_Component没有很多新变量和方法。5) uvm_env,层次结构中的容器,包含其他组件以形成一个整体。

1)uvm_component从uvm_report_object继承而来,提供的功能包括:

1)Hierarchy,-----searching and traversing component hierachy

UVM中的class--2第1张

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

UVM中的class--2第2张

UVM中的class--2第3张

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

UVM中的class--2第4张

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

UVM中的class--2第5张

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

UVM中的class--2第6张

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继承而来,

UVM中的class--2第7张

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》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇fluwx使用的问题华为内部面试题库(20)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Axja(2) post()和get()方法

  load()方法是局部方法,因为他需要一个包含元素的jQuery 对象作为前缀。而$.get()和$.post()是全局方法,无须指定某个元素。对于用途而言,.load()适合做静态文件的异步获取,而对于需要传递参数到服务器页面的,$.get()和$.post()更加合适。 jQuery.post(url, [data], [callback], [t...

vs查看虚函数表和类内存布局

  虚继承和虚基类      虚继承:在继承定义中包含了virtual关键字的继承关系;     虚基类:在虚继承体系中的通过virtual继承而来的基类,需要注意的是:class CSubClass : public virtual CBase {}; 其中CBase称之为CSubClass的虚基类,而不是说CBase就是个虚基类,因为CBase还可以不...

Android使用SurfaceView实现墨迹天气的风车效果

SurfaceView也是继承自View,它和我们以前接触到的View(Button、TextView等)最大的不同是,SurfaceView可以有一个单独的线程进行绘制,这个线程区别于UI线程(主线程),因此SurfaceView绘制并不占用主线程资源。 SurfaceView实现通常是自定义,继承SurfaceView并实现SurfaceHolder....

C#之虚函数

若一个实例方法声明前带有virtual关键字,那么这个方法就是虚方法。虚方法与非虚方法的最大不同是,虚方法的实现可以由派生类所取代,这种取代是通过方法的重写实现的(以后再讲)虚方法的特点:虚方法前不允许有static,abstract,或override修饰符虚方法不能是私有的,因此不能使用private修饰符虚方法的执行:我们知道一般函数在编译时就静态地...

jsonp劫持

什么是 JSONP 劫持 JSONP就是为了跨域 获取资源 而产生的一种 非官方 的技术手段(官方的有 CORS 和 postMessage),它利用的是 script 标签的 src 属性不受同源策略影响的特性。 我们遇到过很多的劫持的攻击方法,比如:dns 劫持、点击劫持、cookie劫持等等,也正如劫持这个词的含义:“拦截挟持”,dns 劫持就是把...

跨域(三)——JSONP

一、什么是JSONP? 百度百科:JSONP(JSON with Padding)是JSON的 一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML 的<script> 元素是一个例外。利...