Asynchronous Data Transfer

 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:

  1. Sender places DATA on the bus and drives REQ = 1 (data valid).
  2. Receiver detects REQ = 1, samples DATA, and drives ACK = 1 to acknowledge acceptance.
  3. Sender detects ACK = 1 and deasserts (turns a signal OFF or makes it inactive) REQ = 0.
  4. 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.

Post a Comment

0 Comments