System Verilog视频学习笔记(2)- Testbench

Testbench

 内容来自启芯-System Verilog视频

============================================================== 

目录结构:

1、什么是验证?

2、验证目标?

3、验证过程

4、Testbench架构

5、Testbench搭建

6、个人总结

 ==============================================================

本章目标:

1、描述达到验证目标的过程

2、创建System Verilogtestbench模板

3、编译和仿真System Verilog testbench

 

1、什么是验证?

System Verilog视频学习笔记(2)- Testbench

图1、Transformations

从图1可以看出,设计产品经历了以下流程:

想法——>算法C模型——>架构设计——>RTL(功能验证)——>Gate网表静态时序分析——>GDSII后端制造——>ASIC(制造后的芯片测试)——>Product产品验证

所以验证是检验设计流程转换步骤是否正确执行。

一般发者集中在Spec到Gate的过程中。

 

2、验证目标?

System Verilog视频学习笔记(2)- Testbench

图2、验证结果

 

设计人员的RTL代码,由验证团队写testbench验证,testbench和RTL均有bug,所以有四种情况,当Testbench验证通过后,如果验证不充分,RTL代码仍有可能有错,这样的情况交付流片后将造成重大损失。

 

所以,验证的目标是确保设计与定义的功能的一致性。


3、验证过程

System Verilog视频学习笔记(2)- Testbench

图3、验证过程

搭建验证环境(调试testbench)

Broad-Spectrum验证,大规模验证

Corner-case验证,需考虑各种验证条件

 

4Testbench架构

System Verilog视频学习笔记(2)- Testbench

图4、UVM的Testbench架构

Testcase:测试案例

Configure:配置

Generator:产生激励

Transactor:数据处理

Driver:驱动DUT,根据时序,协议完成行为级的模型

Interface:Verilog中增加的接口

Monitor:监视数据

Self_Check:自检

Coverage:覆盖率统计,通过Coverage可以驱动Generator产生其他激励

 

Verilog的testbench结构比较简单,一般有DUT、Clock和testcase。SystemVerilog在Verilog的基础上进行了interface的抽象,可参考IEEE-1800协议标准手册

 

5Testbench搭建

System Verilog视频学习笔记(2)- Testbench

图5、文件结构

以上是根据template写出的文件,一般通过对DUT写interface、testbench和testcase。

 

System Verilog视频学习笔记(2)- Testbench

图6、产生testbench文件结构

产生图5以上文件结构

System Verilog视频学习笔记(2)- Testbench

图7、产生interface文件

System Verilog视频学习笔记(2)- Testbench

图8、定义interface端口

Interface实例的信号数据类型应为logic。

 

System Verilog视频学习笔记(2)- Testbench

图9、testbench搭建

 System Verilog视频学习笔记(2)- Testbench

图10、sampletestbench

System Verilog视频学习笔记(2)- Testbench

图11、驱动同步信号

非阻塞赋值

 

System Verilog视频学习笔记(2)- Testbench

图12、Monitor采样信号

从设备采集信号。

 

System Verilog视频学习笔记(2)- Testbench

图13、顶层模块(包含所有的文件例化)

System Verilog视频学习笔记(2)- Testbench

图14、编译RTL仿真NTB

6、个人总结

本节视频主要介绍如何生成完整的文件结构,包含Testbench文件、Interface文件、Testcase文件和DUT。