的信号输出是否正确。一个待测的 Verilog HDL 模块就相当于一个功能电路,用 Testbench
对它进行仿真测试需要给待测模块输入激励、获取输出响应并作判断。Testbench 需要完成
以下工作:
(1)产生仿真激励(波形);
(2)将激励施加到被测试模块端口并收集其输出响应;
(3)将输出响应与期望值进行比较,以判断是否符合预期目标。
典型的测试平台主要内容包括:
`timescale 1ns/100ps //这里可适当指定仿真的“时间单位/时间精度”
module XXX_tb; //Testbench 模块,通常没有输入和输出端口
//局部 reg、wire 变量声明
//用 initial 和 always 等语句产生激励(波形)
//实例引用被测试模块(籍以将激励自动施加其上)
//监视输出并与期望值做比较
//结束 testbench 程序的运行
endmodule
其中许多内容书写的先后顺序不拘。
假若被测模块定义为
module M1(in1, in2, out1); //in1、in2 为 input 端口,out1 为 output 端口
则用来测试 M1 模块的 Testbench 模块,习惯上命名为 M1_tb,无输入无输出。Testbench
声明局部 reg、wire 变量时,应该包括(但不限于)一批与被测模块端口对应(不妨就同名)
的变量,便于后面实例引用 M1 模块。并且与 input 端口、output 端口对应的变量分别声明
成 reg 型和 wire 型。
实验步骤
请同学们根据实验任务细化实验步骤。
1. 编写如图 2.1 的 2 选 1 选择器电路的结构描述模块,并生成类似图 2.2 的原理图(RTL
Analysis->Elaborated Design->Schematic)。