****************************************************************************** ********************* IBIS GOLDEN PARSER BUG REPORT FORM ********************* ****************************************************************************** INSTRUCTIONS To report a bug in the IBIS golden parser. Please fill out the top part of the following form and send the complete form to ibischk-bug@vhdl.org. A list of reported bugs will be maintained on vhdl.org. ****************************************************************************** PARSER VERSION NUMBER: Found in IBISCHK4 V4.1.1 PLATFORM (SPARC, HP700, PC, etc.): Checked on PC OS AND VERSION: MSWindows REPORTED BY: Mike LaBonte Cisco, and IBIS Quality Committee Members Kim Helliwell LSI Logic, Eckhard Lenski Siemens, Bob Ross Teraspeed, DATE: 3 Mar 2006 original report DESCRIPTION OF BUG: Warnings for non-monotonic regions found in IBIS I/V curves are common. These warnings are often overlooked, seen as a "normal" output of ibischk. In some cases the warnings pertain to individual non-monotonic I/V curves in [IBIS ver] 3.1 (or less) files, even though the proper set of combined I/V curves is actually monotonic. One result of this has been discouragement from looking at the output thoroughly, or even from running ibischk at all. Fortunately ibischk4 can examine combined Pullup and Pulldown curves, and suppress warnings if the combined data are monotonic. However it only does this if the file [IBIS ver] is 4.0 or higher. Files with older [IBIS ver] do not benefit from the more advanced check, even though the check is equally useful for files of every [IBIS ver]. Currently the only remedy is to increase the [IBIS ver] in the file to at least 4.0, even though the file does not use features from that version of the IBIS specification. Producers of IBIS files may be hesitant to do this because it may reduce the universe of simulators able to use their files. The proposed remedy is to alter ibischk such that it checks both individual and combined I/V curves for monotonicity. A WARNING would be printed for non-monotonic combined I/V curves. For non-monotonic individual I/V curves a similar message is printed, but it is labeled a NOTE instead of a WARNING. Only non-monotonic combined curves would be reflected in the final WARNING count. The [IBIS ver] would have no bearing on these checks. The reason for retaining the individual I/V curve checks is that they can be useful for diagnosing the source on the combined non-monotonicity, especially since the warning for combined curves is unable to point to a particular line number in the file. Implementation of this change would eliminate the need for one of the IBIS Quality Specification requirements, which calls for artificially increasing [IBIS ver] in IBIS files: 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. INSERT IBIS FILE DEMONSTRATING THE BUG: The attached test case causes ibischk4 (or ibischk3) to print "Pulldown XXX data is non-monotonic" warnings when [IBIS ver] is 3.1. When [IBIS ver] is 4.1 no warnings are printed, a more accurate reflection of how simulators will use the data. If the proposed change were implemented, the output of ibischk would contain only NOTEs about the Pulldown non-monotonicities, regardless of [IBIS ver]. [IBIS ver] 3.1 |[IBIS ver] 4.1 [File name] iq_2_2_test.ibs [File Rev] 1.0 [Date] 9 Feb 2006 [Component] IQ_2_2_test [Manufacturer] IBIS Quality task group [Package] | typ min max R_pkg 52.0m 45.0m 60.0m L_pkg 6.0nH 5.0nH 7.0nH C_pkg 2.3pF 2.0pF 2.5pF [Pin] signal_name model_name R_pin L_pin C_pin 1 test BUFFER | [Model] BUFFER Model_type Output Polarity Non-Inverting Enable Active-High Vmeas = 1.25 C_comp 0.5000pF 0.5000pF 0.5000pF [Temperature Range] 25.0000 70.0000 0.000 [Voltage Range] 2.5000V 2.3750V 2.6250V [Pulldown] | voltage I(typ) I(min) I(max) | -2.5000 -0.1047A -93.2500mA -0.1118A -2.3000 -0.1051A -93.3000mA -0.1123A -2.1000 -0.1048A -92.3800mA -0.1121A 0.0000 0.000A 0.000A 0.000A 5.0000 0.1734A 0.3306A 0.1775A | [Pullup] | voltage I(typ) I(min) I(max) | -2.5000 77.6800mA 74.2000mA 79.7800mA -2.3000 76.0500mA 72.5000mA 78.2200mA -2.1000 74.0100mA 70.3000mA 76.1700mA 0.0000 0.000A 0.000A 0.000A 5.0000 -0.1224A -0.1388A -0.1270A | [GND_clamp] | voltage I(typ) I(min) I(max) | -2.5000 -74.1500mA -91.6500mA -77.3800mA -2.4000 -70.1900mA -86.9000mA -73.2100mA -2.3000 -66.1600mA -82.1000mA -68.9700mA 0.0000 -30.0200nA -28.7800nA -31.5700nA 2.5000 10.0600nA 27.3000nA 8.4660nA | [POWER_clamp] | voltage I(typ) I(min) I(max) | -2.5000 78.8200mA 0.2300A 83.0200mA -2.4000 74.0400mA 0.2177A 78.1500mA -2.3000 69.2500mA 0.2054A 73.2800mA 0.0000 10.0600nA 10.4300nA 10.5100nA | [Ramp] | variable typ min max dV/dt_r 0.9840/0.1854n 0.8796/0.1994n 1.0764/0.1487n dV/dt_f 1.2373/0.2839n 1.1431/0.2811n 1.3181/0.2551n R_load = 50.0000 [End] ****************************************************************************** ******************** BELOW FOR ADMINISTRATION AND TRACKING ******************* ****************************************************************************** BUG NUMBER: SEVERITY: [FATAL, SEVERE, MODERATE, ANNOYING, ENHANCEMENT] (ENHANCEMENT) PRIORITY: [HIGH, MEDIUM, LOW] LOW STATUS: [OPEN, CLOSED, WILL NOT FIX, NOT A BUG] (OPEN) FIXED VERSION: FIXED DATE: NOTES ON BUG FIX: ****************************************************************************** ******************************************************************************