¿Por qué necesitamos pulso de reloj en circuitos secuenciales?

Necesito saber por qué necesitamos pulso de reloj en circuitos secuenciales pero no en circuitos combinacionales.

posible duplicado de Why do we clock Flip Flops?

Respuestas (4)

En primer lugar, no todos los circuitos secuenciales (circuitos con realimentación) tienen relojes.

Sin embargo, el diseño de máquinas de estado asincrónicas es muy esotérico y requiere la consideración de todos los posibles fallos y rutas de carrera a través de la lógica para hacerlo bien, y sospecho que generalmente no se enseña en estos días.

Por lo tanto, las máquinas de estado asíncronas simples se encapsulan en forma de tipos estándar de flip-flops sincronizados (T, D, SR, JK, etc.) y todos los circuitos de orden superior se construyen utilizando técnicas sincronizadas, lo que simplifica enormemente su diseño. También simplifica enormemente el diseño de herramientas de software que pueden sintetizar tales circuitos.

Guau, nunca antes había oído hablar de una máquina de estado asíncrona.
Muchas gracias por la respuesta. Ahora, lo que entiendo de su respuesta es que todo esto se hace solo para simplificar los circuitos. ¿Estoy bien?

Dado que los circuitos secuenciales tienen retroalimentación, ejecutarlos sin demora produciría pocos resultados útiles, ya que básicamente solo oscilarían. Se utiliza una fuente de reloj para controlar qué acciones se deben tomar en un momento específico.

Le recomiendo que diseñe (y construya) algunos de ambos tipos y la necesidad de un reloj se hará evidente rápidamente.

Gracias. Haré eso.

Los circuitos combinacionales tienen salidas que dependen de las entradas. No tienen mecanismos que cambien el mapeo de entrada a salida: las entradas siempre se asignan a las salidas de manera consistente.

Los circuitos secuenciales también tienen salidas que dependen de las entradas, PERO las salidas también dependen del "estado" que adopta actualmente el circuito secuencial. Un cambio del estado n al estado n+1 puede reasignar cómo las salidas dependen de las entradas. El cambio de estado se produce mediante un pulso de reloj.

Gracias por la respuesta, pero explique lo que quiso decir con "manera coherente".
@user122345656 las entradas siempre se asignan a las salidas de la misma manera, independientemente del tiempo

Si un circuito tiene algunas entradas y salidas, y si los elementos dentro del circuito pueden clasificarse de tal manera que los elementos de nivel 0 dependan solo de las entradas del circuito, y los elementos de cada nivel superior dependan solo de las entradas del circuito o elementos de nivel inferior, entonces se dice que el circuito es combinatorio. Si las entradas asumen un cierto estado, entonces puede tomar un tiempo para que todo reaccione a ellas, pero después de un período de tiempo, las salidas asumirán un estado que depende completamente de las entradas. Ningún elemento del circuito cambiará de estado a menos que o hasta que algunas de las entradas lo hagan. Tal circuito se llama "puramente combinatorio".

Si un circuito contiene rutas de retroalimentación, dicho circuito no es combinatorio sino "secuencial". En general, el comportamiento de los circuitos secuenciales variará según el orden en que ocurran los diversos eventos. Si un circuito consta de nada más que registros (flip flops) que comparten un reloj común, cuyas entradas de datos son impulsadas por una lógica puramente combinatoria alimentada por la salida de ellos mismos y entre sí, habrá un breve período de tiempo después de cada pulso de reloj. donde los datos pueden propagarse a través de la lógica combinatoria; una vez transcurrido ese tiempo, no pasará nada hasta el siguiente pulso del reloj. Si el tiempo entre los pulsos del reloj excede el tiempo en el peor de los casos para que todo (incluido el circuito de entrada de los flip-flops) se estabilice, el orden en que ocurren los eventos dependerá únicamente del número de pulsos de reloj necesarios para producirlos, y no de la velocidad de ningún circuito combinatorio. Todo esto permite un análisis de tiempo muy fácil: calcule los tiempos de propagación en el peor de los casos y confirme que son más cortos que el espacio entre pulsos de reloj. Si es así, los tiempos pueden determinarse "contando" pulsos de reloj.

Si un circuito contiene rutas de retroalimentación que no involucran registros de reloj compartido, es probable que la secuencia en la que ocurren los eventos importantes dependa de los retardos exactos impuestos por los elementos combinatorios. Tales dependencias se denominan "condiciones de carrera" [dos eventos pasan por diferentes rutas lógicas y hay una "carrera" para ver cuál sale primero]. En general, es mucho más fácil decir, por ejemplo, que un cambio en la entrada del circuito combinatorio se propagará a su salida en algo menos de 10 ns, que decir que dicha propagación tardará entre 8 ns y 12 ns. Si bien es posible construir circuitos secuenciales que no requieran relojes, tales circuitos involucran invariablemente muchas condiciones de carrera, y diseñar cosas para que los eventos correctos ganen cada carrera es, en general, bastante difícil.

Thnx. Fue realmente informativo para mí.