Professional Documents
Culture Documents
Timing Fixes
Timing Fixes
Setup time: It is the minimum time required for the data to be stable before
the clock edge.
So total time to propagate the data from launch to capture flop = one time
period (T) – Tsu (setup time of flip flop2)
This is the required time for the data travel from launch to capture flop.
And how much time it does take data to arrive at the D pin of capture flop is
=Tcq (clock to Q delay of FF1) + Tcomb (combinational delay). This is called
arrival time
So condition for setup timing to not violate:
Slack = RT –AT
Example 1: If setup time =2ns, Hold = 1ns, Clock period = 8ns, clock to q
delay = 3ns, Tcap = 3ns, Tlaunch = 2ns,Tcomb = 2ns.
Setup slack = RT – AT
Example 2: If setup time =2ns, Hold = 1ns, Clock period = 8ns, clock to q
delay = 3ns, Tcap = 2ns, Tlaunch = 3ns, Tcomb = 2ns, Net delay = 2ns.
Setup slack = RT – AT
RT = Tcap + T (time period) – Tsu (setup time of flip flop2)
= 2ns + 8ns – 2ns =8ns
1. Compared to Buffer, Inverter cell delay is less [Buffer is noting but back 2
back connected inverter]
2. And using two inverter, RC delay is further divided & improving transition &
delay. Place the inverters with equal distance between the loads.
[Load ]------------[INVERTER]-------------[INVERTER]----------->|[Load]
Another intelligent method, but a leaky one, to reduce the delay of cell is to
swap high threshold voltage (Vt) cell with low Vt cell. Refer to the below
diagram.
The characteristics of NMOS (or PMOS) device is such that, the 'ON'
resistance is inversely proportional to (Vgs - Vt). But, the direct effect is that
low Vt cells are often more leaky i.e. leakage power increases.
"Delay can be reduced by using low Vt cells, but the cost paid is high
leakage power"
3. Increase the drive strength: Another technique to modify the delay of cell is
to 'upsize' or 'downsize' a cell i.e. varying the drive strength ('ON' resistance) of
the cell. This is captured in the figure below.
High drive strength cell indicates a cell having low 'ON' resistance. Due to low
resistance, the time required to charge the output capacitance will be low, i.e.
RC delay reduces. This technique is useful to fix setup violation where the delay
needs to reduce. The inverse (i.e. high 'ON' resistance) is useful for fixing hold
violation, where the delay needs to increase.
5.Magnetic placement:
For best results perform magnet placement before standard cell placement.
Command: magnet_placement
Types of bounds:
In this tool tries to place the cells in the move bound within a specified region,
however, there is no guarantee that the cells are placed inside the bounds.
#define soft bound for instance_1 with its left corner at (10 10) and its upper-
right corner at (20 20).
In this tool must place the cells in the move bound within a specified region.
In this tool tries to place the cells in the group bound within a floating region,
however, there is no guarantee that the cells are placed inside the bounds
7. If net delay is more than break the net and add the buffer:
If net length is long, then we insert buffer to boast. It decreases the transition
time, which decreases the wire delay. If the amount of wire delay decreases due
to decreasing of transition time > cell delay of buffer, then overall delay
decreases.
Hold time: It is the minimum time required for the data to be stable after the
clock edge.
So condition for setup timing to not violate:
Hold slack = AT – RT
RT = Thold
If arrival time is less that means data coming is very fast (or early) so hold
violation occurs.
Example 1: If setup time =2ns, Hold = 1ns, Clock period = 8ns, clock to q
delay = 3ns, Tcap =3ns, Tlaunch = 2ns, Tcomb = 2ns.
Hold slack = AT - RT
RT = Tcap + Thold
Example 2: If setup time =2ns, Hold = 1ns, Clock period = 8ns, clock to q
delay = 0.3ns, Tcap =3ns, Tlaunch = 2ns ,Tcomb = 0.2ns, Net delay = 0.2ns.
Hold slack = AT – RT
RT = Tcap + Thold
= 2.7ns
Source latency: Here from clock source to definition pin is the clock source
latency.
Network latency: From the clock definition pin to clock pin of the flip flop
is the clock network latency.
OCV (On chip variation): The delay values of IC will vary in different
conditions like changing in processor, voltage, temperature (PVT). The delay
value of IC in cold weather is different and in hot weather is different. In cold
weather the metals in the IC will shrink. In hot weather the metal will expand so
the delay will increase. To overcome this effect flat derate is applied in the
circuit.
In simple words, OCV is a technique in which this flat derate is applied to make
a faster path more fast and slower path slower. So OCV adds some pessimism
in the common path of launch and capture path i.e. for a same cell there are two
delays min and max.
Sources of variations:
There are three major sources of variations, Process, Voltage and Temperature.
These variations are collectively called PVT variations. We already do PVT
analysis and take care of these variations while designing an ASIC, then why
we need to take care of OCV separately? And the answer is, all the variations
cannot be taken care in PVT analysis. Some of them are predictable and can be
modelled easily as the technology get matures but some of them are highly
unpredictable and cannot be modelled easily. Figure-3 shows the various
components of the PVT and OCV variation together.
I. Process Variations:
The drain current of an nMOS transistor in the linear region can be defined as
In the drain current equation, the factors which are dependent on the fabrication
process are:
Gate Oxide Thickness (tox)
So if any of the factors mentioned above varies during the fabrication process, It
will affect the drain current. The delay of a cell is dependent on the drain
current so due to process variation, the delay of a standard cell is going to vary.
Now see some example, how these parameters can get affected during the
fabrication process. Figure-5 and Figure-6 show the length and width variation
associated with the photolithography process.
Photolithography
Etching
So, in conclusion, there are many factors and high chances of variation while
fabrication of a chip and these can lead the vary the delay of the standard cells.
Power comes from the power pads/ Bumps and distributed to all standard cells
inside the chip through the metal stripes and rails which is collectively called
the power delivery network (PDN) or power grid. Distance between the power
pad and standard cells could not be the same for all the standard cells. So there
will be a variation of available VDD for the standard cells depending on the
design. Delay of a cell is dependent on the available VDD, If VDD is less delay
will be more.
Sometimes there is also the formation of local hotspots based on the placement
density and power requirements of cells which affects the temperature of the
junction and ultimately lead to the variation in current and delay of cells.
Junction temperature is the sum of ambient temperature and the temperature
raised by the power dissipation of cell. This whole thing is not predictable and
cannot be taken care in PVT so we have to take care of these variations in OCV.
Problem: In the fig three buffers, flip flops, combinational circuit have two
delays one is min delay another is the delay after adding derating i.e. max delay.
Consider Time period 8ns and Tsetup and Thold are 0.2ns.
Without CRPR: -
Setup slack = (required time) min - (arrival time) max
Arrival time = buf1 + buf2 + Tcq + Tcomb
Input Delay: Input delay is the time at which the data arrives at the input pin
of the block from external circuit with respect to reference clock.
For Example,
Suppose the maximum delay of the path from the clock pin of FF11 to CIN is
550ps.
Then on block-level, for setup analysis, we have to close the remaining path
that is from CIN to FF1 at 850 – 550 = 300ps.
Input delay path has also two parts, one is clock to q dealy of FF11 and other is
a combinational delay from q to CIN. This path will have max and min delay,
which will be used separately in the setup and hold analysis. So when we apply
input delay we apply two delays, max input delay and min input delay. The
command for applying this delay in the SDC file is as follow.
Output Delay: Output delay is time required by the external circuit before
which the data has to arrive at the output pin of the block with respect to
reference clock.
For Example,
let’s say the clock period is 1ns.
And for setup analysis, the data required time for the path FF2 to FF22 is
800ps.
Suppose the max delay of the path-2 from COUT to FF222 is 250ps.
Then on block-level, for setup analysis, we have to close the remaining path
from FF2 to COUT at 800 – 250 = 550ps.
In SDC file we specify maximum and minimum output delay, which is used
separately for setup and hold analysis. The output delay is the delay from the
output pin to the next register.
The above set of SDC commands will set the maximum output delay of 250 ps
and minimum input delay 200 ps to COUT output pin. We can imagine this like
there is a virtual flop outside the block and the delay from COUT pin to that
virtual flop is output delay of COUT pin. Here output delay has explained with
reference to setup analysis but a similar concept is applicable for the hold
analysis too.
Timing constraints:
False path: It specifies the logic path. In below fig when enable is 0 the
output is 8 (from first block 5 is active and from second block 3 is active
5+3=8) if we didn’t specifies the logic path tool will take wrong path like (5+5
or 3+3).