Tutorials
Protocols
Learn More
User Signaling
AHB5 includes optional user signals for carrying system-defined sideband metadata with request, write-data, read-data, and response phases. These signals are not needed for every small design, but they matter in configurable IP and fabrics that need to preserve extra transaction information.
User signals
The specification generally recommends not using User signals unless there is a clear system contract, because the protocol does not define their meaning. Two components can use the same User bits incompatibly unless the SoC integration rules define them.
| Signal | Source | Width property | Recommended width | Purpose |
|---|---|---|---|---|
| HAUSER | Manager | USER_REQ_WIDTH | 0 to 128 bits | User-defined request attribute. |
| HWUSER | Manager | USER_DATA_WIDTH | 0 to DATA_WIDTH/2 | User-defined write-data attribute. |
| HRUSER | Subordinate | USER_DATA_WIDTH | 0 to DATA_WIDTH/2 | User-defined read-data attribute. |
| HBUSER | Subordinate | USER_RESP_WIDTH | 0 to 16 bits | User-defined response attribute for reads and writes. |
These signals have the same timing and validity requirements as their associated channel.
For data-channel User signals, the spec recommends byte-related packing. If each data byte has m User bits and the data bus has n bytes, then total User width is u = m * n. The User bits for byte y are:
HWUSER[((y * m) + (m - 1)) : (y * m)]
HRUSER[((y * m) + (m - 1)) : (y * m)] User signal interconnect rules
| Interconnect behavior | User signal recommendation |
|---|---|
| Transfer is not modified | Transport associated User signals unchanged. |
| One transfer converted to multiple transfers | Replicate HAUSER into each generated transfer. Use the relevant byte-associated HWUSER or HRUSER bits for each generated data transfer. |
| Multiple transfers converted to one transfer | Use the first transfer’s HAUSER. Combine data User bits for the generated HWUSER or HRUSER. |
| Bridge drops or changes User bits | Document the behavior as part of the system contract. |
User signal stability follows the associated phase. For example, HAUSER must not change while HREADY is LOW unless the response is ERROR. HWUSER follows write data timing. HRUSER and HBUSER are valid on completing OKAY read/write data phases.
User signaling checklist
| Check | Reason |
|---|---|
| Width-zero user signals are absent | Avoids dangling unused logic. |
| User signal meaning is defined by the SoC contract | The protocol carries the bits but does not define their semantics. |
| User signals follow phase validity rules | Prevents stale metadata. |
| Interconnect transformations preserve or document User behavior | Width conversion and transfer splitting can otherwise corrupt metadata. |
| User signal configurations are included in compatibility tests | Configurable IP often fails at optional-feature boundaries. |
AHB Protocol