A primera vista, a primera vista puede parecer que está engullido, pero, mientras no haya errores tipográficos en el cerebro, debería tener sentido si está lo suficientemente preocupado:
Cualquiera de las siguientes soluciones es casi más fácil de implementar que de explicar :-).
Puede producir una señal (amarilla) AND (NOT_Blue) (conceptualmente, una puerta AND y un inversor) y luego muestrear la salida de la puerta AND en el borde descendente de la señal verde. Cada vez que obtenga un valor lógico verdadero / alto / 1 de la compuerta AND, deberá invertir la señal azul. Puede hacer esto restableciendo o configurando la división flip flop. Esto se sincronizará en la primera no coincidencia y permanecerá sincronizado después de eso, si su señal amarilla solo puede ocurrir cada segundo semiciclo de la señal azul.
Si la señal amarilla es capaz de originarse completamente al azar en relación con la polaridad de la señal azul, entonces puede perder la sincronización al azar. La selección anterior lo volverá a sincronizar en la mitad del siguiente semiciclo no coincidente.
Si desea que se vuelva a sincronizar lo antes posible, puede usar un borde ascendente de color amarillo ligeramente retrasado para muestrear el azul y establecer el azul alto si es bajo en este punto. Esto conduce a una repentina inversión de azul, por lo que obtienes una doble longitud azul alta con un pequeño pico negativo en el medio.
Para obtener puntos adicionales, puede hacer algo similar a lo anterior, pero organice la señal azul que realmente se ve para que se produzca solo una vez que se haya realizado la prueba egde amarilla. Lo que se ve externamente es que cada vez que el azul no está sincronizado con el amarillo, solo se extiende en el borde ascendente amarillo y permanece alto durante un período doble, volviendo así a sincronizarse.
Si el período doble azul alto no es aceptable, puede hacer la prueba cuando el azul es alto pero, por ejemplo, continuar con el cambio hasta un punto posterior, por ejemplo, extender la siguiente longitud azul baja a doble.
Si la introducción de una asimetría en azul no es aceptable, debe iniciar el sistema correctamente. Suponiendo que el azul no genere amarillo, en el momento de la inicialización puede mantener el flip-flop azul y luego, cuando se produce un flanco ascendente amarillo, se deja correr el azul, comenzando con un semiciclo alto.
Tenga en cuenta que la introducción de retrasos de tiempo asíncronos en un sistema digital sincronizado tendrá a los puristas gritando de horror. Debería ser posible llevar a cabo todas las acciones de forma síncrona en (no cerca de) los cambios del borde del reloj, PERO esto puede introducir un retraso de ciclos de reloj antes de que el sistema vuelva a sincronizarse en comparación con una solución asíncrona implementada con retraso.
Se aplican las precauciones habituales al tener cuidado de no introducir riesgos raciales con retrasos asíncronos, PERO esto puede ser de bajo riesgo aquí.
Cualquiera de las soluciones anteriores es casi más fácil de implementar que de explicar :-).
.