Professional Documents
Culture Documents
Agenda
▪ Timing Paths
▪ Setup/Hold check
▪ Required Arrival Time, Actual Arrival Time and Slack
▪ I/O Timing Analysis
Timing Paths
Timing Point
INPUT
OUTPUT
D Q D Q
FF1 FF2
CLOCK
Setup & Hold Times
CLK
DATA PRE
D Q Tsu Th
Setup Time: the amount of time the synchronous input (D) must be stable
before the active edge of clock
Hold Time: the amount of time the synchronous input (D) must be stable
after the active edge of clock.
Together, the setup time and hold time form a Data Required Window, the
time around a clock edge in which data must be stable.
▪ Setup Margin
▪ The data valid time available after meeting the setup requirement
Hold Time
▪ Hold Margin
▪ The data valid time available after meeting the hold requirement
Arrival Time, Required Time & Slack
Arrival time:
• Time elapsed for a signal to arrive at a certain point.
• To calculate the arrival time, delay calculation of all the component of the
path will be required.
Required time:
• Latest time at which a signal can arrive without making the clock cycle
longer than desired.
Slack:
• It is the difference between the required time and the arrival time.
• This is the amount of time by which a violation is avoided
• E.g.: for a setup constraint, if a signal must reach a cell input at no later
than 8 ns and is determined to arrive at 5 ns, the slack is 3 ns.
• A slack of 0 means that the constraint is just barely satisfied.
• A negative slack indicates a timing violation.
Setup & Hold Violations
▪ Two types of violation :
▪ Hold violation
▪ Setup Violation
Hold violation is caused when the clock travels slower than the path from
one register to another – allowing data to penetrate two registers in the
same clock tick, or might destroy the integrity of the latched data.
Setup Violation is caused if the data signal gets delayed from the source
flip-flop, so that the data signal has that much less time to reach the
destination flip-flop before the next clock tick.
TCO
Launch
Edge
Tclk1
REG1.CLK Tco
REG1.Q Data Valid
Tdata
REG2.D Data Valid
REG1 REG2
PRE Comb. PRE
D Q Logic D Q
CLR CLR
Tclk2
Latch
Edge
CLK Tclk2
REG2.CLK
▪ The minimum time required for the data to get latched into the destination
register
▪ Data Required Time = Clock Arrival Time – Tsu
REG1 REG2
PRE Comb. PRE
D Q Logic D Q
CLR CLR
Tclk2
Latch
Edge
CLK Tclk2
Data must be
valid here Tsu
REG2.CLK
▪ The minimum time required for the data to get latched into the destination
register
▪ Data Required Time = Clock Arrival Time + Th
REG1 REG2
PRE Comb. PRE
D Q Logic D Q
CLR CLR
Tclk2 Th
Latch
Edge
CLK Tclk2
Data must
remain valid Th
to here
REG2.CLK
Positive slack
▪ Timing requirement met
Negative slack
▪ Timing requirement not met
CALCULATION:
Arrival time (max) = clock delay FF1 (max) +clock-to-Q delay FF1 (max) + comb. Delay( max)
Required time = clock adjust + clock delay FF2 (min) - set up time FF2
Slack = Required time - Arrival time (since we want data to arrive before it is required)
clock adjust = clock period (since setup is analyzed at next edge)
Hold Slack
▪ The margin by which the hold timing requirement is met. It ensures latch
data is not corrupted by data from another launch edge. It also prevents
“double-clocking”.
REG1 Tdata REG2
PRE Comb. PRE
D Q D Q
Logic
Tclk1
CLR CLR
TCO Tclk2 Th
Positive slack
▪ Timing requirement met
Negative slack
▪ Timing requirement not met
CALCULATION:
Arrival time = clock delay FF1 (min) +clock-to-Q delay FF1 (min) + comb. Delay( min)
Required time = clock adjust + clock delay FF2 (max) + hold time FF2
Slack = Arrival time - Required time (since we want data to arrive after it is required)
clock adjust = 0 (since hold is analyzed at same edge)
Hold Checks and Setup Check Cycles
Hold 0
Capture flip-flop clock
CLK CLR
ASYNC
clock
Data Arrival
Path
TCO Tsu/Th
Tclk2 Data
Data Arrival Required
Path Path
OSC
Path 4
▪ Path 1 starts at an input port and ends at the data input of a sequential
element.
▪ Path 2 starts at the clock pin of a sequential element and ends at the data
input of a sequential element.
▪ Path 3 starts at the clock pin of a sequential element and ends at an
output port.
▪ Path 4 starts at an input port and ends at an output port.
How many timing paths? (Cont’d)
▪ Register to Register
▪ Input port to Register
▪ Set the data arrival time at the port
▪ Register to Output port
▪ Set the port external delay
▪ Input port to Output port
Reg to Output
FF2
Input to Output
[Source : Timing
IN_2Analysis Basics presentation from Cadence] OUT_2
Understanding Timing Paths: Reg to Reg
D Q D Q
Clock to Q _ Setup _
C Q Time C Q
Clock Period
Clock to Q
D Q Comb1 Comb2 D Q
_ Setup
_
C Q Gate + Time C Q
Wire delay
0 Clock
Root
Clock Period
_ _
Setup
C Q Gate + Gate + Time
C Q
Wire delay Wire delay
0 Clock
Root Clock Period
▪ Input delay and output delay are set with respect to a clock
▪ Default single-cycle
▪ Setup requirement:
▪Comb delay < clock period - input delay - external delay
▪ Hold requirement:
▪Comb delay > clock period - input delay - external delay
▪ Combinational paths have no clocks defined for the module
▪ Setup requirement:
▪Comb delay =< (delay set with set_path_delay_constraint -late) - input_delay -
external_delay
▪ Hold requirement:
▪Comb delay >= (the delay set with set_path_delay_constraint -early) - input_delay -
external_delay