Menu
Coddy logo textTech

Diseño de Mux 4 a 1

Parte de la sección Fundamentos del Journey de Verilog de Coddy — lección 65 de 90.

challenge icon

Desafío

Multiplexor 4 a 1

El multiplexor 4 a 1 tiene cuatro entradas de datos (in0, in1, in2, in3), dos bits de selección (sel[1:0]) y una salida (out). Los dos bits de selección eligen qué entrada pasa a la salida:

  • Cuando sel = 2'b00, la salida es in0
  • Cuando sel = 2'b01, la salida es in1
  • Cuando sel = 2'b10, la salida es in2
  • Cuando sel = 2'b11, la salida es in3

Construirás este multiplexor de dos maneras: primero usando sentencias if-else, y después en la siguiente lección usando una sentencia case. Ambos métodos funcionan, pero case suele ser más limpio cuando tienes muchas opciones.

Un multiplexor 4 a 1 selecciona una de cuatro entradas y la pasa a la salida según una señal de selección de 2 bits.

Tabla de Verdad

sel1sel0out
00out = in0
01out = in1
10out = in2
11out = in3

Cuando sel es 00, la salida sigue a in0. Cuando sel es 01, la salida sigue a in1. Cuando sel es 10, la salida sigue a in2. Cuando sel es 11, la salida sigue a in3.

Qué hacer:

  1. Crea un módulo llamado mux4to1
  2. Añade la entrada in0 (1 bit)
  3. Añade la entrada in1 (1 bit)
  4. Añade la entrada in2 (1 bit)
  5. Añade la entrada in3 (1 bit)
  6. Añade la entrada sel (2 bits)
  7. Añade la salida out (1 bit, tipo reg)
  8. Añade un bloque always @(*)
  9. Dentro, añade una sentencia if-else que verifique sel:
    • Si sel == 2'b00, establece out = in0
    • Si no, si sel == 2'b01, establece out = in1
    • Si no, si sel == 2'b10, establece out = in2
    • Si no, establece out = in3
  10. Cierra con endmodule

Pruébalo tú mismo

// Paso 1: Crear módulo llamado mux4to1


  // Paso 2: Añadir entrada in0
  
  // Paso 3: Añadir entrada in1
  
  // Paso 4: Añadir entrada in2
  
  // Paso 5: Añadir entrada in3
  
  // Paso 6: Añadir entrada sel (2 bits)
  
  // Paso 7: Añadir salida out (tipo reg)
  

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

    // Paso 9: Añadir sentencia if-else
    // si sel == 2'b00, out = in0
    // else if sel == 2'b01, out = in1
    // else if sel == 2'b10, out = in2
    // else, out = in3
    

// Paso 10: Endmodule

Todas las lecciones de Fundamentos