A handshake adds what mux recirculation lacks: the source learns that the destination captured the word, so transfers can follow each other back to back without a precomputed spacing. The price is a full round trip of synchroniser latency per word.
Source drives the data bus, holds it, then asserts request across a synchroniser.
Destination sees request, captures the bus, then asserts acknowledge across a synchroniser back.
Source sees acknowledge, drops request, and may change the data only after the destination has dropped acknowledge (four-phase), or answers the next transfer on the opposite edge (two-phase).
For the circuit detail and the two-phase versus four-phase choice, see CDC handshakes; this lesson covers the signoff view: what it costs and what must hold.
Item | Content |
|---|---|
Latency per word | About two synchroniser delays each way: typically 4 to 6 cycles of each clock per transfer |
Throughput | One word per round trip; pipelining needs a FIFO, not a bare handshake |
Data rule | Data stable from request assert until the handshake completes; the destination captures once |
Control rule | Request and acknowledge each cross through their own synchroniser; no combinational shortcuts on either path |
Reset rule | Both sides start idle (request and acknowledge low); no transfer in flight across reset |
Each transfer costs about 4 to 6 cycles each way, say 10 cycles total at 10 ns: about 10 million words per second at best, less with protocol overhead. Enough for control, far from streaming rates.