UVM实战指南第3部分.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UVM实战指南第3部分

(*)题外话:TLM可能是UVM中最重要的概念,掌握了TLM,就可以开始尝试编写一些小程序了。翻译这篇文章,也是为了巩固加强对TLM的理解。 (*)几个名词:transaction翻译为事务或者交易;packet翻译为封包,packet属于transaction;monitor翻译为监视器;driver翻译为驱动器;scoreboard翻译为记分牌;有些词汇直接被运用到UVM源代码上,所以有时候用英文更容易描述清楚。 (*)语言的目的是为了交流,翻译不是为了纯粹的语言转换,而是为了传递思想。 4.6 UVM中事务级建模(TLM) 20多年前,设计者从门级转向RTL级。这次转换来自于标准Verilog/VHDL的RTL编码风格,以及RTL综合实现工具的推出。使用RTL最大的好处是让设计者更多的专注于时序行为的设计以及功能的正确性,而很少考虑门级相关设计。 TLM(事务级建模)同样在抽象级别上更进了一步,在设计和验证领域都有出现。通过TLM, 中心放在系统级别的各种事务流的建模,而更少关心时钟级别的行为。 TLM在测试向量中已经使用多年。通常,在产生激励和覆盖率检查的时候使用事务而不是用时钟级别建模,这种方式就是TLM. 为了验证RTL级别的DUT(需要测试的模块),测试向量使用事务发生器(transactor)(有时也称为总线功能模型(BFM)),将RTL级和事务级进行转换。在UVM中,此事务发生器也被叫做驱动(driver)或者收集器(collector)。 TLM中,事务通过方法调用和类对象来建模。使用事务级而不是信号级别来建模有几个显著的好处: TLM比RTL更简洁,仿真速度快。 ? ? ? ? TLM模型的抽象级别更高,更加契合验证工程师或设计工程师对内部功能的考虑,从而使得建模更简单,并且更容易被其他工程师理解。 TLM模型将不符合复用的部分移到模型之外,因此TLM很适合复用。并且,TLM使用面向对象的技术,比如继承、实现和接口分离的技术。? TLM的采纳依赖于标准的TLM建模技术的出现,就像RTL综合流程的采纳归功于标准RTL编码风格的实现。幸运的是,近些年来,几个重要的标准TLM应用程序接口(API)得到定义。在EDA和ESL领域,两个最重要的标准是开放SystemC计划(OSCI)的TLM1.0以及TLM2.0标准。 OSCI TLM 1.0标准是一个简单通用的TLM API, 用来建模消息传递。在消息传递时,对象(事务)在组件之间传递的方式和封包在网络之间传递的方式类似。 在发送封包的消息传递中,发送端和接收端之间没有共享的状态,他们之间的通讯讯息仅仅包含在消息中。 The OSCI TLM 2.0标准能够用来开发SystemC中的高速虚拟平台模型。TLM2.0标准特别被用作片上存储映射的总线系统,包含许多能够进行片上总线互联的整合复用模块. OSCI TLM 1.0和TLM 2.0是互相独立的标准,满足不同的需要。有人可能通过其命名方式认为TLM2.0优于TLM1.0,但是实际上并不是这样。 UVM提供的TLM 类和API是基于TLM1.0标准的。这是因为TLM通用消息传递语法很好的满足了多种验证组件的事务级建模。TLM1.0也适合多种语言之间的通信建模,比如SystemVerilog, SystemC以及e语言之间的建模。UVM中TLM1.0接口甚至可以用来和SystemC中的TLM2.0模型进行通讯。 这一章节阐述了UVM中TLM的几个重要概念,让读者理解如何使用TLM来构造可复用的验证组件。关于TLM各种类的更详细说明请参阅UVM参考手册。 ? 4.6.1 UVM中TLM的关键概念 对事务建模 在UVM中, 从uvm_sequence_item继承而来的任何类都是事务。用户根据需要定义事务类的字段和方法,用来在验证环境中不同组件之间进行信息交换。例如,一个简单的包如下所示: class?simple_packet extends uvm_sequence_item; rand int src_addr; rand int dst_addr; rand byte unsigned data[]; constraint addr_constraint { src_addr != dst_addr; } ... endclass 事务通常包含足够多的数据字段让驱动器(driver)或者事务产生器能够产生事务的真实信号级别的动作表示。事务也可以包含更多的数据字段,来控制数据的随机产生,或者是验证环境中的其他目的。可以通过继承方式来增加更多的数据成员,方法以及约束。后续章节将会说明,如何通过继承事务,从而花费最小的代价来完成特定的验证任务。 TLM调用端口(Ports)和实现端口(Exports) UVM中的

文档评论(0)

almm118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档