Diseño de decodificador
Parte de la sección Fundamentos del Journey de Verilog de Coddy. Lección 85 de 90.
Desafío
Un decodificador toma un número binario como entrada y activa exactamente una salida según ese número. La salida que se activa se llama «one-hot» porque solo un bit está activo (1) y todos los demás están inactivos (0).
Tabla de verdad (decodificador de 2 a 4)
| Entrada (in) | out0 | out1 | out2 | out3 |
|---|---|---|---|---|
| 00 | 1 | 0 | 0 | 0 |
| 01 | 0 | 1 | 0 | 0 |
| 10 | 0 | 0 | 1 | 0 |
| 11 | 0 | 0 | 0 | 1 |
Interfaz del módulo
| Puerto | Dirección | Anchura | Descripción |
|---|---|---|---|
in | entrada | 2 bits | Entrada binaria (0 a 3) |
out0 | salida | 1 bit | Activo cuando in = 00 |
out1 | salida | 1 bit | Activo cuando in = 01 |
out2 | salida | 1 bit | Activo cuando in = 10 |
out3 | salida | 1 bit | Activo cuando in = 11 |
Tu tarea es completar el módulo siguiente usando una instrucción case.
Qué hacer:
- Cuando
in = 2'b00,out0 = 1y todas las demás salidas son 0 - Cuando
in = 2'b01,out1 = 1y todas las demás salidas son 0 - Cuando
in = 2'b10,out2 = 1y todas las demás salidas son 0 - Cuando
in = 2'b11,out3 = 1y todas las demás salidas son 0
Pruébalo tú mismo
module decoder (
input [1:0] in,
output reg out0,
output reg out1,
output reg out2,
output reg out3
);
// TODO: Añade el bloque always @(*) con case (in)
// 2'b00: out0=1, otros 0
// 2'b01: out1=1, otros 0
// 2'b10: out2=1, otros 0
// 2'b11: out3=1, otros 0
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