Wednesday, April 15, 2009

AHB Specification - Few points



What is the concept of global hready?
When Core act as Slave:
1. Slave should check only t_hready_glb during the address phase. (No need to consider t_hready in address phase).

2. Slave should check only t_hready dur
ing data phase. (No Need to consider t_hready_glb in data phase).

When Core act as Master:
Master should consider on
ly m_hready (currently addressed target's hready) in both address and data phase. No need to consider t_hready_glb in both address and data phase.


Is HREADY an input or an output from slaves?
From ARM Website:
Applies to: AMBA AHB

An AHB slave must have the HREADY signal
as both an input and an output.

HREADY is required as an output from a slave so that the slave can extend the data phase of a transfer.

HREADY is also required as an input so that the slave can determine when the previously selected slave has completed its final transfer and the first data phase transfer for this slave is abo
ut to commence.

Each AHB Slave should have an HREADY output signal (conventionally named HREADYOUT) which is connected to the Slave-to-Master Multiplexer. The output of this multiplexer is the global HREADY signal which is routed to all masters on the AHB and is also fed back to all slaves as the HREADY input.


Explain the concept of Retry and Split in AHB?
Lets say the master is doing 4beat transaction. For the first data phase, the slave sends OK response, and for the second data phase the slave sends split/retry response. For both retry and split, the master has to do the new transaction for 3Dwords, because only first Dword sent successfully in first data phase. So here the burst size will change. Because the master initiated with 4beat burst and because of split/retry response, only one DWORD is sent successfully and the master has to do the remaining 3 Dwords in Single transfers (new transactions). So it is recommended for the slave to send split or retry only during first data phase, so that the master can retry the entire 4beat transaction again (instead of changing the burst size for the remaining transactions).

The main difference between split and retry is,
For retry, the arbiter will send the grant whenever the master request for a bus, whereas
For split, the arbiter will assert the grant only when slave sends hsplit to the master.

Which is the only active low signal in AHB?
HRESETn is the only active low signal in AHB.

Does AHB supports address bus more than 32 bits?
No, AHB supports only 32 bit address bus.

What is maximum data width of an AHB bus?
AHB supports data width from 8 bits to 1024 bits.

How many Master/Slave can be connected?
We can connect maximum of 16 Master/Slave.

Why the boundary cross is set to 1K in AHB protocol?
It is possible for AHB to operate with a small memory
region partitioning, however, doing so might have a
number of potential problems:
1. the fan out of lower address bit in the system-on-chip design might be quite high. Connecting those bits to the AHB decoder might badly affect bus performance (max freq) and power consumption.

2. a long burst might end up going across two devices, as a result the first transfer going to the second device could become a SEQ transfer, hence breaking the AHB protocol.

3. AMBA system design software from various vendors might not support memory boundary less tan 1kB.

I got the above reply from,

http://newsgroups.derkeiler.com/Archive/Comp/comp.sys.arm/2006-04/msg00044.html


I hope the second point is strong point to have the boundary as 1kB for AHB.


Another one... found in ARM Forum
http://forums.arm.com/index.php?showtopic=12840


And another one...
http://www.velocityreviews.com/forums/t298804-ahb-protocol-document-clarification.html

If a master bursted across a 1K boundary (i.e. into the next page)
---> the first slave might or might not remain selected and
---> the second slave might or might-not pick up selection
(it really shouldn't though even if it's HSEL = 1 when HTRANS != NSEQ)


Can the bus master cancel a transfer it has started?
No provision is made within the AHB specification for a bus master to cancel a transfer once it has commenced.

How many wait states a slave insert?
It is recommended, but not mandatory, that slaves do not insert more than 16 wait states to prevent any single access locking bus for a large number of clock cycles.

Where can I find more questions related to AHB?
Here is the link for Frequently Asked Questions to AHB

No comments: