📜  使用Verilog HDL的多路复用器设计

📅  最后修改于: 2021-08-27 07:38:38             🧑  作者: Mango

先决条件–数字逻辑中的多路复用器
问题 :
设计2:1 MUX Verilog硬件描述语言以及Testbench。

概念:
多路复用器是数字电路的组合类型,用于将可用输入线之一传送到单个输出,并且必须将哪个输入传送到输出,这将由选择线信号的值决定。 2:1多路复用器具有两个输入,一个选择线(用于选择两个输入之一)和一个输出。

真相表–

select out
0 in1
1 in2

2:1 MUX的Verilog HDL代码:

设计 –

// define a module for the design
module mux2_1(in1, in2, select, out);

// define input  port
input in1, in2, select;

// define the output port
output out;

// assign one of the inputs to the output based upon select line input
assign out = select ? in2 : in1;
endmodule :mux2_1

试验台 –

module test;
reg in1, in2, select;
wire out;

// design under test 
mux2_1 mux(.in1(in1), .in2(in2), 
            .select(select), .out(out));

// list the input to the design
initial begin in1=1'b0;in2=1'b0;select=1'b0; 
        #2    in1=1'b1;
        #2    select=1'b1;
        #2    in2=1'b1;
        #2    $stop();
        end

// monitor the ouput whenever any of the input changes
initial begin $monitor("time=%0d, input1=%b, input2=%b, 
                       select line=%b, output=%b", $time, 
                        in1, in2, select, out);
        end
endmodule :test

预期产出–

time=0, input1=0, input2=0, select line=0, out=0
time=2, input1=1, input2=0, select line=0, out=1
time=4, input1=1, input2=0, select line=1, out=0
time=6, input1=1, input2=1, select line=1, out=1