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

AHB protocol question

Note: This was originally posted on 10th September 2009 at http://forums.arm.com

Hi,
I have some issue with this AHB burst transfer and appreciate if you can clarify.

Time     |   T0      |    T1    |    T2     |   T3    |   T4   |   T5   |   T6   |    T7   |   T8    |   T9   |   T10  |  T11  |   T12 |   T13  |  T14|  T15   |  T16 |  T17 |

HGrant  |-----1----|----1----|----1-----|----1---|---1----|---1----|---1---|----1----|---1----|---1----|---1----|---1----|__0__|---1----|---1---|---1----|---1---|---1---|
HTrans  | NSEQ |  SEQ  | SEQ    | SEQ | SEQ  | SEQ | SEQ | BUSY| BUSY|BUSY| SEQ  | SEQ | BUSY|BUSY|BUSY|BUSY|SEQ | IDLE
HReady |----1----|___0__|___0__|---1---|---1----|---1----|---1----|---1----|---1----|---1----| ---1---|---1----|----1----|---1---|__0__|__0__|--1---|---1---|
HAddr   |    A      |            A+4                    |  A+8 |  A+C |  A+10|           A+14
HBurst   |---------------------------------------------------------------------------INCR8--------------------------------------------------------------------------------------|

Some of us think the slave does not behave correctly since it deasserted HReady at T15 after the HGrant is asserted at T13 and AHB master drove HTRANS to BUSY at T14.

Others think that the master misbehave since it must not drive HTrans to BUSY at T12-T15.

Thanks,
BT
Parents
  • Note: This was originally posted on 10th September 2009 at http://forums.arm.com

    Hello BT,

    The first problem I can see here is that HGRANT went low in T12, and as HREADY was 1'b1 at this time, it meant your master was no longer granted in T13. This is early burst termination, so the master should have changed HTRANS to IDLE or NONSEQ in T13, and should have changed HBURST to INCR or SINGLE to complete the remaining transfer to "A+1C".

    HTRANS could not be BUSY in T13, T14 or T15, and could not be SEQ in T16.

    The second problem is that HREADY has been driven low in T14 and T15 as these would be the data phases of the BUSY transfer indicated in T13. However as the sequence has already gone wrong before this, you should initially focus on why your master did not see the early burst termination in T13.

    So your first group are wrong in that HREADY could also not be low in T14 (not related to HGRANT changing), and your second group are wrong because HTRANS could be BUSY in T12 (but not T13-T15).

    Hope that makes sense.

    JD
Reply
  • Note: This was originally posted on 10th September 2009 at http://forums.arm.com

    Hello BT,

    The first problem I can see here is that HGRANT went low in T12, and as HREADY was 1'b1 at this time, it meant your master was no longer granted in T13. This is early burst termination, so the master should have changed HTRANS to IDLE or NONSEQ in T13, and should have changed HBURST to INCR or SINGLE to complete the remaining transfer to "A+1C".

    HTRANS could not be BUSY in T13, T14 or T15, and could not be SEQ in T16.

    The second problem is that HREADY has been driven low in T14 and T15 as these would be the data phases of the BUSY transfer indicated in T13. However as the sequence has already gone wrong before this, you should initially focus on why your master did not see the early burst termination in T13.

    So your first group are wrong in that HREADY could also not be low in T14 (not related to HGRANT changing), and your second group are wrong because HTRANS could be BUSY in T12 (but not T13-T15).

    Hope that makes sense.

    JD
Children
No data