2.3.2. Write Data Can Appear at an AXI Interface before the Write Address, which can Cause a Deadlock Condition
In the Arm* AMBA* AXI* and ACE* Protocol Specification ( Arm* IHI 0022H.c), the following is described:
A3.3 Relationships between the channels
- A write response must always follow the last write transfer in a write transaction.
- Read data must always follow the read address of the data.
- Channel handshakes must conform to the dependencies defined in Dependencies between channel handshake signals.
The protocol does not define any other relationship between the channels. The lack of relationship means, for example, that the write data can appear at an interface before the write address for the transaction. This can occur if the write address channel contains more register stages than the write data channel. Similarly, the write data may appear in the same cycle as the address.
There are times when the Intel® Stratix® 10 device must perform a “fence and drain” operation on the FPGA-to-SDRAM bridge, which means that it blocks all future transactions and completes all current transactions across the AXI bridges. During this operation, the system does not account for the above AXI protocol specification, where the write data can appear at the interface before the write address for the transaction. This can cause corrupt/invalid data to be left in the system, which can cause undefined behavior or system halt.
The solution is to require the AXI initiator (the user logic in the fabric portion of the device) to align the AXI write data channel and the AXI write address channel at the FPGA-to-SDRAM bridge, or where it enters the Platform Designer generated interconnect. You must ensure WVALID is not asserted before AxVALID is asserted.
- Intel® Stratix® 10 TX 400
- Intel® Stratix® 10 TX 850
- Intel® Stratix® 10 TX 1100
- Intel® Stratix® 10 TX 2500
- Intel® Stratix® 10 TX 2800
Status: No planned fix