****************************************************************************** ********************* 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 info@ibis.org. A list of reported bugs is maintained at https://ibis.org/bugs/ibischk/. ****************************************************************************** PARSER VERSION NUMBER: 7.2.1 PLATFORM (SPARC, HP700, PC, etc.): PC OS AND VERSION: Microsoft Windows 11 Enterprise 23H2 REPORTED BY: Michael Mirmak, Intel Corporation DATE: March 17, 2025 TITLE: Incorrect BCI Interpretation Invalidates All Tx Models DESCRIPTION OF BUG: The parser is enforcing an incorrectly strict interpretation of the IBIS 7.2 rules related to BCI and transmitter models. - BCI_Protocol is defined for both Rx and Tx model directions, and is required for the Tx and Rx models on a shared channel, using the same entry - BCI_Message_Interval_UI is only defined and permitted for Rx models - BCI_Training_UI is only defined and permitted for Rx models - Unfortunately, the definition for BCI_Message_Interval_UI contains the phrase, “BCI_Message_Interval_UI must be present if BCI_Protocol is present.” - Similarly, the definition for BCI_Training_UI contains the phrase, “BCI_Training_UI must be present if BCI_Protocol is present.” The parser behaves as if the two latter rules apply to *all* models and not just Rx models. If you exclude these two parameters from a Tx model that otherwise supports BCI, the IBISCHK7 7.2.1 parser reports this: ERROR - Reserved_Parameter BCI_Message_Interval_UI must be specified when BCI_Protocol is specified ERROR - Reserved_Parameter BCI_Training_UI must be specified when BCI_Protocol is specified If you include these parameters in a Tx model that supports BCI, the IBISCHK7 7.2.1 parser reports this: ERROR - Model mymodel of type Output is associated with a parameter file mymodel.ami which was found to have a direction 'Rx-only' There is therefore no way to define a BCI-enabled Tx model that won’t fail the parser. The implication from the IBIS 7.2 text is that the “Direction” supersedes all other rules (in other words, every rule regarding required parameters is to be evaluated in the context of the model direction). However, it may be clearer and easier to modify the rules to make the requirement explicit: - “BCI_Message_Interval_UI shall be present for any Rx model where BCI_Protocol is present.” - “BCI_Training_UI shall be present for any Rx model where BCI_Protocol is present.” Regardless, the parser should enforce BCI_Message_Interval_UI and BCI_Training_UI presence requirements only for Rx models when BCI_Protocol is present. Note that part of the problem may be AMI-specific parser testing (i.e., assuming the -ami flag is appropriate to cover all cases). A .ami file that includes BCI_Message_Interval_UI and BCI_Training_UI will pass the parser if tested alone with the -ami flag, but will fail if associated with a Tx model. INSERT IBIS FILE DEMONSTRATING THE BUG: | mymodel.ibs | [IBIS Ver] 7.2 [Disclaimer] This is an example IBIS file to demonstrate a parser bug. [File Name] mymodel.ibs [Date] March 17, 2025 [File Rev] 1.0 [Source] Intel Corporation [Notes] This file illustrates a parser bug. [Component] mymodel_test [Manufacturer] IBIS_Open_Forum [Package] R_pkg 0.00m NA NA L_pkg 0.00nH NA NA C_pkg 0.00pF NA NA [Pin] signal_name model_name R_pin L_pin C_pin 1 Tx Test_Tx NA NA NA [Model] Test_Tx Model_type Output C_comp 1.0p NA NA Cref = 0 Vmeas = 0.5 [Temperature Range] 25 100 0 [Voltage Range] 1.00 0.9 1.10 [Algorithmic Model] Executable Windows_VisualStudio_32 IBIS_AMI_Tx.dll mymodel.ami [End Algorithmic Model] [Pulldown] -3.3 -0.066 NA NA 0.0 0.0 NA NA 6.6 0.132 NA NA [Pullup] -3.3 0.066 NA NA 0.0 0.0 NA NA 6.6 -0.132 NA NA [Ramp] dV/dt_r 0.3/1.5p NA NA dV/dt_f 0.3/1.5p NA NA [End] | mymodel.ami (mymodel (Description "Example showing Tx BCI parser issues") (Reserved_Parameters (AMI_Version (Usage Info) (Type String) (Default "7.0") (Description "AMI_Version")) (Ignore_Bits (Usage Info) (Type Integer) (Default 100) (Description "Ignore 100 bits.")) (Max_Init_Aggressors (Usage Info) (Type Integer) (Default 5) (Description "Number of aggressors supported is 5.")) (Init_Returns_Impulse (Usage Info) (Type Boolean) (Default True) (Description "Both impulse and parameters_out returned.")) (GetWave_Exists (Usage Info) (Type Boolean) (Default True) (Description "GetWave is well and truly provided in the module.")) | BCI Parameters (BCI_Protocol (Usage In)(Type String)(Value "mymodel_bci") (Description "The protocol used is mymodel_bci.")) (BCI_ID (Usage In) (Type String) (Value "mymodel_bci_") (Description "The BCI ID string starts with mymodel_bci_.")) (BCI_State (Usage InOut)(Type String) (List "Training" "Off" "Converged" "Failed" "Error")) | Only Rx models should support the parameters below | Uncomment these to see alternate parser output errors | (BCI_Message_Interval_UI(Usage Info) (Type Integer) (Value 1024) | (Description "Training requires at least 2000 UI per adaptation message")) | (BCI_Training_UI (Usage In) (Type Integer) (Value 1000) | (Description "BCI training may require 1000 UI to complete")) ) (Model_Specific (BCI_Sweep_Steps (Value 8)(Usage In)(Type Integer) (Description "# of steps for optimization search ") ) (TAP (Description "Four-tap Tx Equalization") | (-1 (Value 0)(Usage In)(Type Integer) (Description "Pre-cursor value") ) (0 (Value 24)(Usage In)(Type Integer) (Description "Cursor value - subtract other taps from this value") ) (1 (Value 0)(Usage In)(Type Integer) (Description "First post-cursor value") ) (2 (Value 0)(Usage In)(Type Integer) (Description "Second post-cursor value") ) ) ) ) ****************************************************************************** ******************** BELOW FOR ADMINISTRATION AND TRACKING ******************* ****************************************************************************** BUG NUMBER: 252 SEVERITY: [FATAL, SEVERE, MODERATE, ANNOYING, ENHANCEMENT] [SEVERE] PRIORITY: [HIGH, MEDIUM, LOW] [HIGH] STATUS: [OPEN, CLOSED, WILL NOT FIX, NOT A BUG] [OPEN] FIXED VERSION: FIXED DATE: NOTES ON BUG FIX: ****************************************************************************** ******************************************************************************