笔者使用开发工具的是QuartusII在使用过程中也遇到很多问题不过经过咨询还是成功解决,下面是一个简单的二选一选择器的testbench。
先贴出来二选一多选器的模型
module muxtwo(out,a,b,sl);
input a,b,sl;
output out;
//============================
reg out;
always@(sl or a or b)//表示只要有一个变化就执行下面的语句
if(!sl)
out=a;
else
out=b;
endmodule
接下来就是我们的testbench文件的写法
`timescale 1 ps/ 1 ps
module muxtwo_vlg_tst();
reg a;
reg b;
reg sl;
reg clock; // 时钟信号
wire out; // wires
muxtwo i1 (
// 连接端口 ,把测试的端口和做好的模型连接进取
.a(a),
.b(b),
.out(out),
.sl(sl)
);
initial //初始化
begin
a=0;
b=0;
sl=0;
clock;
$display("Running testbench");
end
always #50 clock=~clock;//产生一个不断重复的,周期为100单位的时钟
always @(posedge clock) //时钟上升沿触发
begin
a={$random}%2; //{$random}系统任务随机生成数字,%2对2取模即要么为1要么为0
#3 b={$random}%2; //延时3个单位时间
end
always #1000 slin=!slin; //1000个单位时间后变化一次
endmodule