|ARM Technical Support Knowledge Articles|
Applies to: AXI
There are two aspects to cover when considering the relationships between the AXI channel handshake signals and it is possible that much of the confusion around this section of the specification comes from the fact that these two aspects are covered in the same section.
The first aspect is the “must wait” dependencies, which are all to do with a change in direction of a transaction. The returning read data/response “must wait” until the read address has been accepted and the returning write response “must wait” until the last item of write data has been accepted.
These “must wait” dependencies are shown in the diagrams by a double headed arrow and are also described in section “3.2 Relationships between the channels”.
The second aspect is the “Can wait” and “Must not wait” dependencies, that are shown by the single headed arrows.
For channels that are traveling in the same direction (i.e. from master to slave , or vice versa) there are “can wait” and “must not wait” dependencies between the handshake signals. These dependencies are needed to prevent the deadlock situation of A waiting for B, while B is waiting for A. In the diagrams these dependencies are represented by a single headed arrow. The signal at the head (point end) of the arrow “can wait” for the signal at the tail of the arrow. The signal at the tail of the arrow “must not wait” for the signal at the head of the arrow. For example, A --> B means B "can wait" for A, but A "must not wait" for B.
It is this second part (the “must not wait”) that is actually the important one in avoiding deadlock and some users may find it easier to understand the diagrams by thinking about the single headed arrow in the opposite direction. That is, you look at each signal in turn and make sure it is not dependent on any of the signals that it has arrow pointing out towards. It does not matter about single headed arrows pointing inwards towards the signal in question, as this is just a “can wait” relationship, which means “can wait if it wants to, but does not have to”.
Article last edited on: 2008-09-09 15:47:47
Did you find this article helpful? Yes No
How can we improve this article?