首页 > 编程知识 正文

uvm是什么,uvm全称

时间:2023-05-03 05:45:02 阅读:222143 作者:270

UVM验证平台的典型结构

典型的UVM验证平台一般即例化DUT和UVM类库并配置其中的连接关系。UVM动态例化,可以一次编译完成多个测试用例的测试。

UVM TEST

UVM TEST是UVM的顶层Component组件,主要完成例化和配置顶层env,并通过env调用sequence产生激励从而给到DUT。

一般情况下,会有一个基本的base_test用于对env的例化以及其他共同的UVM元素组件的生成例化。然后其他的test则继承该base_test并有针对性地配置env或者选择不同的sequence来测试。

UVM Environment

UVM env主要用于将UVM组件进行有关联的分层。一般在env里例化agent、scoreboard,设置是其他的env,顶层的env用于封装用来对DUT测试的环境。

UVM Scoreboard

Scb主要用于检查DUT的行为功能是不是符合预期。通过agent的analysis port来接收DUT的输入和输出的transaction。将输入transaction灌入到reference model来产生期望的结果,然后与DUT实际的输出结果作比较。

UVM Agent

agent用于对一些UVM组件进行分层和连接,主要用于完成DUT的接口。

一个典型的agent包括一个用于管理激励序列的sequencer,一个用于施加激励到DUT接口的driver,以及一个用于监测DUT接口的monitor,另外还可能包括一些如覆盖率收集、协议检查等。

agent可以工作在active和passive两种模式下,前一种用于产生激励,后一种则只是监测接口并不具备控制能力。

UVM Sequencer

sequencer用于从sequence中选择控制transaction序列,类似一个仲裁器。简单说主要用于控制transaction。

UVM Sequence

sequence是用于产生激励的object。

UVM Driver

driver从sequencer中获取transaction的sequence并将其驱动到DUT的接口上,这里使用TLM端口来完成。这里涉及到抽象层数据转换成具体的端口信号。

UVM Monitor

monitor采样DUT接口信号并将其送到验证平台的其他组件来作分析。类似driver,同样涉及到抽象数据和具体数据的转换。为了实现上述功能,通常monitor有用于访问DUT的接口并且通过TLM analysis port来广播产生的transaction。

monitor可以在内部对产生的事务做一些处理,比如覆盖率收集、检查、日志记录等,也可以将这些事务的处理由一个专用的组件来完成。

UVM类库

UVM提供了构建强大验证平台的库文件,包括类、宏工具等。

component被封装和例化,并且被一些可扩展的phase来控制和实现,这些phase是由基类库定义的。

公众号:程序员Marshall

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。