En la teoría de autómatas , la lógica secuencial es un tipo de circuito lógico cuya salida depende del valor actual de sus señales de entrada y de la secuencia de entradas pasadas, es decir, del historial de entradas. [ 1 ] [ 2 ] [ 3 ] [ 4 ] Esto contrasta con la lógica combinacional , cuya salida es función únicamente de la entrada actual. Es decir, la lógica secuencial posee estado ( memoria ), mientras que la lógica combinacional no.
La lógica secuencial se utiliza para construir máquinas de estados finitos , un componente básico en todos los circuitos digitales. Prácticamente todos los circuitos de los dispositivos digitales prácticos son una combinación de lógica combinacional y secuencial.
Un ejemplo común de un dispositivo con lógica secuencial es un televisor con botones de "subir canal" y "bajar canal". [ 1 ] Al presionar el botón "subir", el televisor recibe una señal que le indica que cambie al siguiente canal por encima del que está recibiendo actualmente. Si el televisor está en el canal 5, al presionar "subir" cambia al canal 6. Sin embargo, si está en el canal 8, al presionar "subir" cambia al canal 9. Para que la selección de canal funcione correctamente, el televisor debe saber qué canal está recibiendo actualmente, lo cual se determinó mediante selecciones de canal anteriores. [ 1 ] El televisor almacena el canal actual como parte de su estado . Cuando se le da una señal de "subir canal" o "bajar canal", la lógica secuencial del circuito de selección de canal calcula el nuevo canal a partir de la señal recibida y el canal actual.
Los circuitos lógicos secuenciales digitales se dividen en síncronos y asíncronos . En los circuitos síncronos, el estado del dispositivo cambia solo en instantes discretos en respuesta a una señal de reloj . En los circuitos asíncronos, el estado del dispositivo puede cambiar en cualquier momento en respuesta a cambios en las entradas.
Lógica secuencial síncrona
Casi toda la lógica secuencial actual es lógica síncrona o de reloj . 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 síncrona es el flip-flop . La salida de cada flip-flop solo cambia cuando recibe el pulso de reloj, por lo que los cambios en las señales lógicas de todo el circuito comienzan simultáneamente, a intervalos regulares, sincronizados por el reloj.
La salida de todos los elementos de almacenamiento (biestables) del circuito en un momento dado, es decir, los datos binarios que contienen, se denomina estado del circuito. El estado del circuito síncrono solo cambia con los pulsos de reloj. En cada ciclo, el siguiente estado se determina a partir del estado actual y del 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 compuertas lógicas que realizan las operaciones con los datos requieren un tiempo finito para responder a los cambios en sus entradas. Esto se denomina retardo de propagación . El intervalo entre pulsos de reloj debe ser lo suficientemente largo para que todas las compuertas lógicas tengan tiempo de responder a los cambios y sus salidas se estabilicen en valores lógicos estables antes de que se produzca el siguiente pulso de reloj. Mientras se cumpla esta condición (ignorando otros detalles), el circuito garantiza estabilidad y fiabilidad. Esto determina la velocidad máxima de funcionamiento del circuito síncrono.
La lógica síncrona tiene dos desventajas principales:
- La frecuencia de reloj máxima posible viene 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 hasta el más complejo, debe completarse en un ciclo de reloj. Por lo tanto, las rutas lógicas que completan sus cálculos rápidamente permanecen inactivas la mayor parte del tiempo, esperando el siguiente pulso de reloj. En consecuencia, la lógica síncrona puede ser más lenta que la asíncrona. 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 segmentación (pipelining ). Esta técnica se utiliza ampliamente en el diseño de microprocesadores y contribuye a mejorar el rendimiento de los procesadores modernos.
- La señal de reloj debe distribuirse a cada biestable del circuito. Dado que el reloj suele ser una señal de alta frecuencia, esta distribución consume una cantidad considerable de energía y disipa mucho calor. Incluso los biestables que no realizan ninguna función consumen una pequeña cantidad de energía, generando así calor residual en el chip. En dispositivos alimentados por batería, se requiere una mayor complejidad de hardware y software para reducir la velocidad del reloj o desactivarlo temporalmente cuando el dispositivo no se utiliza activamente, con el fin de mantener una duración de batería adecuada.
lógica secuencial asíncrona
La lógica secuencial asíncrona ( sin reloj o auto-sincronizada ) no se sincroniza mediante una señal de reloj; las salidas del circuito cambian directamente en respuesta a los 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, ya que el circuito no tiene que esperar una señal de reloj para procesar las entradas. La velocidad del dispositivo solo está potencialmente limitada 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 presentan en los diseños síncronos. El principal problema es que los elementos de memoria digital son sensibles al orden de llegada de sus señales de entrada; si dos señales llegan a un flip-flop o latch casi simultáneamente, el estado del circuito puede depender de qué señal llegue primero a la compuerta. Por lo tanto, el circuito puede entrar en un estado incorrecto, dependiendo de pequeñas diferencias en los retardos de propagación de las compuertas lógicas. Esto se denomina 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 con 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, de modo que no cambien cuando llegue el siguiente pulso. Por lo tanto, los únicos problemas de temporización se deben a las entradas asíncronas; es decir, entradas al circuito provenientes de otros sistemas que no están sincronizados con la señal de reloj.
Los circuitos secuenciales asíncronos se utilizan normalmente solo en algunas partes críticas de sistemas que, de otro modo, serían síncronos, donde la velocidad es fundamental, como por ejemplo en partes de microprocesadores y circuitos de procesamiento de señales digitales .
El diseño de la lógica asíncrona utiliza modelos matemáticos y técnicas diferentes a las de la lógica síncrona, y es un área de investigación activa.
Véase también
Referencias
- ^ Vai , M. Michael (2000) . Diseño VLSI . Prensa CRC . pag. 147.ISBN 0-84931876-9.
- ↑ Cavanagh, Joseph (2006). Lógica secuencial: análisis y síntesis . CRC Press . pág. ix. ISBN 0-84937564-9.
- ↑ Lipiansky, Ed (2012). Fundamentos de hardware eléctrico, electrónico y digital para científicos e ingenieros . Wiley . pág. 8.39. ISBN 978-1-11841454-5.
- ↑ Dally, William James ; Harting, R. Curtis (2012). Diseño digital: un enfoque sistémico . Cambridge University Press . pág. 291. ISBN 978-0-52119950-6.
Lecturas adicionales
- Katz, Randy ; Borriello, Gaetano (2005). Diseño de lógica contemporánea (2 ed.). Prentice Hall . ISBN 0-201-30857-6.
- Kohavi, Zvi; Jha, Niraj K. (2009). Teoría de la conmutación y los autómatas finitos (3 ed.). Prensa de la Universidad de Cambridge . ISBN 978-0-521-85748-2.
- Vasyukevich, Vadim O. (2009). "Elementos lógicos asíncronos. Venjunción y secuencia" (PDF) . Archivado (PDF) del original el 22 de julio de 2011.(118 páginas)
- Vasyukevich, Vadim O. (2011). Escrito en Riga, Letonia. Operadores asíncronos de lógica secuencial: Venjunction y Sequention — Análisis y diseño de circuitos digitales . Lecture Notes in Electrical Engineering (LNEE). Vol. 101 (1.ª ed.). Berlín/Heidelberg, Alemania: Springer-Verlag . doi : 10.1007/978-3-642-21611-4 . ISBN 978-3-642-21610-7ISSN 1876-1100 LCCN 2011929655 (xiii+1+123+7 páginas) (Nota: La contraportada de este libro indica erróneamente que es el volumen 4, cuando en realidad es el volumen 101).
- Autómatas (computación)
- Lógica en informática
- electrónica digital