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

📅  最后修改于: 2021-09-16 10:37:08             🧑  作者: Mango

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

概念:
多路复用器是一种组合类型的数字电路,用于将可用输入线之一传输到单个输出,并且必须将哪个输入传输到输出将由以下状态(逻辑 0 或逻辑 1)决定选择线信号。 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 output 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