Codificador 8 a 3
Descripcion general
- Proposito: El codificador 8 a 3 es un circuito digital combinacional que convierte ocho lineas de entrada mutuamente exclusivas en un codigo binario de 3 bits, representando cual de las lineas de entrada esta activa.
- Simbolo: Tipicamente representado como un bloque rectangular con ocho entradas (I0-I7) y tres salidas (Y2, Y1, Y0).
- Rol en DigiSim.io: Sirve como componente esencial de reduccion de datos, permitiendo la conversion de senales one-hot a representaciones binarias compactas para un procesamiento y transmision mas eficientes.

Descripcion funcional
Comportamiento logico
El codificador 8 a 3 detecta cual de sus ocho lineas de entrada esta activa y produce un codigo binario unico de 3 bits que corresponde a la entrada activa. En un codificador estandar, solo una entrada debe estar activa en cualquier momento.
Tabla de verdad:
| Entradas | Salidas | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| I7 | I6 | I5 | I4 | I3 | I2 | I1 | I0 | Y2 | Y1 | Y0 |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 |
| 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 |
| 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 |
| 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
| 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
Nota: Solo una entrada debe estar activa (alta) a la vez. Multiples entradas activas o todas las entradas inactivas representan condiciones invalidas en un codificador basico.
Entradas y salidas
Entradas:
- I0-I7: Ocho entradas de 1 bit, donde tipicamente solo una esta activa a la vez en codificadores estandar.
Salidas:
- Y2: Bit mas significativo (MSB) del codigo de salida de 3 bits.
- Y1: Bit medio del codigo de salida de 3 bits.
- Y0: Bit menos significativo (LSB) del codigo de salida de 3 bits.
Parametros configurables
- Nivel de activacion de entrada: Si las entradas son activas en alto o activas en bajo.
- Logica de salida: Si las salidas siguen logica positiva o negativa.
- Codificacion de prioridad: Si el codificador tiene logica de prioridad para manejar multiples entradas activas.
- Senal de salida valida: Si el codificador produce una senal que indica una condicion de entrada valida.
- Retardo de propagacion: El tiempo que tardan las salidas en cambiar despues de un cambio de entrada.
Representacion visual en DigiSim.io
El codificador 8 a 3 se muestra como un bloque rectangular con ocho pines de entrada en el lado izquierdo (I0-I7) y tres pines de salida (Y2, Y1, Y0) en el lado derecho. Cuando se conecta en un circuito, el componente indica visualmente la entrada activa y la salida binaria correspondiente mediante cambios de color en los cables de conexion.
Valor educativo
Conceptos clave
- Codificacion binaria: Demuestra como multiples lineas de senal pueden codificarse en una representacion binaria mas compacta.
- Reduccion de datos: Muestra como reducir el numero de lineas de senal necesarias para representar informacion.
- Conversion de codigo: Ilustra la conversion de codigo one-hot (unario) a codigo binario.
- Logica combinacional: Presenta una aplicacion practica de compuertas OR en una funcion digital util.
- Multiplexacion de senales: Introduce conceptos relacionados con la seleccion de senales e identificacion de canales.
Objetivos de aprendizaje
- Comprender como los sistemas digitales codifican eficientemente multiples senales en forma binaria.
- Aprender la relacion entre la activacion de entradas y los codigos de salida binarios correspondientes.
- Reconocer los desafios de las condiciones de entrada invalidas y como podrian manejarse.
- Aplicar conceptos de codificacion para disenar sistemas con cableado reducido y rutas de datos simplificadas.
- Comprender la dualidad logica entre codificadores y decodificadores en sistemas digitales.
Ejemplos de uso/Escenarios
- Codificacion de teclado: Conversion de multiples entradas de teclas en codigos binarios para procesamiento.
- Manejo de interrupciones de prioridad: Codificacion de multiples fuentes de interrupcion en un vector binario para un procesador.
- Procesamiento de entrada de sensores: Conversion de multiples activaciones de sensores en datos binarios compactos.
- Seleccion de banco de memoria: Codificacion de que banco de memoria esta actualmente activo o siendo direccionado.
- Seleccion de dispositivo de entrada: Generacion de codigos binarios que identifican que dispositivo de entrada esta activo.
- Codificacion de estado: Conversion de senales de estado en maquinas de estados a representacion binaria compacta.
- Control de multiplexor: Generacion de senales de seleccion para controlar multiplexores desde lineas de control individuales.
Notas tecnicas
- El codificador 8 a 3 implementa las siguientes expresiones booleanas: Y0 = I1+I3+I5+I7, Y1 = I2+I3+I6+I7, Y2 = I4+I5+I6+I7.
- Los codificadores basicos no manejan bien multiples entradas activas; se necesitan codificadores de prioridad para tales casos.
- La activacion de la entrada I0 no puede distinguirse del estado de todas las entradas inactivas sin logica adicional.
- Algunas implementaciones de codificadores incluyen una salida "valida" que indica cuando al menos una entrada esta activa.
- Los codificadores con logica de prioridad produciran el codigo binario correspondiente a la entrada activa de numero mas alto.
- En DigiSim.io, el comportamiento del codificador modela la funcionalidad estandar del codificador con generacion apropiada de salidas para entradas activas.
Caracteristicas
- Configuracion de entradas:
- Ocho entradas (I0-I7), donde normalmente solo una esta activa a la vez
- Entradas activas en alto (1 representa una entrada activa)
- Configuracion de salidas:
- Tres salidas (Y2, Y1, Y0) que representan el codigo binario de 3 bits
- Y2 es el bit mas significativo (MSB)
- Y0 es el bit menos significativo (LSB)
- Funcionalidad:
- Convierte una entrada one-hot (linea activa unica) a binario
- Reduce ocho lineas de senal a tres lineas binarias
- Retardo de propagacion:
- Tipicamente 5-15ns (dependiente de la tecnologia)
- Generalmente menor que los decodificadores de tamano similar
- Fan-Out:
- Cada salida tipicamente alimenta 10-50 compuertas (dependiente de la tecnologia)
- Niveles logicos:
- Compatible con familias logicas estandar (TTL, CMOS)
- Complejidad del circuito:
- Media (requiere multiples compuertas OR)
- Menos complejo que circuitos decodificadores equivalentes
- Limitaciones:
- Los codificadores basicos tienen estados invalidos (multiples entradas activas)
- Sin manejo para entradas todo-cero en implementaciones simples
Metodos de implementacion
- Usando compuertas OR
- Cada bit de salida se forma haciendo OR de entradas especificas
- Las expresiones booleanas para cada salida:
- Y0 = I1 + I3 + I5 + I7
- Y1 = I2 + I3 + I6 + I7
- Y2 = I4 + I5 + I6 + I7
graph LR
I1[I1] --> OR0[OR Gate]
I3[I3] --> OR0
I5[I5] --> OR0
I7[I7] --> OR0
OR0 --> Y0[Y0 LSB]
I2[I2] --> OR1[OR Gate]
I3 --> OR1
I6[I6] --> OR1
I7 --> OR1
OR1 --> Y1[Y1]
I4[I4] --> OR2[OR Gate]
I5 --> OR2
I6 --> OR2
I7 --> OR2
OR2 --> Y2[Y2 MSB]
Patron de codificacion: Cada bit de salida es ALTO cuando cualquier entrada con ese bit de posicion activo esta activa.
Implementacion de codificador de prioridad
- Maneja casos donde multiples entradas estan activas
- Produce el codigo para la entrada activa de mayor prioridad
- Usa logica de prioridad adicional y habilitaciones
Usando multiplexores
- Puede implementarse con multiplexores y entradas fijas
- Menos comun pero util en arquitecturas FPGA especificas
Circuitos integrados
- Disponible en familias logicas de la serie 74xx (p. ej., 74148)
- A menudo implementados con capacidades de codificacion de prioridad
- Algunas versiones incluyen entradas de habilitacion y banderas de salida valida
Aplicaciones
Codificacion de direcciones
- Conversion de multiples lineas de seleccion a direcciones binarias
- Codificacion de seleccion de banco de memoria
- Seleccion de registros en procesadores
Procesamiento de entrada
- Conversion de multiples entradas de sensores a valores binarios
- Codificacion de teclado en sistemas informaticos
- Codificacion de seleccion de entrada de usuario
Control de multiplexor
- Generacion de senales de seleccion para sistemas de multiplexor mas grandes
- Seleccion de canal en sistemas de comunicacion
- Seleccion de fuente de entrada en sistemas digitales
Procesamiento de interrupciones
- Codificacion de multiples fuentes de interrupcion en valores binarios
- Manejo de interrupciones de prioridad en sistemas de procesadores
- Identificacion de dispositivos en sistemas multi-dispositivo
Compresion de datos
- Forma basica de codificacion de datos para reducir lineas de senal
- Conversion de codigos one-hot a representacion binaria
- Parte de esquemas de codificacion mas grandes en sistemas de comunicacion
Instrumentacion digital
- Conversion de multiples selecciones de rango a senales de control binarias
- Codificacion de seleccion de modo en equipos de prueba
- Seleccion de formato de visualizacion en pantallas digitales
Implementacion de maquinas de estados
- Codificacion de transiciones de estado en controladores digitales
- Reduccion de representacion de estado en circuitos secuenciales
- Decodificacion de comandos en unidades de control
Limitaciones
Resolucion de conflictos de entrada
- Los codificadores estandar tienen comportamiento indefinido con multiples entradas activas
- Requiere codificacion de prioridad para operacion confiable con multiples entradas
Condicion de entrada todo-cero
- Los codificadores basicos no pueden distinguir entre todas las entradas inactivas e I0 activa
- Puede requerir una salida de senal valida adicional para operacion correcta
Variaciones de retardo de propagacion
- Diferentes rutas pueden tener diferentes retardos
- Puede causar glitches durante transiciones de entrada
Sensibilidad al ruido
- Susceptible a que el ruido cause codificacion incorrecta
- Puede requerir filtrado de entrada en entornos ruidosos
Expansion de entrada limitada
- Dificil de conectar en cascada para mayor numero de entradas
- Requiere logica adicional para mas de 8 entradas
Detalle de implementacion del circuito
Expresiones booleanas
El codificador 8 a 3 puede describirse mediante las siguientes expresiones booleanas:
Y0 = I1 + I3 + I5 + I7
Y1 = I2 + I3 + I6 + I7
Y2 = I4 + I5 + I6 + I7
Donde:
- I0 a I7 son las entradas
- Y0, Y1, Y2 son las salidas
- "+" representa OR logico
Logica de codificador de prioridad
Para la funcionalidad de codificacion de prioridad, logica adicional asegura que solo la entrada de mayor prioridad afecte la salida:
Y0 = (I1 AND NOT(I2, I4, I6)) OR (I3 AND NOT(I4, I6)) OR (I5 AND NOT(I6)) OR I7
Y1 = (I2 AND NOT(I4, I6)) OR (I3 AND NOT(I4, I6)) OR I6 OR I7
Y2 = I4 OR I5 OR I6 OR I7
Logica de salida valida
Para detectar la condicion de entrada valida (al menos una entrada activa):
VALID = I0 OR I1 OR I2 OR I3 OR I4 OR I5 OR I6 OR I7
Componentes relacionados
- Codificador 4 a 2: Version mas simple que codifica cuatro entradas a dos salidas
- Codificador 16 a 4: Version mas grande que codifica dieciseis entradas a cuatro salidas
- Codificador de prioridad: Codificador mejorado que resuelve multiples entradas activas
- Decodificador 3 a 8: Realiza la operacion inversa, convirtiendo binario a codigo one-hot
- Codificador BCD: Codificador especial que convierte entradas decimales a decimal codificado en binario
- Multiplexor: A menudo usado con codificadores para seleccion de datos basada en valores codificados
- Codificador binario: Termino general para codificadores que convierten a representacion binaria
- Codificador de teclado: Codificador especializado para procesamiento de entrada de teclado numerico