Comparador
Descripcion general
- Proposito: El comparador es un circuito digital que compara dos numeros binarios y produce salidas que indican sus valores relativos (igual, mayor que o menor que). Determina la relacion entre dos entradas binarias y genera senales de estado basadas en esta comparacion.
- Simbolo: El comparador se representa como un bloque rectangular con dos entradas para los numeros que se comparan (A y B) y salidas que indican el resultado de la comparacion (A=B, A>B, A<B).
- Rol en DigiSim.io: Sirve como componente fundamental de toma de decisiones en circuitos digitales, permitiendo operaciones de comparacion de valores esenciales para implementar logica condicional, redes de ordenamiento y sistemas de control.

Descripcion funcional
Comportamiento logico
El comparador examina dos entradas binarias y determina su relacion, activando la linea de salida apropiada para indicar si la primera entrada es igual a, mayor que o menor que la segunda entrada.
Tabla de verdad (para un comparador de 1 bit):
| A | B | A=B | A>B | A<B | Relacion |
|---|---|---|---|---|---|
| 0 | 0 | 1 | 0 | 0 | Igual |
| 0 | 1 | 0 | 0 | 1 | Menor que |
| 1 | 0 | 0 | 1 | 0 | Mayor que |
| 1 | 1 | 1 | 0 | 0 | Igual |
Nota: Para comparadores multi-bit, la comparacion se extiende a todos los bits.
Entradas y salidas
Entradas:
- A[n:0]: Primer operando de n bits para comparacion.
- B[n:0]: Segundo operando de n bits para comparacion.
- Algunas implementaciones pueden incluir entradas de control adicionales como habilitacion (EN) o entradas de cascada para construir comparadores mas grandes.
Salidas:
- Igual (=): Salida de 1 bit que es ALTA cuando A es igual a B.
- Mayor (>): Salida de 1 bit que es ALTA cuando A es mayor que B.
- Menor (<): Salida de 1 bit que es ALTA cuando A es menor que B.
Parametros configurables
- Ancho de bits: El numero de bits en las entradas que se comparan (1 bit, 4 bits, 8 bits, etc.).
- Modo de comparacion: Si la comparacion es para numeros binarios sin signo o con signo (complemento a dos).
- Retardo de propagacion: El tiempo que tardan las salidas en cambiar despues de cambios en la entrada.
- Configuracion de salida: Algunas implementaciones pueden tener salidas activas en bajo u omitir ciertos resultados de comparacion.
Representacion visual en DigiSim.io
El comparador se muestra como un bloque rectangular con entradas etiquetadas en el lado izquierdo (A[n:0], B[n:0]) y salidas (=, >, <) en el lado derecho. Cuando se conecta en un circuito, el componente indica visualmente su resultado de comparacion a traves de los valores mostrados en sus salidas y cambios de color en los cables de conexion.
Valor educativo
Conceptos clave
- Comparacion binaria: Demuestra como los circuitos digitales determinan la relacion entre numeros binarios.
- Toma de decisiones: Ilustra como las computadoras hacen comparaciones que impulsan operaciones condicionales.
- Determinacion de magnitud: Muestra como se establece el tamano relativo de valores binarios en sistemas digitales.
- Logica combinacional: Presenta una aplicacion practica de circuitos combinacionales con multiples salidas.
- Operaciones a nivel de bit: Introduce el concepto de comparacion bit a bit y como determina las relaciones generales de numeros.
Objetivos de aprendizaje
- Comprender como los sistemas digitales comparan valores numericos.
- Aprender la implementacion de operaciones de comparacion usando compuertas logicas.
- Reconocer como los resultados de comparacion impulsan la toma de decisiones en sistemas digitales.
- Aplicar conceptos de comparador para disenar circuitos de seleccion, buscadores de minimo/maximo y detectores de rango.
- Comprender la diferencia entre la comparacion de numeros sin signo y con signo.
Ejemplos de uso/Escenarios
- Bifurcacion condicional: Determinar si tomar una bifurcacion en una CPU basandose en la comparacion de valores de registros.
- Redes de ordenamiento: Bloques de construccion para organizar datos en orden ascendente o descendente.
- Deteccion de limites: Identificar cuando un valor excede o cae por debajo de umbrales especificos.
- Comparacion de direcciones: Determinar cuando una direccion de memoria coincide con un valor especifico para decodificacion.
- Comparacion de ventana: Detectar cuando un valor cae dentro de un rango especifico.
- Deteccion de cero: Identificar cuando un resultado de calculo es igual a cero.
Notas tecnicas
- Los comparadores simples de 1 bit se implementan tipicamente usando compuertas XOR (para igualdad) y compuertas AND con inversores (para desigualdad).
- Los comparadores multi-bit pueden construirse como comparadores en cadena (simples pero mas lentos) o comparadores paralelos (mas rapidos pero mas complejos).
- Para la comparacion de numeros con signo, el bit mas significativo requiere manejo especial ya que representa el signo.
- Conectar en cascada multiples comparadores permite la comparacion de numeros binarios mas anchos a costa de mayor retardo de propagacion.
- En DigiSim.io, el comportamiento del comparador modela componentes digitales del mundo real con manejo adecuado de entradas multi-bit.
- Para operacion de alta velocidad, se pueden implementar tecnicas de anticipacion similares a las de los sumadores para reducir el retardo de comparacion.
Aplicaciones
- Unidades aritmético-logicas (ALUs) en procesadores
- Comparacion de direcciones en sistemas de memoria
- Decodificacion de instrucciones en CPUs
- Algoritmos de ordenamiento de datos
- Comparadores de ventana en convertidores analogico-digital
- Verificacion de rango en sistemas de seguridad y validacion
- Sistemas de verificacion de contrasenas
- Comparacion de magnitud en sistemas de control
- Pruebas de igualdad en procesadores de senales digitales
- Prediccion de bifurcacion en procesadores con pipeline
Implementacion
Los comparadores pueden implementarse usando:
- Compuertas logicas basicas (AND, OR, NOT, XOR)
- CI de comparador especializados (74HC85, 74LS682, etc.)
- Dispositivos logicos programables (FPGAs, CPLDs)
- Funciones integradas de ALU en microprocesadores
- Varias arquitecturas:
- Comparadores en cadena (mas simples pero mas lentos)
- Comparadores paralelos (mas rapidos pero mas complejos)
- Arquitecturas basadas en arbol (velocidad/complejidad equilibrada)
Implementacion del circuito
Un comparador basico de 1 bit puede implementarse con la siguiente logica:
Deteccion de igualdad
graph LR
A[A] --> XNOR[XNOR Gate]
B[B] --> XNOR
XNOR --> EQ[Equal A=B]
Deteccion de mayor que
graph LR
A[A] --> AND1[AND Gate]
BN[B'] --> AND1
AND1 --> GT[Greater Than A>B]
Deteccion de menor que
graph LR
AN[A'] --> AND2[AND Gate]
B[B] --> AND2
AND2 --> LT[Less Than A<B]
Para comparadores multi-bit, estos circuitos se combinan con logica de cascada apropiada.
Componentes relacionados
- Comparador de magnitud: Especializado para comparar la magnitud de numeros binarios
- Comparador de igualdad: Se enfoca solo en determinar si dos valores son iguales
- Comparador de ventana: Determina si un valor cae dentro de un rango especificado
- ALU: Contiene funcionalidad de comparacion entre muchas otras operaciones
- Compuerta XNOR: Usada para comparacion de igualdad bit a bit
- Restador: Puede usarse para comparacion examinando el signo de la diferencia