Whenever there is going to be transactions b/w 2 clock
domain, irrespective of the clock's speed you need to
synchronize them. Here synchronizer is needed to
avaoid the metastable states in the machine, which can
be caused due to 2 different clcok-tree's flop's
direct talking .
Case 1: Single signal crossing clock domains, toggling slowly (i.e. not a pulse).
Use 2 flip-flops to re-time it into the new clock domain
Case 2: Single signal crossing clock domains, pulsing for 1 clock cycle in the original domain.
Convert the pulse into a toggled signal, pass the toggled signal through the clock boundary, re-time with 2 flip-flops, re-convert back into a pulse.
Hi,
in this document, there is a section on getting asynchronous inputs and how to use handshake signals to prevent metastability. this should solve any problems of multi-clock domains.