编写 testbench目的
编写 testbench 的主要目的是为了对使用硬件描述语言(HDL)设计的电路进行仿真验
证,测试设计电路的功能、部分性能是否与预期的目标相符。
编写 testbench进行测试的过程如下:
1)产生模拟激励(波形);
2)将产生的激励加入到被测试模块并观察其输出响应;
3)将输出响应与期望进行比较,从而判断设计的正确性。
2 基本的 testbench结构
module test_bench;
// 通常 testbench没有输入与输出端口
信号或变量定义声明
使用 initial或 always语句来产生激励波形
例化设计模块
监控和比较输出响应
endmodule
简单的 testbench 的结构通常需要建立一个顶层文件,顶层文件没有输入和输出端口。
在顶层文件里,把被测模块和激励产生模块实例化进来,并且把被测模块的端口与激励模块
的端口进行对应连接,使得激励可以输入到被测模块。端口连接的方式有名称和位置关联两
种方式,我们常常使用“名称关联”方式。
3 产生激励的一些描写方式
3.1 产生时钟的几种方式
1)使用 initial方式产生占空比 50﹪的时钟
initial
begin
CLK = 0;
#delay;
forever
#(period/2) CLK = ~CLK;
end
注意:一定要给时钟赋初始值,因为信号的缺省值为 z,如果不赋初值,则反相后还是
z,时钟就一直处于高阻 z状态。
如果排版出现了错误的话大家就去下载pdf的文档吧!!
|