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

  • From: "Muranyi, Arpad" <arpad.muranyi@xxxxxxxxx>
  • To: <si-list@xxxxxxxxxxxxx>
  • Date: Tue, 25 Nov 2003 11:11:19 -0800

Nitin,

Forgot to say, that the problem I see with your algorithm is that
the points it picks up depends on the direction it progresses.  It
seems to me that if you start on the left end of a curve, for example,
and your error limit is small, it may pick up a bunch of points at the
beginning of the curve and run out of the count limit.  My algorithm,
on the other hand looks for the largest deviation, picks up that point
that is the farthest away from the original data.  This ensures that we
get the entire curve all the time, with more or less precision.

Arpad
=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=3D=3D=3D=3D

-----Original Message-----
From: Muranyi, Arpad=20
Sent: Tuesday, November 25, 2003 11:06 AM
To: si-list@xxxxxxxxxxxxx
Subject: RE: [SI-LIST] Re: Algorithm to interpolate ramp data in IBIS


Nitin,

Thanks for the info on HSPICE's interpolation options, I
wasn't aware of it.

Regarding the algorithm discussion, I didn't mention, but
my algorithm also has an accuracy setting, and the way I
run it is that the user can either limit the points by
the error limit, or the count, whichever happens first.
This is no overhead, because I am already calculating the
error (deviation between the original and new curves),
so the information is there.  So if I set 0 for the
error, it will always stop at the count, if I set a non
zero error limit and a high count limit, say 1000 (as it
is possible in IBIS 4.0), then it will stop at the desired
accuracy level or at the count limit.  If the original data
is shorter than the count limit, and the error limit is
set to 0, it will pick up all points.

Another thing you need to consider, this has to be done
simultaneously on the typ., min., and max. curves,
since in IBIS these three columns are all to the right
of the x-axis which is common to all.  The 100 or 1000
point limitation in IBIS is supposed to be applied to the
x-axis length, not the y-axis length.  Theoretically,
if the y values are completely misaligned, you could=20
end up having 100 points in each y column so that the
total number of x-axis points becomes 300 (or so).

Arpad
=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: Tuesday, November 25, 2003 10:12 AM
To: si-list@xxxxxxxxxxxxx
Subject: [SI-LIST] Re: Algorithm to interpolate ramp data in IBIS


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
------------------------------------------------------------------
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: