Electrónica Digital · Tema 25

Comparadores

Mayor, igual o menor: el árbitro de N bits que decide desde el MSB, con el 7485 como juez.

01 · Punto de partida

¿Alcanza o se pasa?

Termostato digital (¿T ≥ consigna?), batería baja (¿V < umbral?), password numérico (¿igual?). Tres respuestas excluyentes: A>B, A=B, A<B. Solo una vale 1.

  • ¿Qué ecuaciones tiene 1 bit?
  • ¿Por dónde se empieza con N bits?
  • ¿Cómo se usa el 7485?
  • ¿Igualdad o magnitud?

02 · 1 bit

Tres veredictos excluyentes

Comparador de 1 bit.
A BG (A>B)E (A=B)L (A<B)
0 0010
0 1001
1 0100
1 1010

G = A·~B (solo 10), L = ~A·B (solo 01), E = A⊙B (00 y 11). Tres funciones, una sola en 1: si ves dos, el circuito miente.

03 · Desde el MSB

El bit alto manda

Como en el diccionario: el MSB distinto decide; si coinciden, manda el siguiente. 9 (1001) vs 6 (0110): el bit 3 (1 vs 0) liquida: A>B sin mirar el resto. Al revés que la suma (que va desde el LSB).

MSB → ¿difieren? →decide → si no →siguiente bit

04 · 74HC85

4 bits con cascada

Entradas de cascada
IA>B, IA=B, IA<B del bloque anterior (menos significativo): el primer chip lleva =1, >=0, <=0.
Cascada a 8/12 bits
Salidas del bajo a entradas del alto (MSBs): dos 85 = 8 bits. Igual que el ripple, pero desde arriba.
Igualdad barata
Solo E: XNOR por bit + AND (Tema 10). El 85 se justifica cuando importan > y <.

05 · Comparar en código

MSB primero

1 bit, N bits desde arriba, y cascada estilo 7485.

Python en tu navegador. Que el MSB hable primero.

def cmp1(a, b):
    g, e, l = (a and not b), (a == b), ((not a) and b)
    print(f"{a}>{b}: G={int(g)} E={int(e)} L={int(l)}")
    return g, e, l


for a, b in [(0, 0), (0, 1), (1, 0), (1, 1)]:
    cmp1(a, b)

Una sola en 1 por fila. ¿Qué fila da G=1? ¿Cuál L=1?

N bits desde el MSB

def cmpn(a, b, n=4):
    for i in range(n - 1, -1, -1):
        ai, bi = (a >> i) & 1, (b >> i) & 1
        if ai != bi:
            r = "A>B" if ai else "A {r}")
            return r
    print(f"{a:04b} vs {b:04b}: A=B")
    return "A=B"


cmpn(9, 6)
cmpn(5, 9)
cmpn(7, 7)

06 · Analogía programador

Orden lexicográfico

  1. 1
    MSB primero = comparar strings.

    Primera diferencia decide: igual que ordenar texto char por char.

  2. 2
    Cascada = else-if.

    Si MSB empata, va el siguiente: cadena de else-if en silicio.

  3. 3
    Una sola en 1 = enum.

    Tres estados excluyentes: como un enum, nunca dos variantes a la vez.

07 · Taller

Laboratorio: árbitro 4 bits

Dos números 0–15: el laboratorio enciende G, E o L y dicta el veredicto.

TALLER 25

Árbitro 4 bits

9 vs 6 → A>B

A>B● 1
A=B○ 0
A<B○ 0
VeredictoA>B ✓

9 vs 6: A>B (bit 3 decide).

Preguntas para explorar

  1. Igualá A y B en 7. ¿Qué salida? ¿Las otras?
  2. Poné A=5, B=9. ¿Veredicto? ¿Qué bit decide?
  3. ¿Por qué el laboratorio dice qué bit decide? ¿Qué enseña?
Ver respuestas sugeridas
  1. Solo E=1: G y L en 0. Excluyentes siempre.
  2. A<B: bit 3 (0 vs 1) decide sin mirar abajo. MSB manda.
  3. Que la comparación termina en la primera diferencia: el resto es decorado.

08 · Comprensión

Confusiones frecuentes

«XNOR alcanza»

Para igualdad sí; para >/< no: magnitud necesita G y L (o restar y mirar). Igual ≠ comparar.

«Comparar es restar»

Restar funciona (signo + cero) pero gasta un sumador: el comparador dedicado es más barato y directo.

«Cascada desde el LSB»

Al revés que la suma: el carry viaja ↑, la decisión baja ↓. Cascada del 85: bajo→alto con MSBs arriba.

«7485 anda suelto»

Sus entradas de cascada piden valores (=1, >/<=0): flotando, el veredicto es lotería.

09 · Práctica guiada

Ejercicios de arbitraje

Ejercicio 1: termostato digital

T de 4 bits vs consigna 7 (0111): G prende calefactor. ¿Salida con T=5? ¿Con T=9? Verificá con cmpn().

Ver solución razonada

T=5: L=1 (5<7) → G=0… al revés: calefactor con L (T menor). T=5 → L=1 prende; T=9 → G=1 apaga. Comparar, no calentar de más.

Ejercicio 2: password 1010

Código en switches vs 1010 fijo, E abre cerradura. Diseñá con XNOR+AND (solo igualdad). ¿Puertas?

Ver solución

4 XNOR + 1 AND-4 (o 2 AND-2 en árbol): E=1 solo con 1010. Sin magnitud: más barato (T30 lo arma).

Ejercicio 3: montar 85

7485 con A/B en DIP-switch, cascada (==1, resto 0), 3 LED. Recorré: 9vs6, 5vs9, 7vs7. ¿Salidas?

Ver solución

G, L, E respectivamente, una sola por vez. Si E no prende nunca con iguales: revisar IA=B (=1, no flotante).

10 · Síntesis

Ideas para recordar

  • G = A·~B; E = A⊙B; L = ~A·B: una sola en 1.
  • N bits: MSB decide; resto solo si empata.
  • 7485: cascada =1/0/0; 8 bits con dos.
  • Igualdad barata (XNOR+AND); magnitud con 85.
  • Suma va ↑, comparación va ↓.

Arbitraje dominado. Ahora el bit que vigila: en el próximo tema, paridad.