I do have a question on legal 'htrans' value after an error response in AHB protocol.
The specification says that "If a slave provides an ERROR response then the master may choose to cancel the remaining transfers in the burst. However, this is not a strict requirement and it is also acceptable for the master to continue the remaining transfers in the burst."
In above case, the slave responded with an error and thus the master can choose to cancel or continue the transfer.
When cancelling, it can transmit an IDLE transfer.
But what if it wants to continue the transfer? Can it send anything?
What would be the legal 'htrans' type?
For me, it seems NONSEQ, SEQ, and BUSY are legal when continuing the transfer and want to check it this is correct.
If the master ignores the ERROR, the only effect of the ERROR response is that it holds HREADY low for a cycle, so has the effect only of a wait state
Joon Hong said:Also, if you look at the link below, you would notice that NONSEQ can come at T3 as a new transfer regardless of the transaction type in T2. It doesn't make sense if your statement is true. https://community.arm.com/developer/ip-products/system/f/soc-design-forum/47143/ahb-lite/166826#166826
Also, if you look at the link below, you would notice that NONSEQ can come at T3 as a new transfer regardless of the transaction type in T2. It doesn't make sense if your statement is true.
https://community.arm.com/developer/ip-products/system/f/soc-design-forum/47143/ahb-lite/166826#166826
This old forum post was looking at NONSEQ already signaled in T2, so the previous burst has already ended. In this way, HTRANS at T3 should be kept NONSEQ to continue the new transfer. Feel free if you have any other question.