Para el pulso usamos el sincronizador de pulso y para la señal de nivel usamos el sincronizador de 2 flop, pero ¿qué pasa si la señal puede tener un comportamiento de pulso o nivel? ¿Hay alguna forma de sincronizar eso?
EDITAR:
Después de la respuesta de @Paebbels, hay una modificación en el circuito, debería ser así, la transformación de la señal está en el dominio del reloj tx en lugar del dominio del reloj rx.
y su simulación es como a continuación,
Pero ahora el problema es transformar el número de ciclos en el lado del reloj tx al lado del reloj rx. Al menos el nivel CDC convergerá al nivel en el dominio del reloj rx, podemos eliminar la restricción del número de transformación del ciclo.
Puede agregar una detección de bordes al sincronizador de pulso/luz estroboscópica.
¿Cómo funciona un sincronizador de pulso/estroboscópico normal?
¿Qué le puede pasar a este circuito, si los pulsos están formando una señal constante?
El circuito comenzará a alternar y generar muchos pulsos en la salida.
Solución:
Esta alternancia se puede detener agregando una detección de borde en la entrada (D-FF + NOT + AND) o si el remitente cumple con la señal de ocupado.
simular este circuito : esquema creado con CircuitLab
Fuente: PoC.misc.sync.Strobe
Depende de qué información sobre la señal es importante. Si tiene algo que puede ser un nivel relativamente constante, así como pulsos relativamente cortos que están poco espaciados, entonces lo que debe hacer es usar un FIFO asíncrono y almacenar el valor de la señal en el FIFO cuando cambia. Los sincronizadores de nivel y pulso solo funcionan bien con señales 'escasas' que no cambian muy a menudo. Sin embargo, si sus pulsos tienen al menos varios ciclos de reloj, un sincronizador de nivel podría estar bien.
miguel karas
Prakash Darji