[SI-LIST] Re: Algorithm to interpolate ramp data in IBIS

  • From: "BHAGWATH,NITIN (HP-Roseville,ex1)" <nitin.bhagwath@xxxxxx>
  • To: si-list@xxxxxxxxxxxxx
  • Date: Tue, 25 Nov 2003 10:12:25 -0800

Hi Arpad,

Thanks for the suggestion.  I'm using hspice for simulating the IBIS model,
and on reading the documentation, I found that hspice gives an option for
either using linear interpolation or quadratic bi-spilne interpolation.  I'm
going with the easier linear interpolation.  FYI, the script I'm developing
does the following:

1) Takes in an argument of precision desired
2) Take start point as first point, end point as second point
3) Keep incrementing end point by one, and check ALL points
   between the start and end points to see if any point is off
   the line extended by start and finish point by more than the
   desired precision.
4) If so, the point just preceding the end point is entered into the
   table (Because it must have passed the precision test), and is
   made the new start point.
5) (continue till end of points)


It seems to be working for me.  I do like your algorithm better however
because it takes in the number of points needed as a paramter (100 in this
case) rather than accuracy.  Right now, I need to try several different
accuracies before I get less than or equal a 100 points, which can take a
while.

Regards,
-Nitin Bhagwath

-----Original Message-----
From: si-list-bounce@xxxxxxxxxxxxx [mailto:si-list-bounce@xxxxxxxxxxxxx] On
Behalf Of Muranyi, Arpad
Sent: Monday, November 24, 2003 11:51 AM
To: si-list@xxxxxxxxxxxxx
Subject: [SI-LIST] Re: Algorithm to interpolate ramp data in IBIS


Nitin,

You are absolutely correct, 100 evenly spaced points for
the waveform tables (and also the IV tables) are not
accurate enough in most cases.

However, the IBIS specification does not describe how the
point reduction should be done, nor does it specify how the tools should
interpolate when reading such tables.  On the other hand, the specification
does say that the beginning and end of the waveform tables assume that the
buffer is in steady state (i.e. they start and end with a 0 slope). It also
says that the x-axis points do not have to be evenly spaced.

As far as I know, most tools use only linear interpolation,
but you need to ask your tool vendor how they do it on your
own about these details.

The tool I am using to make IBIS models does the following:

1)  Extract the two end points, connect them with a virtual
    straight line and check where this "new curve" has the
    largest vertical distance from the original curve.
2)  Pick up a new point at this largest distance, and connect
    the three points of this "new curve" with two straight
    lines, and check for the largest vertical distance again.
3)  Loop this way until 100 points are picked up.

I hope this helps.

Arpad Muranyi
Intel Corporation
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
-----Original Message-----
From: si-list-bounce@xxxxxxxxxxxxx [mailto:si-list-bounce@xxxxxxxxxxxxx]On
Behalf Of BHAGWATH,NITIN
(HP-Roseville,ex1)
Sent: Thursday, November 20, 2003 3:55 PM
To: si-list@xxxxxxxxxxxxx
Subject: [SI-LIST] Algorithm to interpolate ramp data in IBIS


Hello all,

I am trying to convert a spice buffer model to ibis, and am having an =
issue with the rampup/down portion.  If I have a hundred (or fewer) points
in = a rise or fall section with each point being sampled at a regular =
interval, then the resolution of the curve seems to be inadequate for my
purposes.

I have been reading articles about selectively removing points in the = ramp
up/down curves to reduce the number of points required for a given =
accuracy. Unfortunately, I have been unable to definitevely find an
algorithm used = by IBIS simulators to interpolate data points at timepoints
not in the IBIS file given two data points in the IBIS file at timepoints on
both sides = of the desired timepoint.

My understanding so far is that to extrapolate any values at times = either
before or after the endpoints of the curve, the last two points are =
linearly extended.  More critically (for getting a good algorithm for points
removal), is it valid to assume that a voltage can be obtained for any
arbitrary time by taking the voltages at the two closest timepoints, and
linearly interpolating at the desired time using these two given points? =
If so, then certain points can be removed if they can be obtained by two =
more extreme points. Would there be any issues if the resulting ramp up/down
curves no longer have points at regular intervals of time?

Any help is much appreciated.

Thanks
-Nitin Bhagwath
------------------------------------------------------------------
To unsubscribe from si-list:
si-list-request@xxxxxxxxxxxxx with 'unsubscribe' in the Subject field

or to administer your membership from a web page, go to:
//www.freelists.org/webpage/si-list

For help:
si-list-request@xxxxxxxxxxxxx with 'help' in the Subject field

List technical documents are available at:
                http:/www.si-list.org

List archives are viewable at:    =20
                //www.freelists.org/archives/si-list
or at our remote archives:
                http://groups.yahoo.com/group/si-list/messages=20
Old (prior to June 6, 2001) list archives are viewable at:
                http://www.qsl.net/wb6tpu
 =20

------------------------------------------------------------------
To unsubscribe from si-list:
si-list-request@xxxxxxxxxxxxx with 'unsubscribe' in the Subject field

or to administer your membership from a web page, go to:
//www.freelists.org/webpage/si-list

For help:
si-list-request@xxxxxxxxxxxxx with 'help' in the Subject field

List technical documents are available at:
                http://www.si-list.org

List archives are viewable at:     
                //www.freelists.org/archives/si-list
or at our remote archives:
                http://groups.yahoo.com/group/si-list/messages 
Old (prior to June 6, 2001) list archives are viewable at:
                http://www.qsl.net/wb6tpu
  
------------------------------------------------------------------
To unsubscribe from si-list:
si-list-request@xxxxxxxxxxxxx with 'unsubscribe' in the Subject field

or to administer your membership from a web page, go to:
//www.freelists.org/webpage/si-list

For help:
si-list-request@xxxxxxxxxxxxx with 'help' in the Subject field

List technical documents are available at:
                http://www.si-list.org

List archives are viewable at:     
                //www.freelists.org/archives/si-list
or at our remote archives:
                http://groups.yahoo.com/group/si-list/messages 
Old (prior to June 6, 2001) list archives are viewable at:
                http://www.qsl.net/wb6tpu
  

Other related posts: