Menu
Coddy logo textTech

Diseño de Mux 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. Piénsalo como un selector de datos: tienes múltiples entradas que llegan y eliges cuál de ellas va a la salida.

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

Multiplexor 2 a 1

El multiplexor 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. Implementarás esto usando una sentencia if-else dentro de un bloque always @(*).

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

Un multiplexor 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. Agrega la entrada in0 (1 bit)
  3. Agrega la entrada in1 (1 bit)
  4. Agrega la entrada sel (1 bit)
  5. Agrega la salida out (1 bit, tipo reg)
  6. Agrega un bloque always @(*)
  7. En el interior, agrega una sentencia 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 el módulo llamado mux2to1


  // Paso 2: Agregar la entrada in0
  
  // Paso 3: Agregar la entrada in1
  
  // Paso 4: Agregar la entrada sel
  
  // Paso 5: Agregar la salida out (tipo reg)
  

  // Paso 6: Agregar el bloque always @(*)
  

    // Paso 7: Agregar la sentencia if-else
    // Si sel == 0, out = in0
    // De lo contrario, out = in1
    

// Paso 8: Endmodule

Todas las lecciones de Fundamentos