Paul, I am glad that the picture is clearing up in your mind... Please find the other .DAT files in the attachment. I tested four conditions, 1) No ODT 2) ODT to Vcc 3) ODT to GND 4) ODT to both Vcc and GND Regarding how to find the scaling coefficients, you can also estimate them by comparing the IV curves (if that's what you have) for the various stages, and then fins a scaling coefficient from that. By the way, using L and W for this may not work because the output current depends mostly on the current source's current, not the L and W of the switching transistors, and the current of the current source depends greatly on the bias voltage on its gate, and not so much on the L and W of the transistor. Yes, the data in these .DAT files should pretty much be all the parameters in the module. Arpad ================================================== -----Original Message----- From: Paul Fernando [mailto:prfernan@xxxxxxxx] Sent: Monday, January 16, 2006 4:09 PM To: Muranyi, Arpad Cc: ibis-macro@xxxxxxxxxxxxx Subject: Re: [ibis-macro] Re: Pre/de emphasis buffer model Arpad, Thanks for the clarifications. My understanding has improved considerably. Now I understand how the CCCS's scale the tap currents; although it does require the model writer to know the tap coeffs, which might be a down side since he'll need a high level model of the design to get those values... unless he approximates it based on the W/L ratios. I can also see how the following lines read the IV & VT tables as part of the instantiation. The problem is that the zip file I got doesn't have "IV_data_no_ODT.dat" & "VT_data_no_ODT.dat". Could you please send me these files or something similar? //----------------------------------------------------------------------------- // These lines show how to pass IV and Vt tables into the IBIS_IO model //----------------------------------------------------------------------------- //`include "IV_data_no_ODT.dat" //`include "VT_data_no_ODT.dat" // IBIS_IO #(`IV_data, `VT_data) PosM (PUref, PDref, IOp, InD, EnD, RcvPM, PCref, GCref); // IBIS_IO #(`IV_data, `VT_data) NegM (PUref, PDref, IOn, InNM, EnD, RcvNM, PCref, GCref); // IBIS_IO #(`IV_data, `VT_data) PosB (PUrefPB, PDrefPB, IOp, InPB, EnD, RcvPB, PCrefPB, GCrefPB); // IBIS_IO #(`IV_data, `VT_data) NegB (PUrefNB, PDrefNB, IOn, InNB, EnD, RcvNB, PCrefNB, GCrefNB); //// PUref, PDref, IO, In, En, Rcv, PCref, GCref //----------------------------------------------------------------------------- As for the IBIS to Verilog-A converter, I understand its purpose now. I guess a starting point would be to create a script that create files like "IV_data_no_ODT.dat" & "VT_data_no_ODT.dat" (in the above example) using an IBIS model as the input. So basically, the model writer is expected to model the primary driver in IBIS and provide it to the IBIS to Verilog-A converter. Right? As for data that must be passed as part of the instantiation process, are they all the parameters in the IBIS_IO model? (C_comp, Vinh, Vinl, V_pc_ref, V_pu_ref, V_pd_ref, V_gc_ref, IV & VT tables etc.) Regards, Paul