Cruce de dominio de reloj para señal de pulso y nivel

3

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 ser de comportamiento de pulso o nivel? ¿Hay alguna forma de sincronizar eso?

EDIT:

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 es en el dominio tx-clock en lugar del dominio rx-clock.

ysusimulaciónescomoabajo,

Pero ahora el problema es transformar el número de ciclo en el lado de tx-clock al lado de rx-clock. Los CDC de nivel Atleast convergerán a nivel en el dominio de rx-clock, podemos eliminar la restricción del número de transformación del ciclo.

    
pregunta Prakash Darji

2 respuestas

4

Puede agregar una detección de bordes al sincronizador de pulso / luz estroboscópica.

¿Cómo funciona un sincronizador de pulso / luz estroboscópica normal?

  1. Si admite una señal de ocupado, la entrada se bloquea hasta que el circuito esté listo
  2. La señal se transforma de un impulso a un cambio de nivel mediante un T-FF (D-FF + XOR)
  3. La señal de nivel / bandera se transfiere al otro dominio del reloj mediante 2 D-FF
  4. El impulso es restaurado por otra puerta XOR y un retraso (D-FF)
  5. 2 más D-FF están transfiriendo la señal al dominio del reloj de origen, por lo que se puede derivar una señal de ocupado (XOR).

¿Qué puede pasar con este circuito si los pulsos forman una señal constante?

El circuito comenzará a alternar y generará muchos pulsos en la salida.

Solución:

Esta conmutación se puede detener agregando una detección de bordes en la entrada (D-FF + NOT + AND) o si el remitente cumple con la señal de ocupado.

simular este circuito : esquema creado usando CircuitLab

Fuente: PoC.misc.sync.Strobe

    
respondido por el Paebbels
2

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 muy próximos entre sí, entonces lo que debe hacer es usar un FIFO asíncrono y almacenar el valor de la señal en el FIFO cuando cambie. Los sincronizadores de nivel y de pulso solo funcionan bien con señales "dispersas" que no cambian muy a menudo. Sin embargo, si sus pulsos tienen una duración de al menos varios ciclos de reloj, un sincronizador de nivel podría estar bien.

    
respondido por el alex.forencich

Lea otras preguntas en las etiquetas