Lógica secuencial

Compartir Imprimir Citar
Circuito lógico con memoria
Circuito lógico de estado secuencial

La lógica secuencial es un tipo de circuito lógico cuya salida depende tanto de los valores de entrada actuales como de los valores de entradas anteriores (historial de entradas). Esta característica la diferencia de la lógica combinacional, donde la salida es una función de las entradas actuales únicamente. Es decir, la lógica secuencial posee un estado (memoria) que influye en el resultado de salida, mientras que la lógica combinacional no. A un circuito que integra lógica secuencial se le denomina circuito lógico secuencial.

La lógica secuencial se usa para el diseño y funcionamiento de máquinas de estado finito, que son componentes esenciales en los aparatos electrónicos con circuitos digitales. De hecho, la mayoría de los circuitos en los dispositivos modernos mezclan elementos de lógica secuencial y combinacional. Un ejemplo familiar de un dispositivo que incorpora lógica secuencial es el televisor. El televisor guarda como "estado" el canal actual, y las entradas de "subir canal" o "bajar canal" siempre dependen de la referencia del canal actual.

Los circuitos lógicos secuenciales se dividen a su vez en dos tipos: sincrónicos y asincrónicos. En los circuitos secuenciales síncronos, el estado del dispositivo cambia solo en momentos concretos en respuesta a una señal. En los circuitos asíncronos, el estado del dispositivo puede cambiar en cualquier momento en respuesta a las entradas.

La lógica secuencial es un concepto fundamental en la teoría de los autómatas y puede decirse que es un pilar de la informática, permitiendo la creación de sistemas con memoria e historial de operaciones. Su aplicación abarca desde simples dispositivos electrónicos hasta los sistemas computacionales más avanzados.

HSD

Ejemplo práctico: la televisión

Un ejemplo cotidiano de la lógica secuencial se encuentra en los televisores, especialmente en su función de cambio de canales. Los botones "canal arriba" y "canal abajo" son una manifestación clara de esta lógica. Al presionar "canal arriba", el televisor recibe una señal que le indica cambiar al canal siguiente. Para que esta función opere correctamente, el televisor debe "recordar" el canal actual, información que ha sido determinada por selecciones previas. Este almacenamiento del canal actual es un ejemplo de cómo la lógica secuencial utiliza el estado o memoria para calcular la salida (el nuevo canal) basándose en la entrada (el botón presionado) y el estado actual (el canal actual).

Modos de lógica secuencial

Los circuitos lógicos secuenciales digitales se clasifican en sincrónicos y asincrónicos. En los circuitos sincrónicos, los cambios de estado ocurren en momentos específicos, marcados por una señal de reloj. Por otro lado, en los circuitos asincrónicos, los cambios de estado pueden suceder en cualquier momento, respondiendo directamente a las variaciones en las entradas.

Circuitos secuenciales síncronos

Casi toda la lógica secuencial actual es lógica cronometrada o sincrónica. En un circuito síncrono, un oscilador electrónico llamado reloj (o generador de reloj) genera una secuencia de pulsos repetitivos llamada señal de reloj que se distribuye a todos los elementos de memoria en el circuito. El elemento de memoria básico en la lógica síncrona es el flip-flop. La salida de cada flip-flop solo cambia cuando lo activa el pulso del reloj, por lo que los cambios en las señales lógicas en todo el circuito comienzan al mismo tiempo, a intervalos regulares, sincronizados por el reloj.

La salida de todos los elementos de almacenamiento (flip-flops) en el circuito en un momento dado, los datos binarios que contienen, se llama el estado del circuito. El estado del circuito síncrono solo cambia en los pulsos de reloj. En cada ciclo, el siguiente estado está determinado por el estado actual y el valor de las señales de entrada cuando se produce el pulso de reloj.

La principal ventaja de la lógica síncrona es su simplicidad. Las puertas lógicas que realizan las operaciones en los datos requieren una cantidad finita de tiempo para responder a los cambios en sus entradas. Esto se llama retraso de propagación. El intervalo entre pulsos de reloj debe ser lo suficientemente largo para que todas las puertas lógicas tengan tiempo de responder a los cambios y sus salidas se "establezcan" a valores lógicos estables antes de que ocurra el siguiente pulso de reloj. Siempre que se cumpla esta condición (ignorando otros detalles), se garantiza que el circuito sea estable y confiable. Esto determina la velocidad máxima de operación del circuito síncrono.

La lógica síncrona tiene dos desventajas principales:

Circuitos secuenciales asíncronos

La lógica secuencial asíncrona no está sincronizada por una señal de reloj; las salidas del circuito cambian directamente en respuesta a cambios en las entradas. La ventaja de la lógica asíncrona es que puede ser más rápida que la lógica síncrona, porque el circuito no tiene que esperar una señal de reloj para procesar las entradas. La velocidad del dispositivo está potencialmente limitada solo por los retardos de propagación de las puertas lógicas utilizadas.

Sin embargo, la lógica asíncrona es más difícil de diseñar y está sujeta a problemas que no se encuentran en los diseños síncronos. El principal problema es que los elementos de la memoria digital son sensibles al orden en que llegan sus señales de entrada; si dos señales llegan a un flip-flop o pestillo casi al mismo tiempo, el estado en el que entra el circuito puede depender de qué señal llega primero a la puerta. Por lo tanto, el circuito puede entrar en un estado erróneo, dependiendo de pequeñas diferencias en los retardos de propagación de las puertas lógicas. Esto se llama una condición de carrera. Este problema no es tan grave en los circuitos síncronos porque las salidas de los elementos de memoria solo cambian en cada pulso de reloj. El intervalo entre las señales de reloj está diseñado para que sea lo suficientemente largo como para permitir que las salidas de los elementos de memoria se "establezcan" para que no cambien cuando llegue el próximo reloj. Por lo tanto, los únicos problemas de temporización se deben a las "entradas asíncronas"; entradas al circuito desde otros sistemas que no están sincronizados con la señal del reloj.

Los circuitos secuenciales asíncronos normalmente se usan solo en unas pocas partes críticas de sistemas síncronos donde la velocidad es primordial, como partes de microprocesadores y circuitos de procesamiento de señales digitales.

El diseño de la lógica asíncrona utiliza diferentes modelos matemáticos y técnicas de la lógica síncrona y es un área activa de investigación.

Elementos de un circuito secuencial

Estructuras de bloque de un autómata de Moore, a), y un autómata de Mealy, b)
Dos ejemplos de circuitos secuenciales, a) un circuito de Moore y b) un circuito de Mealy

En todo sistema secuencial nos encontraremos con: a) Un conjunto finito, n, de variables de entrada (X1, X2,..., Xn). b) Un conjunto finito, m, de estados internos, de aquí que los estados secuenciales también sean denominados autómatas finitos. Estos estados proporcionarán m variables internas (Y1,Y2,..., Ym). c) Un conjunto finito, p, de funciones de salida (Z1, Z2,..., Zp).​

Dependiendo de cómo se obtengan las funciones de salida, Z, los sistemas secuenciales pueden tener dos estructuras como las que se observan en la siguiente figura, denominadas: a) Máquina de Moore y b) Máquina de Mealy.​

Aplicaciones de la lógica secuencial

Casi todos los dispositivos electrónicos de procesamiento de datos (computadoras) utilizan mecanismos de conmutación en sus chips. Los mecanismos de conmutación también son importantes en la transmisión de datos; por ejemplo, cada interfaz serie se basa en un mecanismo de conmutación. En particular, el lado receptor debe recopilar todos los bits individuales uno tras otro, de modo que después de ocho ciclos esté disponible un byte completo.

Las dos aplicaciones básicas de los sistemas secuenciales son:

Registros. Son circuitos secuenciales de aplicación general constituidos por un conjunto de biestables conectados de diferente forma en función de la tarea que realizan. Son capaces de almacenar una palabra binaria formada por tantos bits como biestables contenga. Además de los biestables, los registros tendrán puertas adicionales que controlan cuándo y cómo se transfiere nueva información al registro. De esta forma, los biestables contienen la información binaria y las puertas lógicas controlan la forma de transferir nueva información al registro. Pueden ser utilizados como elementos de almacenamiento o como elementos de transmisión y conversión de información binaria serie/paralelo o cualquier combinación de éstos.

Contadores. Son circuitos que pasan por una secuencia determinada de estados, cambiando de estado con la aplicación de un pulso de reloj. Si el contador sigue una sucesión de números binarios, recibe el nombre de contador binario. Si está formado por n biestables, puede contar en binario de 0 a {\displaystyle 2^{n}}-1. Las puertas lógicas del contador se conectan de tal forma que se produzca la secuencia de estados binarios prescrita. Por tanto, un contador se puede considerar como un tipo de registro capaz de recordar cuántos pulsos de reloj se han aplicado a su entrada. Los contadores se utilizan en circuitos que generan señales de sincronización y control de operaciones de un sistema digital y como divisor de frecuencias.