Protocol choice is a performance commitment: software timeouts, DMA pacing and interface rates all follow from it. Signoff reviewers therefore ask for the cost in writing, counted in clock cycles of each domain. This lesson counts symbolically so the numbers stay valid whatever the frequencies are; no invented cycle counts appear here.
Let N be the synchroniser latency in destination cycles (typically 2 to 3) and M the synchroniser latency in source cycles. Each one-way crossing of a control signal costs its synchroniser latency plus about one cycle of endpoint logic. A four-phase word pays two one-way crossings in each direction:
symbolic round-trip cost per word (N, M = synchroniser latencies in
destination and source cycles; L = endpoint logic, ~1 cycle each end)
four-phase: 2 x (N + L) destination cycles + 2 x (M + L) source cycles
two-phase: 1 x (N + L) destination cycles + 1 x (M + L) source cycles
toggle pulse: N + L destination cycles one way (no return path)
async FIFO word: ~(N + L) cycles of flag latency, then one word per cycleOption | Cycles per word (symbolic) | Sustained rate | Use when |
|---|---|---|---|
Four-phase handshake | 2N + 2M plus logic | One word per round trip | Occasional words; simplest review |
Two-phase handshake | N + M plus logic | One word per half round trip | Steady control traffic |
Toggle/stretch pulse | N one way | One event per 2+ destination periods | Events without payloads |
Async FIFO | Flag latency once, then full rate | Up to one word per slower clock | Streams and bursts |
Two worked readings of the same formula show how it is used. With N = 3 destination cycles and M = 3 source cycles, a four-phase word costs about 12 cycles of the round trip plus endpoint logic: roughly a dozen cycles on each side. Recompute from the other end: each direction carries two crossings (there and return-to-zero), each crossing costs one synchroniser latency, so the round trip is 2N destination-side and 2M source-side by construction. Both countings agree, as they must.
Reviewers compare the stated throughput against the producer's peak rate: if the source can offer words faster than one per round trip, the design needs back-pressure (a ready flag) or a FIFO, not a bare handshake. Verification measures the achieved rate in simulation and confirms it matches the symbolic count within the expected synchroniser variation.
Two ack crossings at 2 cycles each plus two endpoint visits: about 2 x (2 + 1) = 6 source cycles, alongside a similar destination-side cost. Streams needing more than this rate want a FIFO.