Setup and hold time constraints
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 --------------------|

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).
- Data FF1 ke
Qpar time = par valid hota hai (worst case ). - Yeh lene wale logic se guzarta hai. Yeh FF2 ke
Dpar pahunchta hai: - FF2 chahta hai ki
Duski 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:
- Edge ke baad FF1 ke
Qpar sabse tezi se possible change: . - Logic se sabse fast path: (contamination delay).
- Toh FF2 ka
Dedge ke baad jitni jaldi change hona shuru ho sakta hai. - FF2 ko chahiye ki
Dedge 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
Hold time definition
Setup constraint formula
Hold constraint formula
Kaun sa constraint max clock frequency limit karta hai?
Clock slow karna hold violation kyun fix nahi kar sakta?
Setup kaunse delays use karta hai?
Hold kaunse delays use karta hai?
Positive capture-clock skew ka setup par effect?
Positive capture-clock skew ka hold par effect?
Agar keep-still window violate ho jaaye toh kya hota hai?
kya hai?
Q ke naya value output karne tak ka time.Hold violation kaise fix karein?
Connections
- Flip-Flops and Latches — woh storage element jiske yeh constraints describe hain.
- Metastability — failure mode jab window violate ho jaati hai.
- Clock Skew and Jitter — clock timing shifts constraints ko kaise affect karti hai.
- Static Timing Analysis (STA) — saare paths mein setup/hold ki systematic checking.
- Pipelining — jahan setup har stage ka set karta hai.
- Combinational Logic Delay — aur ka source.