FPGA设计之Test bench介绍

Verilog 测试平台是一个例化的待测( MUT )模块,重要的是给它施加激励并观测其输出。
逻辑模块与其对应的测试平台共同组成仿真模型,应用这个模型可以测试该模块能否符合自己的设计要求。 编写 TESTBENCH 的目的是为了对使用硬件描述语言设计的电路进行仿真验证,测试设计电路的功能、性能与设计的预期是否相符。通常,编写测试文件的过程如下:
• 产生模拟激励(波形);
• 将产生的激励加入到被测试模块中并观察其响应;
• 将输出响应与期望值相比较。
通常,一个完整的测试文件其结构为
module Test_bench();// 通常无输入无输出
信号或变量声明定义
逻辑设计中输入对应 reg
逻辑设计中输出对应 wire
使用 initial always 语句产生激励
例化待测试模块
监控和比较输出响应
endmodule
1、时钟激励设计
时钟激励产生方法一: 50% 占空比时钟
parameter ClockPeriod=10;
initial
begin
clk_i=0;
forever
#(ClockPeriod/2) clk_i=~clk_i;
end
时钟激励产生方法二: 50% 占空比时钟
initial
begin
clk_i=0;
always #(ClockPeriod/2) clk_i=~clk_i;
end
时钟激励产生方法3:产生固定数量的时钟脉冲
initial
begin
clk_i=0;
repeat(6)
#(ClockPeriod/2) clk_i=~clk_i;
end
时钟激励产生方法4:产生非占空比为 50% 的时钟
initial
begin
clk_i=0;
forever
begin
#((ClockPeriod/2)-2) clk_i=0;
#((ClockPeriod/2)+2) clk_i=1;
end
end
2、复位信号设计
复位信号产生方法一:异步复位
initial
begin
rst_n_i=1;
#100;
rst_n_i=0;
#100;
rst_n_i=1;
end
复位信号产生方法二:同步复位
initial
begin
rst_n_i=1;
@ negedge clk_i)
rst_n_i=0;
#100;
// 固定时间复位
repeat(10) @ negedge clk_i);
// 固定周期数复位
@
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cckkppll

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值