Normally the AHB arbiter will only grant a different bus master when a burst is completing. Suppose for a INCR4 burst it can change the grant once it samples the 3rd address with SEQ transfer. As depicted in waveform below, arbiter will change grant after sampling address A13 at T6.
Suppose Master 1 needs to perform a BUSY transfer before the last transfer i.e for A14 . Then the grant should not be changed after sampling 3rd transfer as shown in waveform below. At T8 Master 1 needs grant to perform last transfer A14.
But the Arbiter will be able to sample the BUSY transfer at T8. So if the grant is changed after sampling the 3rd address A13, there will not be grant for last transfer as shown in below waveform. What is the solution for this?
I think I've mentioned this in reply to every one of the AHB questions you have asked so far, so please could you answer it so I know how best to advise you ?
Are you really using the original AMBA 2 AHB protocol in a design ?
All of your questions so far have been abpout SPLIT and RETRY responses, and issues about bus arbiter designs, amongst the more complex parts of the AMBA 2 AHB protocol, which were then removed from the much simpler and more useable AMBA 3 AHB-lite protocol.
I now very rarely see designers implementing new designs using this old bus protocol, so can you explain why you have chosen to use this protocol over the much simpler newer AHB variants (AHB-lite and AHB5) ?
If you are looking to learn about AMBA 2 AHB purely as an academic task, please don't as you would learn much more useful practical knowledge by studying AHB-lite instead.
View all questions in SoC Design forum