4选1数据选择器 testbench代码编写
作者:互联网
4选1数据选择器verilog代码
module mux4_1(out, in0, in1, in2, in3, sel);
output out;
input in0, in1, in2, in3;
input[1:0] sel;
reg out;
always @(in0 or in1 or in2 or in3 or sel) //敏感信号列表
case(sel)
2'b00: out=in0;
2'b01: out=in1;
2'b10: out=in2;
2'b11: out=in3;
default: out=2'bx;
endcase
endmodule
4选1数据选择器testbench代码
'timescale 1ns/1ps
module mux_tb;
reg in0,in1,in2,in3;
reg[1:0] sel;
wire out;
integer i;
integer j;
mux4_1 tb(
.in0(in0),
.in1(in1),
.in2(in2),
.in3(in3),
.sel(sel),
.out(out)
);
initial begin
for(i = 0;i < 5;i++) begin
case(i)
0: sel = 2'b00;
1: sel = 2'b01;
2: sel = 2'b10;
3: sel = 2'b11;
endcase
for(j = 0;j < 16;j++) begin
case(j)
0:
#10 in0 = 1'b0; in1 = 1'b0; in2 = 1'b0; in3 = 1'b0;
1:
#10 in0 = 1'b0; in1 = 1'b0; in2 = 1'b0; in3 = 1'b1;
2:
#10 in0 = 1'b0; in1 = 1'b0; in2 = 1'b1; in3 = 1'b0;
3:
#10 in0 = 1'b0; in1 = 1'b0; in2 = 1'b1; in3 = 1'b1;
4:
#10 in0 = 1'b0; in1 = 1'b1; in2 = 1'b0; in3 = 1'b0;
5:
#10 in0 = 1'b0; in1 = 1'b1; in2 = 1'b0; in3 = 1'b1;
6:
#10 in0 = 1'b0; in1 = 1'b1; in2 = 1'b1; in3 = 1'b0;
7:
#10 in0 = 1'b0; in1 = 1'b1; in2 = 1'b1; in3 = 1'b1;
8:
#10 in0 = 1'b1; in1 = 1'b0; in2 = 1'b0; in3 = 1'b0;
9:
#10 in0 = 1'b1; in1 = 1'b0; in2 = 1'b0; in3 = 1'b1;
10:
#10 in0 = 1'b1; in1 = 1'b0; in2 = 1'b1; in3 = 1'b0;
11:
#10 in0 = 1'b1; in1 = 1'b0; in2 = 1'b1; in3 = 1'b1;
12:
#10 in0 = 1'b1; in1 = 1'b1; in2 = 1'b0; in3 = 1'b0;
13:
#10 in0 = 1'b1; in1 = 1'b1; in2 = 1'b0; in3 = 1'b1;
14:
#10 in0 = 1'b1; in1 = 1'b1; in2 = 1'b1; in3 = 1'b0;
15:
#10 in0 = 1'b1; in1 = 1'b1; in2 = 1'b1; in3 = 1'b1;
endcase
end
end
end
endmodule
备注
这些代码全部是初学者第一次编写,可能存在错误,谨慎参考。
标签:in0,in1,in2,in3,b0,b1,testbench,编写,选择器 来源: https://blog.csdn.net/nightwind2017/article/details/120697098