Russell, Slides 5, 6, 8 of my presentation might help you in understanding the way those weighting functions can be calculated: http://www.eda.org/ibis/summits/jun03b/muranyi1.pdf Arpad ================================================================== -----Original Message----- From: si-list-bounce@xxxxxxxxxxxxx [mailto:si-list-bounce@xxxxxxxxxxxxx] On Behalf Of Russell Dill Sent: Thursday, May 05, 2011 9: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 ------------------------------------------------------------------ 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