- At time T=ππππ’ππβππππ, Data A is launched from FF1 to FF2. The data needs to make it to FF2 before the next clock edge arrives at FF2 at time πππππ‘π’ππππππ. The next clock edge will arrive after a clock period
πΏππ’ππβ = ππππ’ππβππππ
πΆπππ‘π’ππ = πππππ‘π’πππππe


2. The clock takes some time to reach FF1 due to the buffers. The launch wonβt happen
exactly at T=ππππ’ππβ_ππππ but after the delay/latency of the clock buffers.

πΏππ’ππβ = ππππ’ππβππππ + π»πππππππππππππ
πΆπππ‘π’ππ = πππππ‘π’ππ_πππe

3. As we saw in part 1, once the clock reaches the FF it takes some time to push the data out to the Q pin. We called this time πππ. This is the 1st delay data A encounters to reach FF2.

πΏππ’ππβ = ππππ’ππβππππ + ππππ’ππβπππ‘ππππ¦
π·ππππ¦ =π»ππ
πΆπππ‘π’ππ = πππππ‘π’ππ_πππe

4. Data A will propagate through the combinational path to reach FF2. This is the
2nd delay it encounters.

lππ’ππβ =ππππ’ππβππππ+ππππ’ππβπππ‘ππππ¦
π·ππππ¦=πππ+π»ππππ
πΆπππ‘π’ππ=πππππ‘π’ππ_πππe

5. As we saw in part 1, the FF requires the data to arrive some time before the clock edge in order to avoid metastability. We called this time ππ ππ‘π’π. Hence, we shouldnβt capture data at πππππ‘π’ππππππ but at πππππ‘π’ππππππβππ ππ‘π’p

πΏππ’ππβ =ππππ’ππβππππ+ππππ’ππβπππ‘ππππ¦
π·ππππ¦=πππ+πππππ
πΆπππ‘π’ππ=πππππ‘π’ππ_ππππβπ»ππππp

6. The clock takes some time to reach FF2 due to the buffers. The capture wonβt happen
exactly at πππππ‘π’ππ_ππππβππ ππ‘π’π but after the delay/latency of the clock buffers.

πΏππ’ππβ =ππππ’ππβππππ+ππππ’ππβπππ‘ππππ¦
π·ππππ¦=πππ+πππππ
πΆπππ‘π’ππ=πππππ‘π’ππππππβππ ππ‘π’π+π»πππππππππππππy

7. To make sure a setup violation doesnβt happen, we need to make sure data A arrives
at FF2 before the required capture time.
The difference between the required and arrival time is called the slack. If the slack is positive, we pass setup and if negative, we fail. The launch FF is called the start point of the timing path and the capture FF is called the endpoint.
πΏππ’ππβ +π·ππππ¦ β€ πΆπππ‘π’ππ
π΄ππππ£ππ β€ π
πππ’ππππ
ππππ’ππβππππ + ππππ’ππβπππ‘ππππ¦ + πππππ < πππππ‘π’ππππππ β ππ ππ‘π’π + πππππ‘π’πππππ‘πππy

Setup Timing Report

- The example we have shown is for a full cycle path where the πππππ‘π’ππππππ comes one clock cycle after ππππ’ππβππππ.
β’ This is not always the case. The capture edge could come half cycle later, multiple cycles later or from another clock.
o Half cycle paths occur when the launch and capture FFs use different clock edges
o Multi cycle paths occur when the first capture edge is masked by a control circuit and another edge is used
Multi clock paths occurs when the launch and capture FFs use different clocks from each other.
The diagram shows that there could be more than one launch/capture edges combination. The STA tools will consider the worst case (The purple one)1
β’ All what we learned still apply and nothing changes. We will just plug different values for the clock edges into the setup equation
π»ππππππππ ππ + π»πππππππππππππ + π»ππππ < π»πππππππππ ππ β π»πππππ + π»πππππππππππππy

