Para empezar, depende de la arquitectura de su diseño. Por ejemplo, considere la transmisión de 'datos' y 'dataValid' de un dominio a otro.
Si el reloj del circuito de origen es más lento que el reloj del circuito de destino, el circuito de destino puede, y lo hará, ver 'dataValid' como se afirma para más relojes de los que la fuente quiso que fuera. Si el reloj de origen es más rápido que el "reloj de destino", el circuito de "destino" puede pasar por alto que "dataValid" sea alto en su totalidad o verlo afirmado por menos relojes de lo que la fuente quería que fuera.
La lista de áreas de interés continúa, pero el punto es que el circuito debe diseñarse teniendo en cuenta el flujo de datos, los tiempos de viaje y el intercambio de ideas entre los dos circuitos. A menudo es esencial planearlo desde el principio, pero a veces se puede agregar más tarde con menos problemas. Luego están todos los problemas de diseñar la metastabilidad.
Todo se puede hacer, todo se hace perfectamente bien, pero necesita comprensión y planificación. No es una tarea trivial.