[IBIS-Users] Modeling input receivers with on-die termination


Subject: [IBIS-Users] Modeling input receivers with on-die termination
From: Todd Westerhoff (twesterh@cisco.com)
Date: Wed May 07 2003 - 22:44:09 PDT


Hi all,

This one has been bugging us for a while ... the discussions that took place
last week gave us the opportunity to take another look at this problem and
its different components. I have two solutions to propose, and would
appreciate feedback from the group.

I apologize in advance for a lengthy email. There's no other way I know to
describe the different components of the problem and the way they interact.

To start - the problem is accurately modeling the effect of on-die input
termination, most typically pulling the signal to a value of VDDQ/2, which
would be common for HSTL and SSTL signalling. The resistors in question (at
least in our case) were not discrete components in the package - they were
truly on-die. Hence, the resistance varied with process and was non-linear
over the operating range. Thus, we needed a way to extract the actual input
characteristics using the HSpice model and create the correct model in IBIS.

Simple enough, we thought - then it got deep.

To ended up breaking the problem down into three pieces -

1) The IBIS Specification
2) The process of creating models
3) How IBIS simulators use the data in the IBIS models

1) The IBIS Specification
-------------------------
Please correct me if I'm wrong here, but I believe the IBIS Spec doesn't
list any "standard" for the voltage range over which the behavior of the
[GND Clamp] and [POWER Clamp] should be specified. I took it as a given
that [Pulldown] and [Pullup] curves would range from -VDDQ to 2*VDDQ, and,
until last week, I would have expected to see the same range for the power
and ground clamps. That turned out not to be the case.

I also suspect that the IBIS spec has no comment on just how the simulator
is supposed to combine the data in the two clamp curves, should the points
overlap. That turned out to be a big sticking point.

2) The process of creating models
---------------------------------
There are two classes of people who create IBIS models from HSpice
simulations:

a) The gurus, who understand IBIS, HSpice and software well enough to
develop their own tools for extracting and compiling IBIS model data, and

b) The rest of us, who use some version of s2ibis2. Usually, it's one we've
compiled ourselves, with some collection of fixes implemented for problems
we have found on our own. I'm going to aim my comments squarely at s2ibis2,
with the assumption that's what most of the IBIS-modelmakers are basing
their efforts on.

When s2ibis2 was created, the developer noticed an interesting problem -
there is really no good way to separate the ground clamp curve from the
power clamp curve. With the [Pullup] and [Pulldown] curves, you can isolate
the behavior of transistor from the other by virtue of the output state.
However, if you model the input buffer and sweep the voltage from -VDDQ to
2*VDDQ, there's really no good way to separate the one clamp curve from the
other.

(When I talk about voltage from this point on, I'm going to use ground as a
reference, unless I specifically state that I'm using a power-based voltage
reference "a la IBIS". I'm also going to assume the ground clamp is active
between -VDDQ and 0V, the "operating region" for the device is between 0V
and VDDQ, and the power clamp is active between VDDQ and 2*VDDQ).

Of course, if you've got a normal input (without termination), the input
current is zero (or essentially so) throughout the operating region, so
there isn't really any problem. It doesn't much matter where the ground
clamp curve leaves off and the power clamp curve kicks in, because the
currents at those points are always zero.

However, the presence of on-die termination to VDDQ/2 presents an
interesting problem. The "zero current" point is somewhere in the middle of
the operating region, and it's only a single point. The power and ground
clamp curves, when added together, have to accurately represent the input's
characteristic throughout the device's operating region (0 to VDDQ), if you
want to input to behave properly.

So now the question becomes - where does one curve leave off, and the other
begin? Well, s2ibis2 simply implements the ground clamp curve from -VDDQ to
VDDQ, and the power clamp curve from VDDQ to 2*VDDQ. In theory, you should
be able to just attach the two curves together and get the right result - or
at least, that's the assumption s2ibis2 seems to be operating on. Remember,
because the power clamp curve in IBIS is rail-referenced, a sweep from VDDQ
to 2*VDDQ shows up in the IBIS file as from 0 to -VDDQ.

There are a couple of interesting caveats here. First, s2ibis2 ground clamp
curves actually all end at the same point, which is the [typ] value of VDDQ.
Let's assume that we have an HSTL 1.5 driver, whose power rail can vary by
10%. Thus, the [min] power rail is 1.35V, while the [max] power rail is
1.65V. In this case, the ground clamp data ends at 1.5V in all three cases.

The power clamp curves have the same issue, but in reverse. They are
supposed to sweep from VDDQ to 2*VDDQ. That's 0 to -VDDQ in IBIS terms (the
curves really go from -VDDQ to 0 in the IBIS data, because voltages are
supposed to increase). However, all three curves start at the same point,
which is 2*VDDQ[typ] (-VDDQ[typ] in IBISese), and end at the same point,
which is 0V.

But - and this is a big one - because the power clamp curves are
rail-referenced, 0V means different things in the different cases. It means
1.35V for [min], 1.5V for [typ] and 1.65V for [max]. So - if we adjust for
the rail reference and talk about ground-referenced voltages, the voltage
data points for the power clamp curves range from:

[min] 1.35V to 2.85V
[typ] 1.5V to 3.0V
[max] 1.65V to 3.15V

Let's set those side by side with the ground clamp curves and see what we
get:

      Ground Clamp Power Clamp
[min] -1.5V to 1.5V 1.35V to 2.85V
[typ] -1.5V to 1.5V 1.5V to 3.0V
[max] -1.5V to 1.5V 1.65V to 3.15V

The [typ] curves complement each other just fine, but there is an overlap in
the [min] data and a gap in the [max] data. We're primarily concerned about
capturing the behavior of the input termination across the entire operating
region here, so this looks like it might be a problem. Of course, that is
determined by how the simulator handles the situation where the clamp V-I
curves overlap or have a gap in them. We didn't expect what we found,
however.

3) How IBIS simulators use the data in the IBIS models
------------------------------------------------------
Different simulators may well do different things, and I'm not trying to say
I've tested all of them. At least some of them, if not all of them, behave
as I'm describing here.

We suspected an IBIS simulator might "double count" the current in the
overlap region in the [min]case (between 1.35V and 1.5V), thereby making the
termination appear twice as strong as it really was (in that region). We
didn't know what was going to happen in the [max] case, with a cap in the
data between 1.5 and 1.65V. So - we read the models in and tested them.

What we found, empirically, is that the simulator didn't add the curves
together the way you might expect - taking the data from the ground clamp
curve between -VDDQ and VDDQ, and the data from the power clamp curve
between VDDQ and 2*VDDQ. Instead, the simulator *extended each curve by
extrapolation* to cover the entire region from -VDDQ to 2*VDDQ, and *THEN*
added the currents together. In other words, the power clamp curve (which,
at the "IBIS 0V" point, corresponding to VDDQ, has a slope of roughly the
termination value) got extended through the whole operating region with a
slope roughly equal to the termination value. Now, when the simulator added
the contributions of the power and ground clamps in the operating region, it
came up with roughly twice the correct current, making the termination
appear twice as strong as it really was. We started out thinking there
might be a small problem in the gap/overlap regions of the [max/min] curves,
and discovered instead that none of the simulation cases were working
correctly, anywhere in the operating region.

This is a classic case of compartmentalization and assumptions - between
IBIS, s2ibis2 and the IBIS simulators. Bottom line, the basic assumption
was that clamps don't kick in until you go beyond the rail, and the overall
process falls apart in this case as a result.

4) What we can do about it
--------------------------
Again, I'm predicating this on the use of s2ibis2 to create IBIS models.
The goal is simple: create an IBIS model that accurately reproduces the
combined behavior of the clamps and input termination over the range
from -VDDQ to 2*VDDQ.

Both proposals both rely on the same basis: having s2ibis2 perform a single
input V-I sweep, over the voltage range from -VDDQ to 2*VDDQ. That one
simulation would capture all the behavior we're concerned about here. From
there, it's just a matter of how you format the data.

Proposal 1) Says that you put the whole kit & kaboodle into the [GND Clamp]
curve and omit the [POWER Clamp] curve entirely. There's really only one
composite input characteristic, anyway; separating it into two sets of clamp
curves is artificial. Having two curves provides benefits in some cases,
but it's hard to argue that those benefits apply here. This is the easiest
solution to implement, and provides the composite curve in one place. The
downside is that some users might object to having the power clamp data
included in the [GND Clamp] curve, and that some simulation tools might also
have a problem with this. A simulation tool that used a different technique
for combining the curve data might very well have a problem with this
approach.

Proposal 2) ... which Arpad suggested, was to find the zero-current point in
each of the min-typ-max cases, and assign all negative current to the ground
clamp, and all positive current to the power clamp. You need to make sure
that each clamp curve has two consecutive voltage data points with zero
current at the correct end of the curve (so that all further points are zero
current by extrapolation). You also need to do the proper voltage
translations when assigning current to the power clamp curve. The advantage
of this technique is that you end up with two sets of clamp curves as most
people expect, and they add together correctly. This disadvantage is a
slight increase in process complexity, and the fact that you probably won't
be able to view the overall input behavior in one place. Interestingly, the
IBIS-viewer/model-editor tools seem to allow you to view the combined V-I
characteristics of the output buffers, but don't provide for viewing the
combined characteristics of the power and ground clamp curves on an input.

.... so there you have it - s2ibis2 and input termination modeling in IBIS,
as I presently understand it. Corrections to my reasoning, comments and
thoughts on the subject are both welcome and greatly appreciated.

Todd.

Todd Westerhoff
High Speed Design Specialist
Cisco Systems
1414 Massachusetts Ave - Boxboro, MA - 01719
email:twesterh@cisco.com
ph: 978-936-2149
============================================

"When did the choices get so hard, with so much more at stake?
 Life gets mighty precious when there's less of it to waste"

- Bonnie Raitt, "Nick of Time"

|------------------------------------------------------------------
|For help or to subscribe/unsubscribe, email majordomo@eda.org
|with just the appropriate command message(s) in the body:
|
| help
| subscribe ibis <optional e-mail address, if different>
| subscribe ibis-users <optional e-mail address, if different>
| unsubscribe ibis <optional e-mail address, if different>
| unsubscribe ibis-users <optional e-mail address, if different>
|
|or email a written request to ibis-request@eda.org.
|
|IBIS reflector archives exist under:
|
| http://www.eda.org/pub/ibis/email_archive/ Recent
| http://www.eda.org/pub/ibis/users_archive/ Recent
| http://www.eda.org/pub/ibis/email/ E-mail since 1993



This archive was generated by hypermail 2b28 : Wed May 07 2003 - 22:56:42 PDT