In the AXI (Advanced eXtensible Interface) protocol, a decode error signifies that an address accessed by a master is not recognized by any slave device connected to the interconnect or system.
A decode error is specifically indicated by a particular value on the response channel signals. According to the AXI protocol, a decode error is identified when the BRESP (Write Response) or RRESP (Read Response) signal returns a value of 0b11
, which is equivalent to 3.
Understanding AXI Response Signals
The AXI protocol uses response signals to communicate the status of a transaction back to the master. These signals include:
- OKAY (
0b00
): The transaction completed successfully. - EXOKAY (
0b01
): The transaction completed successfully and exclusively. (Used in exclusive access transactions). - SLVERR (
0b10
): A slave error occurred (the slave detected an error during the transaction). - DECERR (
0b11
): A decode error occurred.
Response Value | Signal | Meaning |
---|---|---|
0b00 (0) |
OKAY | Success |
0b01 (1) |
EXOKAY | Exclusive Success |
0b10 (2) |
SLVERR | Slave Error |
0b11 (3) |
DECERR | Decode Error |
Decode Error in Practice: AXI Interconnect Example
A common scenario where decode errors are handled is within an AXI Interconnect IP. The interconnect is responsible for routing transactions from masters to the correct slave based on the address. If a master initiates a transaction to an address range that is not mapped to any connected slave, the interconnect will typically generate a decode error response.
Based on the provided reference:
- When using an AXI Interconnect IP configured with multiple slave interfaces (S00, S01) and a master interface (M00), the interconnect routes transactions.
- If a simulation shows that the BRESP signal from slave interfaces S00 and S01 return a value of 3, this indicates a decode error.
- This occurs because, from the perspective of the component acting as a master initiating transactions towards S00 or S01, the address it is trying to access is not recognized or correctly decoded by those interfaces or the logic behind them.
In essence, a decode error means the system could not find a valid destination for the requested address, often due to:
- Attempting to access an unmapped memory region or peripheral.
- Incorrect address decoding logic within the system or interconnect.
- Configuration errors in the AXI interconnect or address mapping.
Addressing decode errors typically involves verifying the system's address map, ensuring that all accessed addresses correspond to valid slave devices, and checking the configuration of the AXI interconnect and associated decoding logic.