North Carolina State University

Electronic Research Lab

S2IBIS3 FAQ

 

This FAQ is a result of various ‘real life’ questions that have been received with regards to S2IBIS3. This list is, by no means, a comprehensive one and is only an effort to assemble questions and problems users face while trying to get S2IBIS3 working. Please email us if you don’t fine what you are looking for. If you are looking for S2IBIS3, you can download it here.

General IBIS questions    General S2IBIS3 questions     S2IBIS3 setup questions

 

General IBIS questions

A1. Non-monotonic behavior appears to be an issue. What corrective course of action is usually taken to prevent or resolve this concern?

A2. What is meant by non-monotonic ?

A3. How can we generate IBIS Ver - 4.1 models? (is there to any free tool generate Version 4.1 models?)

A4. What is the difference between IBIS ver - 3.2 and IBIS ver - 4.1 ?

A5. I am getting parser errors related to the rising and falling waveforms like:
ERROR - Model PCI33V: The [Rising Waveform]
with [R_fixture]=50 Ohms and [V_fixture]=3.3V
has TYP column DC endpoints of 1.03V and 3.30v, but
an equivalent load applied to the model's I-V tables yields
different voltages ( 1.43V and 3.30V),
a difference of 21.08% and 0.05%, respectively.
AND
ERROR - Model PCI33V: The [Falling Waveform]
with [R_fixture]=50 Ohms and [V_fixture]=0V
has TYP column DC endpoints of 0.00V and 2.17v, but
an equivalent load applied to the model's I-V tables yields
different voltages ( 0.53V and 2.38V),
a difference of 28.48% and 11.26%, respectively.

What could be wrong? What can I do to get rid of these errors and warnings?

 


General S2IBIS3 questions

B1. Describe the behind the scene process of translating Spice simulation output files to IBIS format specifications.

B2. It is recommended that the V-I tables consist of no more than 100 data points.  How is this controlled in the setup file?

B3. What is the difference between s2ibis2 & s2ibis3 ?

B4. Do you know why the IBIS example file "ex1" has 3 instances of the string "out" in the first [Pin] statement, when the specification only says there should be 2 instances of that string (pin name and signal name)? It’s a little unclear as to why the SPICE node name would be distinct from the signal name. It is also not clear why the spec (ver 3.2) doesn't mention that the Spice Node name is a necessary part of the [Pin] statement.

B5. Is there a document discussing the .s2i file content?

B6. Do you have an example file that is compatible with Pspice. I’ve looked through the examples and they appear to be for Hspice or spectre.

B7. When using s2ibis3, what is the IBIS version output file? Are there any possible compatibility issues if I take this output and attempt to link it to other files which might be IBIS 4.1?

B8. I have CYGWIN. Would I be able to run S2IBIS3 on it?

B9. Can s2ibis3 be used to generate version 2.1 IBIS data?

B10. I am wondering if s2ibis3 support linux platform?

B11. Is there a sample .s2i file that we can look at?

B12. Is there a real life example of how to use s2ibis3?


S2IBIS3 setup questions

C1. I am getting the

Running Java Exception in thread "main" java.lang.NoClassDefFoundError: s2ibis3
java version "1.4.2_09" Java(TM) 2 Runtime Environment,
Standard Edition (build 1.4.2_09-b05)
Java HotSpot(TM) Client VM (build 1.4.2_09-b05, mixed mode)
An error occured running the Java program. If the Java version above is less than 1.4, please install Java 2, ver 1.4.”

error. What’s wrong? I have the correct version of java installed.

 

C2. I am getting the

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 56 at getSpiceVIData.getSpiceVIData(s2ispice.java:1381)
at generateVICurve.generateVICurve(s2ispice.java:1600)
at analyzePin.analyzePin(s2ianalyz.java:1017)
at analyzeComponent.analyzeComponent(s2ianalyz.java:1431)
at s2ibis3.main(s2ibis3.java:102) java version "1.4.2_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_02-b03) Java HotSpot(TM) Client VM (build 1.4.2_02-b03, mixed mode)
An error occured running the Java program. If the Java version above is less than 1.4, please install Java 2, ver 1.4.

error. (the line numbers could be different if you are running different versions of the program). What could be wrong? I am running the correct version of java.

 

C3. I am using Windows XP. I am having the same error as described in C1 above. What should I do?

C4. I am getting the

Exception in thread "main" java.lang.ClassFormatError: s2ibis3 (Illegal constant pool type)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
....
....
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
java version "1.4.2_09"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_09-b05)
Java HotSpot(TM) Client VM (build 1.4.2_09-b05, mixed mode)
An error occured running the Java program. If the Java version above is less than 1.4, please install Java 2, ver 1.4.

error. What could be wrong? I am running the correct version of java.

C5. We always generated IBIS models previously using s2ibis2 and I'm migrating to s2ibis3. Under the old s2ibis2, we used a line in our .s2i file:
[Spice command] spice3_opt %s %s

In s2ibis2, the first %s becomes each .spi file (i.e. x001.spi) and the 2nd %s becomes each .out file (i.e. x001.out). However, s2ibis3 just hangs there when it gets to this line. How can I use my own command to run in s2ibis3?

C6. Will s2ibis3.csh run for java version above 1.4.X or does it only work only for 1.4.X. I tried installing S2IBIS3 on a linux machine with java version 1.5.0 and I am getting Error
"The installed Java is not version 1.4.X. Please install Java 2, ver 1.4."

 

 


A1. Non-monotonic behavior appears to be an issue. What corrective course of action is usually taken to prevent or resolve this concern?

  • The IBIS standard specifies that the pullup and pulldown curves contain pullup and pulldown data ONLY, i.e. in the region where the clamp diodes are active the current due to the clamp diodes must be subtracted from the pullup/pulldown current. This is where the non-monotonic curves come from -- at the extremes of the I/V curves where you are subtracting a large diode current from the combined diode/on-state-IV curve. In practice, a simulator sums the two currents together (power clamp and pullup or gnd clamp and pulldown) thereby making the result monotonic.
  • IBIS simulators like to see smooth monotonic curves. Often times the non-monotonic points are not in the “active region” of the device and can be smoothed out without affecting the accuracy of the IBIS file. When the non-monotonic points appear in the ‘active region’ of the device, then there can be accuracy issues. It should be noted that monotonic issues in IBIS models are highly dependent on the actual SPICE netlist. If the device exhibit non-monotonic behavior, the IBIS models will show non-monotonic behavior.

    A2. What is meant by non-monotonic ?

    Non-Monotonic behavior is when a signal goes negative (or positive) relative to its preceding coordinates. It can be also explained as a change in the sign of the slope during a transition. You should refer to this document to get a better understanding for monotonic vs non monotonic behavior. http://www.eda.org/pub/ibis/summits/jan02/bell2.pdf

    A3. How can we generate IBIS Ver - 4.1 models? (is there to any free tool generate Version 4.1 models?)

    Currently – I am not aware of any free tool that would be able to generate 4.1 models – though S2IBIS3 can generate 3.2 models – you can hand edit these models to make them compatible with 4.1

    A4. What is the difference between IBIS ver - 3.2 and IBIS ver - 4.1 ?

    IBIS version 3.2 adds support for an electrical board description format, multi-staged buffers or buffers that may use multiple I-V tables and diode transient times, among other features. IBIS version 4.0 extends the maximum number of points permitted in V-T tables (1000 Vs 100), supports the inclusion of independent validation data tables and adds more parameters for expressing “databook” criteria for evaluating buffer performance. IBIS 4.1 is the new multilingual extension  to 4.0. It now supports external models that includes VHDL AMS, Verilog AMS and SPICE ( 3F5 )

    A5. I am getting parser errors related to the rising and falling waveforms like:


    ERROR - Model PCI33V: The [Rising Waveform]
    with [R_fixture]=50 Ohms and [V_fixture]=3.3V
    has TYP column DC endpoints of 1.03V and 3.30v, but
    an equivalent load applied to the model's I-V tables yields
    different voltages ( 1.43V and 3.30V),
    a difference of 21.08% and 0.05%, respectively.
    AND
    ERROR - Model PCI33V: The [Falling Waveform]
    with [R_fixture]=50 Ohms and [V_fixture]=0V
    has TYP column DC endpoints of 0.00V and 2.17v, but
    an equivalent load applied to the model's I-V tables yields
    different voltages ( 0.53V and 2.38V),
    a difference of 28.48% and 11.26%, respectively.

    What could be wrong? What can I do to get rid of these errors and warnings?

    Generally, one of the following is the problem with your model (not in any particular order):

  • You should look at the output waveforms to see if they have completed transitions. If not, the simulation times should be increased to allow complete VT tables.
  • Check what is your R_load set to. Generally, it should be the same as R_fixture. Similarly, V_fixture should be the same as the terminal voltages of your buffer.
  • Check that you have specified for HSPICE (or the simulator you are using) to use the rising/falling waveforms, otherwise it defaults to using only the ramp data. The keywords for the simulations to use the waveforms for HSPICE are: ramp_fwf = 2 and ramp_rwf = 2 to use 2 rising and 2 falling waveform. The default values are 0, so it uses none of the waveforms.
  • The checker matches the endpoints from the rising and falling waveforms with intersection of the load line (created using V_fixture and R_fixture) and the VI table. Hence check if your VI table is generated properly. It might be possible that the rising and falling waveforms are generated accurately but the VI tables are not. This could happen if there is double counting of the clamp currents in the VI table or if the clamping diodes are not set up properly in the circuit and are draining more current than expected.
  • If you are using an old version of the checker, then update your checker as there was a problem with the old IBIS checker as described here:

     

    Go to Top


  • B1. Describe the behind the scene process of translating Spice simulation output files to IBIS format specifications.

    s2ibis uses the following scheme for determining what tables need to be generated for a particular pin:

                                                                   i.      For POWER, GND, and NC pins, no tables are generated.

                                                                 ii.      For each Input pin, s2ibis automatically runs SPICE jobs for [GND_clamp] and [POWER_clamp] tables.

                                                                iii.      For each Output (*Not* I/O, 3-state, or Open_drain) pin, s2ibis generates [Pulldown] and [Pullup] tables only.  Clamp simulations are  not even attempted for Output pins.  [Ramp] tables are generated by causing the output to transition while attached to the IBIS- specified load, reading the 20% and 80% points of the transition, and calculating the slope in between these points.

                                                               iv.      For each I/O or 3-state pin, s2ibis generates SPICE simulations for [Pulldown], [Pullup],  [GND_clamp], [Power_clamp], and [Ramp] tables. Generation of the [Ramp] tables uses exactly the same procedure as  described above under Ouput pins. Generation of the  [Pulldown],   [Pullup], [GND_clamp], and [Power_clamp] tables involves a current partitioning scheme.

       First s2ibis runs the [GND_clamp] and   [Pulldown] simulations.  The [Pulldown] table is generated as follows:

    pulldown(-Vcc->2Vcc):subtract the associated ground clamp table from the pulldown table

    The [GND_clamp] table is not modified.

    The [Pullup] and [POWER_clamp] tables are created using an analogous procedure.

    Then s2ibis runs the [POWER_clamp] and  [Pullup] simulations.  The [Pullup] table is generated as follows:

    pullup(-Vcc->2Vcc):subtract the associated power clamp table from the pullup table

    The [POWER_clamp] table is not modified.

     

    B2. It is recommended that the V-I tables consist of no more than 100 data points.  How is this controlled in the setup file?

    The latest version of S2IBIS3 (V1.1) has an improved algorithm.

    B3. What is the difference between s2ibis2 & s2ibis3 ?

    s2ibis3 is similar to s2ibis2. The main difference to it is that  it is written in JAVA as compared to C and Lex and Yacc.  s2ibis3 has its own command language, which is similar to the IBIS language in many respects, and can be easily extended to include new functionality. S2ibis3 also removes a few bugs from s2ibis2. Please let me know if you have anything particular in mind so I can address that.

    B4. Do you know why the IBIS example file "ex1" has 3 instances of the string "out" in the first [Pin] statement, when the specification only says there should be 2 instances of that string (pin name and signal name)? It’s a little unclear as to why the SPICE node name would be distinct from the signal name. It is also not clear why the spec (ver 3.2) doesn't mention that the Spice Node name is a necessary part of the [Pin] statement.

    Spice node name is what is mentioned in the spice netlist. This could be different (or same) to what is described in the data book. To be able to perform simulations, the simulation engine would need the spice netlist name. In ex 1, it happens that the pin name, signal name and the node name in the netlist is same. Refer to ex4 (multipow) and you will notice that the signal name and node names for some pins are different. In the spec, the signal name is given to be RAS0# (for pin 1) but it might be possible that in the netlist, the node is named RAS0 (or some other name).

    Its not a part of the .ibs file that’s why the spec (ver 3.2) doesn't mention that the Spice Node name is a necessary part of the [Pin] statement.. It's only a part of the .s2i file. We need it in the .s2i file because that’s what we use to generate the simulation files.

    B5. Is there a document discussing the .s2i file content?

    Its available with the installation files - the name is - s2ibis3.txt

    B6. Do you have an example file that is compatible with Pspice. I’ve looked through the examples and they appear to be for Hspice or spectre.

    I don’t have anything that is compatible with Pspice. If you do find something, please let me know if you can share them so I can put on the s2ibis3 website that would help s2ibis3 pspice users.

    B7. When using s2ibis3, what is the IBIS version output file? Are there any possible compatibility issues if I take this output and attempt to link it to other files which might be IBIS 4.1?

    Currently, s2ibis3 produces IBIS version 3.2 models. There are no potential compatibility issues if you want to hand edit it to be able to introduce some version 4.1 features in the model. (as long as they are correct)

    B8. I have CYGWIN. Would I be able to run S2IBIS3 on it?

    S2IBIS3 has not been tested with CYGWIN. You might face issues when trying to configure it with CYGWIN. You can instead try to run S2IBIS3 on windows (XP) in much the same way. Please refer to the readme.txt file for more information

    B9. Can s2ibis3 be used to generate version 2.1 IBIS data?

    Yes. Currently S2IBIS3 can create IBIS models ver 3.2 or below. If you intend to make ver 2.1 models, simply do not include keywords that are ver 3.2 (or higher) specific, and make sure that you specify in the .s2i setup file that you want ver 2.1 model.

    B10. I am wondering if s2ibis3 support linux platform?

    S2IBIS3 has not been tested with linux. It has only been specifically tested only on unix and Windows XP machine. Having said that, many users have reported that they have been able to use S2IBIS3 on linux. All you need is a linux compatible spice simulation engine and Java.

    B11. Is there a sample .s2i file that we can look at?

    Yes. There are several. A sample .s2i file can be viewed here. There are several others included in the example directories included in the s2ibis3 package.

    B12. Is there a real life example of how to use s2ibis3?

    Yes. There are several. A sample s2ibis3 run on a Micron SDRAM part (MT48LC32M16A2TG) can be downloaded here. The spice models can be downloaded from Micron website here or saved locally here. There are several other examples included in the example directories in the s2ibis3 package.

     

    Go to Top


    C1. I am getting the

    Running Java Exception in thread "main" java.lang.NoClassDefFoundError: s2ibis3
    java version "1.4.2_09" Java(TM) 2 Runtime Environment,
    Standard Edition (build 1.4.2_09-b05)
    Java HotSpot(TM) Client VM (build 1.4.2_09-b05, mixed mode)
    An error occured running the Java program. If the Java version above is less than 1.4, please install Java 2, ver 1.4.”
    error. What’s wrong? I have the correct version of java installed.

    You need to use the “-root” command to tell s2ibis3 where your class files are. The “-root “command specifies the s2ibis3 executable (that are in the directory /java where you have installed s2ibis3) Hence, if "../../s2i_install_dir/java" is where your s2ibis3 class files are located, type: “s2ibis3 –root ../../s2i_install_dir -s2ibis3 buffer.s2i(without the quotes) to tell s2ibis3 where the “/java” directory is located.

    C2.  I am getting the

    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 56 at getSpiceVIData.getSpiceVIData(s2ispice.java:1381)
    at generateVICurve.generateVICurve(s2ispice.java:1600)
    at analyzePin.analyzePin(s2ianalyz.java:1017)
    at analyzeComponent.analyzeComponent(s2ianalyz.java:1431)
    at s2ibis3.main(s2ibis3.java:102) java version "1.4.2_02"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_02-b03) Java HotSpot(TM) Client VM (build 1.4.2_02-b03, mixed mode)
    An error occured running the Java program. If the Java version above is less than 1.4, please install Java 2, ver 1.4.

    error. (the line numbers could be different if you are running different versions of the program). What could be wrong? I am running the correct version of java.

    This error could be caused because the VI data from the spice run could not be collected neatly. If you are observing that there are .out files created by the run, it is possible that there are more than 1 VI tables in one or more .out files. This could be because of the fact that you have 2 .temp statements in your spice files. Remove one of the .temp statement, run s2ibis3 again.

    C3. I am using Windows XP. I am having the same error as described in C1 above. What should I do?

    You should be getting the errors as shown below. Use the “-root” command with s2ibis3.bat (as desribed in C1 above) to resolve your problem.

     

     

    C4.  I am getting the

    Exception in thread "main" java.lang.ClassFormatError: s2ibis3 (Illegal constant pool type)
    at java.lang.ClassLoader.defineClass0(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    ....
    ....
    at java.lang.ClassLoader.loadClassInternal(Unknown Source) java version "1.4.2_09"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_09-b05)
    Java HotSpot(TM) Client VM (build 1.4.2_09-b05, mixed mode)
    An error occured running the Java program. If the Java version above is less than 1.4, please install Java 2, ver 1.4. ”

    What could be wrong? I am running the correct version of java.

    This error is not related to s2ibis3 files. This problem might be because you downloaded the s2ibis3 files as ASCII files rather than binary files as described here.
    For verification purposes, the byte size of the latest version of s2ibis3 (s2ibis3_v1_1.zip) is 226,063 bytes

    C5. We always generated IBIS models previously using s2ibis2 and I'm migrating to s2ibis3. Under the old s2ibis2, we used a line in our .s2i file: [Spice command] spice3_opt %s %s In s2ibis2, the first %s becomes each .spi file (i.e. x001.spi) and the 2nd %s becomes each .out file (i.e. x001.out). However, s2ibis3 just hangs there when it gets to this line. How can I use my own command to run in s2ibis3?

    The s2ibis2 command: "hspice %s >%s 2>%s" is in C format. S2ibis3 is written in Java - hence you would need to put this in JAVA format. You can have (for example)

    [Spice command] hspice {0} > {1}
    Or
    [Spice command] hspice -v 2005.03 {0} > {1}
    or any other spice command that works for you. I would also try to comment out the [spice command] line from the .s2i file and check to see if the default works.

    C6. Will s2ibis3.csh run for java version above 1.4.X or does it only work only for 1.4.X. I tried installing S2IBIS3 on a linux machine with java version 1.5.0 and I am getting Error
    "The installed Java is not version 1.4.X. Please install Java 2, ver 1.4."

    S2IBIS3.csh has been modified to work with JAVA 1.5.X. Please download the new version of s2ibis3.csh from here.

     

     

    Search S2IBIS3 FAQ Search NCSU ECE

     

    Go to Top

     

    Did not find something you are looking for? Kindly email me with a detailed description of your s2ibis3 related issue.

     

    Email Comments/Suggestions                                        ERL Home                               NCSU ECE Dept

     


    Page created by Ambrish Varma: March 20, 2006

    Last modified by Ambrish Varma: September 20, 2006

    © North Carolina State University