• UVM的类库


    【转】http://www.asicdv.com/ 

    一个UVM验证平台可以看成由多个模块组合在一起的,这和以前的verilog代码,以及verilog结合其它各种语言的验证手段在理念上是一样的,最大的不同就是这些模块不再是函数或者过程,而是一个个对象,其实仔细想想如果想实现继承,多态等等这些功能,类的概念势必要引入的,这一点在学习SystemVerilog中也会深有体会。

    参见下图,总的来说UVM验证平台包含Data Item, Driver, Sequencer, Monitor, Agent和Environment几个部分,把各个模块放在一起,最后通过接口和DUT连接。需要注意的是DUT和各个其它模块之间的连接是通过真正的物理接口实现的,而诸如很多验证模块之间的连接是通过TLM(Transaction Level Modeling)进行数据通讯。

    1. 数据项
    数据就好象是血液一样在各个模块之间流动,从Sequencer,Driver到DUT,数据也可能被Monitor采集到然后进行分析。除了DUT内部 数据是以逻辑单位传输之外,其它部分之间的通讯都是以transaction来完成的,所以需要对数据进行包装,这一点很想C语言与C++中数据的不同。 例如以太网协议中的数据就非常适合定义为一个类,类的各种属性可以用来描述数据包的特性,通过受限随机化可以随心所欲的产生各种数据。

    2. Driver/BFM(总线功能模型) 
    Driver就是不停地对从Sequencer获取数据然后驱动DUT,控制总线的读写信号,对特定地址进行读写操作的模块可以说是典型的Driver。

    3. Sequencer和Sequence
    sequencer可以向driver提供数据,sequencer中的数据是从sequence获得的,当然为了产生更为复杂的激励一个sequencer可以从多个sequence获得数据。

    4. Monitor
    Monitor是一个被动的实体,它用于采样DUT的输入输出信号,而不是驱动。其主要功能有通过监听总线来获取输入输出数据,检验总线协议和收集覆盖率数据,捕捉特定事件或数据。

    5. Agent
    Agent的作用就是将Sequencer,Monitor,Driver等封装在一起,以便于在代码重用时减少工作量。在一个验证环境中可以包含多个Agent,根据其负责的任务不同可以将其设置分为主动或者被动Agent。

    6. Environment
    Environment在UVM验证平台中是最高层的组件,一般来讲Environment中包含一个或多个Agent, bus_monitor, Scoreboard等组件,另外一个重要的组件就是其配置属性,用于配置环境中其它各组件的参数,从而有利于实现验证系统的重用。 
    这里不需要对一些细部概念过于注意,只要有个大概的印象就可以了,在后面将会对各个组成部分一一详细介绍。

  • 相关阅读:
    appium 启动失败解决方案
    appium for windows 环境搭建
    HttpClient 4 使用方法的几个例子(代理,StringEntity字符串数据,文件上传)(转载)
    下拉框和单选框复选框的选中的值
    js刷新父页面的方法
    克隆虚拟机ip修改后没改变的原因
    二进制转换与此平台,VMware Workstation不,Workstation 不可恢复,此虚拟环境中的长模式
    在虚拟机(VMware)中安装Linux CentOS 6.4系统(图解) 转
    sql语句常用的函数总结
    java.lang.OutOfMemoryError: Java heap space 。java heap space明确的指出了异常发生的区域,
  • 原文地址:https://www.cnblogs.com/love29850706/p/6080805.html
Copyright © 2020-2023  润新知