Re: I(V) vs V(t): shouldn't they be consistent

From: Bob Ross <bobr@emicx.mentorg.com>
Date: Tue Jun 16 1998 - 15:42:30 PDT

Nik:

I am providing a brief response to you question in your
text.

Best Regards,
Bob Ross
Interconnectix/Mentor Graphics

> Date: Tue, 16 Jun 1998 12:16:00 -0700
> From: Nikolai Bannov <nikolai@avanticorp.com>
> Organization: Avant! Corporation
> To: ibis-users@eda.org
> Subject: I(V) vs V(t): shouldn't they be consistent

> Hi IBIS gurus:

> I'd like to ask a few questions regarding relationship
> between I(V) pull-up, pull-down curves at one side and
> V(t) raising-waveform, falling-waveform at another side.

> Ibis does not say anything about consistency of these two types of data.
> My undestanding is that they can be inconsistent quite often
> and my questions are basically about how to interprit this
> inconsistency. Should some type of data take precedence over another
> type,
> because they can be consided known with better accuracy?

> Thank all of you who take a look at this issue and
> share thoughts and knowledge.

> Nik

> first, a typical configuration and notations:

> V_high
> | | Vdie Vpin V1
> | | | PACKAGE | | TEST FIXTURE
> | ____|____ | | |
> | | DUT | v L_dut R_dut v L_fixture v R_fixture
> | | die |-o--@@@@@--/\/\/\--o-----@@@@-----o-----/\/\/\-----
> V_fixture
> | |_________| <--- | |
> | | I | |
> | | | |
> | | C_dut === === C_fixture
> | | | |
> | V_low | |
> | GND GND
> | Fig. 1

> We have pull-down and pull-up curves,
> Ipd = Ipd(Vdie-V_low), Ipu = Ipu(V_high-Vdie).

> Standard does not require this but all ibis files which I saw have
> Ipd(0)=0, Ipu(0)=0. This looks reasonable to me.
> Basically this means, that if output is low, then pull-up circuit
> is 100% OFF and does not supply any current. Similarly,
> if output is high, then pull-down circuitry is 100% OFF and supplies
> no current.

For Bipolar and BiCMOS outputs, the above assumptions are usually not
correct.

> ^ I
> | ---------------------------------- Ipd
> | /
> | /
> | /
> | /
> | /
> | /
> | / V_high Vdie
> -----|-------------------------------------------------------->
> V_low /
> | /
> | /
> | /
> | /
> | /
> -----|------------------------------- Ipu
> |
> Fig. 2

> Let us assume there are Rasing_Waveform, Falling_Waveform pairs
> in ibis file in the number M, 0 < M <= 100.

> excerpt from ibis standard:
> | A waveform table must include the entire waveform;
> | i.e., the first entry (or entries) in a voltage
> column
> | must be the DC voltage of the output before
> switching
> ------------
> | and the last entry (or entries) of the column must
> be
> | the final DC value of the output after switching.
> Each
> --------------
> | table must contain at least two entries. Thus,
> numerical
> | values are required for the first and last entries
> of any
> | column containing numerical data.

> QUESTION 1.
> -----------
> Pick up a raising waveform for V_fixture = V_low (if such does not
> exist, the question does not exit either).
> Because the first point of V(t) curve should correspond to DC
> voltage, it should be V_low (usually 0). Many ibis files I saw have
> non-zero
> initial voltage, an example in the latest ibis standard(proposal)
> also have non-zero initial voltage.
> Why ? How to interpret this inconsistency.

I cannot find this example. One example in IBIS Version 3.0 starts
at 25.21 mV which is consistent with a BiCMOS output.

> typical example:

> [Rising Waveform]
> R_fixture = 50
> V_fixture = 0
> C_fixture = 0.0p
> |
> |Time V(typ) V(min) V(max)
> 0.00e+00 +2.929e-01 NA NA
> 2.00e-10 +9.850e-01 NA NA
> 4.00e-10 +3.584e+00 NA NA
> 6.00e-10 +4.578e+00 NA NA
> 8.00e-10 +4.782e+00 NA NA
> 1.00e-09 +4.780e+00 NA NA
> ....

> QUESTION 2.
> -----------
> Similar to previous one, but opposit polarity.
> Pick up a falling waveform for V_fixture = V_high (if such does not
> exist, the question does not apply).
> Because the first point of V(t) curve should correspond to DC
> voltage, it should be V_high. Many ibis files I saw have smaller
> than V_high initial voltage.
> Why ? How to interpret this inconsistency.

The example below looks way off. I would also expect the
starting voltage to be near to 5.0 V with V_fixture = 5.0.

> typical example:

> [Falling Waveform]
> R_fixture = 50
> C_fixture = 0.0p
> V_fixture = 5.0
> |
> |Time V(typ) V(min) V(max)
> 0.00e+00 +3.100e+00 NA NA
> 1.00e-10 +3.092e+00 NA NA
> 3.00e-10 +3.001e+00 NA NA
> 4.00e-10 +2.665e+00 NA NA
> 5.00e-10 +2.218e+00 NA NA
> 6.00e-10 +1.710e+00 NA NA
> 7.00e-10 +1.186e+00 NA NA
> 8.00e-10 +7.476e-01 NA NA
> 9.00e-10 +4.763e-01 NA NA
> 1.00e-09 +3.173e-01 NA NA
> .........
> Look, we have here 3.1 Volts instead of 5.0 volts, do we have
> accuracy (5-3.1)/5=40% ?

You would have to look at the other data, but I agree that this
table does not look good. This is not the table in IBIS Version 3.0.

> QUESTION 3.
> -----------
> Let's pick up a raising waveform (the similar QUESTION
> can be raised about falling waveform).
> Given the circuit on Fig.1, and using the raising waveform, Vpin(t),
> I can find (in principle) I(t), Vdie(t),
> right at the buffer output (see Fig.1).

> When the buffer is in transition from low to high, both PD and PU
> circuits source/sink current. However, in the very first moment,
> for only 1st point of V(t) curve, the PD circuit should be OFF,
> while PD should be 100% ON (see the excerpt from the standard).

> Therefore, for that very first point, if we specify Vdie(t=0),
> we can find 'I' from Ipd(Vdie(t=0)-Vlow) curve. This 'I' should
> coincide with I(t) defind in the the first paragraph for thei QUESTION.
> If you take a few ibis files and a calculator, you can easily find
> they never match.

This could match for the actual [Pulldown] table data which probably
has I = 0 at about .3 V.

> The question is how to interpret this inconsistency.

It should be consistent.

> QUESTION 4.
> -----------
> Out of set of M raising waveforms
> (the similar question can be raised for falling waveforms)
> I will pick up i1 and j1 and calculate coefficients KUR1 KUD1
> to describe the buffer behavior.
> Then I pick up i2 and j2 wavefors and calculate KUR2 KUD2.
> What I am going to find is that
> KUR1 not_equal_to KUR2, KUD1 not_equal_to KUD2.
> Ibis allows 100 waveforms, and with this waveforms I am getting
> a bunch of inconsistent data.

> How to interpret this inconsistency.

As a practical matter, we rarely see more than 2 waveforms.
The newer IBIS Cookbook gives some recommendations for
preferred two-waveform loading conditions, and such
recommendations would give you the K* multiplier
coeficients directly. We use up to the first two
waveforms in the IBIS file and ignore the rest.
(They could be used for validation information or
capture a different operating environment.)

You are right that more waveforms would give you a
different set of coefficients - assuming that
only the first two waveforms are used. Although probably
not practical it is possible to find the optimal
K* multipliers for more than two waveforms - with
some minimal error in all R_fixture loads.

If a file existed with a large number of waveforms
(probably to capture a number of Z0 loading conditions)
then we would recommend moving the set that corresponds
to the actual operating conditions to the first two
waveform positions in the file.

> ------------------------------------- the end
Received on Tue Jun 16 15:46:33 1998

This archive was generated by hypermail 2.1.8 : Fri Jun 03 2011 - 09:53:46 PDT