1 / 95
文档名称:

UVM实战指南.doc

格式:doc   大小:1,923KB   页数:95页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

UVM实战指南.doc

上传人:幸福人生 2022/10/19 文件大小:1.88 MB

下载得到文件列表

UVM实战指南.doc

相关文档

文档介绍

文档介绍:该【UVM实战指南 】是由【幸福人生】上传分享,文档一共【95】页,该文档可以免费在线阅读,需要了解更多关于【UVM实战指南 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。UVM实战指南
/#m=0&t=1&c=fks_084066087094087064080095087095085086087067087085095068084
Callback——最简单的callback  
2012-01-2122:06:01|  分类: SystemVerilog|字号 订阅
在RVM、VMM、OVM/UVM中,常常提到callback这个概念。指在事先设置好的地方留下一个接口,通过向这个接口添加一些函数对象,来达到不改变代码结构而动态修改代码行为。下面用systemverilog来举一个简单的callback例子:
    在sysverilog中,没有函数指针的概念,因此必须将函数包装成为一个对象,,必须事先在设计好的调用点对callback对象中的函数进行逐个调用(代码19-21行)。
    widget的对象事先并不知道有多少callback对象,而是将所有的callback对象放到自己的一个callback对象队列中(cb_queue)。然后逐个对这个队列中的所有对象进行函数调用。
    上面的程序编译执行后,结果如下:
widgetrun....
===========AfterAddbaseCallback
basecallbackrun
widgetrun....
===========AfterAddextentionCallback
basecallbackrun
extcallbackrun
widgetrun....
    可以看出,在执行的过程中,可以对widget对象进行动态的添加callback,从而动态的改变widget对象的动作。
    上面的例子非常简单,仅仅是输出一些讯息而已,有一些局限:
这个callback结构并不能够真的改变widget对象的内部成员,以及处理的数据内容,仅仅能够输出一些讯息。
对每一个widget的对象,都需要单独添加相关callback对象,假如程序中又创建了一个新的widget对象,那么这个对象的callbackqueue初始是空的,也就是没有callback。必须再次添加才能让这个新的widget调用相应的callback功能。
callback只有一个地方,可以扩展到多个地方。另外也可以使用function,而不仅仅是task.
工厂模式的简单理解
首先,如果一个客户要用到一款手机,一般的做法是客户去创建一款手机,然后拿来用:
 
这时,客户需要知道怎么去创建一款手机,,就出现了工厂类,把创建手机的操作放到了工厂里面去,客户直接使用工厂的创建手机方法,传入想要的手机型号就行了,而不必去知道创建的细节.
 
随着手机种类越来越多,简单工厂模式出现了弊端,每次新加入手机品种,,而每增加一种新的手机,就增加该手机对应工厂类的实现,这样工厂的设计就可以扩展了,而不必去修改原来的代码:
 
随着工厂规模的继续扩大,:,,把手机工厂跟充电器工厂联系在一起:
抽象工厂模式工厂方法模式简单工厂模式
UVM实战指南——第1部分  
2010-10-3121:54:15|  分类: SystemVerilog |  标签:uvm  |字号 订阅
验证的复杂度已经明显超过设计。为了处理复杂度,面向对象,设计模式等软件设计的思想逐渐渗透到了硬件设计领域。UVM的适时提出,有望能够尽早一统江湖,不再有各门各派军阀割据。
最近,出了一本UVM新书,工作之余,我抽空进行翻译,供大家参考。
英文来源:-- 
UVM实战指南——第1部分
这篇文章是新书《APracticalGuidetoAdoptingtheUniversalVerificationMethodology》的第四章UVMlibrary基础的节选。这一章的后续会在之后4周的周一连续发表。如果等不及,。
作者:,CadenceDesignSystems
UVM是功能验证的第一个最佳实践和方法学。如之前提到,UVM实现了成熟的高级验证方法。尽管其类库可以任意使用,我们强烈建议按照后续章节描述的方式来使用,因为这些方法源自于成功经验。
这一章讲解库的结构以及基本功能,重点放在大多数验证环境所需要的基本特征上。 
注意:为了简化,例子并没有完全遵循UVM建议的架构和方法学。
这一章主要包括:
使用UVM库
基本类
TLM端口
工厂模式
消息和汇报
配置机制

为了使用UVM库,用户需要:
编译UVM包的顶层文件: