Physical Design is a process of transforming a circuit description into physical layout which describes the position of cells and routes for the interconnections between them. It is the result of a synthesized netlist that has been placed and routed. The design flow deals with various steps involved such as follows: Synthesized netlist ⇓ Partitioning ⇓ Sanity checks ⇓ Floorplan ⇓ Power plan ⇓ Placement ⇓ Clock Tree Structure (CTS) ⇓ Routing ⇓ Signoff Sanity checks has to be performed before every stage in order to check whether our design is meeting the requirements for the next stage (or) whether its properly designed. Basically, a code(program) is developed that explains us the RTL characteristics of the chip to be designed. That will be done by the front end engineers(RTL design team). The developed code is then compiled and as a result, a synthesized netlist is obtained. It contains the gate level model for the respective RTL code. .def is the output file at each s...
Switching of a signal
in one net can interfere the signal in neighboring net due to coupling capacitance formed
between the metals. This is referred as "CrossTalk".
The affecting net is
called as "Aggressor" whereas the net being affected is called
as "Victim".
There are 2 types of
effects caused by crosstalk.
Crosstalk Noise : because of glitch (steady victim)
Crosstalk Delay : change in timing of the victim
(switching victim)
Crosstalk
Noise :
This is because of
glitch formed on victim.
Here aggressor is
switching signal whereas victim is a steady signal (either constant 1 or 0).
The magnitude of the
glitch depends on
- coupling capacitance between the aggressor and victim
- slew of the aggressor net
If the magnitude of the
glitch is large enough, then the fanout cell gets a different logic value that
results in functionality error.
Types of Glitches :
When victim is at steady
low
- Rise glitch : when aggressor switches from 0 to 1
- Undershoot glitch : when aggressor switches from 1 to 0 (i.e., < logic 0).
When victim is at steady
high
- Fall glitch : when aggressor switches from 1 to 0.
- Overshoot glitch : when aggressor switches from 0 to 1 (i.e., > logic 1).
The propagation of
glitch through the cell, depends on the glitch attributes such as
- glitch height
- glitch width
- fanout load
DC noise analysis
examines the glitch magnitude whereas the the width of glitch and effect of
fanout load were examined by AC analysis.
DC analysis :
The glitch voltages
which are in between Vih_min and Vdd and Vil_max and Vss are
considered as "Safe glitches" whereas the voltages
in between Vil_max and Vih_min are considered as hazardous ones (which pushes the flop connected to it into metastability state causing the functionality failures).
AC analysis :
The light shaded region
represents the good (or) acceptable glitches and the dark shaded region are
hazardous ones.
When comes to fanout
load, the figure shows everything.
As the load of the cell increases, the effect of the glitch reduces.
Noise accumulation with multiple aggressors:
This analysis includes determining whether the multiple aggressors can switch concurrently. STA obtains this information from timing windows of aggressor nets. Then based on concurrent switching of aggressor nets in each timing bin, the worst delay is estimated and considered in timing analysis.
For example,
Noise accumulation with multiple aggressors:
This analysis includes determining whether the multiple aggressors can switch concurrently. STA obtains this information from timing windows of aggressor nets. Then based on concurrent switching of aggressor nets in each timing bin, the worst delay is estimated and considered in timing analysis.
For example,
Here glitch contribution
of each aggressor is as shown. So, the delay of timing
bin 1 : A1 + A2 = 0.11 +
0.10 = 0.21
bin 2 : A1 + A2 + A3 =
0.11 + 0.10 + 0.09 = 0.30
bin 3 : A1 + A3 = 0.11 +
0.09 = 0.20
bin 4 : A3 + A4 = 0.09 +
0.23 = 0.32
The worst delay obtained
is 0.32 which is considered for timing analysis. If the analysis is made
without considering timing windows, then tool considers all aggressors
contributions for timing analysis. This makes timing more pessimistic.
(*If the aggressor is
switching in opposite direction, then tool will subtract the contribution while
performing timing analysis.)
Crosstalk Delay :
This is because of
effect of high switching net on low switching net. It effects the delay of the
victim net.
The timing impact of an
aggressor net on victim net depends on
- amount of coupling capacitance
- slew rates of the signal transitions
- switching directions
- combination of effects from multiple aggressor nets on
a single victim net.
Types of delays :
Based on the switching
directions of aggressor and victim.
- Positive delay
- Negative delay
Positive delay :
- Aggressor and victim are switching in the different
direction.
- Hence, the delay on the victim increases.
Negative delay :
- Aggressor and victim are switching in the same
direction.
- Hence, the delay on the victim decreases.
Types of delay
contributions computed for each cell and interconnect in the design :
- Positive rise delay (rise edge moves forward in time)
- Negative rise delay (rise edge moves backward in time)
- Positive fall delay (fall edge moves forward in time)
- Negative rise delay (fall edge moves backward in time)
Aggressor victim timing
correlation :
Crosstalk effects the
delay of victim net if aggressor and victim switches concurrently. For multiple
aggressor analysis, it is same as that of glitch analysis. i.e., based on
timing windows.
For example,
The delays in timing
bins are as follows.
bin 1 : A1 + A2 = 0.12 +
0.14 = 0.26
bin 2 : A1 = 0.12
bin 3 : A3 = 0.23
The worst delay here,
0.26 shows impact on the timing of victim net.
Timing analysis with crosstalk :
Tool always considers
the worst case delays for the data path and clock paths.
Setup calculation :
As mentioned in the
previous post on STA calculation, tool
considers the min. delays for RT and max. delays for AT.
We just discussed that
positive crosstalk increases delay and negative crosstalk reduces the delay.
Setup slack = RTmin - ATmax
Launch clock path and
data path sees positive crosstalk delays and Capture clock path sees
negative crosstalk delays.
Hold calculation :
As mentioned in the
previous post on STA calculation, tool
considers the max. delays for RT and min. delays for AT.
Hold slack = ATmin - RTmax
Launch clock path and data path sees negative crosstalk delays and Capture clock path sees
positive crosstalk delays.
For common path, the contributions of crosstalk is as
mentioned for setup where it sees the different delays for AT and RT because
the setup check is done at the next edge. That means, capturing is done at next
edge.
But for hold analysis,
no delays are considered for common path because the hold check is done at same
edge of launch and capture clocks.Reduction Techniques :
1. Adding Non-Default
Rule (NDR) - increasing spacing
between the nets.
2. Shielding - routing with ground lines around the aggressor so that
avoids the formation of coupling capacitance with victim net.
3. By upsizing the driver of
victim net (or) downsizing the driver of aggressor net.
4. Buffering - splitting the long nets that inturn reduces the
capacitance.
Source : ICC user guide
and J. Bhaskar
Comments
Post a Comment
Let us upgrade together. Please leave your comments for betterment