Setup and hold slack measure how much margin a data window has around the capture edge, so the scan moves a row from positive slack through the zero boundary to a negative-slack rejection. With a 10 s capture edge the three rows give setup slack 1, 0, and -1 s and hold slack 2, 0, and 0 s exactly for the ideal fixed-edge model; real capture adds jitter, skew, metastability, PVT variation, duty-cycle distortion, aperture uncertainty, routing delay, and timing measurement uncertainty.

Setup and hold slack move from positive through boundary to rejection. Exact arithmetic here means exact results for the stated model inputs; measured inputs still carry uncertainty and significant-figure limits.

highlighted = computed this step

Early data and late next change leave positive slack

The capture edge is fixed at 10 seconds. Data at 7 seconds and next change at 13 seconds give setup slack 1 s and hold slack 2 s.

ssetup=10+(−7)+(−2)=1 s,shold=13+(−10)+(−1)=2 ss_{\text{setup}}=10+(-7)+(-2)=1\ \text{s},\quad s_{\text{hold}}=13+(-10)+(-1)=2\ \text{s}
Setup and hold slack scanBoth slacks and the pass/fail label are checked.period 10 sedges 2edge 1 at 10 slast 10 sedge 1 at 10 sdata 7 snext 13 ssetup slack 1 shold slack 2 saccepted

Both timing windows can land exactly on the boundary

The capture edge is fixed at 10 seconds. Data at 8 seconds and next change at 11 seconds give setup slack 0 s and hold slack 0 s.

ssetup=10+(−8)+(−2)=0 s,shold=11+(−10)+(−1)=0 ss_{\text{setup}}=10+(-8)+(-2)=0\ \text{s},\quad s_{\text{hold}}=11+(-10)+(-1)=0\ \text{s}
Setup and hold slack scanBoth slacks and the pass/fail label are checked.period 10 sedges 2edge 1 at 10 slast 10 sedge 1 at 10 sdata 8 snext 11 ssetup slack 0 shold slack 0 saccepted

Late data makes setup slack negative

The capture edge is fixed at 10 seconds. Data at 9 seconds and next change at 11 seconds give setup slack -1 s and hold slack 0 s.

ssetup=10+(−9)+(−2)=−1 s,shold=11+(−10)+(−1)=0 ss_{\text{setup}}=10+(-9)+(-2)=-1\ \text{s},\quad s_{\text{hold}}=11+(-10)+(-1)=0\ \text{s}
Setup and hold slack scanBoth slacks and the pass/fail label are checked.period 10 sedges 2edge 1 at 10 slast 10 sedge 1 at 10 sdata 9 snext 11 ssetup slack -1 shold slack 0 srejected