Russell, I'm not versed on the application, but that first equation appears to be some sort of superimposed Least Squares Fitting. http://mathworld.wolfram.com/LeastSquaresFittingPolynomial.html Regards, David -----Original Message----- From: si-list-bounce@xxxxxxxxxxxxx [mailto:si-list-bounce@xxxxxxxxxxxxx] On Behalf Of Russell Dill Sent: Thursday, May 05, 2011 7:14 PM To: si-list@xxxxxxxxxxxxx Subject: [SI-LIST] Weighting functions for weakly non-linear drivers I'm trying to figure out how to calculate weighting functions (sometimes known as Ku(t)/Kd(t)) for weakly non-linear drivers from IBIS models. By weighting function, I mean a multiplier to the pulldown and pullup current sources in the model of a driver that changes the driver from pulldown to pullup in a ramp-up and vice versa. B. Mutnury and M. Swaminathan gloss over the calculation of these functions in quite a few papers[1], but never describe it in detail, in their papers, it is always given the form: | w1 | | fa1 fa2 | ^-1 | ia | | | = | | | | | w2 | | fb1 fb2 | | ib | For those who can't see the ascii art, its: vector [ [w1], [w2] ] = inverse(matrix [ [fa1 fa2] [fb1 fb2] ]) * vector [ [ia] [ib] ] This is very easy to solve for w1 and w2. However, I have no clue what the other variables are. The only thing the text makes clear is that f1 and f2 the pullup/pulldown behavior in HIGH and LOW mode respectively in the form of I vs V. It then talks about testing the driver with two different loads, which I know as the ramp down and ramp up waveforms in the IBIS file. I have no clue what exactly they mean by fa1 and fb2. The text also never mentions ia or ib. I also found a presentation[2] from Teraspeed Consulting Group that clearly uses this, but I don't have the associated audio so I'm not sure what they are trying to communicate. I've worked out the following associations (slide 15) VUP1 == fa1 VUP2 == fa2 VDN1 == fb1 VDN2 == fb2 V(IN1) - V(PIN1) == ia V(IN2) - V(PIN2) == ib They then form the determinate: CUR='(I(VDN2)*I(VUP1)-I(VDN1)*I(VUP2))/(1E7)' And then calculate w1 and w2: CUR='((V(IN1)-V(PIN1))*I(VUP2)-(V(IN2)-V(PIN2))*I(VUP1))/I(VDET)' CUR='((V(IN2)-V(PIN2))*I(VDN1)-(V(IN1)-V(PIN1))*I(VDN2))/I(VDET)' But once again, I'm not getting much additional information out of this besides the fact that I'm on the right track. I am getting confused by their 1E7 term which seems so important to the presentation. [1] http://smartech.gatech.edu/handle/1853/7459 [2] http://www.vhdl.org/pub/ibis/summits/jun03a/ross.pdf ------------------------------------------------------------------ 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.net List archives are viewable at: //www.freelists.org/archives/si-list Old (prior to June 6, 2001) list archives are viewable at: http://www.qsl.net/wb6tpu This message and any attached documents contain information from QLogic Corporation or its wholly-owned subsidiaries that may be confidential. If you are not the intended recipient, you may not read, copy, distribute, or use this information. If you have received this transmission in error, please notify the sender immediately by reply e-mail and then delete this message. ------------------------------------------------------------------ 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.net List archives are viewable at: //www.freelists.org/archives/si-list Old (prior to June 6, 2001) list archives are viewable at: http://www.qsl.net/wb6tpu