VLSIYOGI
top of page

REG2REG Setup and Hold
Calculator

 

Setup and hold timing slack are crucial concepts in digital circuit design, especially in the context of synchronous circuits such as flip-flops and registers. These concepts ensure that the data is correctly sampled and stored without errors due to timing issues. Here’s a detailed definition of each:

 

Setup Time Slack

Setup Time is the minimum amount of time before the synchronous clock edge that the data input needs to be stable for it to be correctly sampled by the flip-flop or register.

Hold Time Slack

Hold Time is the minimum amount of time after the clock edge that the data input needs to remain stable to ensure it is correctly sampled by the flip-flop or register.

Setup Timing equation  :  ( Clock Period - Setup Time (of the capturing flip-flop)) - (CK→Q Delay (of Launching flip-flop) + Datapath delay) - setup uncertainty > = 0

Hold timing equation :   ((Cell delay of launch + Launch flop clk2q + Data path delay)) -(Library hold time +  (Cell delay of capture path) )- hold uncertainty > = 0   

Constraints inputs: 
 

create_clock main_clk period period_value      -waveform {     }[ get_port main_clk ]

_ _

set_clock_uncertainty -setup        [get_clocks main_clk ]

set_clock_uncertainty -hold          [get_clocks main_clk]

set_timing_derate  -early            -cell_delay

set_timing_derate  -late             -cell_delay       

CK

Q

DFF

CK

D

DFF

Launch clock path

Capture clock path

main_clk

__

__

Clock Skew = 

__

Setup Slack  =
Hold Slack =   

bottom of page