3.4.5 · HinglishSequential Circuits

Setup and hold time constraints

1,745 words8 min readRead in English

3.4.5 · Hardware › Sequential Circuits


WHAT are we constraining?

YEH KYUN EXIST KARTE HAIN: ek real flip-flop feedback loops (cross-coupled gates) se bana hota hai. Loop ko time chahiye input ko acquire karne aur usse ek stable state mein regenerate karne ke liye. Window violate karo → loop 0 aur 1 ke beech adha atak sakta hai = metastability.


The pipeline picture (deriving the constraints)

Do flip-flops ko combinational logic se separated ek pipeline mein consider karo:

FF1 --Q--> [ combinational logic ] --D--> FF2
  ^                                          ^
  |------------------ CLK --------------------|
Figure — Setup and hold time constraints

Data FF1 se ek clock edge par nikalta hai, logic se guzarta hai, aur FF2 par pahunchna chahiye agli edge se pehle (setup ke liye), lekin bahut jaldi nahi ki current edge disturb ho jaye (hold ke liye).


Deriving the SETUP constraint (from first principles)

KAISE: FF2 ke D par naye data ke arrival time ko track karo, agli clock edge ke relative.

Clock period maan lo. Launch edge time par hai; FF2 par capturing edge time par hai (abhi ke liye clock skew ignore karo).

  1. Data FF1 ke Q par time = par valid hota hai (worst case ).
  2. Yeh lene wale logic se guzarta hai. Yeh FF2 ke D par pahunchta hai:
  3. FF2 chahta hai ki D uski edge se pehle stable ho, yaani arrival hona chahiye.

SUBTRACTION KYUN? Hume period ke last seconds FF2 ki "keep-still" window ke liye reserve karne chahiye, taaki kuch abhi bhi wahan arrive na ho raha ho.


Deriving the HOLD constraint (from first principles)

DOOSRA CONSTRAINT KYUN? Setup worry karta hai ki data agli edge ke liye bahut late aa raha hai. Hold worry karta hai ki naya data bahut jaldi aa jaye aur us value ko corrupt kar de jo FF2 isi edge par latch karne ki koshish kar raha hai.

Time par wahi edge FF1 se launch karta hai aur FF2 par capture karta hai:

  1. Edge ke baad FF1 ke Q par sabse tezi se possible change: .
  2. Logic se sabse fast path: (contamination delay).
  3. Toh FF2 ka D edge ke baad jitni jaldi change hona shuru ho sakta hai.
  4. FF2 ko chahiye ki D edge ke baad tak stable rahe. Toh earliest change hona chahiye:


Adding clock skew

Maan lo capturing clock FF2 par launching clock se later pahunchta hai, skew ke saath (positive = capture clock delayed).

  • Setup aasaan ho jaata hai (delayed capture edge se pehle zyada time):
  • Hold mushkil ho jaata hai (delayed edge keep-still window ko fast data tak extend kar deta hai):

Worked Examples


Recall Feynman: explain to a 12-year-old

Imagine karo ki tum ek note apne dost ko pass kar rahe ho exactly jab teacher taali bajati hai. Agar tum note bahut late thelte ho, tumhara dost taali se pehle pakad nahi paata — woh garbage padh leta hai (setup problem: unhe note pehle do ya taali slow bajao). Agar tum note taali ke baad bahut jaldi wapas chheen lete ho, tumhara dost kabhi finish nahi kar paaya padna (hold problem: note ek moment aur pakdo — taali slow bajana help nahi karta, bas pakde rehna hota hai). Har taali ke around chhota sa "please note mat hilao" moment flip-flop ki keep-still window hai.


Flashcards

Setup time definition
Minimum time jitna data active clock edge se PEHLE stable rehna chahiye correct sampling ke liye.
Hold time definition
Minimum time jitna data active clock edge ke BAAD stable rehna chahiye.
Setup constraint formula
Hold constraint formula
Kaun sa constraint max clock frequency limit karta hai?
Setup (isme hota hai); .
Clock slow karna hold violation kyun fix nahi kar sakta?
Hold constraint mein koi term nahi hai; yeh same-edge race hai, isliye period cancel ho jaata hai. Delay/buffers add karke fix karo.
Setup kaunse delays use karta hai?
Maximum (worst-case) delays: , .
Hold kaunse delays use karta hai?
Minimum (contamination/fastest) delays: , .
Positive capture-clock skew ka setup par effect?
Relax karta hai: .
Positive capture-clock skew ka hold par effect?
Tight karta hai: .
Agar keep-still window violate ho jaaye toh kya hota hai?
Metastability — output 0 aur 1 ke beech unpredictably hover kar sakta hai.
kya hai?
Clock-to-Q delay: clock edge se lekar Q ke naya value output karne tak ka time.
Hold violation kaise fix karein?
Fast (min-delay) combinational path par buffer/delay elements add karo.

Connections

Concept Map

built from feedback loops

D changes inside

defines start of

defines end of

stable before edge

stable after edge

delay from edge to Q

adds to

max delay adds to

reserved before edge

T >= tcq+tlogic+tsu

slow clock to fix

min delay used in

must hold after edge

Flip-Flop as camera

Metastability

Setup time t_su

Hold time t_h

Clock-to-Q delay t_cq

Keep-still window [-t_su, +t_h]

Combinational logic delay

Setup constraint

Max clock frequency

Hold constraint