Arm Community
Site
Search
User
Site
Search
User
Support forums
SoC Design and Simulation forum
Confusion over AMBA AHB hsize[] signal definition
Jump...
Cancel
State
Not Answered
Locked
Locked
Replies
4 replies
Subscribers
92 subscribers
Views
11377 views
Users
0 members are here
AMBA
Bus Architecture
AHB
Options
Share
More actions
Cancel
Related
How was your experience today?
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
Confusion over AMBA AHB hsize[] signal definition
davemac2 davemac2
over 12 years ago
Note: This was originally posted on 26th February 2008 at
http://forums.arm.com
After reading the AMBA AHB spec rev 2, I am still confused over the relationship of the HSIZE[2:0] signal and the implemented bus width on an interface. If an AHB bus is implemented using 32 bit write and read data buses, I would think this would imply that hsize[2] is essentially unused and always '0' since data transfer width on this bus can only be a byte, half word, or word. Yet, I see interface signal specifications on various 32 bit bus AHB designs where hsize[2] seems to be used and is not optimized out even after synthesis?? My understanding of HSIZE[] and HBURST[] signals is that HBURST[] determines the number of data transfer beats on the bus for a burst transaction whereas HSIZE determines the data width of each transfer. The spec. seems to be vague on this with no examples.
dave mc
Parents
0
Colin Campbell
over 12 years ago
Note: This was originally posted on 28th February 2008 at
http://forums.arm.com
Hi Dave Mc,
You are correct that HSIZE[2] would never change if your data bus is 32 bits wide as masters cannot issue transfers wider than their natural bus width.
HSIZE will still be described in specifications for such a master as 3 bits wide because HSIZE is defined as 3 bits, and I'm sure if I designed a master with only 2 bits for HSIZE, the first question I would get would be "What is HSIZE[2] driven to ?".
As for why the extra unused bit is not optimised out during synthesis, I guess that comes down to the synthesis tools. You wouldn't optimise it out at component level because the signal appears on the bus interface, but I guess some intelligence from the synthesis tool "might" be able to remove the unused net at a system level.
And your understanding of the meanings of the HSIZE and HBURST signals looks fine to me, so maybe the spec did explain enough after all
JD.
Cancel
Vote up
0
Vote down
Cancel
Reply
0
Colin Campbell
over 12 years ago
Note: This was originally posted on 28th February 2008 at
http://forums.arm.com
Hi Dave Mc,
You are correct that HSIZE[2] would never change if your data bus is 32 bits wide as masters cannot issue transfers wider than their natural bus width.
HSIZE will still be described in specifications for such a master as 3 bits wide because HSIZE is defined as 3 bits, and I'm sure if I designed a master with only 2 bits for HSIZE, the first question I would get would be "What is HSIZE[2] driven to ?".
As for why the extra unused bit is not optimised out during synthesis, I guess that comes down to the synthesis tools. You wouldn't optimise it out at component level because the signal appears on the bus interface, but I guess some intelligence from the synthesis tool "might" be able to remove the unused net at a system level.
And your understanding of the meanings of the HSIZE and HBURST signals looks fine to me, so maybe the spec did explain enough after all
JD.
Cancel
Vote up
0
Vote down
Cancel
Children
No data