Hardware Reference
In-Depth Information
10
20
30
40
50
60
70
80
90
100
clk
start
dataValid
complete
retry
Fig. 17.12
Waveform for retry protocol
7. At any time subsequent to start and no later than the cycle after the last
data beat, an occurrence of retry signals that the data transfer is forced to
retry. This means that no further data beats in the current sequence may be
transferred, and the data transfer must begin the sequence again, starting with
dataModel[0] . The transaction itself does not restart after retry, only the data
transfer. Specifically, the transaction does not reassert start and dataModel is
not observable after retry . There is no limit to the number of times the data
transfer may be forced to retry.
8. The overall write transaction completes in the cycle after the last data beat
provided retry does not occur in that cycle. A write transaction is said to be in
flight beginning in the cycle after start and continuing up to and including the
cycle that the transaction completes.
9. Write transactions must be sequential. More precisely, start must not occur
while a write transaction is in flight.
10. If dataValid , complete ,or retry occurs while no write transaction is in flight,
then it is ignored.
Figure 17.12 shows a waveform for the control signals of the retry protocol.
A transaction starts at time 20. Two data beats occur at times 30 and 40, and
complete is signaled at time 40. At time 50, retry occurs, so the data transfer
must start again. Two data beats are repeated at times 70 and 90, and complete is
signaled at time 90. Since retry does not occur again, the transaction completes at
time 100.
Note that the protocol makes no requirement on the number of data beats in a
retried data transfer. A retried data transfer might have fewer or more data beats
than a previous data transfer, even if the previous data transfer signaled complete .
However, for each beat that occurs in a retried data transfer, the data must match the
value predicted by dataModel .
Figure 17.13 shows a flow diagram to check the retry protocol. The flow begins
with start . In the cycle of start , dataModel is captured. The flow then advances
to the next cycle and invokes synchronous reject on start .If start occurs while
the check is ongoing, then the check fails (rule 9 ). The counter i is then initialized
Search WWH ::




Custom Search