其他分享
首页 > 其他分享> > 4选1数据选择器 testbench代码编写

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