Asynchronous Data Transfer
Overview
Asynchronous data transfer is
communication between two digital components (or systems) that does not rely
on a common clock.
Transfer is coordinated using
control signals (handshakes), so sender and receiver agree when data is valid
and when it has been accepted.
Use of asynchronous
- When the sender and receiver operate at different speeds or have independent clocks.
- To
interface with external peripherals (serial ports, keyboards, sensors).
- Low-power
and low-latency systems where clock distribution is costly.
- In
large-scale systems, to avoid clock skew and reduce EMI.
Basic Signals and
Definitions
- DATA: The information bits (can be
one or multiple lines for parallel transfer).
- REQ
(Request):
From sender to receiver, indicating data is ready (or valid).
- ACK
(Acknowledge):
From receiver to sender, indicating data accepted (or buffer free).
- Strobe/Valid: Sometimes a single-line
strobe indicates a data word is valid for one cycle.
Timing terms:
- t_setup,
t_hold — setup and hold times (if crossing to a clocked domain)
- propagation
delay — gate/wire delays
Handshake
Protocols
1 Two-Wire (Four-Phase) Handshake
(REQ/ACK)
Four phases that repeat for every
transfer:
- Sender
places DATA on the bus and drives REQ = 1 (data valid).
- Receiver
detects REQ = 1, samples DATA, and drives ACK = 1 to acknowledge
acceptance.
- Sender
detects ACK = 1 and deasserts (turns a signal OFF or makes it inactive) REQ
= 0.
- Receiver
detects REQ = 0 and deasserts (turns a signal OFF or makes it inactive) ACK
= 0 — one transfer complete.
Repeat for next transfer. Called four-phase
because lines change four times per transaction.
Advantages: simple and robust.
2 Two-Phase (Transition) Handshake
Also called edge-based
handshake; a transition (0->1 or 1->0) on REQ signals new data, receiver
toggles ACK when accepted. Each transfer uses only two transitions rather than
four.
Pros: fewer transitions → faster and
lower power.
Cons: slightly more complex to design
and reason about.
Muller C-element
(Glueless Synchronization)
A fundamental building block for
asynchronous circuits.
The C-element outputs 1 when all
inputs are 1, outputs 0 when all inputs are 0, and otherwise retains
its previous state.
Truth behavior compactly:
- If
inputs all 1 → output = 1
- If
inputs all 0 → output = 0
- Else
→ output holds previous value
Used to implement handshake
completion detection and basic synchronization between asynchronous events.
Symbol (ASCII):
Use case: the C-element can detect when both
request and acknowledge are in a given stable state before progressing.
Metastability
& Synchronizers
When an asynchronous control signal
crosses a clock boundary, a flip-flop can enter a metastable state (neither
clean 0 nor 1 for some time). This can corrupt logic.
Mitigations (solution):
- Use
synchronizer flip-flops (2-stage or 3-stage) for control signals
crossing into clocked domains.
- Design
for sufficient MTBF (Mean Time Between Failures) by ensuring target
flip-flops have short setup/hold slack and using multi-stage
synchronizers.
Advantages and
Disadvantages
Advantages:
- No
global clock required; reduced clock distribution and skew issues.
- Potentially
lower dynamic power (no global toggling)
- Natural
fit for handshake-based peripherals and variable-latency operations.
Disadvantages/challenges:
- More
complex design and verification.
- Harder
to test (scan chains, boundary-scan).
- Metastability
risks when interfacing to clocked domains.
- Tooling
and synthesis support is less common than synchronous design flow.
0 Comments