En la teoría de los autómatas , la lógica secuencial es un tipo de circuito lógico cuya salida depende no solo del valor presente de sus señales de entrada, sino también de la secuencia de entradas pasadas, y también del historial de entrada. [1] [2] [3] [4] Esto contrasta con la lógica combinacional , cuya salida es una función únicamente de la entrada actual. Es decir, la lógica secuencial tiene estado ( memoria ) mientras que la lógica combinacional no.
La lógica secuencial se utiliza para construir máquinas de estados finitos , un bloque de construcción básico en todos los circuitos digitales. Prácticamente todos los circuitos de los dispositivos digitales prácticos son una mezcla de lógica combinacional y secuencial.
Un ejemplo familiar de un dispositivo con lógica secuencial es un televisor con botones de "canal arriba" y "canal abajo". [1] Presionar el botón "arriba" le da al televisor una entrada que le dice que cambie al siguiente canal por encima del que está recibiendo actualmente. Si el televisor está en el canal 5, al presionar "arriba" se cambia al canal de recepción 6. Sin embargo, si el televisor está en el canal 8, al presionar "arriba" se cambia al canal "9". Para que la selección de canal funcione correctamente, el televisor debe saber qué canal está recibiendo actualmente, lo cual fue determinado por selecciones de canales anteriores. [1] La televisión almacena el canal actual como parte de su estado . Cuando se le da una entrada de "canal arriba" o "canal abajo", la lógica secuencial del circuito de selección de canal calcula el nuevo canal a partir de la entrada y el canal actual.
Los circuitos lógicos secuenciales digitales se dividen en tipos sincrónicos y asincrónicos . En los circuitos secuenciales síncronos, el estado del dispositivo cambia solo en momentos discretos en respuesta a una señal de reloj . En circuitos asíncronos, el estado del dispositivo puede cambiar en cualquier momento en respuesta a cambios de entrada.
Lógica secuencial sincrónica
Casi toda la lógica secuencial de hoy se registró o síncrona lógica. 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 del circuito. El elemento de memoria básico en la lógica secuencial es el flip-flop . La salida de cada flip-flop solo cambia cuando se activa con 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 estado del circuito. El estado del circuito síncrono solo cambia en 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 sobre los datos requieren una cantidad de tiempo finita para responder a los cambios en sus entradas. A esto se le llama retardo de propagación . El intervalo entre pulsos de reloj debe ser lo suficientemente largo para que todas las puertas lógicas tengan tiempo para responder a los cambios y sus salidas se "estabilicen" a valores lógicos estables antes de que ocurra el siguiente pulso de reloj. Siempre que se cumpla esta condición (ignorando algunos otros detalles), se garantiza que el circuito es estable y confiable. Esto determina la velocidad máxima de funcionamiento del circuito síncrono.
La lógica síncrona tiene dos desventajas principales:
- La máxima frecuencia de reloj posible está determinada por la ruta lógica más lenta del circuito, también conocida como ruta crítica. Cada cálculo lógico, desde el más simple al más complejo, debe completarse en un ciclo de reloj. Por lo tanto, las rutas lógicas que completan sus cálculos rápidamente están inactivas la mayor parte del tiempo, esperando el siguiente pulso de reloj. Por lo tanto, la lógica sincrónica puede ser más lenta que la lógica asincrónica. Una forma de acelerar los circuitos síncronos es dividir las operaciones complejas en varias operaciones simples que se pueden realizar en ciclos de reloj sucesivos, una técnica conocida como canalización . Esta técnica se utiliza ampliamente en el diseño de microprocesadores y ayuda a mejorar el rendimiento de los procesadores modernos.
- La señal de reloj debe distribuirse a todos los flip-flop del circuito. Como el reloj suele ser una señal de alta frecuencia, esta distribución consume una cantidad relativamente grande de energía y disipa mucho calor. Incluso las chanclas que no hacen nada consumen una pequeña cantidad de energía, lo que genera calor residual en el chip. En los dispositivos portátiles que tienen batería limitada, la señal del reloj se enciende incluso cuando el dispositivo no se está utilizando, lo que consume energía.
Lógica secuencial asincrónica
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 retrasos 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 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 al 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 incorrecto, dependiendo de pequeñas diferencias en los retardos de propagación de las puertas lógicas. A esto se le llama 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 ser lo suficientemente largo como para permitir que las salidas de los elementos de memoria se "estabilicen" para que no cambien cuando llegue el siguiente reloj. Por lo tanto, los únicos problemas de sincronización se deben a "entradas asíncronas"; Entradas al circuito desde otros sistemas que no están sincronizados con la señal de reloj.
Los circuitos secuenciales asíncronos se usan típicamente solo en algunas partes críticas de sistemas que de otro modo serían síncronos donde la velocidad es escasa, como partes de microprocesadores y circuitos de procesamiento de señales digitales.
El diseño de lógica asincrónica utiliza diferentes modelos matemáticos y técnicas de la lógica síncrona, y es un área activa de investigación.
Ver también
Referencias
- ↑ a b c Vai, M. Michael (2000). Diseño VLSI . Prensa CRC. pag. 147. ISBN 0849318769.
- ^ Cavanagh, Joseph (2006). Lógica secuencial: análisis y síntesis . Prensa CRC. págs. ix. ISBN 0849375649.
- ^ Lipiansky, Ed (2012). Elementos básicos de hardware eléctrico, electrónico y digital para científicos e ingenieros . John Wiley e hijos. pag. 8.39. ISBN 978-1118414545.
- ^ Dally, William J .; Harting, R. Curtis (2012). Diseño digital: un enfoque de sistemas . Prensa de la Universidad de Cambridge. pag. 291. ISBN 978-0521199506.
Otras lecturas
- Katz, R y Boriello, G. Diseño lógico contemporáneo . 2ª ed. Prentice Hall. 2005. ISBN 0-201-30857-6 .
- Zvi Kohavi, Niraj K. Jha. Teoría de la conmutación y autómatas finitos . 3ª ed. Prensa de la Universidad de Cambridge. 2009. ISBN 978-0-521-85748-2
- VO Vasyukevich. (2009). Elementos lógicos asincrónicos. Venyunción y secuenciación - 118 p.