Diseño de multiplexores usando Verilog HDL

Requisito previo: multiplexores en lógica digital  
. Problema: 
diseño de un MUX 2: 1 utilizando el lenguaje de descripción de hardware Verilog junto con Testbench. 

Conceptos: 
Un multiplexor es un tipo combinacional de circuitos digitales que se utilizan para transferir una de las líneas de entrada disponibles a la salida única y, qué entrada debe transferirse a la salida se decidirá por el estado (0 lógico o 1 lógico). ) de la señal de línea seleccionada. El multiplexor 2:1 tiene dos entradas, una línea de selección (para seleccionar una de las dos entradas) y una sola salida. 

Mesa de la verdad – 
 

Seleccione afuera
0 En 1
1 en 2

Código Verilog HDL de 2:1 MUX: 

Diseño –

// 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

Banco de pruebas –  

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

Rendimiento esperado – 

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 

Publicación traducida automáticamente

Artículo escrito por manishkj116 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *