Menu
Coddy logo textTech

4 To 1 Mux Design

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

challenge icon

Desafío

Multiplexor de 4 a 1

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

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

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

Un multiplexor de 4 a 1 selecciona una de cuatro entradas y la pasa al output 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, el output sigue a in0. Cuando sel es 01, el output sigue a in1. Cuando sel es 10, el output sigue a in2. Cuando sel es 11, el output sigue a in3.

Qué hacer:

  1. Create un módulo named mux4to1
  2. Add input in0 (1 bit)
  3. Add input in1 (1 bit)
  4. Add input in2 (1 bit)
  5. Add input in3 (1 bit)
  6. Add input sel (2 bits)
  7. Add output out (1 bit, type reg)
  8. Add un bloque always @(*)
  9. Dentro, Add una instrucción if-else que compruebe sel:
    • If sel == 2'b00, establece out = in0
    • Else if sel == 2'b01, establece out = in1
    • Else if sel == 2'b10, establece out = in2
    • Else, 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

Practica por tu cuenta: Compilador de Verilog online