****************************************************************************** ********************* 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: 31 Mar 2006 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 always checks both individual and combined I/V curves for monotonicity. A WARNING would be printed for non-monotonic combined I/V curves, including the range of non-monotonic voltages. 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 of the combined non-monotonicity, and these checks print the line number in the file. The proposed checks should be applied to all IBIS files regardless of the [IBIS Ver]. Since I/V data has been defined since the inception of IBIS, this is not a check that relates only to new keywords. It is preferable that the check be applied at least to files of [IBIS Ver] 2.1 and later, if retrofitting the change to the code for checking files below [IBIS Ver] 2.1 is inconvenient. 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] bug94.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: 94 SEVERITY: [FATAL, SEVERE, MODERATE, ANNOYING, ENHANCEMENT] ENHANCEMENT PRIORITY: [HIGH, MEDIUM, LOW] LOW STATUS: [OPEN, CLOSED, WILL NOT FIX, NOT A BUG] CLOSED FIXED VERSION: 4.2.1 FIXED DATE: March 31, 2007 NOTES ON BUG FIX: Classified at the May 12, 2006 Meeting. To be fixed at a later release. Checked April 12, 2007 Non-monotonic data in individual tables that used to produce Warning messages are now documented by Notes. This test now works for Version 2.1, 3.2 and 4.2 in an identical manner. Earlier parser versions limited the improved combined tests to only Version 4.2. This operation also works with Submodels as documented by BUG92. ****************************************************************************** ******************************************************************************