How is it possible for AMBA bus protocol to communicate between ASB bus and APB bus,if they operate in different frequency's? ASB is high performance high frequency bus and APB is low performance low frequency that communication is happening?

  • It's been a while since I saw any mention of ASB. It dates back to about 1999, but at that time the AHB protocol was also available, and as it used rising edges of the clock only, rather than both edges in ASB, so was much better suited to synthesis tools.

    However regardless of whether you are looking at ASB, AHB, AHB-lite or AXI, if you have 2 buses operating at different frequencies, the bridging logic between them will need to safely synchronise the transfers as well as perform the protocol conversion required.

    If the clock ratio is asynchronous you will probably need to look at something like double registering the signals in both directions to ensure safe clock domain crossings, and then performing the protocol conversions.

    For synchronous relationships (going to a slower APB), you will need to register system bus inputs so that they are valid when you need to perform the 2 cycle APB access, while holding the system bus stalled, until the end of the 2 cycle APB access, at which point you can end the wait states and return read data if required.

    Sorry for the slightly generic reply, but handling clock domain crossings isn't really anything specific to any AMBA specifications, so not needing AMBA specific solutions. Hopefully also you are not using ASB as it usually is really is too old to be considered for current designs. Using AHB or AXI might be a better solution for your system bus, with APB for your peripherals.

    But if ASB really is your thing, please try to describe which signals are causing confusion when converting to APB, and perhaps we'll be able to help.