Electrónica Digital · Tema 32

Cierre y puente al curso 6

Entraste midiendo voltajes y salís con una cerradura y una calculadora que funcionan. En este último tema no hay un concepto nuevo: hay un mapa de lo recorrido, el método que se repitió en cada tema, una lista de lo que ya sabés hacer, los errores que ya no te pasan y un examen para comprobarlo. Y una pregunta que este curso no puede responder, porque ninguno de sus circuitos recuerda nada: ¿cómo se hace un circuito con memoria?

≈ 60 minutos Sin materiales: solo el navegador Incluye examen final, un latch interactivo y Python

01 · Balance

Qué tenés ahora

Al empezar, un voltaje era una cantidad continua. Ahora es una decisión: por encima de un umbral vale 1 y por debajo vale 0, y con esa decisión se arma cualquier función que puedas escribir en una tabla. Recorriste 31 temas agrupados en cinco bloques y cerraste con dos proyectos que usan casi todo lo anterior.

Una escena típica. Dentro de un año, alguien te muestra una placa con ocho chips y te pregunta qué hace. Antes habrías visto un enjambre de patas. Ahora ves niveles lógicos, funciones, bloques que ya conocés (un multiplexor, un sumador, un decodificador) y las preguntas correctas: ¿cuál es la especificación?, ¿qué entradas quedaron al aire?, ¿hay desacople?, ¿qué pasa si la entrada no cumple el contrato?

Eso es lo que quedó del curso: no un catálogo de chips, sino un modo de pensar los circuitos que se puede aplicar a cualquiera.

  • ¿Qué hizo cada bloque del curso y con qué «firma» se lo recuerda?
  • ¿Cuál es el método que se repitió en cada diseño?
  • ¿Qué sabés hacer ahora que antes no?
  • ¿Qué errores clásicos ya reconocés y cómo se arreglan?
  • ¿Qué hace imposible que un circuito combinacional recuerde algo?
  • ¿Aprobás el examen final?

02 · El mapa

Los 31 temas en una tabla

Cinco bloques, qué resuelve cada uno y la firma que conviene recordar.
BloqueTemasQué aprendiste a hacerLa firma
Bits1 a 6Pasar de voltajes a decisiones; leer y escribir binario y hexadecimal; representar números, texto y códigos; describir una decisión con una tabla de verdad0xA5 = 165 (−91 con signo); niveles TTL y CMOS; Σm de una tabla
Puertas7 a 12Conocer NOT, buffer, tri-estado, AND, OR, NAND, NOR, XOR; conectar entradas reales con pull-ups y anti-rebote; leer un 74HCxxAND 0001 · OR 0111 · NAND 1110 · XOR 0110
Booleana13 a 17Manipular expresiones, aplicar De Morgan, simplificar con álgebra y Karnaugh, y seguir un método de diseñoDe Morgan, absorción, grupos de 1·2·4·8, método de seis pasos
Combinacionales18 a 29Multiplexores, demux, decodificadores, display de siete segmentos, codificadores, sumadores, comparadores, paridad, ALU; y las realidades eléctricas: glitches, consumo y buenas prácticas2n entradas por n selectores; sumador de 4 bits; P = α·N·C·V²·f
Proyectos30 y 31Integrar todo en dos máquinas con especificación, esquema, lista de materiales, pruebas y fallasE = S3·~S2·S1·~S0 · sumar 6 cuando la suma es ≥ 10
Hilo 1: la tabla de verdad
Aparece en el Tema 6 y no se va más. Es la especificación, la prueba exhaustiva y la forma de comparar dos circuitos distintos que deberían hacer lo mismo.
Hilo 2: lo ideal frente a lo real
Cada bloque empieza con la versión de papel y termina con su cara física: niveles y márgenes (Tema 3), rebotes (Tema 11), fan-out y desacople (Temas 12 y 29), retardos y glitches (Tema 28).
Hilo 3: el costo
Menos puertas, menos chips, menos corriente. Simplificar (Temas 15 y 16) y bajar la tensión (Tema 29) son la misma idea con herramientas distintas.
Hilo 4: verificar todo
Con pocas variables se puede probar cada caso. Las pruebas exhaustivas de los proyectos (16 de 16, 100 de 100) son el hábito más valioso que te llevás.

03 · El método

Cinco pasos, de la idea al circuito verificado

Cada diseño del curso siguió la misma receta. Se ve mejor aplicada de principio a fin a un ejemplo chico: una votación 2 de 3 (la salida vale 1 si al menos dos de las tres entradas valen 1; ya apareció en el Tema 15).

  1. 1
    Especificar.

    «Y vale 1 cuando al menos dos de A, B, C valen 1.» Sin ambigüedad: una frase que se puede convertir en tabla. Si hay casos que no pueden ocurrir, se anotan como «no importa».

  2. 2
    Tabla de verdad.

    Ocho filas. Y vale 1 en 011, 101, 110 y 111: los minterms 3, 5, 6 y 7 (Tema 6).

  3. 3
    Mínimo.

    En el mapa de Karnaugh (Tema 16) los cuatro unos forman tres grupos de dos: Y = AB + AC + BC. Es un caso donde la expresión canónica (cuatro productos de tres variables) se reduce a tres de dos.

  4. 4
    Chips.

    Con la forma NAND-NAND (Tema 9) se usa solo NAND: tres NAND de dos entradas para los productos y un NAND de tres para la suma. Son un 74HC00 (se usan 3 de 4) y un 74HC10 (se usa 1 de 3): dos chips.

  5. 5
    Verificar.

    Recorrer las ocho filas contra la especificación, en Python antes y en la mesa después. Si alguna falla, el error está en el paso anterior o en el cableado, y se sabe dónde buscar.

04 · Habilidades

Checklist de egreso

◉

Especificar

Pasar de un requisito en palabras a una tabla de verdad completa, con minterms y «no importa», decidiendo los casos raros antes de cablear.

✎

Simplificar

Reducir con álgebra, De Morgan y Karnaugh; elegir entre suma de productos y NAND-NAND; reconocer cuándo un multiplexor o un decodificador ahorran puertas.

◈

Montar

Leer pines, atar entradas, poner pull-downs y 100 nF, dimensionar resistencias de LED y segmentos, y armar por etapas.

▣

Verificar

Probar todas las filas, medir los nodos intermedios con carga, y escribir un gemelo en Python para comparar antes de soldar.

⌁

Depurar

Ir del síntoma a la causa probable: flotante, rebote, hundimiento de Vcc, glitch, fan-out, contención, temperatura.

⚖

Presupuestar

Estimar potencia, corriente y autonomía; elegir la tensión y la frecuencia; decidir si hace falta buffer, grado industrial o un modo dormido.

Si alguna de estas seis te suena a «más o menos», el examen final y los desafíos de abajo te dicen cuál repasar. No hace falta saber de memoria cada chip: hace falta saber qué buscar en la hoja de datos.

05 · Errores clásicos

Ya no te pasan (o los reconocés a tiempo)

Del síntoma a la causa y al remedio, con el tema donde se estudió.
SíntomaCausa probableRemedioTema
La salida cambia sola o con la mano cercaEntrada flotantePull-down o pull-up de 10 kΩ; sobrantes a GND o Vcc3, 8, 11, 29
Un pulsador cuenta varias vecesRebote del contactoRC más Schmitt (74HC14), latch SR o debounce por software11
Una señal «alta» no se detectaNiveles incompatibles entre familiasHCT, traductor de nivel, divisor; revisar VOH y VIH3, 7
Dos salidas parecen pelearse; el chip se calientaContenciónUn solo manejador activo; tri-estado alternado; drenador abierto7
Un contador cuenta un pulso de másGlitch en una señal combinacional usada como relojDiseño síncrono; término de consenso; código Gray28
Reinicios al accionar una cargaHundimiento de Vcc100 nF por chip, bulk cerca de la carga, masas en estrella29
Flancos redondeados a alta velocidadFan-out capacitivoBuffer; menos destinos; resistencia en serie7, 29
Un display no enciende o enciende al revésTipo de común equivocadoÁnodo común con 7447; cátodo común con 7448 o 451121
La suma decimal muestra letrasFalta la corrección BCDSumar 6 cuando la suma es mayor o igual que 1031
Resultado falso sin ningún avisoEntrada fuera del contratoDetección de operandos inválidos; fail-closed30, 31
Anda en el simulador y falla en la placaRetardos, ruido, temperatura, alimentaciónMedir con carga y osciloscopio; derating; checklist de cinco puntos28, 29

Si te llevás una sola cosa de esta tabla: la mayoría de las fallas «misteriosas» de un circuito digital que debería andar son eléctricas (alimentación, entradas sin definir, rebotes), no lógicas.

06 · El puente

El primer circuito con memoria

Todo lo que construiste es combinacional: cada salida depende solo de las entradas actuales. Es el equivalente a una función pura, sin estado. Alcanza para decidir, calcular y mostrar, pero no para contar, recordar un código o esperar un evento: eso necesita que la salida dependa también de lo que pasó antes.

La sorpresa es lo poco que hace falta para lograrlo. Si se conecta la salida de una puerta a la entrada de otra y la salida de esa a la entrada de la primera, se forma un lazo realimentado que puede mantener un valor sin que nadie lo sostenga. Con dos puertas NOR se arma un latch SR, la unidad de memoria más chica:

Latch SR hecho con dos NOR (Q = NOR(R, ~Q) y ~Q = NOR(S, Q)).
SRQQué hace
00el valor anteriorRetiene: esa es la memoria
101Set: guarda un 1
010Reset: guarda un 0
11— (Q y ~Q valen 0)Prohibida: no hay valor único y, al soltar las dos a la vez, puede oscilar

La fila de arriba contradice todo lo que veníamos haciendo: con las mismas entradas (S = R = 0) la salida puede valer 0 o 1, según la historia. La tabla de verdad ya no alcanza, porque falta una columna: el estado previo. Probalo:

PUENTE 32

Latch SR con dos NOR

Q = 0 · retiene

Dos compuertas NOR realimentadas La compuerta de arriba recibe R y la salida complementaria; la de abajo recibe S y la salida Q. Las salidas se cruzan hacia las entradas del otro NOR. CABLES EN VERDE LIMA = 1 · GRIS = 0
S / R0 / 0
Q0
~Q1
EstadoRetiene

Pulsá S para guardar un 1 y soltalo: Q se queda en 1 sin que nadie lo sostenga.

Qué probar

  1. 1
    Poné S = 1, luego volvelo a 0.

    Q pasa a 1 y se queda en 1 aunque S ya no esté. Con S = R = 0 el circuito recuerda.

  2. 2
    Poné R = 1 y luego volvelo a 0.

    Q pasa a 0 y se queda en 0. Mismas entradas (S = R = 0) que antes, otra salida: depende de la historia.

  3. 3
    Poné S = R = 1 y soltá las dos.

    Q y ~Q valen 0 a la vez (el latch pierde su propiedad de ser complementario). Al soltarlas, se observa un paso (1, 1) y luego (0, 0): el lazo oscila. Con «Avanzar un paso de compuerta» se ve la oscilación paso a paso.

  4. 4
    Salí de la oscilación con S o R.

    Poner un solo 1 (S o R) fuerza un estado válido. En el hardware real, la oscilación depende de cuál puerta es un poco más rápida: es impredecible. Por eso se prohíbe esa combinación.

Lo que cambia con la memoria
Hay estado. Una tabla de verdad se reemplaza por una tabla de estados y transiciones. El tiempo importa de otra manera: no solo cuánto tarda una salida en asentarse (Tema 28), sino cuándo se mira.
El reloj
Los latches sin control son difíciles de domar (la combinación prohibida, las carreras). La solución es un reloj que decide cuándo se escribe: así nacen el latch con enable, el flip-flop y todo el diseño síncrono que se anticipó en el Tema 28.
Lo que viene
Flip-flops D, T y JK; registros y registros de desplazamiento; contadores; máquinas de estados; y memorias RAM y ROM. Con eso, la cerradura recuerda un código ingresado en el tiempo, la calculadora acumula resultados y aparece el camino hacia un procesador.
Ya lo usaste sin saberlo
Un latch SR hecho con dos puertas era una de las tres soluciones del anti-rebote (Tema 11): el pulsador de dos posiciones «guarda» el último contacto y los rebotes no lo cambian.

07 · Examen final

Laboratorio: diez preguntas, una por idea

El examen tiene diez preguntas de opción múltiple, una por cada idea central del curso, y se corrige solo: al elegir una respuesta se muestra si es correcta, una explicación breve y el tema donde se estudió. Al final se calcula la nota y se listan los temas a repasar. Se puede reiniciar y repetir todas las veces que quieras; lo que importa es que, al terminar, puedas explicar cada respuesta.

EXAMEN 32

Examen final

0 de 10 respondidas

Respondidas0 / 10
Correctas0
Nota—
ResultadoEn curso

Elegí una respuesta en cada pregunta.

08 · El curso en código

Un script con las firmas, el método, un autoexamen y el latch

Los bloques reúnen el curso en cuatro scripts: uno con la firma de cada bloque, el método aplicado de punta a punta a la votación 2 de 3, un autoexamen con assert y la simulación del latch SR con dos NOR, incluida la oscilación de la combinación prohibida.

Python en tu navegador. Los bloques son editables: rompé un assert a propósito para ver cómo falla. La primera vez tarda unos segundos en cargar.

Paso 1: las seis firmas del curso

from itertools import product

firmas = {}
firmas["AND"] = [a & b for a, b in product((0, 1), repeat=2)]
firmas["OR"] = [a | b for a, b in product((0, 1), repeat=2)]
firmas["NAND"] = [1 - (a & b) for a, b in product((0, 1), repeat=2)]
firmas["XOR"] = [a ^ b for a, b in product((0, 1), repeat=2)]

demorgan = all((1 - (a & b)) == ((1 - a) | (1 - b)) and (1 - (a | b)) == ((1 - a) & (1 - b))
               for a, b in product((0, 1), repeat=2))
mayoria = [n for n in range(8) if bin(n).count("1") >= 2]
z = (7 + 5) & 15
k = 1 if (7 + 5) >= 10 else 0
bcd = z + 6 * k

print("Bits       0xA5 =", 0xA5, "| en complemento a dos:", 0xA5 - 256)
print("Puertas   ", "  ".join(f"{n} {''.join(map(str, v))}" for n, v in firmas.items()))
print("Booleana   De Morgan en las 4 combinaciones:", demorgan)
print("Combin.    mayoria 2/3 (minterms):", mayoria, "| 7+5: Z =", f"{z:04b}", "-> +6 ->", f"{bcd & 15:04b}", "(decenas", k, ")")
print("Consumo    5 V -> 3,3 V gasta", round((5 / 3.3) ** 2, 2), "veces menos")
print("Proyectos  cerradura: 1 de 16 abre | calculadora: 100 de 100 validos correctos")

Cada bloque deja su número: 165 y −91; las firmas 0001, 0111, 1110 y 0110; De Morgan cierto en las cuatro combinaciones; los minterms 3, 5, 6 y 7 de la mayoría; 7 + 5 → 1100 → 0010 con decena 1; el ahorro de 2,3 veces al bajar de 5 a 3,3 V y los resultados de los dos proyectos.

Paso 2: el método, de punta a punta

from itertools import product

NAND = lambda *x: 1 - int(all(x))

spec = lambda a, b, c: int(a + b + c >= 2)                 # la especificacion: 2 de 3
tabla = {(a, b, c): spec(a, b, c) for a, b, c in product((0, 1), repeat=3)}
minterms = [a * 4 + b * 2 + c for (a, b, c), v in tabla.items() if v]
print("pasos 1 y 2 (spec y tabla): minterms de la salida =", minterms)

sop = lambda a, b, c: (a & b) | (a & c) | (b & c)           # paso 3: Karnaugh -> 3 grupos de 2
nand_nand = lambda a, b, c: NAND(NAND(a, b), NAND(a, c), NAND(b, c))   # paso 4: solo NAND


def verificar(f):
    return sum(1 for e, v in tabla.items() if f(*e) == v)


print("paso 3 (minimo): AB + AC + BC          ->", verificar(sop), "de 8 filas")
print("paso 4 (chips):  NAND-NAND             ->", verificar(nand_nand), "de 8 filas")
print()
print("costo: 3 NAND-2 + 1 NAND-3 = 4 puertas -> 74HC00 (usamos 3 de 4) + 74HC10 (usamos 1 de 3) = 2 chips")
print("paso 5 (verificacion total): las 8 filas coinciden con la especificacion:", verificar(nand_nand) == 8)

La especificación genera los minterms 3, 5, 6 y 7; tanto la suma de productos AB + AC + BC como su versión NAND-NAND coinciden con la especificación en las ocho filas. El costo es de cuatro puertas en dos chips (74HC00 y 74HC10). La verificación total es el último paso, no un adorno: si falla, el error está antes.

Paso 3: autoexamen con asserts

assert 0xA5 == 165 and 0xA5 - 256 == -91
assert [a ^ b for a in (0, 1) for b in (0, 1)] == [0, 1, 1, 0]
assert [1 - (a & b) for a in (0, 1) for b in (0, 1)] == [1, 1, 1, 0]
assert (5 + 3) == 0b1000
assert 0x25 == 37
assert ["ROM", "RAM", "UART", "GPIO"][0b10] == "UART"
assert 9600 // 10 == 960                                  # 8N1: 10 bits por byte
assert [n for n in range(8) if bin(n).count("1") >= 2] == [3, 5, 6, 7]
assert round((5 / 3.3) ** 2, 1) == 2.3
assert (0b1010 ^ 0b1010) == 0 and (0b1010 ^ 0b1011) != 0
print("APROBADO: nos vemos en el curso 6")

Las diez afirmaciones se cumplen y el script imprime «APROBADO». Cambiá cualquiera (por ejemplo, 165 por 166) y Python lanza un AssertionError con la línea que falló: un autoexamen que no se puede engañar.

Paso 4: el puente, un latch SR con dos NOR

NOR = lambda a, b: 1 - (a | b)


def paso(s, r, q, qn):
    return NOR(r, qn), NOR(s, q)                          # los dos NOR se actualizan a la vez


q, qn = 0, 1
secuencia = [("espera", 0, 0, 2), ("SET", 1, 0, 2), ("suelto", 0, 0, 2), ("RESET", 0, 1, 2),
             ("suelto", 0, 0, 2), ("S=R=1", 1, 1, 2), ("suelto 1", 0, 0, 1), ("suelto 2", 0, 0, 1),
             ("suelto 3", 0, 0, 1), ("suelto 4", 0, 0, 1)]
print("paso       S R |  Q ~Q")
for nombre, s, r, n in secuencia:
    for _ in range(n):                                    # cuantos pasos de compuerta se dejan correr
        q, qn = paso(s, r, q, qn)
    print(f"{nombre:9s}  {s} {r} |  {q}  {qn}")
print()
print("con S = R = 0 la salida vale 1 o 0 segun lo que paso antes: eso ya no es combinacional (hay memoria)")
print("S = R = 1 esta prohibida: al soltar las dos a la vez el lazo oscila (0,0) -> (1,1) -> (0,0) ...")

Tras SET, Q queda en 1 con S = R = 0; tras RESET, queda en 0 con las mismas entradas: eso es memoria. Con S = R = 1 ambas salidas valen 0 y, al soltar las dos a la vez, el modelo oscila (1, 1), (0, 0), (1, 1)… para siempre. En un chip real el lazo termina cayendo en uno de los dos estados de forma impredecible.

09 · Analogía de programador

Funciones puras y la caja de herramientas

El curso entero, en términos de lo que ya sabés de software.
En softwareEn el curso
Una función pura: mismo input, mismo output, sin estadoUn circuito combinacional: la salida depende solo de las entradas de ahora
Estado, efectos secundarios, variables que persistenUn circuito secuencial: memoria, reloj y flip-flops (curso 6)
Refactorizar condicionales anidadosSimplificar con álgebra, De Morgan y Karnaugh
Un test exhaustivo de un dominio chicoProbar las 8, 16 o 100 combinaciones de la tabla
Una especificación escrita antes del códigoLa tabla de verdad antes de cablear
Bibliotecas: no reescribir lo que ya existeBloques MSI: multiplexores, sumadores, comparadores
Validar la entrada en el borde del sistemaDetectar operandos inválidos y quedar cerrado ante fallas
Un bug de concurrencia que depende del timingUn glitch o un hazard: caminos con distinto retardo
Un presupuesto de CPU y memoriaUn presupuesto de miliamperios y milivatios
Un entorno de producción distinto del de desarrolloLa placa con carga, calor y cables largos frente a la simulación
La lectura de la documentación oficialLa hoja de datos del chip
  1. 1
    Cada tema es una herramienta, no un dato.

    Una puerta, un teorema o un bloque MSI no se memorizan: se combinan. Lo que se recuerda es cuándo usar cada uno.

  2. 2
    Programar ya te había enseñado a simplificar.

    Quitar un if redundante o factorizar una condición es la misma habilidad que agrupar unos en un mapa. El silicio solo le puso precio a cada puerta.

  3. 3
    Lo combinacional no recuerda.

    Es la frontera natural del curso. Todo lo que hace falta para pasar de una función pura a un programa con estado es una forma de recordar: eso es lo que sigue.

La analogía tiene un límite honesto: en software un error de lógica se corrige y se vuelve a ejecutar. En hardware, los errores de lógica, los eléctricos y los de tiempo se confunden en el mismo síntoma, y la depuración se parece más a la de un sistema distribuido: hay que medir en muchos puntos.

10 · Comprensión

Confusiones frecuentes al terminar

«Ya sé electrónica digital»

Sabés la mitad: la parte que no recuerda. Faltan los circuitos con memoria y reloj, que son los que hacen contadores, registros y procesadores. Este curso es el cimiento, no el edificio.

«Lo combinacional está obsoleto con los microcontroladores»

Un micro está hecho de bloques combinacionales: la ALU, los decodificadores y los multiplexores internos son los de este curso. Y en muchas aplicaciones una compuerta de centavos resuelve lo que un micro resolvería con más costo y más consumo.

«Hay que memorizar los números de los chips»

Lo importante es saber qué familia de bloque existe (sumador, comparador, decodificador) y buscar el pinout y los límites en la hoja de datos. Los números cambian; los bloques, no.

«Un latch es combinacional porque está hecho de puertas»

Está hecho de puertas, pero tiene realimentación: la salida vuelve a la entrada y el estado anterior importa. Esa realimentación es la diferencia entre decidir y recordar.

«El mínimo siempre es el mejor circuito»

Es el más barato, pero puede dejar un hazard sin cubrir (Tema 28) o ser inviable con los chips disponibles. Simplificar es una herramienta, no un fin.

«Si el simulador dice que anda, la placa anda»

El simulador ideal no tiene retardos, ruido, rebotes ni caídas de tensión. La placa sí. Por eso el checklist del Tema 29 y las pruebas por etapas del Tema 30.

«La nota del examen dice lo que sé»

Dice qué recordás. Lo que sabés se prueba armando algo y viendo que funciona con todas las combinaciones, incluso las que no deberían ocurrir.

11 · Práctica final

Desafíos de egreso

Desafío 1: diseño exprés

Votación 2 de 3 con NAND solamente. Escribí la ecuación, la forma NAND-NAND, la cantidad de puertas y los chips. ¿Qué pasa si solo tenés 74HC00?

Ver solución razonada

Y = AB + AC + BC → NAND( NAND(A,B), NAND(A,C), NAND(B,C) ): 3 NAND de 2 entradas y 1 NAND de 3, o sea 4 puertas. Con 74HC00 (cuatro NAND-2) y 74HC10 (tres NAND-3) son 2 chips. Con solo 74HC00 hay que armar el NAND de 3 con NAND-2: t = NAND(x,y), u = NAND(t,t) (que vale x·y) y NAND(u,z), o sea 3 NAND-2. El total sube a 6 NAND-2, que caben en 2 chips 74HC00 (8 puertas): misma cantidad de chips, más puertas y más retardo. Se verifica con el Paso 2.

Desafío 2: debug exprés

Un display con 7448 o 4511 muestra «8» fijo, sea cual sea el código de entrada. Tres causas, en orden, y cómo descartarlas.

Ver solución razonada

1) ~LT (prueba de lámpara) en bajo o flotante: fuerza todos los segmentos encendidos. Se descarta llevándolo a Vcc (y recordando que un pin de control nunca se deja al aire). 2) Entradas fijas en 1000: un interruptor trabado o en corto; se mide cada entrada DCBA. 3) Chip dañado, que es lo último que se sospecha. Se mide ~LT primero: es la causa clásica.

Desafío 3: cazar al culpable

Un contador manual avanza de a 5 por cada pulsación. ¿Cuál es la causa y cuáles son tres remedios, en orden de preferencia?

Ver solución razonada

Rebote del contacto (Tema 11): el pulsador abre y cierra decenas de veces en unos milisegundos y cada flanco cuenta. Remedios: 1) RC más Schmitt (74HC14) para alisar el flanco; 2) un latch SR con un pulsador de dos posiciones (que memoriza el último contacto); 3) debounce por software si hay un micro. Es el error más clásico de la electrónica digital.

Desafío 4: auditar una placa

Una placa se reinicia cada vez que se enciende un relé, y un integrado está tibio sin hacer nada. Aplicá el checklist: ¿qué dos sospechosos y qué se mide?

Ver solución razonada

Reinicio al conmutar la carga: hundimiento de Vcc (desacople de 100 nF por chip, bulk cerca de la carga, masas en estrella); se mide la alimentación del chip con osciloscopio durante la conmutación. Integrado tibio sin actividad: entrada flotante o contención; se miden las entradas sobrantes y se busca una salida peleando contra otra. Los dos son del Tema 29.

Desafío 5: una cerradura de 8 bits

Ampliás la cerradura a 8 bits. ¿Cuántas combinaciones tiene y qué chip podrías usar para comparar? ¿Es más segura?

Ver solución razonada

28 = 256 combinaciones. Se puede comparar con ocho XOR y un NOR de 8 entradas, con dos comparadores 74HC85 en cascada (Tema 25) o con un comparador de identidad de 8 bits como el 74HC688. Es más segura que la de 4 bits (de 16 a 256 intentos), pero a un intento por segundo se prueba en menos de 5 minutos: sigue siendo un juguete. La seguridad real exige más bits, límite de intentos y no depender de interruptores a la vista.

Desafío 6: lo que le falta al contador

Querés un contador que avance cada vez que apretás un botón. Dibujalo con lo que sabés: ¿qué parte podés hacer con circuitos combinacionales y cuál no?

Ver solución razonada

El incremento (sumar 1 a un número de 4 bits) es combinacional: un sumador de 4 bits con B = 0001. El valor actual hay que guardarlo en algún lado: cuatro bits de memoria, realimentados al sumador. Sin memoria, el sumador calcula n + 1 sobre una n que cambia con el resultado y entra en una carrera sin fin. Hace falta un elemento que guarde el valor y un reloj (el botón con anti-rebote) que diga cuándo actualizarlo: un registro de flip-flops, el primer tema del curso 6.

12 · Síntesis y ruta

Fin del curso 5

  • Especificar → tabla → mínimo → chips → verificación total: el método de todo el curso, con un sexto paso implícito, el de preguntarse qué pasa fuera del contrato.
  • Cinco bloques: bits, puertas, booleana, combinacionales y proyectos. Firmas: 165 · 0110 · 1110 · 2n · P = α·N·C·V²·f.
  • Verificar cada fila, atar cada entrada, medir con carga y con osciloscopio.
  • La mayoría de las fallas misteriosas son eléctricas (alimentación, flotantes, rebotes), no lógicas.
  • Dos máquinas completas: la cerradura (1 de 16 abre, cerrada ante fallas) y la calculadora (100 de 100 correctas, con aviso de operandos inválidos).
  • Lo combinacional no recuerda: la salida depende solo de las entradas de ahora. Con realimentación aparece la memoria (el latch SR) y con el reloj, el diseño síncrono.

¿Listo para el curso 6?

El curso 6, Secuenciales y Memoria, agrega el reloj, el flip-flop, los registros, los contadores, las máquinas de estados y la memoria. Podés empezarlo si sos capaz de hacer esto sin mirar:

  • Pasar una especificación a tabla de verdad y de ahí a una expresión mínima.
  • Aplicar De Morgan y pasar de suma de productos a NAND-NAND.
  • Armar y verificar un circuito de seis a diez puertas, probando todas las filas.
  • Reconocer en el osciloscopio o en el comportamiento un rebote, un glitch, un flotante y un hundimiento de Vcc.
  • Explicar con tus palabras por qué un circuito combinacional no puede recordar.
  • Describir qué hace un latch SR y por qué S = R = 1 está prohibida.
◉

Repasar

Los Temas 6, 10, 14 y 23 (tablas, XOR, De Morgan y suma) sostienen la mayor parte del curso 6. Si dudás de alguno, empezá por ahí.

✎

Armar

Pasá la cerradura o la calculadora a una placa perforada: soldar, atornillar, probar por etapas y regalar una a alguien. Un circuito terminado enseña más que diez simulados.

◈

Medir

Un analizador lógico USB cambia todo: ver ocho bits a la vez, con su tiempo, vale más que otro chip en el cajón. Es la herramienta que más se usa en el curso 6.

Curso completo: 32 de 32 temas. Gracias por haber llegado contando en binario; nos vemos en el curso 6.