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