网站大量收购独家精品文档,联系QQ:2885784924

OVM学习笔记.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OVM学习笔记

OVM学习笔记 一、OVM概述 OVM是基于CDV的验证,由OVC组成。 OVC基本成员: Data Item(Transaction); BFM(Driver); Sequencer; Monitor; Agent; Enviroment; 1.1 Transaction: DUT时序信号抽象成的数据包,如:因特网的数据包,总线事务(读/写、地址、数据)、CPU指令等。 1.2 BFM: 将抽象的数据包转换成DUT的驱动时序。 1.3 Sequencer: 高级激励生成器,按需求产生Transaction给BFM。 其内建功能: 可根据DUT当前状态产生Transaction; 可根据用户需求按特定顺序产生Transaction,从而构建特定意义的向量; Enables time modeling in reusable scenarios. Supports declarative and procedural constraints for the same scenario. 可系统级同步,控制多个接口(multipe interface)。 1.4 Monitor: 将时序信号抽象成Transaction; 将Transaction抽象成EVENT发生给其他组件; 执行时序或数据检查; 覆盖率收集; 打印仿真进度; 1.5 Agent: Sequencer、BFM、Monitor的顶层,用于配置连接三者。 一个ENV中可有多个Agent,如Master/Transmit Agent驱动DUT,Slave/Receive Agent接收DUT的输出。 Agent应可设置为主动或被动,主动Agent可驱动DUT,而被动Agent只能监控DUT。 1.6 Enviroment: Env为多个Agent和Bus Monitor的顶层,用于连接这些组件,组成验证环境的拓扑结构。可以在Env对组件进行设置,如主动Agent在系统级环境中被设置成被动Agent来监控DUT(如xbus_agent在UT级时驱动DUT,在系统级时因为模块由CPU驱动,故xbus_agent转为监控)。下图阐述了一个典型的OVC验证环境,验证环境可以包含一个Bus Monitor,Bus Monitor用来检测覆盖率和结果检查,Agent中的Monitor可从Global Monitor(Bus Monitor就是一个典型)中获取相应的数据和事件。 图 OVC验证环境结构 1.7 OVM 库 OVM库由基类、宏和Utilities组成,三者又可细分为Base、Reporting、Factory、Sychronization、Policies、TLM、Components、Sequencer、Sequence、Macros、Globals。 图 OVM库继承结构 OVM两大核心:TLM和OVM Factory。 二、TLM(事务级模型) 2.1 Transcation: OVM中的Transaction是个class对象从ovm_transaction继承而来,类似于一个数据结构,将一个事务具体化成相应变量或约束。如一个总线Transaction,其包含了总线的动作(读/写)、数据、地址、相应的约束和相关的Methods: Transaction可被继承,添加或重写相应变量或约束。 2.2 面向对象的接口 在面向对象的程序中有两种Object Interface,一种是Class中的Task和Function,两者作为外界操作Class的接口;另一种是基类(可以只是个虚的基类,也就是个模板),它定义了Task和Function的集合(可以仅仅只是定义并没有实际的内容),它的所有扩展类都继承或改写(或实体化)了这些Methods,也就是说基类是个规则(也就是个对外界的接口),外界只要调用基类的Methods就可以对其扩展类进行操作(2.3.1中的Producer-Consumer可有助于理解)。 2.3 TLM之间的通讯 TLM之间通过TLM Interface连接,TLM Interface中有几个基本概念:port、export、put、get和传输的主体Transaction。五者组成了TLM通讯的三个要素:控制流、数据流和Tansaction类型。 控制流的方向永远是Port指向Export,也就是说Port执行某个通讯动作(如put和get),Export被动进行回应。 Interface的类型决定了数据流的方向,Put Interface的方向是从执行Put的一方(Port)至Put的目标(Export);Get Interface的方向是从目标方(Export)至执行Get的一方(Port);Transport和Request-Respons

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档