因为DUT是一个静态的内容,所以testbench理应也是静态的,其作为uvm验证环境和DUT的全局根结点。
module tb_top;
import uvm_pkg::*;
bit clk;
always #10 clk <= ~clk;
dut_if dut_if1 (clk);
dut_wrapper dut_wr0 (._if (dut_if1));
initial begin
uvm_config_db #(virtual dut_if)::set (null,"uvm_test_top","dut_if",dut_if1);
run_test ("base_test");
end
endmodule
上面是一个简单的验证平台的tb_top示例.其中:
- tb_top 是一个静态的module,验证环境中所有的信息都可以从这里索引到。此时需要 import uvm_pkg:: * 才能识别一些uvm库的内容。
- 在tb_top需要生成验证环境、DUT和接口都需要的时钟和复位。因为验证环境是动态的,无法在其中例化物理接口,所以需要采用uvm_config_db将物理interface的指针set给验证环境中的virtual interface。
- 通过ru
n_test(“
base_test
”) 启动
一个test_case。
Clock generation
一般的数字设计都会包含一个或者多个时钟,同时设计可能会因为工艺等问题工作在不同的频率下,所以时钟生成最好是参数化的。
Reset Generation
和时钟类似,复位也需要在testbench顶层实现。在许多数字设计中,复位分为 硬件复位和软件复位 ,它们的复位方式不一样,前者通过寄存器接口实现,后者直接通过硬件复位接口实现。
和DUT interface一样,时钟和复位在验证环境和DUT中都会用到,对应的赋值可以在tb_top中实现,也可以在验证环境中实现。
另外很多验证环境都需要抽取DUT中的信号,可能是force,也可能是采样DUT内部信号。此时需要在testbench tb_top中将DUT信号赋值过去。
interface gen_if;
logic signals;
endinterface
module tb_top;
gen_if u_if0 ();
des u_des ( ... );
// Assign an internal net to a generic in
assign u_if0.signals = u_des.u_xyz.status;
endmodule
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
时钟
+关注
关注
10文章
1712浏览量
131254 -
UVM
+关注
关注
0文章
181浏览量
19119 -
DUT
+关注
关注
0文章
189浏览量
12300
发布评论请先 登录
相关推荐
IC验证"一个简单的UVM验证平台"是如何搭建的(六)
main_phase的声明中,有一个uvm_phase类型的参数phase,在真正的验证平台 中,这个参数是不需要用户理会的。本节的验证
发表于 12-04 15:48
IC验证"UVM验证平台加入factory机制"(六)
加入factory机制 上一节《IC验证"一个简单的UVM验证平台"是如何搭建的(五)》给出了一个只有driver、使用UVM搭建的
发表于 12-08 12:07
IC验证“UVM验证平台加入objection机制和virtual interface机制“(七)
在上一节中,**《IC验证"UVM验证平台加入factory机制"(六)》**虽然输出了“main_phase is called”,但是“data is drived”并没有
发表于 12-09 18:28
基于C的测试和验证套件集成到常规UVM测试平台的方法
Systemverilog [1]和 UVM [2]为验证团队提供结构和规则。它使得在许多测试中能获得一致的结果,并可以在团队之间共享验证。许多验证团队都在使用由C代码编写的
发表于 12-11 07:59
基于C的测试和验证套件集成到常规UVM测试平台的方法
Systemverilog [1]和 UVM [2]为验证团队提供结构和规则。它使得在许多测试中能获得一致的结果,并可以在团队之间共享验证。许多验证团队都在使用由C代码编写的
发表于 12-15 07:38
数字IC验证之“什么是UVM”“UVM的特点”“UVM提供哪些资源”(2)连载中...
原文链接:https://zhuanlan.zhihu.com/p/345775995大家好,我是一哥,上章内容主要讲述两个内容,芯片验证以及验证计划。那本章我们主要讲述的内容有介绍什么是uv
发表于 01-21 16:00
数字IC验证之“典型的UVM平台结构”(3)连载中...
大家好,我是一哥,上章内容我们介绍什么是uvm?uvm的特点以及uvm为用户提供了哪些资源? 本章内容我们来看一看一个典型的uvm验证
发表于 01-22 15:32
数字IC验证之“构成uvm测试平台的主要组件”(4)连载中...
大家好,我是一哥,上章一个典型的uvm验证平台应该是什么样子的?从本章开始就正式进入uvm知识的学习。先一步一步搭建一个简单的可运行的测试平台
发表于 01-22 15:33
数字IC验证之“搭建一个可以运行的uvm测试平台”(5)连载中...
事物的控制,在智能代码中前后有两个if语句,这里先不用管,它的功能是控制验证平台何时结束。 在来看看repeat语句当中的内容,repeat的语句中使用了uvm do这个uvm内建的
发表于 01-26 10:05
什么是uvm?uvm的特点有哪些呢
大家好,我是一哥,上章内容我们介绍什么是uvm?uvm的特点以及uvm为用户提供了哪些资源?本章内容我们来看一看一个典型的uvm验证
发表于 02-14 06:46
UVM验证平台执行硬件加速
。 本文所聚焦的技术手段是让一个已有的UVM验证平台通过改变需求去执行硬件加速。如果这些点在UVM环境开发过程中被考虑到,那么之后将环境迁移到硬件加速器作为一个性能选项将是一件较容易的
发表于 09-15 17:08
•14次下载
ASIC芯片设计之UVM验证
百度百科对UVM的释义如下:通用验证方法学(Universal Verification Methodology, UVM)是一个以SystemVerilog类库为主体的验证
发表于 11-30 12:47
•1431次阅读
评论