Why not just simulate? Simulation only checks the paths that the chosen test vectors exercise. STA checks all paths structurally, so it can guarantee timing closure. That's the 80/20 win: one static analysis replaces astronomically many input-vector simulations.
Derivation. Consider two flip-flops FF1 (launch) → combinational logic → FF2 (capture), same clock.
Step 1 — When does data leave FF1?
At the launch edge (time 0), plus the flop's own delay:
tlaunch_data=tcqWhy this step? Q can't change instantly; it changes tcq after the edge.
Step 2 — When does data arrive at FF2's input?
Add the logic delay:
tarrive=tcq+tcombWhy? The signal must physically propagate through the gates.
Step 3 — The deadline at FF2.
The next capture edge is at Tclk. Data must be stable tsu before it:
tdeadline=Tclk−tsuWhy? Setup demands early arrival.
Because it analyzes worst-case path delays from the circuit structure without needing input vectors or logic simulation.
Recall Which delay do setup and hold each use?
Setup → maximum (longest) path delay. Hold → minimum (shortest) path delay.
Recall Does slowing the clock fix a hold violation?
No. Hold is independent of Tclk; you must add data-path delay.
Recall Feynman: explain to a 12-year-old
Imagine passing a note in class between two desks, and every "click" the teacher makes, the note must be sitting on the next desk ready. Setup: the note has to arrive a little before the click, or the friend can't read it in time. Hold: the note must not zoom over so fast that it lands during the same click and messes up the note that's still being read. If the notes are too slow → wait longer between clicks (slower clock). If they're too fast → make them take a scenic route.
Before reading Example 2, predict: at 250 MHz will the 200-MHz-capable circuit pass? (No — negative slack.) Before Example 4, predict skew's effect. Confirm against the formulas.
Dekho, digital circuit ek race hai clock ke against. Har clock edge par data ko ek flip-flop se nikal kar, combinational logic ke through travel karke, agle flip-flop tak settle ho jana chahiye — before the next edge. Static Timing Analysis (STA) yahi check karta hai, lekin bina simulation chalaye. "Static" ka matlab: input values ki zarurat nahi, sirf circuit ka structure aur uske delays dekhte hain. Isliye ye saare paths ek saath check kar leta hai — 80/20 fayda.
Do main rules hain. Setup:tcq+tcomb,max+tsu≤Tclk. Yani launch flop ka clock-to-Q delay, plus sabse lamba (slowest) logic path, plus setup margin — ye sab clock period ke andar fit hone chahiye. Sabse slow path ko critical path kehte hain, aur wahi fmax decide karta hai: fmax=1/(tcq+tcomb,max+tsu). Hold:tcq+tcomb,min≥th. Yaha fastest path ka darr hai — naya data itni tezi se na aa jaye ki same edge par purani value corrupt kar de.
Sabse important baat, jo exam mein log galat karte hain: setup fail ho toh clock slow karke fix kar sakte ho, lekin hold fail ho toh clock slow karne se kuch nahi hota — kyunki hold equation mein Tclk hai hi nahi! Hold fix karne ke liye short path mein delay (buffers) daalna padta hai. Aur yaad rakho: setup = longest path, hold = shortest path. Slack positive matlab pass, negative matlab violation.
Agar ye clear ho gaya, toh timing closure, pipelining, aur clock skew ka pura concept aasan lagega. Basically har cheez isi race ke around ghumti hai.