Arm Community
Site
Search
User
Site
Search
User
Groups
Education Hub
Distinguished Ambassadors
Open Source Software and Platforms
Research Collaboration and Enablement
Forums
AI and ML forum
Architectures and Processors forum
Arm Development Platforms forum
Arm Development Studio forum
Arm Virtual Hardware forum
Automotive forum
Compilers and Libraries forum
Graphics, Gaming, and VR forum
High Performance Computing (HPC) forum
Infrastructure Solutions forum
Internet of Things (IoT) forum
Keil forum
Morello forum
Operating Systems forum
SoC Design and Simulation forum
SystemReady Forum
Blogs
AI and ML blog
Announcements
Architectures and Processors blog
Automotive blog
Graphics, Gaming, and VR blog
High Performance Computing (HPC) blog
Infrastructure Solutions blog
Internet of Things (IoT) blog
Operating Systems blog
SoC Design and Simulation blog
Tools, Software and IDEs blog
Support
Arm Support Services
Documentation
Downloads
Training
Arm Approved program
Arm Design Reviews
Community Help
More
Cancel
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
88 subscribers
Views
10652 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 11 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 11 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
Up
0
Down
Cancel
Reply
0
Colin Campbell
over 11 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
Up
0
Down
Cancel
Children
No data