Compute worst setup slack by hand

Timing Analysis easy concept quiz 50 pts

The task

Before trusting any tool, you should be able to time a path with a pencil. Compute the setup slack of this register-to-register path. All numbers are in picoseconds.

Quantity Value
Clock period 1000
Clock network delay to the launch flop 150
Launch flop clock-to-q delay 120
Combinational logic delay between the flops 610
Clock network delay to the capture flop 180
Capture flop setup requirement 55
Clock uncertainty (setup margin) 40

How STA (Static Timing Analysis) sees this path

Data leaves the launch flop on one clock edge and must arrive at the capture flop before the next edge, early enough to satisfy the setup requirement.

Arrival time - when the data actually shows up at the capture flop's data pin, measured from the launching edge at the clock source:

arrival = launch clock network delay + clock-to-q + combinational delay

Required time - the latest the data is allowed to arrive:

required = clock period + capture clock network delay − setup requirement − clock uncertainty

Note the capture clock network delay is added to the required time: the capturing edge also travels through the clock tree, so it arrives at the flop late - buying the data path extra time. The difference between the two clock network delays (180 − 150 = 30 here) is the clock skew, and in this direction it helps setup.

Slack:

slack = required − arrival

Positive slack: the path meets timing with room to spare. Negative: you have a violation and a bad day.

Hint: if your answer is off by exactly the skew, the uncertainty, or twice one of them, you put a term on the wrong side.

ps