AHB Design Rules
AHB Design Rules
Page 1 of 5
AHB design rules 12/10/24, 9:58 AM
Early burst termination is not allowed for Fixed length bursts or single burst.
Single burst must be followed by IDLE or NONSEQ transfer
Only INCR burst (undefined length burst) can have early termination transfer
with BUSY transfer.
AXI does not allow early burst termination, it will do conversion from AHB INCR
burst to AXI fixed burst length.
This is why even partial access, always read 32-bit is OK, return data is the
same for all byte/half word access
Page 2 of 5
AHB design rules 12/10/24, 9:58 AM
>According to AHB protocol, AHB masters will only check HREADY response
from Slave to see if it needs to hold AHB address/control?
So, as described below, AHB master will not only check HREADY to see if it
needs to hold AHB address/control.
AHB protocol do not include requirement about low power state. And, as you
can see in signal list, there is no signal to indicate power state. Only one clock
HCLK is used in protocol. So, theoretically speaking, because AHB is a clock-
edge driver protocol, master will not work as well if slave clock is not available.
It is reasonable that no information should be transferred if slave can not
accept it.
Page 3 of 5
AHB design rules 12/10/24, 9:58 AM
>Does Slave HREADY require to be asserted HIGH during address phase of the
AHB transfer to the slave?
NO, HREADY indicates the state of data phase. Slave should drive it depending
on the completion situation of data process. In AHB protocol, transfer follow a
pipeline structure that data phase is in same cycle with the address phase of
next transfer. So, when you refer to "address phase", you are also referring to
the cycle of data phase of previous transfer. HREADY only play a role in data
phase. When HREADY is asserted HIGH (indicate data phase is completed),
slave sample the address phase information of next transfer in same cycle and
enter the data phase of current transfer in next cycle.
> This means it will check HREADY + HTRANS. IF HREADY is LOW and HTRANS
is changing from non-active (IDLE/BUSY) to active (NON-SEQ/SEQ) state,
HTRANS need to be kept constant, Right?
Yes, if in active state, HTRANS should keep constant until HREADY become
HIGH or error response is indicated in HRESP signal.
>There is no way for bus masters to check if slave clock is available or not to
hold the address phase information, right?
However, there are software and hardware solution which is not part of content
of AHB protocol to solve it. Software is the most flexible way if it could know
the clock on-off state in slave side and control following code not to access to
that memory region. This solution requires highly skilled and carefully
programming ability. Because the clock-off salve still can be access. It may
bring deadlock to master port if HREADY keep LOW when clock is off. Even
though HREADY is HIGH, master will misunderstand this data as correct and
bring following potential bug to execution.
>We have been using the bus more or less like this for several chips on the
markets. Do let me know your comment on our usage.
Page 4 of 5
AHB design rules 12/10/24, 9:58 AM
It is ok to use software solution. Considering that it have been using for several
chips on the markets, I think the software has experienced a lot of examinations
to prove to be robust enough. As answered in the former question, software is
rely on the programer to make sure it is executed in correct way. I am sorry for
that I could not provide more comments on software.
>If the AHB slave is not selected, HREADY still need to be HIGH right?
Page 5 of 5