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

Question about amba ahb5 wait states

Hello. I have a question about ahb5's wait states. 

In ahb protocol specification 3.7.1 and 3.7.2, the change of HTRANS and Address, Why does Master inserts IDLE and busy transfer? Is this because the Maser has to change transfer type and address? 

If the master doesn't have to change the type or address, It is right to just maintain the the control signal, address, data? 

thanks.

Parents
  • IDLE and BUSY transfers are used by the AHB Manager when it doesn't have a data transfer it wants to request in that cycle.

    The difference between IDLE and BUSY transfers is that a BUSY would be used when the AHB Manager is in the middle of a burst, but isn't quite yet ready to move on to the next transfer in the burst. IDLE would be used when there is no ongoing burst.

    For a waited IDLE transfer where there is no ongoing burst, if the AHB Manager then wants to change to indicate a NONSEQ transfer it is very likely that it will need to change the address and control signals for that new transfer (it would be very unlikely that the IDLE transfer address and control signals would be what are required for a new NONSEQ transfer).

    In the case of a BUSY transfer when there is an ongoing burst, if the HTRANS change is from BUSY to SEQ it means the burst is continuing and so the address and control signals will already be correct for this next transfer and so won't change. But if the AHB Manager does not want to continue with the burst (this is only legal if this is an undefined length burst, or if an ERROR response is received), the address and control signals will possibly go to "default" values if HTRANS changes to IDLE, or they will change to a completely new NONSEQ transfer request so address and control values will change.

Reply
  • IDLE and BUSY transfers are used by the AHB Manager when it doesn't have a data transfer it wants to request in that cycle.

    The difference between IDLE and BUSY transfers is that a BUSY would be used when the AHB Manager is in the middle of a burst, but isn't quite yet ready to move on to the next transfer in the burst. IDLE would be used when there is no ongoing burst.

    For a waited IDLE transfer where there is no ongoing burst, if the AHB Manager then wants to change to indicate a NONSEQ transfer it is very likely that it will need to change the address and control signals for that new transfer (it would be very unlikely that the IDLE transfer address and control signals would be what are required for a new NONSEQ transfer).

    In the case of a BUSY transfer when there is an ongoing burst, if the HTRANS change is from BUSY to SEQ it means the burst is continuing and so the address and control signals will already be correct for this next transfer and so won't change. But if the AHB Manager does not want to continue with the burst (this is only legal if this is an undefined length burst, or if an ERROR response is received), the address and control signals will possibly go to "default" values if HTRANS changes to IDLE, or they will change to a completely new NONSEQ transfer request so address and control values will change.

Children
No data