****************************************************************************** ********************* 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 ibis-bug@free-lists.org. A list of reported bugs will be maintained on ibis.org. ****************************************************************************** PARSER VERSION NUMBER: IBISCHK6 V6.1.0 PLATFORM (SPARC, HP700, PC, etc.): PC OS AND VERSION: Windows 7 REPORTED BY: Bob Ross, Teraspeed Labs; Curtis Clark, ANSYS DATE: January 5, 2016 DESCRIPTION OF BUG: Error messages are incorrectly reported for legal bus label connections. The messages are particularly misleading since the *_ref pins ARE connected to pins whose model name is GND or POWER. The test case should report 0 Errors. The Warning message is informative only for possible entry mistakes, and should be reduced to a Caution: IBISCHK6 V6.1.0 Checking bug172.ibs for IBIS 3.2 Compatibility... W0719 - Pulldown Reference VSS is also used as a Pullup Reference E0716 - Component 'BUG172': Pin Mapping pulldown_ref entry 'VSS_N2_5' is not connected to at least one pin whose model_name is POWER or GND. E0716 - Component 'BUG172': Pin Mapping pulldown_ref entry 'VSS_N5_0' is not connected to at least one pin whose model_name is POWER or GND. E0720 - Component 'BUG172': Pin Mapping pullup_ref entry 'VSS' is not connected to at least one pin whose model_name is POWER or GND. E0722 - Component 'BUG172': Pin Mapping gnd_clamp_ref entry 'VSS_N2_5' is not connected to at least one pin whose model_name is POWER or GND. E0722 - Component 'BUG172': Pin Mapping gnd_clamp_ref entry 'VSS_N5_0' is not connected to at least one pin whose model_name is POWER or GND. E0724 - Component 'BUG172': Pin Mapping power_clamp_ref entry 'VSS' is not connected to at least one pin whose model_name is POWER or GND. Errors : 6 Warnings: 1 File Failed While the test cases show totem pole technologies, they cover real device situations. For example: ECL (0 V and -3.3 V), ECL (2 V and -3.3 V) PECL (3.3 V and 0 V where the pulldown_ref is 3.3 V), CMOS and RS232 technologies where we can have a non-zero, negative pulldown_ref) ---- The suggested resolution is to: 1. Correct the flawed checking that is causing E0716, E0720, E0722, E0724 to be improperly reported. E0716, E0720, E0722, E0724, and E0726 (analagous error message for the ext_ref case) all describe legitimate errors when they are reported correctly. Note: the conditional checking in the ext_ref case E0726 was found to be correct already (see below). 2. Demote all other messages in the range E0716 to E0727 from their current Warning status to Caution. (see below) Results of Code Inspection and testing: The four Error messages that are improperly reported in this example are checking to ensure the following rule is met: If you find a bus label used anywhere in the pd_ref, pu_ref, gc_ref, pc_ref, or ext_ref columns for any Pin, you must make sure that somewhere in the [Pin Mapping] table that particular label is tied to a Pin that is a listed in the [Pin] table as a "POWER" or "GND" Model Pin. The problem the bug 172 example uncovers is that the parser was only looking for POWER pin connections if it found the label in the pu_ref or pc_ref columns, and it was only looking for GND Pin connections if it found the label in the pd_ref or gc_ref columns. So, it was improperly reporting the "not connected to a POWER or GND Pin" error when it had really only checked for one or the other depending on the situation. We have a simple fix to the parser code's conditional checking that can resolve this problem. Once the fix is introduced, running the parser on this example yields: W0718 - WARNING - Component BUG172: Pulldown Reference VSS is also used as a Pullup Reference W0717 - WARNING - Component 'BUG172': Pin Mapping 'VSS_N2_5': pulldown_ref entry is usually connected to GND. W0717 - WARNING - Component 'BUG172': Pin Mapping 'VSS_N5_0': pulldown_ref entry is usually connected to GND. W0721 - WARNING - Component 'BUG172': Pin Mapping 'VSS': pullup_ref entry is usually connected to POWER. W0723 - WARNING - Component 'BUG172': Pin Mapping 'VSS_N2_5': gnd_clamp_ref entry is usually connected to GND. W0723 - WARNING - Component 'BUG172': Pin Mapping 'VSS_N5_0': gnd_clamp_ref entry is usually connected to GND. W0725 - WARNING - Component 'BUG172': Pin Mapping 'VSS': power_clamp_ref entry is usually connected to POWER. Because it is no longer displaying the bogus ERRORs, the parser instead continues on and displays WARNING messages (W0717, W0721, W0723, W0725). These warning messages are legitimitate in that they are properly reporting what the .ibs file contains. However, we think all of these warnings should be reduced to cautions because what they are reporting is in fact legal. For example: W0717 is saying: The label I found in a pd_ref column is actually connected to a "POWER" pin, but I generally expect a label in a pd_ref entry to be connected to "GND" pin. We think W0717, W0718, W0719, W0721, W0723, W0725, W0727 should all be reduced to cautions. ---- INSERT IBIS FILE DEMONSTRATING THE BUG: ==== bug172.ibs ==== [IBIS Ver] 5.0 [File Name] bug172.ibs [File Rev] 1.0 [Source] Teraspeed Consulting Group LLC. {Notes] Demonstation of legal Output Buffers that have different [Pullup_ref] and [Pulldown_ref] values IO1: OUT_5_0_GND | Puref,Pcref=5.0; Pdref,Gcref=0.0 IO2: OUT_2.5_N2_5 | Puref,Pcref=2.5, Pdref,Pcref-2.5 IO3: OUT_GND_N5_0 | Puref,Pcref=0.0, Pdref,Pcref=-5.0 (Note, V-T tables not needed to demonstrate the problem) Legal [Pin Mapping] entries give misleading and incorrect Errors. | | [Component] BUG172 [Manufacturer] None | [Package] | variable typ min max R_pkg 1.000E-02 1.000E-02 1.000E-02 L_pkg 1.750E-09 1.600E-09 1.900E-09 C_pkg 7.920E-13 6.900E-13 8.940E-13 | [Pin] signal_name model_name | 1 VDD_5_0 POWER 2 VDD_2_5 POWER 3 VSS GND 4 VSS_N2_5 POWER 5 VSS_N5_0 POWER | | 4 VSS_N2_5 GND | POWER | 5 VSS_N5_0 GND | POWER | 10 IO1 OUT_5_0_GND | Puref=5.0, Pdref=0.0 11 IO2 OUT_2.5_N2_5 | Puref=2.5, Pdref=-2.5 12 IO3 OUT_GND_N5_0 | Puref=0.0, Pdref=-5.0 | [Pin Mapping] pulldown_ref pullup_ref gnd_clamp_ref power_clamp_ref | 1 NC VDD_5_0 2 NC VDD_2_5 3 VSS NC 4 NC VSS_N2_5 5 NC VSS_N5_0 10 VSS VDD_5_0 VSS VDD_5_0 11 VSS_N2_5 VDD_2_5 VSS_N2_5 VDD_2_5 12 VSS_N5_0 VSS VSS_N5_0 VSS | [Model] OUT_5_0_GND Model_type Output Vmeas = 2.5 Vref = 2.5 Rref = 50.0 | C_comp 0.0 NA NA | | variable typ min max [Voltage Range] 5.0 NA NA [POWER Clamp Reference] 5.0 NA NA [Pullup Reference] 5.0 NA NA [GND Clamp Reference] 0.0 NA NA [Pulldown Reference] 0.0 NA NA | [Pulldown] -5.0 -100mA NA NA 0.0 0.0 NA NA 10.0 200mA NA NA | [Pullup] -5.0 100mA NA NA 0.0 0.0 NA NA 10.0 -200mA NA NA | [Ramp] dV/dt_r 1.5/1ns NA NA dV/dt_f 1.5/1ns NA NA | [Model] OUT_2.5_N2_5 Model_type Output Vmeas = 0.0 Vref = 0.0 Rref = 50.0 | C_comp 0.0 NA NA | | variable typ min max [Voltage Range] 2.5 NA NA [POWER Clamp Reference] 2.5 NA NA [Pullup Reference] 2.5 NA NA [GND Clamp Reference] -2.5 NA NA [Pulldown Reference] -2.5 NA NA | [Pulldown] -7.5 -150mA NA NA 0.0 0.0 NA NA 7.5 150mA NA NA | [Pullup] -7.5 150mA NA NA 0.0 0.0 NA NA 7.5 -150mA NA NA | [Ramp] dV/dt_r 1.5/1ns NA NA dV/dt_f 1.5/1ns NA NA | [Model] OUT_GND_N5_0 Model_type Output Vmeas = -2.5 Vref = -2.5 Rref = 50.0 | C_comp 0.0 NA NA | | variable typ min max [Voltage Range] 0.0 NA NA [POWER Clamp Reference] 0.0 NA NA [Pullup Reference] 0.0 NA NA [GND Clamp Reference] -5.0 NA NA [Pulldown Reference] -5.0 NA NA | [Pulldown] -10.0 -200mA NA NA 0.0 0.0 NA NA 5.0 100mA NA NA | [Pullup] -10.0 200mA NA NA 0.0 0.0 NA NA 5.0 -100mA NA NA | [Ramp] dV/dt_r 1.5/1ns NA NA dV/dt_f 1.5/1ns NA NA | [End] ****************************************************************************** ******************** BELOW FOR ADMINISTRATION AND TRACKING ******************* ****************************************************************************** BUG NUMBER: 172 SEVERITY: [FATAL, SEVERE, MODERATE, ANNOYING, ENHANCEMENT] SEVERE PRIORITY: [HIGH, MEDIUM, LOW] MEDIUM STATUS: [OPEN, CLOSED, WILL NOT FIX, NOT A BUG] CLOSED FIXED VERSION: 6.1.2 FIXED DATE: February 23, 2016 NOTES ON BUG FIX: Classified at the January 8, 2016 IBIS Teleconference Meeting. To be fixed in the next release of ibischk6. ****************************************************************************** ******************************************************************************