Comparador digital explicado: igualdad y magnitud
Deriva comparadores de igualdad y magnitud, encadena bloques de 4 bits, distingue orden con y sin signo y verifica las salidas mayor, igual y menor.
Resumen: La igualdad es un AND de reducción de resultados XNOR bit a bit. La magnitud sin signo la decide la posición más significativa donde A y B difieren. La magnitud con signo requiere interpretar de otra forma el bit de signo o las banderas de resta. Un comparador solo es correcto cuando se definen anchura, signo, polaridad y entradas de cascada.
Un comparador convierte dos vectores de bits en una relación:
A < B, A = B, or A > B
Esto parece inequívoco hasta que los mismos bits se interpretan de forma diferente. En cuatro bits, 1000 es 8 sin signo, pero -8 en complemento a dos. Comparado con 0111, es mayor con interpretación sin signo y menor con interpretación con signo.
Esta guía construye primero la igualdad, deduce una red de magnitud sin signo y después muestra cómo la comparación con signo y el encadenamiento de bloques cambian el diseño.
Define el contrato
Para dos entradas válidas A y B de bits, un comparador de magnitud de tres salidas normalmente produce:
- G: A es mayor que B;
- E: A es igual a B;
- L: A es menor que B.
Con un modelo válido de entradas de dos valores:
y ninguna pareja de salidas está activa a la vez. Esa relación one-hot depende de una implementación completa y de niveles lógicos válidos. Una entrada de habilitación, una interfaz activa en bajo, valores desconocidos en la simulación o entradas de cascada inicializadas incorrectamente pueden cambiar el comportamiento visible.
La igualdad no depende de si hay signo: los vectores de bits coinciden o no coinciden. Las relaciones mayor y menor sí dependen de ello.
Igualdad a partir de XNOR
Para una posición:
cuando los dos bits coinciden. Dos palabras son iguales solo cuando coinciden todas sus posiciones:
Para cuatro bits:
El esquema directo usa cuatro puertas XNOR seguidas de una reducción AND.
Resulta tentador llamarlo «dos retardos de puerta independientemente del ancho». Eso solo corresponde a un dibujo a nivel booleano con fan-in ilimitado. Las implementaciones físicas pueden construir la reducción como un árbol equilibrado, factorizarla en celdas compuestas o asignarla a tablas de consulta de FPGA. Con puertas AND de dos entradas, la profundidad de la reducción crece aproximadamente como cuando está equilibrada.
Magnitud sin signo: gana la diferencia más significativa
Para cada bit, define:
En la posición más significativa que difiere, un 1 en A y un 0 en B significan que A es mayor; lo contrario significa que A es menor. Las posiciones inferiores solo importan si todas las superiores coinciden.
Para valores sin signo de cuatro bits:
Cada término G indica que «todos los bits superiores empatan y A gana aquí». Cada término L indica el caso simétrico.
Ejemplo resuelto sin signo
Compara:
A = 0110 (6)
B = 0101 (5)
Los bits 3 y 2 coinciden. En el bit 1, A tiene 1 y B tiene 0, por lo que . El bit 0 es irrelevante porque ya existe una diferencia más significativa:
G=1, E=0, L=0
Es una función de prioridad, pero la prioridad va del bit de datos más significativo al menos significativo.
Celda de comparador recursiva
En lugar de expandir una suma de productos larga, combina grupos jerárquicamente. Supón que H describe un grupo de orden alto y Lw un grupo de orden bajo:
El grupo alto decide salvo cuando es igual; solo entonces pasa el grupo bajo. Esta combinación de estilo asociativo puede formar una cascada lineal o una jerarquía equilibrada.
Las ecuaciones explican las entradas de expansión de un circuito integrado comparador de magnitud de 4 bits. El bloque necesita un resultado G/E/L de orden inferior por si sus cuatro bits locales empatan.
Encadenamiento de bloques SN74LS85
El SN74LS85 compara dos palabras binarias directas de 4 bits o palabras BCD 8-4-2-1 y expone tres entradas de expansión, además de tres salidas de relación.
Para una comparación de ocho bits:
- El dispositivo de orden bajo compara los bits 3:0.
- Inicializa su relación de expansión como igual:
G_in=0, E_in=1, L_in=0. - Conecta sus salidas G/E/L a las entradas de expansión correspondientes del dispositivo de orden alto.
- El dispositivo de orden alto compara los bits 7:4 y produce el resultado final.
Si las mitades altas difieren, esa decisión local prevalece sobre la entrada baja. Si las mitades altas coinciden, se propaga la relación de orden bajo.
Sigue el datasheet exacto para conocer la polaridad de los pines, el fan-out, la tensión y la temporización. La recursión lógica no sustituye al diseño eléctrico.
Comparación con complemento a dos y signo
La igualdad usa la misma red XNOR para valores con y sin signo. El orden es diferente.
Método 1: interpretar el bit de signo por separado
Sean y .
- Si , el operando cuyo bit de signo vale 1 es menor.
- Si los signos coinciden, la comparación lexicográfica ordinaria de la relación restante proporciona el orden correcto.
Una transformación de hardware conveniente consiste en invertir el MSB de cada operando antes de alimentar un comparador sin signo:
Invertir el bit de signo convierte el orden en complemento a dos en un orden sin signo sesgado. Para cuatro bits:
signed -8 = 1000 → biased 0000
signed -1 = 1111 → biased 0111
signed 0 = 0000 → biased 1000
signed +7 = 0111 → biased 1111
Los valores sesgados ahora aumentan en el mismo orden que los números con signo.
Método 2: restar e interpretar las banderas
Si una ALU calcula :
- E is Z;
- signed L is ;
- signed G is .
La relación menor sin signo depende de la convención de acarreo de la resta. Si el acarreo de salida bruto significa no-préstamo, L sin signo es . Con una bandera de préstamo similar a x86, L sin signo es C. La guía de banderas de CPU deduce ambas convenciones.
No uses N por sí sola para la relación menor con signo. Un desbordamiento con signo puede invertir el signo aparente del resultado almacenado.
Ejemplo con interpretaciones opuestas
A = 1000
B = 0111
Sin signo:
8 > 7
Complemento a dos con signo:
-8 < +7
Un comparador etiquetado únicamente como «A>B» está insuficientemente especificado hasta conocer si los valores tienen signo.
Temporización y opciones de implementación
Una cadena de prioridad lineal tiene una profundidad proporcional al ancho. Una red equilibrada de combinación de grupos puede reducir la profundidad lógica. La síntesis puede usar:
- puertas anchas o compuestas;
- combinaciones de igualdad/mayor de tipo prefijo;
- hardware de resta ya presente en una ALU;
- recursos de cadenas de acarreo o tablas de consulta de FPGA;
- estructuras de salida anticipada para determinados casos de uso.
Ninguna topología es siempre la más rápida. Un comparador dedicado puede evitar esperar a un resultado aritmético en un diseño, mientras que reutilizar un sumador puede ahorrar área en otro. Los procesadores modernos también distribuyen las comparaciones entre la lógica de saltos, generación de direcciones, vectores y otras unidades de ejecución, en lugar de implementar un único comparador monolítico.
El camino temporizado incluye el retardo de reloj a Q de la fuente, la selección de entradas, la lógica del comparador, el encaminamiento, el setup del destino y los efectos del reloj. El número de puertas por sí solo no establece la frecuencia máxima.
Usos prácticos
Coincidencia exacta de direcciones
Un comparador de igualdad puede generar una selección de chip cuando una dirección es igual a un valor fijo. Para una región alineada de tamaño potencia de dos, compara solo los bits superiores de la dirección y trata los bits inferiores como desplazamiento. Para rangos arbitrarios se pueden usar desigualdades o lógica de decodificación factorizada.
La corrección del bus requiere más que igualdad: las habilitaciones, el tipo de acceso, los privilegios y la propiedad mutuamente exclusiva también pueden condicionar la selección.
Comprobaciones de umbral y ventana
La lógica de control puede comprobar:
con dos comparaciones de magnitud. Presta atención a los extremos inclusivos frente a exclusivos y a si X tiene signo.
Mínimo/máximo y comparar-seleccionar
Un resultado de magnitud puede controlar multiplexores:
min = (A < B) ? A : B
max = (A < B) ? B : A
La política en caso de empate importa cuando cada valor lleva metadatos o se necesita un orden estable.
Redes de ordenación
Una celda de comparación-intercambio combina un comparador con multiplexores de encaminamiento de datos. Las redes fijas componen estas celdas en etapas. Su latencia depende tanto de la profundidad del comparador como del número de etapas de comparación-intercambio, no solo del número de celdas.
Constrúyelo y verifícalo en DigiSim
Usa el componente comparador como referencia y después construye las ecuaciones con puertas:
- Construye cuatro señales con XNOR.
- Redúcelas a E.
- Construye y para cada posición.
- Combínalas del MSB al LSB.
- Comprueba que exactamente una de G/E/L esté en nivel alto para cada pareja de entradas válida.
- Añade una opción de sesgo del MSB para cambiar entre comparación con y sin signo.
Las pruebas exhaustivas son prácticas con cuatro bits: evalúa las parejas.
Para cada pareja, comprueba lo siguiente:
- E coincide con la igualdad de los vectores de bits;
- G/L sin signo coincide con los enteros 0–15;
- G/L con signo coincide con los enteros -8–7;
- intercambiar A y B intercambia G y L, pero conserva E;
- G, E y L son mutuamente excluyentes y conjuntamente exhaustivas.
Después encadena dos bloques de cuatro bits y prueba parejas límite como 0x0F/0x10, 0x7F/0x80, además de mitades altas iguales con mitades bajas diferentes.
Un simulador funcional establece la relación booleana. No establece el retardo físico de propagación, la compatibilidad eléctrica ni el cierre temporal en la tecnología final.



