synchronizers...
When a signal crosses from one clock domain to another clock domain then there is high probability that the capturer of data won't meet setup and hold timing and it will create a metastability condition so to avoid it we use synchornizer.
There are different ways to avoid this .
1. We can use async FIFO which can take of this.
2. Use two more FF in the data path so that metastabiltiy condition can be avoided and data become stable when it reaches 2nd clock domain.
You will get a lot of materials on internet for this.
Hope this helps,