Sincronizar borde aleatorio con borde de reloj

-1

Tengo una señal de reloj estable y otra señal con pulsos binarios aleatorios. ¿Existe un circuito simple que pueda detectar el flanco ascendente de los pulsos aleatorios y generar un pulso que esté sincronizado con el flanco ascendente del reloj? Por ejemplo:

Clock:  000111000111000111000111000111000
Signal: 000011000000011110000001110000000
Output: 000000000111000111000000000111000

Gracias.

    
pregunta Bin

1 respuesta

0

Sí, es simple, excepto que no lo es. El circuito clásico es algo así como

simular este circuito : esquema creado usando CircuitLab

Esto producirá un pulso de un solo período para cada flanco ascendente, con dos advertencias importantes:

1: los pulsos deben tener un ancho mayor que el período de reloj (o el primer FF puede fallar), y lo mismo ocurre con el período entre pulsos.

2 - (y aquí es donde se complica). De vez en cuando, se producirá un flanco justo como ocurre con un flanco de reloj, y para cualquier FF esto producirá lo que se conoce como una condición metaestable, con la salida del primer FF en un estado desconocido durante un período de tiempo desconocido. Esto se contrarresta agregando flip-flops a la parte izquierda del circuito, con el número de FF determinado por cosas como la tecnología IC y la tasa de error máxima permitida. Puede comenzar con el artículo de Wiki .

EDITAR - Si los pulsos de entrada son más estrechos que el reloj de muestra, simplemente puede aplicar un disparo único con un pulso de salida ligeramente más amplio que el período de muestra, y utilizarlo como entrada de datos al circuito que se muestra. Un ejemplo de dicho IC es el 74HC4538.

Y no hay forma de evitar los problemas de metastabilidad.

    
respondido por el WhatRoughBeast

Lea otras preguntas en las etiquetas