Use a destination-domain synchronizer for a persistent single-bit level, a toggle or handshake for events, and a stable-data handshake or asynchronous FIFO for coherent multi-bit transfers.
Reason it through
- Write down the source and destination clock relationship, event rate, latency budget, and whether loss is allowed.
- A narrow pulse can disappear between destination edges, so pulse width and event spacing are part of the contract.
- Synchronizing bus bits independently does not preserve a coherent word.
