Professional Documents
Culture Documents
Double Switching
Double Switching
Double Switching
CLK
CLK
After update_timing user can get access to this double switching information either
thanks to command report_si_double_switching or by accessing net attributes
si_has_double_switching and si_double_switching_slack.
Ex:
Aggressor
d1
d2
Victim
report_si_double_switching -fall d2
****************************************
Report : si_double_switching
d2_P0 -fall
…
****************************************
this report is the list of violations, i.e. the list of the victim nets of the design that are
double crossing delay threshold while falling in that example. The victim transitions are
usually slow if user looks at report_timing -trans on the victim net.
The actual bump height cannot be really correlated with a spice simulation as the signal is
transitioning but is a function of victim and aggressor's drivers slope and strength, of the
victim and aggressor network including cross capacitance and victim and aggressor's load
cells.
This report displays also the required bump height, what would be the maximum bump
height that would be safe and not produce a double switching. Of course the slack is the
difference between the required bump height and the actual bump height, and a violation
is displayed when this slack is getting negative.
The net attributes si_has_double_switching and
si_double_switching_slack reflect the same and can be used for ECO scripting.
Victim
Aggressor
Min_fall is the case where the victim is falling and the aggressor is falling as well:
Having min switching violation is very rare but it can happen. It is the boundary of
crosstalk delay & noise. If the bump is very very sharp on a very slow transition victim,
the victim waveform becomes non-linear. That gets amplified by a strong receiver cell..
In that case on the same net report_noise flags violations as well. Of course the
probability is high that double switching violations are also flagged as noise violations.
But it may happen that these bumps are only harmful when the victim is transitioning and
in that case you may have violations in double switching but not in noise analysis.
noise_region: above_low
pin name (net name) width height slack
-----------------------------------------------------
bufb_reg1a/I (d2) 0.790714 0.804138 -0.231469
noise_region: below_high
pin name (net name) width height slack
-----------------------------------------------------
bufb_reg1a/I (d2) 1.195714 0.860561 -0.394644
By creating a spice simulation on that circuit we get these waveforms:
Victim
Aggressor