Must a read after a write to the same address return the newly written data?
See
Scenario
When there is an AHB write followed by a read from the same address, should the read return the old or the new data when the read address phase is in same cycle of the write data phase?
Answer
The answer to this question is dependent on the design of the slave. A simple slave will not be buffering any data, so the returned read data will be the latest. A more complex slave could implement buffering for write data (if allowed by HPROT[2]) and so it could "snoop" the write buffer contents before returning read data, or it might just return the previously stored data regardless of what might be buffered. In conclusion, all the AHB specification requires is that data is returned.
When there is an AHB write followed by a read from the same address, should the read return the old or the new data when the read address phase is in same cycle of the write data phase?
Answer
The answer to this question is dependent on the design of the slave. A simple slave will not be buffering any data, so the returned read data will be the latest. A more complex slave could implement buffering for write data (if allowed by HPROT[2]) and so it could "snoop" the write buffer contents before returning read data, or it might just return the previously stored data regardless of what might be buffered. In conclusion, all the AHB specification requires is that data is returned.