Cargando aplicación...
Preparando tu experiencia meskeIA
Biestables (flip-flops), contadores y registros que recuerdan: dale al reloj pulso a pulso y observa cómo evoluciona el circuito, con su cronograma dibujado en vivo.
Ecuación característica
Q(t+1) = D
Copia en la salida el valor que tenga la entrada D en el flanco activo del reloj. Es la celda de memoria elemental: mientras no llegue un flanco, la salida no cambia.
Entradas
Reloj
Ciclos ejecutados: 0
Pulsa Pulso de reloj o activa el modo automático para empezar a dibujar las señales.
| D | Q(t+1) | Comportamiento |
|---|---|---|
| 0 | 0 | Almacena un 0 |
| 1 | 1 | Almacena un 1 |
La fila resaltada corresponde a las entradas que aplicarás en el próximo flanco de reloj.
Por qué un circuito necesita memoria y cómo se diseñan biestables, contadores y registros
Un circuito combinacional (puertas AND, OR, NOT, un sumador, un multiplexor) es una función pura: las mismas entradas producen siempre la misma salida. En cuanto un sistema necesita recordar algo —cuántos pulsos han llegado, qué botón se pulsó antes, en qué punto de una secuencia está—, la lógica combinacional se queda corta. Ahí entra la lógica secuencial: la salida depende de las entradas y del estado interno almacenado.
Ese estado lo guardan los biestables o flip-flops, celdas capaces de mantener un bit indefinidamente. En un sistema síncrono, todos los biestables actualizan su valor a la vez, en el flanco activo de una señal común llamada reloj. Entre flancos, las entradas pueden cambiar libremente: lo que cuenta es el valor que tienen justo en el flanco.
El nombre de cada biestable viene de sus entradas de control: D de data, T de toggle, SR de set/reset y JK, que amplía el SR eliminando su combinación prohibida. Con biestables encadenados se construyen los dos bloques presentes en cualquier sistema digital: contadores(cuentan eventos, dividen frecuencias, generan direcciones) y registros (almacenan y desplazan datos).
| Circuito | Entradas | Ecuación o regla | Bits de estado | Punto delicado | Uso habitual |
|---|---|---|---|---|---|
| Biestable D | D | Q(t+1) = D | 1 | Requiere respetar los tiempos de setup y hold | Registros, sincronizadores, memoria de un bit |
| Biestable JK | J, K | Q(t+1) = J·Q̄ + K̄·Q | 1 | Ninguna combinación prohibida, pero más lógica interna | Contadores síncronos, control |
| Biestable T | T | Q(t+1) = T ⊕ Q | 1 | Al conmutar cada ciclo divide la frecuencia entre 2 | Contadores, divisores de frecuencia |
| Biestable SR | S, R | Q(t+1) = S + R̄·Q | 1 | S = R = 1 es un estado prohibido | Antirrebotes, enclavamientos sencillos |
| Contador binario | Ninguna (solo reloj) | valor(t+1) = (valor ± 1) mod M | 4 | Con módulo no potencia de 2 hay estados no usados | Temporizadores, direcciones de memoria |
| Registro de desplazamiento | Entrada serie | Qᵢ(t+1) = Qᵢ₋₁(t) | 4 | Un dato tarda n ciclos en recorrer n etapas | Conversión serie-paralelo, retardos, UART |
| Detector de secuencia 101 | X | Máquina de Moore de 4 estados | 2 (4 estados) | Decidir si se admite solapamiento cambia el diagrama | Protocolos, detección de patrones, control |
Un semáforo no puede resolverse con lógica combinacional: la luz siguiente depende de la actual, no solo del sensor. Es una máquina de estados con un contador que marca la duración de cada fase.
Un contacto mecánico rebota y genera decenas de flancos falsos en pocos milisegundos. Un biestable SR o un registro de desplazamiento que exija varios ciclos con el mismo nivel filtra esos rebotes antes de que lleguen al resto del sistema.
Un puerto serie recibe los bits uno a uno. Un registro de desplazamiento los va acumulando y, tras n ciclos, entrega el byte completo en paralelo. Es exactamente lo que hace la etapa de entrada de una UART.
Reconocer una cabecera o una clave dentro de un flujo continuo de bits es el trabajo de una máquina de estados como el detector 101. Cada estado resume «cuánto llevo acertado del patrón», sin necesidad de almacenar toda la secuencia recibida.
Un latch (cerrojo) es sensible al nivel: mientras la señal de habilitación está activa, la salida sigue a la entrada de forma transparente. Un biestable disparado por flanco solo mira la entrada en el instante de la transición del reloj y permanece insensible el resto del ciclo.
Por eso los diseños síncronos usan biestables por flanco: si la salida pudiera cambiar durante todo el ciclo, podría realimentarse y provocar carreras dentro del mismo periodo de reloj.
El tiempo de setup es el margen durante el cual la entrada debe estar estable antes del flanco; el de hold, el que debe mantenerse estable después. Si se violan, el biestable puede entrar en metaestabilidad: la salida queda un tiempo indefinido en una zona intermedia antes de resolverse a 0 o a 1.
Estos tiempos, junto con el retardo de propagación de la lógica combinacional entre biestables, fijan la frecuencia máxima de reloj del circuito.
En una máquina de Moore la salida depende solo del estado, por lo que cambia de forma sincronizada con el reloj y es más fácil de analizar. En una de Mealy la salida depende del estado y de las entradas, lo que suele permitir resolver el mismo problema con menos estados, pero la salida puede cambiar en mitad de un ciclo.
El detector del simulador es de Moore: la salida Z vale 1 exactamente mientras la máquina está en el estado S3.
En un contador síncrono todos los biestables comparten la misma señal de reloj y conmutan a la vez; la lógica adicional decide cuáles cambian. En uno asíncrono (o de rizado) la salida de cada etapa hace de reloj de la siguiente, así que los cambios se propagan en cascada.
El asíncrono usa menos lógica, pero acumula retardos: durante un breve instante pueden aparecer valores intermedios inválidos, lo que limita su velocidad y complica decodificar la cuenta.
Un biestable JK se comporta como un T uniendo J y K en una sola entrada: con J = K = 0 mantiene y con J = K = 1 conmuta. Y se comporta como un D conectando J = D y K = D̄, de forma que la salida siempre acaba tomando el valor de D.
Puedes comprobarlo en el simulador: elige el biestable JK y pulsa el reloj manteniendo J = K = 1; verás la misma onda que produce el biestable T con T = 1.
Con solapamiento, los últimos bits de una detección pueden formar parte de la siguiente: en la entrada 10101 el patrón 101 se detecta dos veces. Sin solapamiento, tras cada acierto la máquina vuelve al estado inicial y solo detectaría una.
La decisión no es un detalle menor: cambia las transiciones del diagrama de estados y, con ello, la lógica del circuito final.
Cuenta los biestables: n biestables dan hasta 2ⁿ estados posibles. Ese número es el tamaño real del problema, más allá de la lógica combinacional que los rodee.
Expresa cada entrada de los biestables (D, J, K o T) en función de las entradas externas y de las salidas actuales. Son las ecuaciones que describen la lógica combinacional del circuito.
Sustituye esas excitaciones en la ecuación del biestable (Q(t+1) = D, Q(t+1) = T ⊕ Q, etc.) para obtener el estado siguiente en función del actual.
Recorre todas las combinaciones de estado actual y entradas, y anota el estado siguiente y la salida. De esa tabla sale directamente el diagrama de estados.
Elige una secuencia concreta de entradas y sigue el circuito ciclo a ciclo. Si el cronograma coincide con lo que predice la tabla, el análisis es correcto; si no, el error suele estar en el paso 2.
Un circuito secuencial sin una señal de puesta a cero arranca en un estado impredecible. En el simulador, el botón Reiniciar cumple ese papel de reset asíncrono.
Asignar códigos binarios a los estados de forma que los cambios frecuentes difieran en un solo bit (código Gray) simplifica la lógica y reduce transiciones simultáneas.
Al analizar un diseño, la unidad natural es el ciclo de reloj. Cuenta cuántos ciclos tarda una operación y solo al final tradúcelo a tiempo según la frecuencia.
En un contador de módulo 10 con 4 biestables sobran 6 combinaciones. Un diseño robusto define qué ocurre si el circuito cae en una de ellas por una interferencia.