01 · Punto de partida
Una puerta no recuerda; un lazo de puertas, sí
En el curso de Electrónica Digital, cada puerta calculaba su salida a partir de las entradas del momento, y nunca había un cable que volviera hacia atrás. Esa regla, la ausencia de ciclos, es justamente lo que hace combinacional a un circuito. Si la rompemos, si hacemos que la salida de una puerta influya en su propia entrada, aparece algo nuevo: el valor de hoy depende del valor de ayer porque el circuito se alimenta a sí mismo.
La memoria, entonces, no es una pieza especial. Es una conexión: la realimentación. Todos los flip-flops, registros y celdas de SRAM de los próximos temas están hechos de puertas con salidas que vuelven a entradas. Entender por qué algunos lazos guardan un bit y otros oscilan o quedan indefinidos es entender la base de todo el curso.
Vamos a empezar con el circuito más pequeño: puros inversores. Después le agregaremos entradas para poder escribir en él y llegaremos a las puertas del tema 5.
02 · Anillos
Conectar la salida de un inversor a su entrada
Un inversor invierte su entrada tras un retardo de propagación tpd. ¿Qué ocurre si cerramos un anillo con n inversores en serie?
| Inversores | Inversiones en el lazo | Comportamiento |
|---|---|---|
| 1 | Impar | Contradicción lógica: la salida debería ser igual a su inversa. Oscila, o queda en un nivel intermedio |
| 2 | Par | Consistente en dos configuraciones: biestable |
| 3 | Impar | Oscila: oscilador en anillo |
| 4 | Par | Biestable de nuevo (con dos estados más) |
| 5, 7, … | Impar | Oscila, cada vez más lento |
La regla es de paridad. Si el número de inversiones a lo largo del anillo es impar, el valor tiene que ser igual a su opuesto, lo cual es imposible: la señal da vueltas, invirtiéndose en cada vuelta. Si es par, el valor es consistente consigo mismo en dos configuraciones, y cada una es estable.
El oscilador en anillo
Con n inversores impares, la señal necesita recorrer el anillo dos veces para completar un ciclo (una para subir, otra para bajar). El período es:
Con tres inversores de 10 ns, T = 60 ns y f ≈ 16,7 MHz. Con cinco inversores de 8 ns, T = 80 ns y f = 12,5 MHz. No hay reloj, ni cristal, ni condensador: sólo el retardo de las puertas. Por eso se lo usa para medir retardos o temperatura de un chip, aunque la frecuencia exacta varía con la tensión, la temperatura y el lote, y resulta mala como referencia de tiempo precisa.
03 · La idea
Por qué dos inversores guardan un bit
Dos inversores en anillo forman un lazo con dos nodos, A y B, donde B = NOT A y A = NOT B. Hay exactamente dos configuraciones coherentes:
| Nodo A | Nodo B = NOT A | ¿Coherente? |
|---|---|---|
| 0 | 1 | Sí: A = NOT B = NOT 1 = 0 |
| 1 | 0 | Sí: A = NOT B = NOT 0 = 1 |
| 0 | 0 | No: A debería valer NOT 0 = 1 |
| 1 | 1 | No: A debería valer NOT 1 = 0 |
Cada configuración coherente se refuerza a sí misma: el nodo A en 0 mantiene a B en 1, y B en 1 mantiene a A en 0. Mientras haya energía, el lazo se queda donde está. Esa es la definición de un biestable: un circuito con dos estados estables que conserva el último sin necesidad de entradas.
La estabilidad no es solo lógica
Que una configuración sea «coherente» no basta: tiene que ser estable frente a perturbaciones pequeñas. Una forma de visualizarlo es una pelota en un terreno con dos valles y una loma en el medio. Cada valle es un estado estable: si el ruido empuja un poco la pelota, vuelve al fondo. La loma es un equilibrio inestable: la pelota puede quedarse allí un instante, pero cualquier perturbación la manda a uno de los valles.
En el circuito, el papel del terreno lo cumple la ganancia de los inversores. Cerca del punto medio (alrededor de la mitad de la tensión de alimentación) cada inversor amplifica un poco y el lazo, con ganancia total mayor que 1, empuja la señal hacia un extremo. En los extremos, las salidas se saturan en 0 o en Vcc y quedan firmes. Por eso la lógica digital regenera las señales: cualquier valor cercano a un nivel válido se corrige hacia él.
El punto medio es un tercer equilibrio, inestable: si el lazo cae allí (por ejemplo, tras un pulso mal temporizado), puede tardar un tiempo impredecible en decidirse hacia un lado. Es el fenómeno de metastabilidad, que retomaremos en el tema de tiempos reales.
04 · El problema
Un lazo perfecto, pero sin entradas
El lazo de dos inversores conserva un bit, pero no tenemos forma de elegir cuál. No tiene entradas: arranca en una de las dos configuraciones y se queda para siempre. Para que sea útil como memoria hay que poder forzar el valor y después soltarlo.
La solución es reemplazar cada inversor por una puerta de dos entradas, una de las cuales es el camino de realimentación y la otra una entrada externa. Si usamos puertas NOR, queda:
Cuando la entrada externa vale 0, una NOR se comporta como un inversor de la otra entrada, así que con S = R = 0 recuperamos el lazo de dos inversores: retiene. Con una entrada externa en 1, la NOR correspondiente queda forzada a 0, sin importar el lazo, y esa orden se propaga al otro lado. Así se «escribe».
| S | R | Qué hace el lazo | Resultado |
|---|---|---|---|
| 0 | 0 | Dos inversores en anillo | Retiene el valor anterior |
| 1 | 0 | La NOR de ~Q queda forzada a 0 | Q pasa a 1: set |
| 0 | 1 | La NOR de Q queda forzada a 0 | Q pasa a 0: reset |
| 1 | 1 | Las dos NOR forzadas a 0 | Q y ~Q valen 0: sin complementariedad |
La memoria existe solo en la primera fila. En las otras tres, el circuito está siendo ordenado desde afuera. Esa es una propiedad central de los biestables: dos entradas distintas, una que pone y otra que saca, y una combinación en reposo donde nada cambia.
Además, la cuarta fila es especial. Con S = R = 1 las dos salidas valen 0 y el lazo deja de tener dos salidas complementarias. Al soltar ambas entradas a la vez, el resultado depende de una carrera entre puertas, como veremos en la sección 6.
05 · Una herramienta de análisis
Puntos fijos de un lazo
¿Cómo sabemos en qué estados puede «quedarse» un lazo para unas entradas dadas? Se busca un punto fijo: un par (Q, ~Q) que, al aplicarle las ecuaciones de las puertas, se reproduce a sí mismo. Es un estado estable en el sentido lógico.
Se puede hacer una tabla con las cuatro combinaciones de (Q, ~Q) y mirar cuál se conserva. Para las NOR del lazo:
| (Q, ~Q) | S = 0, R = 0 | S = 1, R = 0 | S = 0, R = 1 | S = 1, R = 1 |
|---|---|---|---|---|
| (0, 0) | (1, 1) | (1, 0) | (0, 1) | (0, 0) ✓ |
| (0, 1) | (0, 1) ✓ | (0, 0) | (0, 1) ✓ | (0, 0) |
| (1, 0) | (1, 0) ✓ | (1, 0) ✓ | (0, 0) | (0, 0) |
| (1, 1) | (0, 0) | (0, 0) | (0, 0) | (0, 0) |
Los puntos fijos (marcados con ✓) cuentan una historia clara:
- S = R = 0: dos puntos fijos, (0, 1) y (1, 0). Hay memoria de un bit: el circuito se queda en el que estaba. Los estados (0, 0) y (1, 1) no son fijos: se alternan entre sí.
- S = 1, R = 0: un único punto fijo, (1, 0). Toda condición inicial termina allí: se escribe un 1.
- S = 0, R = 1: un único punto fijo, (0, 1): se escribe un 0.
- S = R = 1: un único punto fijo, (0, 0), que no es un par complementario.
Una variante con compuertas NAND tiene la estructura espejo: sus entradas son activas en bajo (se activan con 0). Con S̄ = R̄ = 1 retiene, y la combinación prohibida es S̄ = R̄ = 0, donde ambas salidas valen 1. Es el contenido del tema 5.
06 · Riesgos reales
Arranque, carreras y volatilidad
¿En qué estado arranca?
Al conectar la alimentación, un lazo biestable cae en cualquiera de sus estados, según pequeñas asimetrías entre transistores, el ruido y la forma en que sube la tensión. Un diseñador no puede asumir que un biestable arranca en 0. Si el circuito necesita un estado inicial conocido, debe incluir una forma de forzarlo (un reset), idea que ya aparecía como «arranque» en el tema 1 y que desarrollaremos en el tema de preset y clear.
Una carrera entre dos puertas
Con S = R = 0, los estados (0, 0) y (1, 1) no son fijos, pero tampoco son imposibles: ocurren, por ejemplo, al soltar S = R = 1 a la vez. En un modelo ideal, con las dos puertas respondiendo en el mismo instante, el lazo alterna para siempre (0, 0) → (1, 1) → (0, 0) →…
En un chip real, las dos puertas nunca son idénticas. Una es un poco más rápida, y esa «gana la carrera»:
| Modelo | Evolución desde (0, 0) | Resultado final |
|---|---|---|
| Simultáneo (ideal) | (0, 0) → (1, 1) → (0, 0) → … | Oscila |
| Responde antes la NOR de Q | (0, 0) → (1, 0) | Se asienta con Q = 1 |
| Responde antes la NOR de ~Q | (0, 0) → (0, 1) | Se asienta con Q = 0 |
Resultado: el estado final es impredecible, porque depende de diferencias de fabricación, temperatura y ruido. Por eso se prohíbe esa combinación en los latches SR. Y es un adelanto de la metastabilidad: una situación donde el circuito tarda un tiempo variable en decidir.
Memoria mientras haya energía
El lazo mantiene su estado porque cada puerta lo refresca continuamente con la energía de la alimentación. Si se corta la tensión, el estado se pierde. Esta es la volatilidad de las memorias estáticas: guardan mientras el circuito está alimentado. Una celda de SRAM (tema 27) es precisamente un lazo de dos inversores con dos transistores adicionales para acceder a él. Las memorias que conservan sin alimentación (EEPROM, Flash) usan otros principios físicos que veremos en el último bloque.
07 · Contexto más amplio
Realimentación positiva y negativa
En electrónica, la realimentación se clasifica por su efecto sobre una perturbación:
Negativa
La salida se resta de la entrada: si algo se aleja del valor deseado, el sistema lo corrige. Estabiliza. Ejemplos: un termostato, un regulador de tensión, un amplificador operacional con ganancia definida, el control de crucero.
Positiva
La salida se suma a la entrada: si algo se aleja, se aleja más. Refuerza el cambio y «se engancha» en un extremo. Ejemplos: el lazo de dos inversores, un comparador con histéresis (disparador Schmitt), el chillido de un micrófono cerca del parlante.
La memoria digital es realimentación positiva con saturación: el lazo refuerza el valor que ya tiene y la saturación impide que crezca sin límite. El disparador Schmitt del curso de Electrónica Digital usa el mismo principio: una pequeña realimentación positiva hace que los umbrales de subida y bajada sean distintos, y el circuito «recuerda» de qué lado venía. Una dosis de memoria es lo que lo vuelve inmune al ruido.
08 · Analogía con programación
Buscar puntos fijos por fuerza bruta
Los puntos fijos son un concepto conocido en programación: un valor x tal que f(x) == x. Aplicado al lazo de dos NOR, la función f toma un par (Q, ~Q) y devuelve el par siguiente. Este código reproduce la tabla de la sección 5:
Python en tu navegador. Los bloques son editables: cambiá los valores y presioná «Ejecutar Python». La primera vez tarda unos segundos en cargar.
def nor(a, b):
return 0 if (a or b) else 1
def paso(estado, entradas):
"""Un paso de compuerta: las dos NOR responden a la vez."""
q, qn = estado
s, r = entradas
return nor(r, qn), nor(s, q)
def puntos_fijos(s, r):
return [(q, qn) for q in (0, 1) for qn in (0, 1)
if paso((q, qn), (s, r)) == (q, qn)]
for s, r in [(0, 0), (1, 0), (0, 1), (1, 1)]:
print(f"S={s} R={r}:", puntos_fijos(s, r))
# S=0 R=0: [(0, 1), (1, 0)] dos puntos fijos: memoria
# S=1 R=0: [(1, 0)] un punto fijo: set
# S=0 R=1: [(0, 1)] un punto fijo: reset
# S=1 R=1: [(0, 0)] prohibida
estado = (0, 0) # partimos de la carrera
traza = ["".join(map(str, estado))]
for _ in range(5):
estado = paso(estado, (0, 0))
traza.append("".join(map(str, estado)))
print(*traza) # 00 11 00 11 00 11 oscila
Las cuatro primeras líneas coinciden con la tabla de la sección 5, y la traza de la carrera alterna 00 y 11 sin asentarse. Cambiá el estado inicial a (0, 1) o (1, 0): con S = R = 0 el lazo no se mueve nunca.
Dos observaciones. La primera: el resultado de puntos_fijos(0, 0) tiene dos elementos, y eso es lo que significa «guardar un bit». La segunda: en el programa la función se evalúa de forma secuencial y determinista, pero en el circuito el lazo corre continuamente y a la vez. Cuando dos puertas compiten, el resultado depende de la física, no del orden de las líneas.
También es una buena ocasión para recordar una regla de código: una función sin estado no puede recordar nada. Para que paso recuerde algo hay que guardar su resultado y alimentarla con él, es decir, un ciclo, que es exactamente lo que hace el cable de realimentación.
09 · Exploración interactiva
Observar un lazo asentarse, oscilar o decidir
El laboratorio simula las dos NOR realimentadas. Los cables en verde valen 1. Cada pulsación de «Avanzar un paso» actualiza las compuertas según el modo elegido; «Asentar» avanza hasta un máximo de 6 pasos o hasta que el lazo deje de cambiar. Los botones de estado inicial reproducen lo que podría ocurrir en un arranque.
Latch de dos NOR realimentadas
Con S = R = 0, el lazo retiene (Q, ~Q) = (1, 0). Probá poner S o R en 1 y avanzar pasos.
| Paso | S | R | (Q, ~Q) antes | (Q, ~Q) después |
|---|---|---|---|---|
| Sin pasos registrados. | ||||
Recorrido guiado
- Con S = R = 0 y el lazo en (1, 0), avanzá un paso: no cambia. Es un punto fijo, y el lazo retiene.
- Activá R y presioná «Asentar». El lazo pasa a (0, 1) en dos pasos: Q se borró. Desactivá R y avanzá: sigue en (0, 1). El valor quedó guardado cuando R desapareció.
- Activá S y asentá: Q = 1. Soltá S: sigue en 1. Escribiste y recordaste.
- Activá S y R juntas y asentá. El lazo llega a (0, 0): Q y ~Q valen 0. La tabla de puntos fijos lo anticipaba: es el único punto fijo de S = R = 1.
- Con el modo simultáneo, desactivá S y R y presioná «Asentar». El lazo oscila entre (1, 1) y (0, 0) y no se asienta: dado que las dos puertas son idénticas, nunca se desempata.
- Repetí desde (0, 0) pasando al modo «responde antes la NOR de Q»: el lazo se asienta con Q = 1. Con la otra opción, con Q = 0. Es la carrera: el ganador depende de cuál compuerta responde antes.
- Forzá cada uno de los cuatro estados iniciales con S = R = 0 y asentá en modo simultáneo. Desde (0, 1) y (1, 0) se queda; desde (0, 0) y (1, 1) oscila. Recordá que un arranque real puede caer en cualquiera.
Desafío: una secuencia que guarde un 1 y lo olvide sin tocar el reloj
No hay reloj en este circuito: es un latch asíncrono. Con la secuencia S = 1 (asentar), S = 0 (retiene Q = 1), R = 1 (asentar, Q = 0), R = 0 (retiene Q = 0) escribís y borrás en cualquier momento, sin esperar flancos. En los próximos temas veremos cómo agregar un reloj para decidir cuándo se permite escribir.
10 · Método de trabajo
Cómo analizar un circuito realimentado
- Dibujá las ecuaciones de cada puerta con su salida a la izquierda. Si una salida aparece en la entrada de otra, hay un lazo.
- Contá las inversiones del lazo. Un número impar sin ninguna otra cosa sugiere oscilación; un número par sugiere un biestable.
- Enumerá todos los pares de valores de las salidas del lazo y calculá, para cada combinación de entradas, adónde va cada uno (como en la tabla de la sección 5).
- Marcá los puntos fijos. Dos o más para una combinación de entradas significa memoria; uno solo, que la salida está determinada.
- Estudiá los pares que no son fijos: ¿convergen a un punto fijo o alternan? Los que alternan indican combinaciones peligrosas.
- Identificá las combinaciones de entradas de «retención», «escritura» y «prohibida». Documentalas.
- Pensá en las transiciones entre combinaciones: qué ocurre al pasar de una a otra, sobre todo de la prohibida a la de retención.
En la mesa, no hay manera de ver directamente un punto fijo, pero sí su efecto: con un osciloscopio comprobá que el lazo mantiene su valor al soltar la entrada. Una salida que parpadea o que a veces cae al valor contrario sugiere una carrera, ruido en alguna entrada o una alimentación inestable.
11 · Comprensión
Confusiones frecuentes
«Toda realimentación crea memoria»
Solo si el lazo tiene dos o más puntos fijos estables. Un lazo con un número impar de inversiones oscila, y uno que compensa la perturbación (realimentación negativa) tiene un único punto de equilibrio y no conserva nada.
«Q y ~Q siempre son opuestos»
Lo son en los estados de retención y escritura, pero no cuando se aplican las dos entradas activas: en el latch de NOR, S = R = 1 deja ambas salidas en 0. Por eso ~Q es solo un nombre, no una garantía.
«Un biestable arranca en 0»
Arranca en cualquiera de sus estados estables, según asimetrías minúsculas. Si se necesita un estado inicial conocido, hay que forzarlo con un reset.
«Con las dos entradas a 0 el lazo no hace nada»
Hace lo más importante: se sostiene a sí mismo. Las compuertas siguen evaluando y regenerando los niveles, y consumen corriente al conmutar. «Reposo» no es lo mismo que «apagado».
«Un lazo de una puerta NOT sirve como memoria»
No: con una inversión impar, la salida pretende ser el opuesto de sí misma. Oscila o cae a un nivel intermedio. Hacen falta al menos dos inversiones.
«Si dos puertas son iguales, el resultado de la carrera es el mismo»
Ninguna puerta es exactamente igual a otra. Pequeñas diferencias de retardo, de umbral o de carga deciden el ganador, de forma impredecible. Un diseño robusto evita depender de ello.
«Las memorias guardan los datos para siempre»
Un lazo biestable (flip-flop, SRAM) conserva su bit solo mientras está alimentado. Al cortar la tensión, se pierde.
12 · Práctica guiada
Predecí antes de comprobar
1. Anillos de inversores
Clasificá anillos de 1, 2, 5 y 7 inversores. Para el de 5, con tpd = 8 ns por puerta, calculá el período y la frecuencia.
Ver solución razonada
1: oscila o queda en un nivel intermedio (inversiones impares); 2: biestable; 5 y 7: osciladores. Para 5 puertas, T = 2 · 5 · 8 ns = 80 ns y f = 12,5 MHz. El de 7 inversores sería más lento: T = 112 ns para el mismo tpd.
2. Lazo de NAND
Dos NAND realimentadas: Q = NAND(S̄, ~Q) y ~Q = NAND(R̄, Q). Hallá los puntos fijos para (S̄, R̄) = (1, 1), (0, 1), (1, 0) y (0, 0). ¿Cuál es la combinación de retención y cuál la prohibida?
Ver solución
(1, 1): puntos fijos (0, 1) y (1, 0) → retiene. (0, 1): (1, 0) → set. (1, 0): (0, 1) → reset. (0, 0): (1, 1) → prohibida, porque ambas salidas valen 1. Las entradas son activas en bajo: la estructura es la imagen espejo del latch de NOR.
3. Arranque con S = R = 0
Un latch de NOR arranca con S = R = 0 en el estado (0, 0). En un modelo con puertas idénticas, ¿qué sucede? ¿Y en un chip real? ¿Cómo se evita la incertidumbre?
Ver solución razonada
En el modelo ideal, oscila (0, 0) → (1, 1) → (0, 0)… En el chip real, se asienta en (1, 0) o en (0, 1) según cuál puerta gane, de forma impredecible. Para evitarlo, el diseño aplica un reset (R = 1 un instante) al arrancar, de modo que el estado inicial quede definido antes de usar el latch.
4. Cuántos estados
Un diseño usa 8 latches independientes. ¿Cuántas combinaciones de bits puede almacenar? ¿Cuántos puntos fijos tiene el conjunto con todas las entradas en reposo?
Ver solución
Cada latch tiene 2 estados estables y son independientes: 28 = 256 combinaciones. Con todas las entradas en reposo, cada latch tiene 2 puntos fijos y el conjunto tiene 28 = 256. Un byte de memoria es, en esencia, ocho lazos de este tipo.
5. Positiva o negativa
Clasificá estas realimentaciones: un termostato; el chillido de un micrófono; un disparador Schmitt; el control de crucero; el contador de «me gusta» que atrae más visitas.
Ver solución
Termostato y control de crucero: negativa (corrigen la desviación). Chillido, Schmitt y el contador viral: positiva (amplifican el cambio). La positiva engancha en un extremo si hay saturación; sin ella, crece sin control.
6. Oscilador como termómetro
Un oscilador de 3 inversores con tpd = 5 ns tiene frecuencia f. Si el retardo aumenta un 10 % al subir la temperatura, ¿cuánto cambia la frecuencia y por qué sirve para medir la temperatura de un chip?
Ver solución razonada
f = 1 / (2 · 3 · 5 ns) ≈ 33,3 MHz. Con tpd = 5,5 ns: f ≈ 30,3 MHz, un 9 % menos. Como el retardo depende de la temperatura, contar los ciclos del oscilador en un tiempo conocido da una medida de la temperatura, sin ningún sensor analógico. Se calibra, porque también varían con el lote y la tensión.
13 · Síntesis
Ideas para recordar
- La memoria nace de la realimentación: una salida que vuelve a una entrada de modo que el circuito se sostiene.
- Un anillo con número impar de inversiones oscila (T = 2 · n · tpd); con número par es un biestable de dos estados estables.
- La regeneración (ganancia y saturación) convierte los dos estados coherentes en estables y el punto medio en inestable.
- Para escribir, cada inversor se reemplaza por una puerta de dos entradas: la combinación de reposo retiene; las otras ordenan.
- Un punto fijo es un estado que se reproduce a sí mismo. Dos o más puntos fijos para unas entradas significa memoria.
- Las combinaciones de entradas prohibidas, las carreras y el arranque dejan el estado indefinido: hay que diseñarlas, no ignorarlas.
- Los biestables conservan el bit mientras haya energía: son memorias volátiles.
¿Listo para el tema 5?
Antes de avanzar, explicá por qué un lazo de tres inversores oscila y uno de dos no, calculá los puntos fijos de las dos NOR con S = R = 0 y describí por qué S = R = 1 es una combinación problemática. Si podés justificar las tres respuestas, ya podés estudiar el latch SR en detalle.
En el próximo tema veremos el latch SR con NOR y NAND: sus tablas de verdad y de excitación, las entradas activas en alto y en bajo, la condición prohibida y cómo se usa para almacenar un evento.