Cambio de reloj usando las puertas del reloj

4

Estoy trabajando en un diseño ASIC y necesito usar diferentes fuentes de reloj para un bloque digital en diferentes modos de operación.

¿Puedo usar de forma segura sincronización de reloj en combinación con una puerta OR para generar el reloj como se muestra en el siguiente diagrama?

Si eso está bien, ¿qué restricciones necesitan las señales clk_enable (es decir, sin interrupciones, no superpuestas, sincronización con relación a los respectivos clk , ...)?

Tenga en cuenta que las puertas del reloj están utilizando un pestillo en D que es transparente cuando el correspondiente clk está BAJO.

    
pregunta AllInOneBoat

3 respuestas

3

La sofisticación de la sincronización del reloj depende de cuánto va a responder la lógica descendente a un pulso de reloj incorrecto.

Por ejemplo: si la lógica descendente siempre se restablece después del cambio de reloj, entonces puede salirse con la suya con casi cualquier cosa para su lógica de sincronización de reloj.

Sin embargo, si espera que la lógica descendente continúe funcionando correctamente cuando se cambian los relojes (sin reinicio), debe diseñarse la lógica de activación de modo que nunca tenga pulsos de reloj que sean demasiado cortos y que violen sus restricciones de tiempo.

El peligro con los pulsos cortos de reloj que violan sus restricciones de tiempo es que podría poner una máquina de estados en un estado inválido del cual no se puede recuperar. Esto es realmente fácil de hacer, así que no dé por sentado que no le sucederá a usted.

Diseñar una buena lógica de conmutación / conmutación de reloj que no produzca pulsos de reloj cortos es difícil y generalmente requiere un conocimiento íntimo de su proceso ASIC. En lugar de inventar el suyo, le sugiero que hable con su casa de ASIC o con quienquiera que haya obtenido sus bibliotecas de ASIC. Las probabilidades son muy altas de que ya tienen el circuito que necesitas.

Actualización:

El OP indicó que las puertas del reloj en los esquemas son de la biblioteca ASIC. Si esas puertas están diseñadas para no interrumpir (I.E., nunca producen un pulso que sea demasiado corto), entonces el único truco es permitir suficiente tiempo entre desactivar un reloj y habilitar el siguiente. De esta manera, puede cambiar de forma limpia entre los relojes y no tener errores de reloj.

Diseñar la lógica para hacer esto (mantener suficiente tiempo entre deshabilitar / habilitar) sigue siendo difícil, pero no muy difícil. En una escala del 1 al 10, esto sería un 6. Por otra parte, ¡diseñar una puerta de reloj sin errores sería un 10 o incluso un 12!

    
respondido por el user3624
1

EEtimes tiene un artículo que habla sobre el circuito de conmutación de reloj libre de fallas. Basado en este artículo, Young Rhoney también tiene un buen blog, reloj 2x1 y Nx1 conmutación .

Como se explicó, la idea clave para hacer un cambio de reloj sin problemas es apagar un reloj antes de encender el otro. El blog también da circuito para el cambio de reloj Nx1.

    
respondido por el lisnw
0

Además de los comentarios de David: existen riesgos más allá de los pulsos cortos de reloj. A menos que pueda emitir una garantía férrea en cuanto a la validez de las líneas de habilitación de reloj, es posible que desee considerar controlar la habilitación de reloj mediante la salida de un decodificador, para evitar (por ejemplo) superponer múltiples señales de reloj a través del OR. Si puedes garantizar que tengan la misma frecuencia y fase, no es un problema, pero probablemente no tendría sentido tener varios relojes en primer lugar.

    
respondido por el Reinderien

Lea otras preguntas en las etiquetas