[ibis-macro] Re: Determining the reference signal_name of an I/O buffer

  • From: Walter Katz <wkatz@xxxxxxxxxx>
  • To: "Tom Dagostino" <tom@xxxxxxxxxxxxxxxxx>, <mlabonte@xxxxxxxxxx>
  • Date: Mon, 29 Feb 2016 23:29:35 -0500 (EST)

Tom,

 

The answer below is rambling, and by deduction identifies the fundamental
flaw in IBIS that Pullup and Power Clamp curves are relative to the power
rail but Pulldown and Ground Clamp curves are not relative to the ground
rail. IBIS only works when the ground rail is 0.0V when the device is
measured. 

 

You are correct, you can do three different model measurements with the
three setups, and they would be three different [Model]s. But it is not
necessary to do that. You could use any one of the three model sets of
measurements with any one of the three operating conditions. Note that all
of the IV curves are relative to their reference voltage. So you can do
the three sets of measurements but they will all have the exact same data
in the tables. (Actually I found this not to be true, see below)

 

Let me explain with an example of a pulldown curve measured when the
[Pulldown Reference] is 0.0V, with the following measurements. (And [Pin
Mapping] says the [Pulldown Reference] is VCC.)

 

[Pulldown]

| Voltage I(typ)

-.1            -10mA

0.              0.0A

.1              +10ma

 

What this means is that when I supplied 0.0V to the VCC pin of the device
and when I supply +.1V to the I/O Pin there will be +10mA of current
flowing out of the buffer to the I/O pin. (Note the VCC pin and I/O Pin
are two pins on the PCB, and I can measure each of these voltages relative
to some other reference node on the PCB.)

 

Now suppose I supply -5.0V to the VCC pin of the device, and -4.9V to the
I/O pin of the device. The voltage that is used to look up the pullup
curve current is -4.9-(-5.0)=.1, and low and behold the current at the I/O
pin is +10ma.

 

IBIS got it write in the following description ~ page 53 of the
specification:

 

Other Notes: The I-V table of the [Pullup] and the [POWER Clamp]
structures are "Vcc relative", meaning that the voltage values are
referenced to the Vcc pin. (Note that, under these keywords, all
references to "Vcc" refer to the voltage rail defined by the [Voltage
Range], [Pullup Reference], or [POWER Clamp Reference] keywords, as
appropriate.) The voltages in the data tables are derived from the
equation: 

Vtable = Vcc - Voutput

Therefore, for a 5 V model, -5 V in the table actually means 5 V above
Vcc, which is +10 V with respect to ground; and 10 V means 10 V below Vcc,
which is -5 V with respect to ground. Vcc-relative data is necessary to
model a pullup structure properly, since the output current of a pullup
structure depends on the voltage between the output and Vcc pins and not
the voltage between the output and ground pins. Note that the [GND Clamp]
I-V table can include quiescent input currents, or the currents of a
3-stated output, if so desired.

 

So the IV table of the [Pullup] and [Power Clamp] is the I/O pad relative
to the [Voltage Range], [Pullup Reference], or [POWER Clamp Reference]
minus the Voutput. What IBIS does not do is say that the IV curve of the
[Pulldown] and [GND Clamp] curves are relative to the Voutput minus the
[Pulldown Reference] or [Power Clamp Reference].

 

IBIS is inconsistent here, and I believe incorrect when the DUT has
something other than \ 0.0V is supplied to the  [Pulldown] and [GND Clamp]
curves. The picture describing how to measure IV and VT curves is shown in
the famous Figure 16 on page 72:

 



 

Just as the specification says that the Vtable that goes in to the
[Pullup] table is [Pullup Reference]-V_fixture (Voutput), the Vtable that
should go into the [Pulldown] table should be V_fixture
(Voutput)-[Pulldown Reference]. This should be for both generating the IV
curves and the actual rail voltage supplied during simulation.

 

So I am feeling the problem in the IBIS specification is more complex than
originally thought.

 

The following never made any sense to me:

 

When tabulating data for ECL models, the data in the [Pulldown] table is
measured with the output in the "logic low" state.  In other words, the
data in the table represents the I-V characteristics of the output when
the output is at the most negative of its two logic levels.  Likewise, the
data in the [Pullup] table is measured with the output in the "logic one"
state and represents the I-V characteristics when the output is at the
most positive logic level.  Note that in BOTH of these cases, the data is
referenced to the Vcc supply voltage, using the equation:  

 

Vtable = Vcc - Voutput

 

I expect this probably should have been:

 

When tabulating data for ECL models, the data in the [Pulldown] table is
measured with the output in the "logic low" state.  In other words, the
data in the table represents the I-V characteristics of the output when
the output is at the most negative of its two logic levels.  Likewise, the
data in the [Pullup] table is measured with the output in the "logic one"
state and represents the I-V characteristics when the output is at the
most positive logic level.  The data in the [Pullup] table is referenced
to the VCC supply voltage, using the equation:

 

Vtable = Vcc - Voutput

 

The data in the [Pulldown] table is referenced to the Vee supply voltage,
using the equation:

 

Vtable = Voutput-Vee

 

If this were the case then a single set of measurement would suffice for
all three operating conditions described above.

 

 

Walter

 

 

From: Tom Dagostino [mailto:tom@xxxxxxxxxxxxxxxxx] ;
Sent: Monday, February 29, 2016 9:10 PM
To: wkatz@xxxxxxxxxx; mlabonte@xxxxxxxxxx
Cc: 'IBIS-ATM' <ibis-macro@xxxxxxxxxxxxx>
Subject: RE: [ibis-macro] Re: Determining the reference signal_name of an
I/O buffer

 

Walter

 

I'm having a problem understanding what you are saying.

 

The example part, the 100313 OR ANY OTHER ECL part can be operated under
normal conditions with for instance:

 

Vcc         0.0          2.0          5.0

Vee        -5.2        -2.5        0.0

 

This same part can be modeled/measured with the following setup:

 

Vcc         0.0          2.0          5.0

Vee        -5.2        -2.5        0.0

 

I know this, I've done this with real parts and real test equipment.  I've
also used ECL parts in all three configurations.

 

There is zero confusion in my mind about this.

 

ALL ECL parts have their input thresholds and output levels defined
relative to Vcc no matter if Vcc is 0, 2 or 5 or any other appropriate
voltage.  With simple transformations we can express them as voltages
relative to say GND but the characteristics will be dependent on the level
of Vcc.

 

I've actually done a lot of ECL models.  If you do what you suggest you
will get endpoint errors from the VT tables.  You really do need three
different models to have no parsing errors in the three different setups
above.  For example if you measure the output buffer with Vcc = 0V the VT
table will have end points of about 0 and about -0.9V.  If you change your
Vcc to 5 and Vee to 0 your VT table end points are still 0V and -0.9V.
But with Vcc = 5V you would expect to see end points of 3 and 3.9V.

 

Tom Dagostino

    

971-279-5325

 <mailto:tom@xxxxxxxxxxxxxxxxx> tom@xxxxxxxxxxxxxxxxx 

 



 

From: ibis-macro-bounce@xxxxxxxxxxxxx
<mailto:ibis-macro-bounce@xxxxxxxxxxxxx>
[mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Walter Katz
Sent: Monday, February 29, 2016 5:21 PM
To: Tom Dagostino; mlabonte@xxxxxxxxxx <mailto:mlabonte@xxxxxxxxxx
Cc: IBIS-ATM
Subject: [ibis-macro] Re: Determining the reference signal_name of an I/O
buffer

 

Tom,

 

The question is not what are the operating conditions of the device in a
system. The question is what are the operating conditions of the device
when the IV and VT curves are made. You are confusing the specs of a
device when all voltages are relative to VCC=0. If the device under test
was measured with VCC=0.

 

Consider your part 100313.

 

[Pin]

4 O2c  Output

5 VCC  GND

18 VEE POWER

|

[Pin Mapping] pulldown_ref pullup_ref gnd_clamp_ref power_clamp_ref
ext_ref 

4                      VCC                VCC           VEE
VCC                           

|

[Model] Output

Model_type Output

[Pullup Reference] 0.

[Pulldown Reference] 0.

[Power Clamp Reference] 0.

[GND Clamp Reference] -7.3

 

 

This model will work just fine with the following 3 supply voltage
combinations (relative to chassis ground):

 

VCC     VEE

1.      0.0       -7.3

2.      3.65     -3.65

3.      7.3       0.0

 

The bottom line is [Pullup Reference], [Pulldown Reference], [Power Clamp
Reference]  and [GND Clamp Reference] are the voltages that are supplied
to the component when the device is under test, not the voltages supplied
to the component when the component is operating. One does not need three
different models to describe the three operating conditions. 

 

Walter

 

 

From: Tom Dagostino [mailto:tom@xxxxxxxxxxxxxxxxx] ;
Sent: Monday, February 29, 2016 7:39 PM
To: wkatz@xxxxxxxxxx <mailto:wkatz@xxxxxxxxxx> ; mlabonte@xxxxxxxxxx
<mailto:mlabonte@xxxxxxxxxx
Cc: 'IBIS-ATM' <ibis-macro@xxxxxxxxxxxxx <mailto:ibis-macro@xxxxxxxxxxxxx>


Subject: RE: [ibis-macro] Re: Determining the reference signal_name of an
I/O buffer

 

Walter

 

For the purposes of the datasheet the setup conditions were with Vcc = 0V.
But Vcc is not always GND as seen in the test setup in the datasheet.  The
specified voltages are with respect to Vcc, not GND.  The internal working
of an ECL buffer show you that Vcc is the rail at which specifications are
referenced.  

 

Look at FIGURE 1.  Vcc = 2V, Vee = -2.5V 

One page 4 FIGURE 2, the input voltage is specified between +0.31 to
+1.05V.  That would not work if the part was specified as Vcc = GND.

 

If I could find my old Motorola ECL manual I'd loan it to you.  This is
addresses very nicely in it.  If you look at a part supplied with Vcc = 0V
and Vee = -5.2V the input and output specifications do not change as a
function of Vee (within reason). But if you supply an ECL part with Vcc =
5V and Vee = 0V then the input and output specifications are a function of
Vcc.  If you remember correctly the termination load for ECL is 50 Ohms to
Vcc - 2V.  So as Vcc changes from +4.5 to +5.5V, the termination voltage
changes from  2.5 to 3.5V (4.5V - 2V = 2.5V  --   5.5V - 2V = 3.5V).  The
input's specification tracks the output levels.

 

If you look at the schematic for an ECL buffer the output high is
determined by the base current of the output emitter follower times the
internal resistor on the diff pair plus a Vbe drop in the output device.
The output low is the IR drop of the same resistor and the standing
current of the diff pair plus base current and a diode drop from Vcc.

 

And yes, the people who are making the datasheets today are taking short
cuts as seen in many ECL datasheets these days.  These short cuts make it
easier for people, they don't have to subtract  Voutlow from Vcc to get
the voltage one would see on a DMM readout.  ECL started in the 1960s and
a -5.2V Vee supply was used.  When TTL and them CMOS became popular with
positive supplies Motorola, National, etc. started specifying their ECL
parts with a Vee = 0V/Vcc =+5V supply and called them PECL. That way you
could have a mix of ECL and TTL/CMOS from a single +5V supply.  Yes,
people were designing mixed systems with -5.2/+5V supplies and really did
not need to do that.  But the ECL parts were specified to work at Vee =
-5.2V and nobody wanted to operate the parts off spec.

 

And I've modeled CMOS like parts that were specified in the datasheet to
operate between 0 and -5V.  

 

I've also modeled parts that have +/-12V supplies that had TTL like input
threshold level but no pin tied to GND.  And no logic  supply pin either.
The only assumption is the two supplies are of equal magnitude.  These
parts could have been run between 0 and +2*V or 0 and -2*V.

 

It is likely that none of these strange setups will ever dominate the
market and your assumption covers most chips designers will encounter but
not all.  IBIS was set up assuming there were no tri-state ECL parts
either but I've seen many of them.

 

 

Tom Dagostino

    

971-279-5325

 <mailto:tom@xxxxxxxxxxxxxxxxx> tom@xxxxxxxxxxxxxxxxx 

 



 

From:  <mailto:ibis-macro-bounce@xxxxxxxxxxxxx>
ibis-macro-bounce@xxxxxxxxxxxxx [ <mailto:ibis-macro-bounce@xxxxxxxxxxxxx>
mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Walter Katz
Sent: Monday, February 29, 2016 3:24 PM
To: Tom Dagostino;  <mailto:mlabonte@xxxxxxxxxx> mlabonte@xxxxxxxxxx
Cc: IBIS-ATM
Subject: [ibis-macro] Re: Determining the reference signal_name of an I/O
buffer

 

Tom,

 

The data book says VCC is GND which is the reference voltage for all
measurements on the chip.

 

There is nothing that prevents hooking up a different voltage relative to
chassis ground to this pin, but all measurement for inputs and outputs
shall be relative to this VCC reference voltage.

 

I assume that VCC will be one of the rail voltages supplied to the device
(e.g. Power Clamp Reference). Then [Power Clamp Reference] would be 0.0V.
The EDA tool can certainly supply any voltage it want to this device.

 

Walter

 

From: Tom Dagostino [mailto:tom@xxxxxxxxxxxxxxxxx] ;
Sent: Monday, February 29, 2016 6:10 PM
To: wkatz@xxxxxxxxxx <mailto:wkatz@xxxxxxxxxx> ; mlabonte@xxxxxxxxxx
<mailto:mlabonte@xxxxxxxxxx
Cc: 'IBIS-ATM' <ibis-macro@xxxxxxxxxxxxx <mailto:ibis-macro@xxxxxxxxxxxxx>

Subject: RE: [ibis-macro] Re: Determining the reference signal_name of an
I/O buffer

 

Walter

 

Like all ECL like parts the input and output voltages are specified with
respect to Vcc, the most positive supply no matter how the part is hooked
to supplies.  This part can be run from -5/0V, 0/+5V or -2.5/+2.0V.  They
test this part with a -2.5/+2V setup.  The voltages specified in the spec
sheet are for Vcc = 0V.

 

Tom Dagostino

    

971-279-5325

 <mailto:tom@xxxxxxxxxxxxxxxxx> tom@xxxxxxxxxxxxxxxxx 

 



 

From:  <mailto:ibis-macro-bounce@xxxxxxxxxxxxx>
ibis-macro-bounce@xxxxxxxxxxxxx [ <mailto:ibis-macro-bounce@xxxxxxxxxxxxx>
mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Walter Katz
Sent: Monday, February 29, 2016 2:23 PM
To: Tom Dagostino;  <mailto:mlabonte@xxxxxxxxxx> mlabonte@xxxxxxxxxx
Cc: IBIS-ATM
Subject: [ibis-macro] Re: Determining the reference signal_name of an I/O
buffer

 

Tom,

 

Thank you for find this part. Can you tel me the IC Vendor and a vendor
part number so that I can look at their data sheet. Since they are
measuring voltages, I would like to know how they indicate what is the
reference pin for the voltages that are being measured.

 

Walter

 

From: Tom Dagostino [mailto:tom@xxxxxxxxxxxxxxxxx] ;
Sent: Monday, February 29, 2016 2:48 PM
To: mlabonte@xxxxxxxxxx <mailto:mlabonte@xxxxxxxxxx> ; wkatz@xxxxxxxxxx
<mailto:wkatz@xxxxxxxxxx
Cc: 'IBIS-ATM' <ibis-macro@xxxxxxxxxxxxx <mailto:ibis-macro@xxxxxxxxxxxxx>

Subject: RE: [ibis-macro] Re: Determining the reference signal_name of an
I/O buffer

 

If you look at ECL chips you will find there is no GND in them.  There is
a Vee and a Vcc.  One common way of connecting ECL chips is to have Vcc at
2V and Vee at -3.2 or -1.3V.  Enclosed is an example test circuit.  There
are no pins with GND in this chip.  The input and output voltages are
specified as Vcc - Xspec.

 

I've also worked with serial data chips that have magnetic coupling
between the input stage and the output stage.  The output stage is meant
to float with respect to the input.  Think about a communications link
between two different buildings where there are two different "grounds"
with distinctly different voltages on them.  We cannot state the output
high voltage is 3.3V when measured at the input reference GND.  It may be
1,603V, or -2,163.4V.  Yes, you can tie the two grounds together and you
can have local "grounds".  But within the confines of an IBIS model GND1
is not GND2.  See ADM2486.

 

And while we are at it there is a whole class of other serial
communication chips that generate their own voltages internally.  The
parts are power by a 3.3V supply but the output has to swing from say -5V
to +5V.  There are voltage doublers in these chips with flying capacitors.
There is no hard fixed supply.  The output impedance of these supplies is
not very low.

 

And there is another class of chips that  have internal LDOs built into
them.  And I'm seeing more and more of these.  The pullup and Powerclamp
references are not power supplies on the board.  For example in one recent
part there was a single 3.3V supply to the chip.  Some of the output and
input buffers worked off the 3.3V supply.  But other worked off an
internally generated 1.8V supply.

 

And one chip recently had 3.3V and 1.8V supplies.  One set of output
buffers could work directly off the 3.3V supply or they could be switched
to an internally generated 2.1V supply.

 

One of the assumptions all SI simulators make is the supply can both sink
and source current.  In a large board this works fine for SI purposes
because there are enough current sinks on the board that any part whose
power clamp is supplying current to the supply has a place for this
current to flow.  But with these local LDO features any overshoot causing
a Powerclamp to conduct will upset the local supply.  There is usually a
pin in these LDO based chips to bypass the supply, but not always.

 

Regards,

 

Tom Dagostino

    

971-279-5325

 <mailto:tom@xxxxxxxxxxxxxxxxx> tom@xxxxxxxxxxxxxxxxx 

 



 

From:  <mailto:ibis-macro-bounce@xxxxxxxxxxxxx>
ibis-macro-bounce@xxxxxxxxxxxxx [ <mailto:ibis-macro-bounce@xxxxxxxxxxxxx>
mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Mike LaBonte
Sent: Sunday, February 28, 2016 8:36 PM
To:  <mailto:wkatz@xxxxxxxxxx> wkatz@xxxxxxxxxx
Cc: IBIS-ATM
Subject: [ibis-macro] Re: Determining the reference signal_name of an I/O
buffer

 

I think we need to be clear at all times whether it is sufficient to
identify a reference signal_name or if an exact pin must be identified.
The first sentence of this goes both ways. One question is whether the
parasitics of the interconnect shorting the pins associated with one
signal together are small enough to warrant claiming that it wouldn't
matter which of those pins were used as a measurement reference node. I'm
not so sure, particularly if package parasitics are in play.

 

A potential conflict might come up with BIRD 161.1 Supporting Incomplete
and Buffer-only [Component] Descriptions
<http://ibis.org/birds/bird161.1.docx> . It has not yet passed, but it
proposes allowing the first column of [Pin] to give pad names instead of
pin names. At least in that case we would know pin parasitics were absent.
But it allows says that a [Pin] section could have just one pin.

 

IBIS has always supported producing models from hardware measurement, but
it is not certain that IBIS requires models to be expressed as though
hardware had been measured when it wasn't. A quick search tells me I have
169 IBIS files on hand that do not contain the word "GND". 

 

Mike

 

  _____  

From: "Walter Katz" < <mailto:wkatz@xxxxxxxxxx> wkatz@xxxxxxxxxx>
To: "IBIS-ATM" < <mailto:ibis-macro@xxxxxxxxxxxxx>
ibis-macro@xxxxxxxxxxxxx>
Sent: Sunday, February 28, 2016 12:08:20 PM
Subject: [ibis-macro] Determining the reference signal_name of an I/O
buffer

 

All,

 

Continuing this thought, since IBIS is a component measurement based
system, and since measurement are made at the pin of a component, and
since every measurement at an I/O pin is made between that pin and some
nearby reference pin, then all we need to do is define a method of
determining the reference signal_name for every I/O pin. The following
algorithm should work for all known existing IBIS models:

 

1.       [Pin Mapping] tells the bus_label on each of the buffer rail
terminals.

2.       These bus_labels define the signal_name on each of the rail
terminals.

3.       If just one signal_name is on a Pin with Model_name GND, and the
values of the Pullup Reference, Power Clamp Reference, Ground Clamp
Reference, Pulldown Reference assigned that has that signal_name has a
value of 0.0V in the [Model], then a pin of that signal_name near the I/O
pin is the reference for the measurements at the I/O pin. Similarly, the
I/O buffer rail terminal with the reference signal_name at the I/O buffer
is the reference node for measurements at the I/O buffer. Similarly, the
supply pads at the die/package boundary near the I/O die pad are the
reference for measurements at the I/O die pad.

 

If this algorithm does not work for an I/O buffer (and I claim such a case
does not exist) then we can enhance IBIS by adding an option [I/O
Reference] section that has two columns. The first column is the Pin_name
of an I/O buffer, and the second column is the signal_name of the
reference for all measurements at the I/O buffer.

 

 

Walter  

 

From: Walter Katz [mailto:wkatz@xxxxxxxxxx] ;
Sent: Saturday, February 27, 2016 8:58 PM
To: IBIS-ATM <ibis-macro@xxxxxxxxxxxxx <mailto:ibis-macro@xxxxxxxxxxxxx> >
Subject: One of the rail voltages of every IBIS buffer is a GND
signal_name and a reference node.

 

All,

 

I have looked at the data sheets for parts with RS232, ECL, PECL and MECL
buffers, and every one of them has one of the rail voltages connected to a
Ground (GND) data book name (signal_name).

 

Although the IBIS standard does allow the user to associate all of the
rail voltages with bus_labels on POWER pins, such a buffer is an unnatural
act.

 

If we state that it is a given that every buffer has a Ground rail
connection, then we can state that every buffer has a well-defined
reference node for every other terminal measurement at the buffer.

 

I challenge anyone on this committee to find a part with an I/O buffer
that has no rail terminals that are Ground.

 

Walter

 

 

 

Walter Katz

 <mailto:wkatz@xxxxxxxxxx> wkatz@xxxxxxxxxx

Phone 303.449-2308

Mobile 303.335-6156

 

PNG image

Attachment: image002.emz
Description: Binary data

PNG image

Attachment: oledata.mso
Description: Binary data

Other related posts: