Although Micro-Cap 8 will have a built-in IBIS model, Micro-Cap 6 and 7 do not have one. What do you do until Micro-Cap 8 comes along? Well, IBIS models can be converted by a utility program called IBIS2SPICE. This article describes how to translate the subcircuit files created by the IBIS2SPICE utility into subcircuits that Micro-Cap can use. This utility is available from Intusoft and can be downloaded from
http://www.intusoft.com/utilities.htm#Modeling.
It translates IBIS pin descriptions to subcircuit models in the Intusoft SPICE3 syntax. This article shows you how to convert these SPICE3 buffer models to Micro-Cap / PSpice compatible syntax.
Caveats:
First, be aware the IBIS2SPICE utility only produces a simple exponential that approximates the RAMP keyword and makes no attempt at all to produce the RISING WAVEFORM or FALLING WAVEFORM portions of the IBIS spec. The utility does an adequate job of modeling the output impedance of the IBIS buffer and a rough approximation to the switching time.
To illustrate we will use the MOT7410.IBS file which was downloaded from a Motorola web site. If you wish to use the file as a working example, it is available from our user group:
http://groups.yahoo.com/group/micro-cap/files/mot7410.ibs
Run IBISTOSPICE on the MOT7410.IBS file and select the A02 pin and the typical option. The program will create a file called MOT7410.LIB.
What to change
To use the MOT7410.LIB file created by the utility, you will need to make several modifications.
1) Switches:
The SMOD switch model syntax must be changed from this format:
.MODEL SMOD SW RON=.1M ROFF=1E15 VT=-1.2 VH=.1
to this format:
.MODEL SMOD VSWITCH RON=.1m ROFF=1E15 VON=-1.19 VOFF=-1.21
Change the device type from SW to VSWITCH. Use the same RON and ROFF parameters but replace VT and VH with VON and VOFF calculated as follows:
VON = VT + VH and VOFF = VT - VH
2) PWL G Tables
The voltage in current out pwl tables must be changed from this form:
APullDown %vd(1,2) %id(3,4) transfer
.model transfer pwl
+ fraction = FALSE, input_domain = 0.0, xy_array = [
...{table values}...
+ ]
to this form:
G1 3 4 table {v(1,2)} = (
...{table values}...
+ )
3) PWL E Tables
The voltage in voltage out pwl tables must be changed from this form:
APullDown %vd(1,2) %vd(3,4) transfer
.model transfer pwl
+ fraction = FALSE, input_domain = 0.0, xy_array = [
...{table values}...
+ ]
to this form:
E1 3 4 table {v(1,2)} = (
...{table values}...
+ )
Don't forget on the last line to change the bracket " ]" to a parenthese ")".
Do this for the four PWL sources in the GND_CLAMP, POWER_CLAMP, PULL_UP, and PULL_DOWN subcircuits. You should be able to just cut and paste as all four PWL sources use the same syntax and node numbers.
4) Parameter definitions:
Change the two DEFINE statements from this format:
*DEFINE {RTF}= 60.868k ;0.73104/4.44969e-10
*DEFINE {RTR}= 19.931k ;0.75231/1.49940e-10
to this format:
.PARAM RTF 60.868k
.PARAM RTR 19.931k
5) B Devices:
Change the B3 and B4 device syntax from this format:
B3 300 850 I= V(830) > 1.2 ? 0 : V(300,850) / {RTR}
B4 840 400 I= V(820) > 1.2 ? 0 : V(840,400) / {RTF}
to this format:
B3 300 850 I= IF(V(830) > 1.2,0,V(300,850) / {RTR})
B4 840 400 I= IF(V(820) > 1.2,0,V(840,400) / {RTF})
Ordinarily, there are only two devices of this type, usually called B3 and B4.
Change the B1 and B2 syntax from this format:
B1 820 0 V=V(100) & V(500)
B2 830 0 V=V(500) & ~V(100)
to this format:
B1 820 0 V={2*((V(100)>=1) AND (V(500)>=1))}
B2 830 0 V={2*((V(500)>=1) AND (V(100)<=1))}
Having made these changes to the MOT7410.LIB file, you are ready to begin using it in Micro-Cap. You can use it directly as a SPICE file by adding a pulse generator to drive it and a battery or two by adding these lines to the top of the file.
V1 100 0 PULSE 0 2 100n 10n 10n 200n 1u
R1 4 0 1E12
VCC 300 0 5
VEE 400 0 0
VEN 500 0 5
All you need to do now is to run transient analysis and plot the voltage on the input node, V(100), and the output node, V(4). Here is what the run looks like for a 1us analysis time:
|