【uvm】DUT 和 testbench 是如何连接的

本文介绍了UVM验证平台中DUT与testbench如何通过虚接口进行通信,强调了接口在简化模块连接和实现类模块通信中的作用。验证工程师和设计工程师定义好接口关系后,可以独立工作。接口数量应适中,便于后期验证。在接口定义中,需注意信号方向的转换。最后,展示了如何在driver中通过uvm_config_db设置和获取接口,实现对DUT的操作。
摘要由CSDN通过智能技术生成

link
我们知道,不论是哪一级的验证,最终都是通过 pin 连接到 DUT 上向其施加激励,对于 UVM 验证平台中,使用虚接口来实现 DUT 和验证平台的通信。

为了简化模块之间的连接和实现类和模块之间的通信,以实现测试平台的可重用性, SV 定义了接口的语法结构。总体来说,接口就是在 testbench 这边定义了访问的 DUT 的管脚的集合,通过对接口中管脚信号的操作,来实现对 DUT 的管脚的操作, 这样能够实现验证平台和待测模块的分离。

验证工程师和设计工程师只要定义好接口关系,就可以分别开展工作。同时如果设计管脚发生变化,无需改变 testbench 这边的虚接口,只需要在例化待测模块时,给接口绑定对应的待测接口即可。

Testbench 和 DUT 是通过接口进行数据交互的。接口仅仅是信号的一个集合,因此我们可以将 X_MAC 的所有信号定义为一个统一的接口,也可以将一个信号定义一个接口,这样对于 X_MAC 模块,就会有许许多多的接口。另外要注意的是,一个接口要对应一个 driver,因此,接口过多的话,就需要定义很多个 driver。

同样的,如果接口数量过少的话,就只需要定义较少的 driver。接口数量过多或过少,都不利于后期验证工作的开展。为了方面后续的工作,接口的个数合适为宜,总的原则是:

  1. 将相互关系紧密的信号放到同一个接口中。
  2. 要将同一个时钟周期的信号放到同一个接口中。
  3. 将和同一个模块连接的信号要放到同一个接口中。
    上面的三点基本上表达的是同一个意思, 这样有利于后期方便激励。

在接口的定义中需要注意的一个问题是:对于同一个信号,其方向(input/output)对于 DUT 和对于 testbench 来说是相反的, 在接口中需要定义信号的方向是针对 testbench 的方向, 这一点需要注意。

下面是一个接口示例。

interface hello_if(input logic rxc,input logic txc);
logic [7:0] rxd_1;
logic [7:0] rxd_2<
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值