data transfer from fast APB clock domain.


I have a peripheral with an AMBA APB interface. The issue that I am facing is that of clock domain crossing. The processing logic in the peripheral is required to operate at a relatively slow clock frequency, but the clock frequency of the APB interface can be 4 to 5 times that of the slow clock domain. I have been considering the two clock domains as asynchronous with respect to each other, even though the faster clock is generated from the slow clock by means of a PLL; therefore, the phase relationship between the two clock should be constant.

My problems lies in the fact that APB has no signal to hold the bus in the case where the data from a write cycle to the slow clock domain has not yet been registered by the slow clock when a second write cycle starts to happen.

I am considering to options:

1) Have the Configuration Registers clocked with the fast clock signal and only have event signals generated by a write or a read cross the clock domain boundary.

2) Buffer data with a FIFO and synchronize the control signals to the slow clock domain.

Any suggestions would be appreciated. Thank you in advance. Best Regards, Marco.

Reply to
Loading thread data ...

AMBA APB version 3 has such a signal I believe, pready.

Cheers, Jon

Reply to
Jon Beniston

Yes, thank you for pointing out the availability of PREADY in APB version 3.0 I had read about that in a different message thread. Unfortunately, as one may expect I am limited by the fact that I am interfacing to an AMBA 2.0 system.


J> > Hello.

Reply to

Use your APB clock as the clock for your slower circuit, it will use slightly more power but your static timing problems will handled by the tools.

Next, use a "data ready" status bit > Hello.

Reply to

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.