1.编写TestBench的目的主要是对使用硬件描述语言(HDL)设计的电路进行仿真验证,测试设计电路的功能,部分性能是否与预期的目标相符。
2.Verilog HDL测试平台的格式:
(1)测试平台的格式与设计模块有相同点也有不同点,相同点都是Verilog HDL代码,都是module开头,endmodule结尾,不同点是测试平台的模块不需要输入输出端口定义,必须要实例化被测试的模块。测试平台的基本格式如下:
module module_tb
//变量的声明
//产生相应的激励信号
//实例化被测试模块
//监视输入输出信号
//保存被监视信号信息
endmodule
(2)激励信号描述
a.产生一次特定的序列(用initial语句描述)(固定的一次序列)
例如:
initial
begin
a=0;
#10 a=1;
#20 a=0;
#5 a=1;
#15 a=0;
end
endmodule//a的值在不同时间间隔后改变,波形图如下:
b.产生重复的信号(重复多次的信号)
initial
begin
a=0;
forever
#2 a=~a;//用循环语句也可以在initial语句中产生循环序列
end
或者:
initial
b=0;
always
#4 b=~b;
或者:
initial
begin
c=0;
forever
begin
#1 c=1;
#2 c=0;
#3 c=1;
#4 c=0;
end
end
(3)实例化待测模块
对带复位端的D触发器进行验证的测试模块:
module dff2(clock,reset,d,q)
input clock,reset,d;
output q;
reg q;
always@(posedge clock or negedge reset)
begin
if(!reset)
q<=0;
else
q<=d;
end
endmodule
测试模块:
`timescale 1ns/1ns
module tb92;
reg clock,reset,d;
wire q2,q3;
initial clock=0;
always #5 clock=~clock;
initial d=1;
begin
reset =1;
#12 reset =0;
#11 reset=1;
#17 $stop;//仿真控制,stop的任务是把EDA工具(如仿真器)置成暂停模式,在仿真环境下给出一个交互式的命令提示符,将控制权交给用户。
end
dff2 dff2(clock,reset,d,q2)//待测模块的模块实例化
endmodule
Verilog HDL测试平台编写(2021-3-14)
最新推荐文章于 2022-07-04 22:10:04 发布