¿Cómo funcionan los FIFO de cruce de reloj?

0

Estoy bastante familiarizado con el concepto de metastabilidad: tiene dos dominios de reloj asíncronos, no hay forma de garantizar que los datos se configuren / mantengan correctamente cuando se ingresan en un flip flop si se sincronizan desde un dominio diferente (especialmente con diferentes frecuencias de reloj que no son múltiplos enteros entre sí). El estado de la salida del registro reaccionará de forma impredecible.

En un caso de bit único de movimiento lento: el diseño típico solo canalizará algunos registros de "protección" en el nuevo dominio de reloj antes de utilizar la señal, lo que dará tiempo al estado metaestable para resolver.

En una señal de bus rápido / ancho no es tan simple. La naturaleza impredecible de la metastabilidad puede hacer que algunos bits de un bus se asienten antes que otros (suponiendo que no pueda coincidir perfectamente con todas las longitudes de rastreo de entrada del registro y que coincida perfectamente con los tiempos de registro), que pueden parecer errores. En este escenario, los diseñadores pueden utilizar un FIFO de cruce de reloj para pasar datos fiables de un lado a otro.

Entonces, ¿qué aspecto tienen las agallas de un FIFO de cruce de reloj y cómo aborda el problema fundamental de la sincronización asíncrona?

    
pregunta user2913869

1 respuesta

1

El reloj de doble ram se utiliza para formar un fifo. Un dominio de reloj escribe las otras lecturas. La parte difícil es saber cuándo el fifo está lleno / vacío. Esto se puede lograr de varias maneras. Un método popular es utilizar contadores codificados en gris. Puede sincronizar fácilmente el recuento entre dominios de reloj porque solo cambia un bit a la vez.

    
respondido por el user110971

Lea otras preguntas en las etiquetas