This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Without the IDLE transfer between the bursts, can the arbiter change the master?

I have a problem about AHB 2.0, the circumstance is:

The master send two burst without IDLE transfer, and the HBURST is INCR.

So the arbiter can’t predict when the burst finishes.

And the sequence of the HTRANS is as below:

| NONSEQ  | SEQ | SEQ | SEQ | NONSEQ | SEQ | SEQ | SEQ | SEQ | SEQ |

And during the whole processing, the HRESP is always OKAY.

I was wondering that can the arbiter change another master when the first burst is finished.

  • This is a common problem in AHB system, the arbitration process takes two HCLK cycles, so by the time the new master gets on the bus the previous master could have started a new burst.

    This is why in a couple of areas of the AHB protocol specification you will see references to "Early Burst Termination", both masters and slaves must be designed to support if this happens.

    And this Early Burst termination isn't just limited to undefined length INCR bursts, it also occurs with defined length bursts as they could include BUSY transfers before the final SEQ access.

    So there isn't really any way of designing an arbiter so that it will only change HGRANT at the exact point an undefined length burst is ending because the arbiter only sees that when HTRANS changes to IDLE or NONSEQ, and similarly for undefined length bursts because by the time you sample HTRANS as SEQ for the nth transfer in the n-beat burst it is too late to change HGRANT.

    The best approach is to design your arbiter to "try" to change HGRANT for defined length bursts when you expect the burst to end (so ignoring possible BUSY transfers), and for undefined length bursts just allow this master to be granted for a predefined number of cycles.

    JD