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.
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
| sel | out |
|---|---|
| 0 | out = in0 |
| 1 | out = in1 |
Cuando sel es 0, la salida sigue a in0. Cuando sel es 1, la salida sigue a in1.
Qué hacer:
- Crea un módulo llamado
mux2to1 - Añade la entrada
in0(1 bit) - Añade la entrada
in1(1 bit) - Añade la entrada
sel(1 bit) - Añade la salida
out(1 bit, tiporeg) - Añade un bloque
always @(*) - Dentro de él, añade una instrucción
if-else:- Si
sel == 0, estableceout = in0 - De lo contrario, establece
out = in1
- Si
- 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: EndmoduleTodas las lecciones de Fundamentos
1Introducción
Qué es VerilogHardware frente a softwareTu primer móduloComentariosNiveles de abstracción del diseño4Operadores, parte 1
Operadores aritméticosOperador móduloOperadores de comparaciónRepaso: matemáticas simplesOperadores bit a bit7Asignaciones y compuertas
Asignación continuaAsignación con operadoresPrimitivas de compuertas integradasCompuertas AND, OR y NOTCompuertas XOR y XNORRepaso: circuito de compuertas lógicas10Toma de decisiones
Sentencia IfIf - ElseRepaso - Comparador simpleSentencia CaseCasex y CasezRepaso - Diseño de ALU5Operadores, parte 2
Operadores lógicosOperadores de reducciónOperadores de desplazamientoOperador de concatenaciónOperador condicionalRepaso: desafío de operadores11Bucles
Bucle ForBucle WhileBucle de repeticiónBucle infinitoInstrucción DisableRepaso: patrones de bucles3Sistema numérico
Representación binariaNúmeros con tamañoNúmeros sin tamañoNúmeros negativosValores especiales X y ZRepaso: formatos numéricos6Módulos
Estructura de módulosPuertos de entrada y salidaPuertos inoutInstanciación de módulosAsignación de puertos por nombreAsignación de puertos por ordenRepaso: construir un móduloPractica por tu cuenta: Compilador de Verilog online