引言
- 前面的第三章,第四章要求非常准确,非常严格地按照想法做,但是到了测试,怎么写都可以
- 从硬件描述语言的作用,可以分为:可综合设计和测试仿真。对于设计岗位,要对前面的知识非常了解,同时对仿真测试也要很了解。对于验证岗位,要对测试仿真非常了解,尽可能用能想到的语法去做
- 第三章第四章讲的实际上是针对于电路的具体设计,最后是想的怎么把管子,触发器,与非门等连接到一起,操纵的是电路。而在测试和仿真,它的性质和C语言是完全一样的,操纵的是计算机的CPU
1. Verilog HDL 电路仿真和验证概述
- 验证在 Verilog HDL 设计的整个流程中分为4个阶段:
(1)功能验证
(2)综合后验证
(3)时序验证
(4)板级验证 - 其中和Verilog有关系的是前三种,最后一个就是电路板级的验证了
- 这个课程只讲了功能验证,综合后验证和时序验证就是对EDA工具的使用(后面会有介绍)
- !!功能验证是没有经过综合,在计算机层面上的验证,是最基本的验证,换句话来讲,就是对语法的检验过程
- 综合后验证就是把所有原件连接在一起,它是实实在在的电路,是对电路的连接关系,基本逻辑的考察
- 时序验证就是在综合后电路加上一个延迟文件(.sdf等),贴近于实际电路的情况,把实际中的物理器件变成数学模型放在这里,所以,基本上时序通过,板级就不会有问题,除非对信号的调理没调理到合适的位置,对信号的容差没有考虑
- 目前常用的功能验证有三种:黑盒法、白盒法和灰盒法
2. Verilog HDL测试程序设计基础
2.1 Testbench及其结构
-
通常采用测试平台(Testbench)方式进行仿真和验证。在仿真时,Testbench 用来产生测试激励给待验证设计(Design Under Verification,DUV),或者称为待测试设计(Design Under Test,DUT),同时检查DUV/DUT 的输出是否与预期的一致,从而达到验证设计功能的目的
-
在数字信号的设计中,有一些输入信号,一些输出信号,用示波器或LED或其他东西看一下输出电位。这时候就有三个东西:信号源、被测电路、测试仪器(对输出结果的观察)
-
对于硬件描述语言,一定还是一个模块,然后对输入输出变量和参数进行定义
-
三个部分:调用待测试的模块,定义测试向量(激励向量产生,显示输出结果),显示格式定义(可以不写,因为定义不是很准确)
-
!!其实我们就是在写如何产生激励向量
-
例:T触发器测试程序
-
输出打印可以不这么写,后面会讲
-
产生的结果
-
仿真流程:
-
从图中可以清晰地看出Testbench 的主要功能:<