Paul, I am putting my responses after your questions. Let me know if you have any more questions. Arpad ================================================ -----Original Message----- From: ibis-macro-bounce@xxxxxxxxxxxxx [mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of Paul Fernando Sent: Sunday, January 15, 2006 3:47 PM To: Muranyi, Arpad Cc: ibis-macro@xxxxxxxxxxxxx Subject: [ibis-macro] Pre/de emphasis buffer model Although I initially meant this email for Arpad, I realized that it made more sense to mail it to the entire group. Please feel free to comment. Perhaps we could discuss some of it during this weeks meeting. Hi Arpad, I got the attached file from the sisoft ibis-macro site and simulated it successfully- BTW, IT is still checking if we (NCSU) have SP1 (& the newer patch) for hspice installed. Could you please check my reasoning in understanding the flow. Perhaps you could add comments at the ends of the paragraphs that would aid my understanding. I can see that the 'PreDeMacro' model instantiates the 'IBIS_IO' model in the macro library. This model approximates the IV & VT curves only based on 4 points. In the example, the primary & tap1 drivers have the same IV & VT data. So, if I was to actually model a 2-tap preemphasis buffer, I would get the IV & VT tables for each tap and plug these points in this section (& I would need 2 library models, IBIS_IO_PRIMARY & IBIS_IO_TAP1). Alternatively, in its updated final state, I'm assuming, we'll only have IBIS_IO in the library and the user can select external files that contain the IV & VT curves for each tap. Is my understanding correct? Have we reached this point yet? AM: Close. You can select the IV and Vt curves the way you suggested, but it could also be done with the current scaling mechanism (next question). Yes, the library will contain only one of each buffer type. The IV and Vt tables can be passed into that model as parameter(s) from the calling statement in the template (netlist). So no duplication is necessary. Why are 8 'IBIS_CCCS's instantiated? Their net result seems to be nothing since they source and sink equal current. If they are used to implement some kind of scaling, whats the purpose? AM: You can usually use current sources as shown in that example to scale the IV curve(s) in the model. Since the MAIN and the DE-EMPH buffers are usually identical circuits on the same technology, one can model them with the same IV curve with a scaling coefficient. This method may make it easier to implement an FIR filter driven buffer in which the filter coefficients change on the fly, real time. You wouldn't be able to do that if you had to change file name references to switch from one IV curve to another... I managed to easily create a 3-tap model and I could see the 3-tap response in the awaves, but, like I mentioned earlier, this example used the same IV & VT points to describe all the taps, so it is not realistic. AM: Good. The example I made with 4-point IV and Vt curves using 5V supplies is not realistic either... to say the least, it was just an illustration to show how you would go about connecting the library elements, etc... if you had the correct models. --------------------- When the group mentioned 'creating new templates' did you mean creating basic files (like PreDeMacro.va) for DDR, LVDS, multistage buffers etc? Or was it templates as part of the macro library file (like IBIS_IO)? AM: The former. Also, in this example, the Verilog-A file is directly run in hspice. My idea of the final product would be, the IBIS file is instanced in hspice using the b-elem and that ibis file's model would (only?) have an [external circuit] reference to the verilog-A file. Is this correct? AM: HSPICE doesn't support [External Model] or [External Circuit] in the B-element as far as I know. The B-element is only for legacy IBIS stuff. You can build a macro model two ways: 1) Using the B-element and some stuff around it you can write a template for what you want (can), using the HSPICE netlist language, or 2) Using the Verilog-A(MS) library's IBIS_IO and some other stuff around it from the library, you can write a template for what you want (can), using the Verilog-A(MS) language For other tools, the IBIS file would reference the Verilog-A(MS) template as an [External Model] or [External Circuit] and which is used as an advanced buffer of some sort. The underlying library is not known to the tool, from the IBIS point of view, that is taken care of by the Verilog-A(MS) netlist inside the template. If this tool doesn't know the Verilog-A(MS) language, it will recognize that the template is using the library elements, and it will try to substitute for those elements with its own SPICE primitives. --------------------- As far as the proposed IBIS to Verilog-A converter goes: 1. What is the purpose here? AM: To extract a model's IV and Vt tables and put them into a Verilog-A(MS) syntax so that the instantiation in the template could refer to a file contained the data and use it. Remember, we couldn't write a file parsing routine in the library to open the IBIS file and find the model and read its data, like HSPICE does it with the B-element. Your script will need to do that. 2. Taking the 2-tap preemphasis buffer as an example, could you explain what it means to convert its IBIS file to a Verilog-A instance, given that the only initial file available is its hspice netlist? AM: I need to correct the question a little. "...given the only initial file available is A VERILOG-A(MS) TEMPLATE NETLIST AND THE MACRO LIBRARY". Answer: If the template uses IV and Vt data tables which are coming from a [Model] statement in an IBIS file, the conversion will mean the following: Open the IBIS file, find the [Model] keyword whose data is needed, and then find the various keywords and subparameters whose data is used in the Verilog-A(MS) model. Extract all this data and format it into a Verilog-A(MS) format so that the instantiation in the template could refer to this file as a Verilog macro text and use it in the instantiation line as parameters to the library element (IBIS_IO, etc). Regards, Paul Fernando --------------------------------------------------------------------- IBIS Macro website: http://www.sisoft.com/ibis-macro IBIS Macro archives: //www.freelists.org/archives/ibis-macro To unsubscribe send an email: To: ibis-macro-request@xxxxxxxxxxxxx Subject: unsubscribe