Menu
Coddy logo textTech

Diseño de Mux de 2 a 1

Parte de la sección Fundamentos del Journey de Verilog de Coddy. Lección 64 de 90.

challenge icon

Desafío

Un multiplexor (MUX) es un circuito digital que selecciona una de varias entradas y la reenvía a una única salida basándose en una señal de selección. Piensa en él como un selector de datos. Recibes múltiples entradas y eliges cuál va a la salida.

En este proyecto, construirás multiplexores de distintos tamaños utilizando instrucciones if-else y case.

Multiplexor de 2 a 1

El multiplexor de 2 a 1 es la forma más sencilla. Tiene dos entradas de datos (in0 y in1), una entrada de selección (sel) y una salida (out). Cuando sel es 0, la salida sigue a in0. Cuando sel es 1, la salida sigue a in1. Lo implementarás utilizando una instrucción if-else dentro de un bloque always @(*).

Ejemplo: Si in0 = 0, in1 = 1 y sel = 1, entonces out = 1.

Un multiplexor de 2 a 1 selecciona una de dos entradas y la pasa a la salida basándose en una señal de selección.

Tabla de verdad

 

selout
0out = in0
1out = in1

Cuando sel es 0, la salida sigue a in0. Cuando sel es 1, la salida sigue a in1.

Qué hacer:

  1. Crea un módulo llamado mux2to1
  2. Añade la entrada in0 (1 bit)
  3. Añade la entrada in1 (1 bit)
  4. Añade la entrada sel (1 bit)
  5. Añade la salida out (1 bit, tipo reg)
  6. Añade un bloque always @(*)
  7. Dentro de él, añade una instrucción if-else:
    • Si sel == 0, establece out = in0
    • De lo contrario, establece out = in1
  8. Cierra con endmodule

Pruébalo tú mismo

// Paso 1: Crear módulo llamado mux2to1


  // Paso 2: Añadir input in0
  
  // Paso 3: Añadir input in1
  
  // Paso 4: Añadir input sel
  
  // Paso 5: Añadir output out (tipo reg)
  

  // Paso 6: Añadir bloque always @(*)
  

    // Paso 7: Añadir sentencia if-else
    // Si sel == 0, out = in0
    // Else, out = in1
    

// Paso 8: Endmodule

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de Verilog online