Para generar FULL / EMPTY para el control FIFO, la dirección de lectura / escritura debe transferirse al lado de escritura / lectura para la comparación. Una solución es utilizar el código gris para que la dirección se entregue de manera segura al dominio del reloj diferente, ya que solo se invertirá un bit a la vez. Esto es bueno si la profundidad de FIFO D = 2 ^ K porque solo un bit cambia para la transición de D-1 a 0. Pero, ¿y si D? = 2 ^ K, por ejemplo, 13? El código gris es 1010, mientras que la siguiente dirección es 0000, por lo que se cambiarán 2 bits, y el sincronizador de 2 etapas no es seguro para tal cambio. ¿Cómo se resuelve este problema para los FIFO con profundidad arbitraria? ¿Se utilizarán esquemas de sincronización más complicados? Si es así, parece que ya no es necesario convertir de / a código gris.