A diferencia de los sistemas combinacionales, en los sistemas secuenciales, los valores de las salidas, en un momento dado, no dependen exclusivamente de los valores de las entradas en dicho momento, sino también dependen del estado anterior o estado interno.[1] El sistema secuencial más simple es el biestable, de los cuales, el de tipo D (o cerrojo) es el más utilizado actualmente.
El sistema secuencial requiere de la utilización de un dispositivo de memoria que pueda almacenar la historia pasada de sus entradas (denominadas variables de estado) y le permita mantener su estado durante algún tiempo, estos dispositivos de memoria pueden ser sencillos como un simple retardador o celdas de memoria de tipo DRAM, SRAM[2] o multivibradores biestables también conocido como Flip-Flop[1] entre otros.
En todo sistema secuencial nos encontraremos con:
Dependiendo de como 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.[4]
En este tipo de circuitos entra un factor que no se había considerado en los circuitos combinacionales, dicho factor es el tiempo, según como manejan el tiempo se pueden clasificar en: circuitos secuenciales síncronos y circuitos secuenciales asíncronos.
En circuitos secuenciales asíncronos los cambios de estados ocurren al ritmo natural asociado a las compuertas lógicas utilizadas en su implementación, sin la necesidad de que esté presente una señal de reloj global. Esto mitiga el problema de distribución del reloj, que caracteriza a los circuitos síncronos. Gracias a no tener que esperar a la señal de reloj, los circuitos asíncronos son capaces de operar a una mayor velocidad, teóricamente limitada por los tiempos de propagación de los elementos lógicos usados.
A pesar de estas ventajas, los circuitos asíncronos son más complejos de diseñar, en parte porque hay una mayor dependencia en los tiempos de propagación de las distintas compuertas, y también porque no existe tanto desarrollo de herramientas de diseño como en el caso de circuitos síncronos. Por esa razón, el uso de circuitos asíncronos se encuentra circunscripto a aquellos diseños en donde los beneficios, como el de mayor velocidad de operación, superan las dificultades de su diseño.[5][6]
Los circuitos secuenciales síncronos solo permiten un cambio de estado en los instantes marcados o autorizados por una señal de sincronismo de tipo oscilatorio denominada reloj (cristal o circuito capaz de producir una serie de pulsos regulares en el tiempo),[4] lo que soluciona los problemas que tienen los circuitos asíncronos originados por cambios de estado no uniformes dentro del sistema o circuito. Las técnicas de diseño de circuitos síncronos fue desarrollado tempránamente y en la actualidad se encuentran en un estado de madurez. Ello resulta en una gran confiabilidad en la funcionalidad de los circuitos así diseñados. Sin embargo, cuando se los compara con circuitos asíncronos, esta simplicidad de diseño tiene su aspecto negativo en el mayor consumo de potencia requerido por los circuitos síncronos debido a la señal de reloj que tiene que distribuirse y la menor velocidad máxima de operación que pueden lograr.[5][6]
A continuación se indican ejemplos de sistemas secuenciales que pueden encontrarse en forma de circuito integrado o como estructuras en sistemas programados: