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

  • From: "BHAGWATH,NITIN (HP-Roseville,ex1)" <nitin.bhagwath@xxxxxx>
  • To: "'si-list@xxxxxxxxxxxxx'" <si-list@xxxxxxxxxxxxx>
  • Date: Tue, 25 Nov 2003 15:17:39 -0500

Hmm...I'm a bit confused here (and a bit hopeful if I understood you right).

So, can I have more than 100 time points on a rising (say) waveform,
provided there are no more than 100 typ, 100 min and 100 max points?  So,
would the following be a valid way to do it?...

|Time V(typ) V(min) V(max)

0nS  0.0V   NA     NA
1ns  NA     0.1V   NA
2ns  NA     NA     0.2V
3ns  0.5V   NA     NA
4ns  NA     0.6V   NA
5ns  NA     NA     0.7V
.
.
.
297ns  5V     NA     NA
298ns  NA     5.1V   NA
299ns  NA     NA     5.2V

I am presently running my algorithm only on the typical values, hoping for
the best on the extreme cases (I know, I know, it'll come back to haunt
me...)  If I could use the above methodology, then I can have, as you say,
upto 300 time points, with 100 points allocated for each column.  Is this
the way to go?

By the way, regarding your other post, this algorithm would not finish after
finding a cluster of points at one end.  It finds ALL the points which
enable linear interpolation within the given error.  So, if I start off with
10,000 points, I can end up with say 2000 points for a given accuracy.  I
would then loosen the accuracy to get fewer points, and so on untill I reach
100 points.  I currently do this manually.  I like the way your algorithm
just finds the 100 best points (AND gives the option for defining error
tolerance).  The 100 points are afterall the ones most critical, regardless
of the error.

-Nitin



-----Original Message-----
From: si-list-bounce@xxxxxxxxxxxxx [mailto:si-list-bounce@xxxxxxxxxxxxx] On
Behalf Of Muranyi, Arpad
Sent: Tuesday, November 25, 2003 11:06 AM
To: si-list@xxxxxxxxxxxxx
Subject: [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
  
------------------------------------------------------------------
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: