> question: Are IBIS models usable and/or acceptable with these
> non-monotonic values which are occurring at about a diode drop below the
> gnd rail and a diode drop above the power rail.
Answer: "It depends"
You say that you're getting non-monotonic warnings on your CLAMP curves from
the ibischk utility. Since you're not coming from measurement I can't think
of a good reason why this happens in the CLAMP curve.
As far as the [Pullup] and [Pulldown] curves my thinking is that devices
that don't incorporate feedback should not need any major correction (>1mA).
The [Pullup] and [Pulldown] can each be non-monotonic, but the sum of either
plus the [*_Clamp] curves must be monotonic for most simulators (see "So
WHY MAJOR/MINOR CORRECTIONS ARE NEEDED:
A major correction may be needed if there aren't enough points in a highly
non-linear region. The elbow of the shunt curve is not captured in the data
so some type of interpolation as an approximation to the real curve.
A major correction may be needed if the Voltage points don't line up among
the I-V curves. For example if the voltage points of the [POWER_Clamp]
don't line up to the [Pullup] then again interpolation will need to be used
to do the subtraction and stuff them into the file.
A minor correction (<.1mA) may be needed because of the floating point
subtraction that model makers must do when building the IBIS tables. If the
subtraction is done using C "float"'s you get 6 sig figs so within a shunt
region results can get off l affects the "6" in 123.456mA.
A minor correction may needed when imaginary diodes that sink 99Amps of
current. This can throw the floating point subtraction even more. Include
the series resistance in the diode model!
The interpolation described above happens in both the s2ibis tool to perform
the subtraction required by IBIS curves and in the simulator to sum the
different curves up to simulate a particular logic state.
Bottom Line--reduce dependence on interpolation by adding more points, and
making the voltage points the same for each curve.
So why is monotonization required anyway?
Primarily for STABILITY. Popular time-stepping simulator algorithms require
that I-V curves representing EACH PARTICULAR LOGIC STATE of the device be
Because of the way that IBIS I-V curves are defined, each DC LOGIC STATE can
be represented by the SUM of certain I-V curves without the danger of
Z [POWER_Clamp] + [GND_Clamp]
HIGH [POWER_Clamp] + [GND_Clamp] + [Pullup]
LOW [POWER_Clamp] + [GND_Clamp] + [Pulldown]
This leads to at least a wrong way and right way to "monotonize" each
Monotonize each I-V curve individually. This is often wrong because the
currents within the "effective clamping region" of the HIGH and LOW states
are double-counted. For example if the MEASURED (read "REAL")clamping
capability at VCC+1.0V is nearly the same regardless of whether the device
is in the HIGH-STATE or the Z-STATE then that means that the IBIS [Pullup]
current values will go to zero at VDD+1.0. If the simulator had monotonized
the [Pullup] curve by increasing the currents within the VDD++ region then
the VDD+1.0 effective current will be the [POWER_Clamp] current plus the
current at where the monotonize correction had to be performed (likely at
Vdd+.7) which makes the result likely to be off by 2X. This error is only
noticable in the clamping regions and not within the operating regions.
A Right way:
Monotonize each STATE individually. For each state, the appropriate curves