0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

典型的UVM Testbench架构

芯片验证工程师 来源:芯片验证工程师 2023-05-22 10:14 次阅读

UVM类库提供了通用的代码功能,如component hierarchy、transaction levelmodel(TLM),configuration database等等,使用户能够创建任何类型的Testbench架构。

76b2b7ba-f6f6-11ed-90ce-dac502259ad0.png

上图是一个非常通用的testbench架构,并不能够表示所有类型的testbench架构。

UVM Testbench

UVMTestbench通常实例化Design under Test (DUT)moduleUVM Test class,并进行连接。

UVMTest是在运行时动态实例化的,这使得UVM Testbench可以只编译一次,然后运行不同的测试用例。

1.1.2 UVM Test

UVMTest是UVM Testbench中的顶层组件。UVM Test 通常会执行三个主要功能:

实例化top-level验证环境

配置验证环境(通过factory overrides或configuration database)

通过调用UVM Sequences来施加激励到DUT

通常,会有一个实例化UVM Environment的base UVM Test,然后其他的Test将扩展这个base test,以不同的方式配置验证环境或选择运行不同的sequences 。

1.1.3 UVM Environment

UVMEnvironment是一个分层验证组件,它将相互关联的其他验证组件组合在一起。通常在UVM Environment中实例化的典型组件是UVM Agents, UVM Scoreboards,以及其他UVM Environments。顶层UVM Environment封装了针对DUT的所有验证组件。

例如:在芯片(SoC)UVM Environment上,你会找到对应于各个IP的UVM Environment(例如PCIe Environment, USB Environment, Memory Controller Environment等等)。有时这些IP Environments被组合到Cluster Environments中(例如IO Environment, Processor Environment等等),最终在顶层SoC Environment中组合在一起。

1.1.4 UVM Scoreboard

UVMScoreboard的主要功能是检查某个DUT的行为。UVM Scoreboard通常通过UVM Agentanalysis ports接收DUT的输入和输出事务,通过参考模型来产生预期结果,然后和实际输出进行比较。

1.1.5 UVM Agent

UVM Agent是一个分层组件,它将其他和DUT接口交互的验证组件组合在一起。一个典型的UVM Agent包括一个UVM Sequencer管理激励,一个UVM Driver将激励施加到DUT接口和一个UVM Monitor监测DUT接口。

UVM Agents也可能包括其他组件,如coverage collectors,protocol checkers等等。

UVM Agent可能工作在active mode(能够产生激励),或者工作在passive mode(只监测接口而不驱动)。

76c14b5e-f6f6-11ed-90ce-dac502259ad0.png

1.1.6 UVM Sequencer

UVMSequencer是一个从多个激励sequences中控制事务流的仲裁器。更具体地说,UVM Sequencer控制着一个或多个UVM Sequences。

1.1.7 UVM Sequence

UVMSequence是一个包含产生激励行为的对象,并不是验证组件层次结构中的一部分。UVM Sequences同样也可以是分层的,可以由一个sequence(parent sequence)调用另一个sequence(child sequence)。

每个UVMSequence都被绑定到一个UVM Sequencer上。多个UVM Sequence可以绑定到相同的UVM Sequencer。

1.1.8 UVM Driver

UVMDriver从UVM Sequencer中接收UVM Sequence Item,并在DUT接口上驱动。因此,UVM Driver将transaction-level激励转换为pin-level激励。

1.1.9 UVM Monitor

UVMMonitor对DUT接口进行采样,并发送到UVM的其他验证组件中继续下一步的analysis行为。因此,UVM Driver将pin-level转换transaction-level。UVM Monitor有一个TLM analysis port来广播所监测到的创建的transactions。

UVM Monitor可以在内部对产生的事务执行一些处理(如覆盖率收集、检查、日志记录等)或者可以将这些任务交给连接到monitoranalysis port的其他验证组件。

​​​​

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    455

    文章

    50714

    浏览量

    423136
  • soc
    soc
    +关注

    关注

    38

    文章

    4161

    浏览量

    218160
  • UVM
    UVM
    +关注

    关注

    0

    文章

    182

    浏览量

    19167
  • 代码
    +关注

    关注

    30

    文章

    4779

    浏览量

    68521

原文标题:典型的UVM Testbench架构

文章出处:【微信号:芯片验证工程师,微信公众号:芯片验证工程师】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    数字IC验证之“什么是UVM”“UVM的特点”“UVM提供哪些资源”(2)连载中...

    原文链接:https://zhuanlan.zhihu.com/p/345775995大家好,我是一哥,上章内容主要讲述两个内容,芯片验证以及验证计划。那本章我们主要讲述的内容有介绍什么是uvm
    发表于 01-21 16:00

    数字IC验证之“典型UVM平台结构”(3)连载中...

      大家好,我是一哥,上章内容我们介绍什么是uvmuvm的特点以及uvm为用户提供了哪些资源?  本章内容我们来看一看一个典型uvm验证
    发表于 01-22 15:32

    什么是uvmuvm的特点有哪些呢

    大家好,我是一哥,上章内容我们介绍什么是uvmuvm的特点以及uvm为用户提供了哪些资源?本章内容我们来看一看一个典型uvm验证平台应该
    发表于 02-14 06:46

    谈谈UVM中的uvm_info打印

      uvm_info宏的定义如下:  `define uvm_info(ID,MSG,VERBOSITY) \  begin \  if (uvm_report_enabled(VERBOSITY
    发表于 03-17 16:41

    我的第一个UVM代码——Hello world

    Ctrl-V!) 几点说明: 为了使用UVM库里的函数和宏定义,需要先import uvm_pkg和include uvm_macros。 在testbench的顶层(module
    发表于 11-03 10:18

    参数化UVM IP验证环境(上)

    的连接、驱动器、监视器、仿真序列以及功能覆盖率的建立。 本文呈现出了一种使用UVM验证方法学构建基于高可配置性的高级微处理器总线架构(AMBA)的IP验证环境,其中会使用到Synopsys公司的AMBA VIP和Ruby脚本。该验证环境可以支持通过使用AMBA设计参数进行
    发表于 09-15 14:37 8次下载
    参数化<b class='flag-5'>UVM</b> IP验证环境(上)

    testbench怎么写_testbench经典教程VHDL

     testbench是一种验证的手段。首先,任何设计都是会有输入输出的。但是在软环境中没有激励输入,也不会对你设计的输出正确性进行评估。那么此时便有一种,模拟实际环境的输入激励和输出校验的一种“虚拟
    发表于 12-01 17:22 5.6w次阅读
    <b class='flag-5'>testbench</b>怎么写_<b class='flag-5'>testbench</b>经典教程VHDL

    数字IC验证之“典型UVM平台结构”(3)连载中...

    大家好,我是一哥,上章内容我们介绍什么是uvmuvm的特点以及uvm为用户提供了哪些资源?本章内容我们来看一看一个典型uvm验证平台应该
    发表于 12-09 13:36 7次下载
    数字IC验证之“<b class='flag-5'>典型</b>的<b class='flag-5'>UVM</b>平台结构”(3)连载中...

    UVM验证平台顶层有什么作用

    因为DUT是一个静态的内容,所以testbench理应也是静态的,其作为uvm验证环境和DUT的全局根结点。
    的头像 发表于 03-21 11:33 1288次阅读

    UVM学习笔记(一)

    driver应该派生自uvm_driver,而uvm_driver派生自uvm_component。
    的头像 发表于 05-26 14:38 1382次阅读
    <b class='flag-5'>UVM</b>学习笔记(一)

    我的第二个UVM代码—连接interface

    testbench最最核心的部分就是发激励,今天用一个简单的示例来介绍如何在uvm里给RTL发激励。
    的头像 发表于 06-15 10:51 1563次阅读
    我的第二个<b class='flag-5'>UVM</b>代码—连接interface

    UVMuvm_config_db机制背后的大功臣

    本次讲一下UVM中的uvm_config_db,在UVM中提供了一个内部数据库,可以在其中存储给定名称下的值,之后可以由其它TB组件去检索。
    的头像 发表于 06-20 17:28 1411次阅读

    testbench是什么? testbench测试的机制是什么?

    废话不多说直接上干货,testbench就是对写的FPGA文件进行测试的文件,可以是verilog也可以是VHDL。
    的头像 发表于 06-28 16:44 4807次阅读
    <b class='flag-5'>testbench</b>是什么? <b class='flag-5'>testbench</b>测试的机制是什么?

    一文详解UVM设计模式

    本篇是对UVM设计模式 ( 二 ) 参数化类、静态变量/方法/类、单例模式、UVM_ROOT、工厂模式、UVM_FACTORY[1]中单例模式的补充,分析静态类的使用,UVM中资源池的
    的头像 发表于 08-06 10:38 1779次阅读
    一文详解<b class='flag-5'>UVM</b>设计模式

    编写高效Testbench的指南和示例

    Testbench是验证HDL设计的主要手段,本文提供了布局和构建高效Testbench的指南以及示例。另外,本文还提供了一种示例,可以为任何设计开发自检Testbench
    的头像 发表于 10-29 16:14 243次阅读
    编写高效<b class='flag-5'>Testbench</b>的指南和示例