¿Por qué necesitamos sincronizar entradas asíncronas en FSM?

7

Recientemente he estado aprendiendo electrónica digital. Sé que hay puertas que realizan funciones lógicas, aprendí sobre RS-Latch, D-Latch y Master-Slave-D-Flip-Flop. Ahora que puedo realizar funciones lógicas y almacenar estados, puedo crear una máquina de estado finito (por ejemplo, un semáforo). En clase hablamos sobre este ejemplo particular de semáforo y hubo una discusión sobre qué problemas surgen, si agregáramos un botón de inicio / parada (señal al semáforo de que un peatón está esperando luz verde).

La conclusión fue que este botón sería una entrada asíncrona que necesitamos para poner un flip flop antes que la máquina de estado para que esta entrada pueda sincronizarse primero.

Lo que no entiendo es, ¿cuál es el problema con las entradas asíncronas? ¿Por qué necesitamos sincronizarlo? ¿Y por qué un flip-flop en frente de la máquina de estados o la ayuda trasera con la sincronización? Leí a través de varios artículos, hablando de "metastabilidad", pero todavía no entiendo

Muchas gracias

    
pregunta Eren

2 respuestas

6

Como ya entiende, su máquina de estado de controlador de semáforo es una máquina sincrónica. Es decir, es impulsado por algún reloj de tal manera que todos los cambios lógicos combinatorios suceden y se establecen en valores estables el tiempo suficiente antes del próximo límite del reloj para cumplir con los tiempos de configuración requeridos.

simular este circuito : esquema creado usando CircuitLab

Silosdatoscambiandentrodeesetiempodeconfiguración,lasalidafinalnosoloseráimpredecible,sinoque,debidoalametaestabilidad,puedeflotarobailaralrededordealgúnvalorintermedioduranteuntiempoantesdequeseleccioneunvalorfinal.Inclusopuedeoscilarentrelalógicaunoylalógicaceroaaltafrecuencia,loqueprovocaunconsiderableflujodecorrienteycalentamiento.

Comotal,cualquierentradaasíncronaaunamáquinadeestadodebeestarsincronizadaenalgúnmomentoparaqueelsistemafuncionecomoespera.Sinembargo,esonosignificanecesariamentequeSIEMPREnecesiteagregarotropestilloalsistema.

Silaentradasolosedirigeauna"puerta siguiente" Y el estado de la entrada es independiente de todas las demás entradas, entonces realmente no importa si la señal llega tarde al interlocutor. Básicamente, debes preguntar ... "Si faltamos la entrada para un ciclo de reloj, ¿importa?"

Sin embargo, si la entrada alimenta varias puertas que es diferente. Las siguientes puertas pueden ver diferentes niveles lógicos y propagar un estado erróneo al siguiente pestillo. Básicamente, pueden ocurrir una variedad de cosas malas.

Esto se puede ilustrar con su ejemplo simple. Tenga en cuenta que si la metastabilidad en REG1 no se ha resuelto antes del siguiente reloj, podría ocasionar que tanto WALK como el semáforo se encendieran al mismo tiempo, o ninguno de los dos podría encenderse.

simular este circuito

Además, si una entrada asíncrona tiene una relación con otra entrada asíncrona que espera que ocurra al mismo tiempo, la segunda entrada puede ser reconocida pero la primera no.

En ambos casos, debe agregar un pestillo de sincronización a la entrada para alinear la temporización de la señal con el reloj de las máquinas de estado. Tenga en cuenta que esto agrega un retraso de ciclo de reloj, o un retraso de ciclo de medio reloj si utiliza el otro borde de la señal de reloj.

Sin embargo, es posible que se pregunte, "¿pero ESO el pestillo no sufre el mismo problema?" Y por supuesto, la respuesta sería sí lo hace. Pero el truco aquí es permitir que esa metaestabilidad potencial ocurra en un punto del circuito en el que no importa como resalté anteriormente.

Encontrar ese punto puede ser problemático con entradas dependientes. Normalmente, se necesita agregar lógica adicional para calificar esas entradas.

Sin embargo, ten en cuenta que la metastabilidad es una cuestión de probabilidad. Aunque, debido a las diferencias en las tolerancias de fabricación, la mayoría de los cierres se cargan por un lado muy rápidamente, existe la posibilidad de que permanezca inestable durante bastante tiempo. Cuanto mayor sea la diferencia entre los pulsos del reloj, mayor será la probabilidad de que se haya resuelto. Como tal, si el reloj de su sistema está en una frecuencia alta, es prudente dividirlo hacia abajo para hacer el cierre previo para permitir más tiempo de ajuste. Sin embargo, incluso entonces no hay garantías.

Un pensamiento final. Mencioné que existe la posibilidad de altas corrientes inducidas por meta-estabilidad y calentamiento al sincronizar una entrada externa aleatoria. Desafortunadamente, es muy poco lo que puede hacer para corregir eso y problemas de metastabilidad prolongados que no sean la eliminación de los circuitos de entrada asíncronos.

    
respondido por el Trevor_G
3

Un problema con los diseños asíncronos, es la presencia de razas o peligros. Digamos, por ejemplo, en este circuito, que A = 1, B = 0 y C = 1 inicialmente, por lo que D es estable y se establece en 1.

Ahora permita que B cambie a 1 y C cambie a 0 en el mismo momento . Es obvio que D permanecerá en 1. Pero en los circuitos reales, los retrasos de propagación y los retrasos de cableado son importantes. Por lo tanto, es muy posible que el cambio en C llegue a la puerta OR más rápida que el cambio en B se propague a la puerta OR, a través de la puerta AND. El resultado es que D se lleva a 0 momentáneamente, antes de volver a su estado estable 1. Esto se denomina carrera o peligro. Este fallo momentáneo puede disparar cualquier circuito que esté presente después de D, y esta transición no deseada se propaga a través de todo el circuito. Esto causa una disipación de energía no deseada y posiblemente un error en la funcionalidad.

Para evitar estos problemas, podemos registrar las entradas y salidas agregando un D-flip-flops antes de todas las entradas A, B, C y después de la salida D. De modo que ahora nuestro circuito enclava solo entradas estables en el reloj. -edece, calcula la expresión, enclava D y la emite solo en el siguiente borde del reloj. Esto asegura que no se produzcan tales fallas en las entradas o salidas en nuestro circuito, siempre que todas las entradas a los flip-flops cumplan con el tiempo de configuración y de espera.

Esta es la razón principal por la que los diseños síncronos son más preferidos, a pesar de la velocidad que brindan los diseños asíncronos.

    
respondido por el MITU RAJ

Lea otras preguntas en las etiquetas