2.2 {LEVEL 0} Latest [IBIS ver] used The highest IBIS version for which a parser is available should be used (presently 3.2, soon to be 4.0). Even if only IBIS 2.1 features are used in the model, the [IBIS Ver] value should be set to at least 3.2, this enables additional checking over and above the checks performed on version 2.1 models. +++ IBISCHK NOTES +++++++++++++++++++++++++++++++++++++++++++++++++++++ Proposal: ibischk caution message if old [IBIS ver] used. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2.3 {LEVEL 0} Do not use [Comment Char] If you are using the default comment character, then this keyword is not needed. Changing the comment character is not advised. +++ IBISCHK NOTES +++++++++++++++++++++++++++++++++++++++++++++++++++++ Proposal: ibischk caution message if [Comment Char] used. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3.1.2 {LEVEL 0} [Package] Parasitics must be reasonable Reasonable values are: L < 10nH, C < 20pF, R < 1 ohm Min must be less than typ and typ less than max. +++ IBISCHK NOTES +++++++++++++++++++++++++++++++++++++++++++++++++++++ Proposal: ibischk caution message if [Package] values are unreasonable. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3.2.4 {OPTIONAL} [Pin] RLC complete RLC is optional on pins. If not defined either leave blank or use NA NA NA +++ IBISCHK NOTES +++++++++++++++++++++++++++++++++++++++++++++++++++++ Proposal: ibischk caution message for missing pin RLC. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3.3.2 {LEVEL 0} [Diff Pin] Vdiff and Tskew complete and reasonable Vdiff must be defined and should be non-zero and positive. Skew data can be NA. Skew data must be reasonable if defined. Uncertainty window must be reasonable if defined. +++ IBISCHK NOTES +++++++++++++++++++++++++++++++++++++++++++++++++++++ BIRD94 addresses this issue. Proposal: ibischk warning message if Vdiff is undefined or zero. Proposal: ibischk warning message if Tdelay is undefined or zero. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4.1.3 {LEVEL 0} [Model] C_comp is reasonable C_comp must be defined, positive and less than 20pF. +++ IBISCHK NOTES +++++++++++++++++++++++++++++++++++++++++++++++++++++ Proposal: ibischk caution message if C_comp value is unreasonble. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4.1.4 {LEVEL 1} [Model] C_comp is correct C_comp must represent the TOTAL die capacitance as specified by the data sheet. It MUST include the capacitances of the cell transistors at the attachment to the wiring, (for example, MOSFET pulldown Cds and pullup Cgs), the ESD structures, clamp diodes, on-die wiring to the bond pad, and the bond pad itself. Although capacitance varies with voltage, frequency and operating mode, only one value is allowed; the value should be the one that gives the best match in V-T tables and reflection characteristics (either SPICE or bench tests). It is recommended that the capacitances for different modes of operation be documented as comments if different, so that users may tune the IBIS model to their application. In IBIS 4.0 C_comp can be specified as four capacitances (Pullup, Pulldown, Power_clamp, Gnd_Clamp). +++ IBISCHK NOTES +++++++++++++++++++++++++++++++++++++++++++++++++++++ Proposal: ibischk caution message if C_comp value is unreasonble. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4.2.3 {LEVEL 1} [Model] Vinl and Vinh enclose Vmeas For I/O buffers Vinl and Vinh values should be below and above, respectively, Vmeas. Exceptions to this should be explained in a comment. It's uncommon. +++ IBISCHK NOTES +++++++++++++++++++++++++++++++++++++++++++++++++++++ Proposal: ibischk caution message if Vmeas not between Vinh or Vinl in I/O models. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4.2.7 {LEVEL 0} [Model Spec] Vinl+/Vinh+ greater than Vinl-/Vinh- Vinh+ is greater than Vinh-, and Vinl+ is greater than Vinl-. +++ IBISCHK NOTES +++++++++++++++++++++++++++++++++++++++++++++++++++++ NOTE: ibischk does compare Vinh+ to Vinh- and Vinl+ to Vinl-: WARNING - Vinh+(Typ) is not greater than or equal to Vinh-(Typ) for Model Spec defined on line 986 Proposal: ibischk caution message if Vinl+ > Vinh-. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4.2.8 {LEVEL 1} [Model Spec] Vinl+/- and Vinh+/- enclose Vmeas For I/O buffers Vinl+ and Vinh- values should be below and above, respectively, Vmeas. Exceptions to this should be explained in a comment. +++ IBISCHK NOTES +++++++++++++++++++++++++++++++++++++++++++++++++++++ Proposal: ibischk caution message if Vmeas > Vinl+ or Vmeas > Vinh- in I/O models. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4.2.12 {LEVEL 1} [Model Spec] Pulse_time reasonable Pulse_time is less than the minimum rise time and fall time normally expected at the input. +++ IBISCHK NOTES +++++++++++++++++++++++++++++++++++++++++++++++++++++ Proposal: ibischk caution message if Pulse_time is greater than 100ns. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4.2.13 {LEVEL 1} [Model Spec] S_Overshoot subparameters complete All input and I/O buffers have S_overshoot_high and S_overshoot_low in the [Model Spec] section. +++ IBISCHK NOTES +++++++++++++++++++++++++++++++++++++++++++++++++++++ Proposal: ibischk caution message if S_overshoot_high or S_overshoot_low missing. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4.2.15 {LEVEL 1} [Model Spec] S_Overshoot subparameters track typ/min/max When overshoot voltage limits are different in min and max corners, S_overshoot_high and S_overshoot_low should track these differences. For example, S_overshoot_high may increase with the higher supply voltage assumed for max mode. +++ IBISCHK NOTES +++++++++++++++++++++++++++++++++++++++++++++++++++++ Proposal: ibischk caution message if S_overshoot_hi does not follow the same typ/min/max order as [Pullup_reference]. Likewise, the magnitude of S_overshoot_low must track in the same order as S_overshoot_hi. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4.3.2 {LEVEL 1} I-V tables have correct typ/min/max order Inspect every I-V table. Check for proper order of the I-V tables. Columns Values in table must be: VOLTAGE, Current Typ, Current Min, Current Max In most cases current of Max is greater then current of typical, which is greater than Min, in the active region (e.g. where device is not clamping). This check is easily accomplished by viewing the curves and checking visually. +++ IBISCHK NOTES +++++++++++++++++++++++++++++++++++++++++++++++++++++ Proposal: ibischk caution message if absolute areas under the typ, min and max I/V curves do not conform. Possibly limit this to the region between ground and power voltage, since clamp curves can be unpredictable. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4.3.4 {LEVEL 1} [Pullup] voltage sweep range is correct The sweep for [Pullup] should be made between -vcc to 2*vcc. Pullup tables are relative to Pullup reference. The Pullup table combined with the power and ground clamp tables should be monotonic. Non-monotonic combined I-V tables must be documented. +++ IBISCHK NOTES +++++++++++++++++++++++++++++++++++++++++++++++++++++ Proposal: ibischk caution message if the lower endpoint of the [Pullup] voltage column is greater than -vcc, or if the upper endpoint is less than 2vcc. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4.3.5 {LEVEL 1} [Pulldown] voltage sweep range is correct The sweep for [Pulldown] should be made between -vcc to 2*vcc. The Pulldown table combined with the power and ground clamp should be monotonic. Non-monotonic combined I-V tables must be documented. +++ IBISCHK NOTES +++++++++++++++++++++++++++++++++++++++++++++++++++++ Proposal: ibischk caution message if the lower endpoint of the [Pulldown] voltage column is greater than -vcc, or if the upper endpoint is less than 2vcc. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4.3.6 {LEVEL 1} [Power Clamp] voltage sweep range is correct The [Power Clamp] should turn on near supply voltage i.e. (i.e. 3.3 volts for typ cmos power clamp). The sweep for Power clamp should be at least made between +vcc and +2vcc (it is permitted to extend the range). Non-monotonic I-V tables must be documented. +++ IBISCHK NOTES +++++++++++++++++++++++++++++++++++++++++++++++++++++ Proposal: ibischk caution message if the lower endpoint of the [Power Clamp] voltage column is greater than vcc, or if the upper endpoint is less than 2vcc. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4.3.7 {LEVEL 1} [GND Clamp] voltage sweep range is correct [GND Clamp] should turn on approximately one Diode drop below 0.0 (i.e. 0.7 volts). The sweep for [GND Clamp] should be made at least between -vccmax and +vccmax (it is permitted to extend the range). Non-monotonic I-V tables must be documented. +++ IBISCHK NOTES +++++++++++++++++++++++++++++++++++++++++++++++++++++ Proposal: ibischk caution message if the lower endpoint of the [GND Clamp] voltage column is greater than -vcc, or if the upper endpoint is less than 0V. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4.3.10 {LEVEL 1} [Pulldown] I-V tables pass through zero/zero Typ, Min, and Max Pulldown table currents should all pass through zero at zero volts from ground (cmos). These three pull down tables should pass through zero/zero except in special cases (i.e. Differential, PECL, LVDS, or SERDES driver). +++ IBISCHK NOTES +++++++++++++++++++++++++++++++++++++++++++++++++++++ Proposal: ibischk caution message if [Pulldown] current at 0V is greater than 1uA. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4.3.11 {LEVEL 1} [Pullup] I-V tables pass through zero/zero For Un-terminated Models (i.e. CMOS push-pull), Typ, Min, and Max Pullup table currents should pass through zero current at zero volts for Vcc relative tables. If these curves are viewed graphically, ground relative, they should pass through their respective supply rail (eg. Typ should pass through 3.3 volts, Max should pass through 3.6 volts, min should pass through 3.0). Note that an IBIS I-V table is offset such that supply voltage on the Typ table falls at 0 volts in the table. For example, 3.3 volts usually falls at 0.0 in the table. Terminated drivers and some technologies may be exceptions i.e. Bipolar, ECL, and CMOS LVDS. +++ IBISCHK NOTES +++++++++++++++++++++++++++++++++++++++++++++++++++++ Proposal: ibischk caution message if [Pullup] current at the associated power voltage is greater than 1uA. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++