3.4.14 · HinglishSequential Circuits

Clock domain crossing

2,273 words10 min readRead in English

3.4.14 · Hardware › Sequential Circuits


WHAT hai ek clock domain?

WHY yeh dangerous hai: har flip-flop ko apni input D capturing clock edge ke ird-gird ek window mein stable rehna chahiye:

  • setup time — data edge se pehle stable,
  • hold time — data edge ke baad stable.

Agar source domain signal ko is window ke andar badal de (jo tab inevitable hai jab clocks unrelated hon), to flip-flop metastability mein chala jaata hai.


WHAT hai metastability?

HOW lamba rehta hai metastability? (Derivation)

Peak ke paas flip-flop ek regenerative amplifier ki tarah behave karta hai: ek chhota voltage imbalance exponentially badhta hai kyunki do cross-coupled inverters ek doosre ko amplify karte hain. Model:

Yeh step kyun? Loop gain positive feedback hai ek characteristic time constant ke saath (jo transistor aur load se set hota hai: ). Solve karne par:

Output "resolved" maana jaata hai jab ek valid logic swing tak pahunch jaata hai. Agar hum assume karein ki initial imbalance metastability window par uniformly distributed hai, to probability ki ball settling time ke baad bhi peak par hai:

Caveat (honestly bolein): real devices mein distribution perfectly uniform nahi hoti, isliye ke aage ka exact constant naive uniform-model value se alag hota hai. Practice mein yeh constant empirical fitting parameter mein fold ho jaata hai, jo silicon par measure kiya jaata hai — exponential shape survive karti hai, sirf prefactor calibrate hota hai.

Is cheez ko combine karo ki hum kitni baar metastability mein jaate hain (rate ), to hum master reliability formula paate hain.


Fix #1 — Two-Flop Synchronizer (single-bit signals ke liye)

Figure — Clock domain crossing

HOW kaam karta hai, step by step:

  1. Async signal FF1 mein enter karta hai. FF1 use mid-transition pakad sakta hai → metastable. Kyun? Setup/hold violate hua kyunki source unrelated hai.
  2. Hum FF1 ko resolve hone dete hain. Available settling time hai: Yeh exactly kyun? clkB edge se count karna shuru karo jo FF1 ko metastability mein daal gayi. FF1 ki resolved value uske output par sirf uske clock-to-Q delay ke baad appear hoti hai, jo effectively window ko extend karti hai; FF2 ko agale clkB edge (ek poora period baad) se ek setup time pehle stable data dekhna chahiye. In teeno ko net karne par upar wala formula milta hai. (Ek common simplification drop kar deti hai, lekin strictly yeh wahan hona chahiye.)
  3. FF2, FF1 ka (resolved) output sample karta hai. Ab safe kyun? Is bade ko MTBF mein plug karo → exponential failure ko vanishingly rare bana deta hai.

Fix #2 — Multi-bit crossings

Gray code (pointers/counters ke liye)

Handshake (arbitrary data words ke liye)

Sender data bus par rakhta hai, req raise karta hai. req (1 bit) ko receiver mein synchronized kiya jaata hai. Receiver data latch karta hai (ab stable hai), ack raise karta hai. ack (1 bit) ko wapas synchronized kiya jaata hai. Sirf control bits synchronizers se cross karte hain; data bus stable rakha jaata hai aur transition ke dauran kabhi sample nahi hota.

Asynchronous FIFO

Dual-port RAM + Gray-coded read/write pointers jo opposite domain mein synchronized hote hain. High-throughput CDC ka gold standard.


Recall Feynman: ek 12 saal ke bachche ko samjhao (click to reveal)

Socho tum ek dost ko paani ka glass pass kar rahe ho jo ek ghoomte merry-go-round par hai. Agar tum galat waqt par chhodo, to glass tilta hai aur girata hai — tum nahi padhh sakte kitna bhara hai. Ek synchronizer waise hai jaise ek poora spin wait karo taaki glass tumhare dost ke haath mein settle ho jaaye phir level check karo. Aur agar tum glasses ki poori tray pass kar rahe ho (bahut saare bits), to tum unhe ek-ek karke nahi uchhaalte — tum kehte ho "ready?" aur tabhi dete ho jab tumhara dost "mil gaya!" keh de. Yeh "ready/mil gaya" baat hi handshake hai.


Worked examples


Flashcards

Clock domain crossing kya hoti hai?
Ek signal jo ek clock domain mein bana ho, doosre asynchronous clock domain ke flip-flops dwara sample kiya jaaye.
CDC problems kyun create karta hai?
Source, destination flop ki setup/hold window ke andar signal badal sakta hai, jo metastability cause karta hai.
Metastability define karo.
Ek flip-flop output jo 0 aur 1 ke beech invalid voltage par stuck ho ek random time ke liye, phir unpredictably resolve ho.
Kya ek synchronizer metastability eliminate kar sakta hai?
Nahi — yeh sirf iske probability ko reduce karta hai (MTBF badhata hai); metastability ek physical inevitability hai.
MTBF formula batao.
MTBF = e^(t_s/τ) / (T₀ · f_clk · f_data).
Two-flop synchronizer mein available settling time kya hai?
t_s = T_clk + t_cq,FF1 − t_su,FF2 (period plus FF1 ka clock-to-Q, minus FF2 ka setup).
MTBF formula mein τ kya represent karta hai?
Flip-flop ka regeneration (resolution) time constant; chhota τ matlab jaldi resolve hona.
MTBF t_s mein exponential kyun hai?
Metastability exponentially decay karti hai (dv/dt = v/τ ⇒ v = v₀ e^{t/τ}), isliye zyada wait karna reliability multiply karta hai.
T₀ metastability aperture ke alawa physically kya absorb karta hai?
Real (non-uniform) v₀ distribution — T₀ ek measured fitting constant hai, derive nahi kiya gaya.
Two-flop synchronizer kaise help karta hai?
FF1 metastability absorb karta hai aur use ~ek poore clock period mein settle hone ka time milta hai, phir FF2 resolved value sample karta hai.
Bus ke har bit ko independently kyun synchronize nahi karna chahiye?
Bits alag cycles par resolve hote hain, isliye receiver ek aisi value padh sakta hai jo kabhi actually exist hi nahi ki (data incoherence).
Multi-bit counter ko safely kaise cross karein?
Use Gray code mein encode karo taaki ek step mein sirf ek bit badle; worst case read off-by-one hai lekin hamesha valid.
Ek arbitrary data word kaise cross karein?
Handshake use karo (req/ack control bits sync karo, data stable rakho) ya asynchronous FIFO use karo.
Do timing constraints kaun se hain jo danger window define karte hain?
Setup time (edge se pehle data stable) aur hold time (edge ke baad data stable).

Connections

Concept Map

handles

protects

violates

defined by

violation causes

is

modeled as

gives ODE

solves to

yields

folds prefactor into

combines to give

calibrates

Clock Domain Crossing

Asynchronous clocks A and B

Data crossing boundary

Setup and hold window

Setup time tsu and hold th

Metastability

Invalid voltage between 0 and 1

Regenerative amplifier

dv/dt equals v over tau

v of t equals v0 exp t over tau

P unresolved proportional exp minus ts over tau

Empirical parameter T0

Mean Time Between Failures