|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
1 编写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 状态。
产生的时钟信号如下图所示:
........
Testbench入门.rar
(147.89 KB, 下载次数: 192 )
|
|