u24c02
Advanced Member level 1
- Joined
- May 8, 2012
- Messages
- 404
- Helped
- 2
- Reputation
- 4
- Reaction score
- 2
- Trophy points
- 1,298
- Activity points
- 4,101
Transfer of 8-bit data between clock domains can work without a FIFO if the data changes infrequently. You'll synchronize only the data valid signal and sample the data in the receiving clock domain when it's known stable.
You'll possibly want a full handshake with a synchronized acknowledge signal telling the sending clock domain that the data have been received and can be updated with new content.
No. This restriction would apply in any domain crossing data transfer, even with a FIFO. Receiving data available in a two stage synchronizer will at least take two cycles of the slow clock. You'll end up with a data rate considerably below the output clock, e.g. 5 MHz.Did you mean that the Input data rate does not excess output data rate?
The key point is "sample the data in the receiving clock domain when it's known stable". Synchronized data available signal gives you the information about data being stable. Second requisite is not to write new data before it has been safely received.
Input data 8bit
output data 8bit.
Input clk 100Mhz
output clk 15Mhz
Input data valid
Output data valid
It is impossible to transfer all of the data as ingress rate > egress rate (i.e. 100 MB/sec vs. 15 MB/sec transfer rates). You can only sample some of the data in this case.What if stable datum are coming to output continuously as 100Mhz, Then How do that get the stable data?
It is impossible to transfer all of the data as ingress rate > egress rate (i.e. 100 MB/sec vs. 15 MB/sec transfer rates). You can only sample some of the data in this case.
You would have to capture a single sample in a holding register (or an enabled register), generate your valid, synchronize that valid from the 100 MHz to the 15 MHz (valid must persist for at least 7 clock cycles, in 100 MHz, to be at least one clock period in the 15 MHz domain), detect valid in the 15 MHz domain, capture the stable output of the holding register. After all that which will be 10+ 100 MHz clock cycles you can now release the held 100 MHz data and start sampling another byte.
You need to go back and study the fill drain rate problem. Based on what you've posted you're going to overflow your "tank".
You mean that 100/15 = round 6.666 = 7, so you said 7 clock be needed to input part. That is, 1Byte come in 1cycle at 100Mhz, then it need 7 cycle to out at 15Mhz.
if you mean this , I agree. But the important thing is the input never valid until after done output valid. So handshake method needed to here. I get it.
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?