NOTES ON IBIS_CHK PROGRAM Ver 2.0 (not to be left in the actual specification) The V/I table DATA SHOULD BE MONOTONIC to insure that most simulators provide stable simulations. Monotonic data is needed to insure that all data is single valued. MONOTONIC DATA IS NOT REQUIRED to provide a valid IBIS model. It is recognized that automated measurement equipment may be used to acquire this data and as such may include "noise" that causes the data to be non- monotonic. It is also recognized that some devices may be non-monotonic in certain regions. Therefore the IBIS specification allows non-monotonic data. Simulation tools should filter out non-monotonic data if such data causes instabilities in the simulation results. The IBIS_CHK program tests for non- monotonic data and provides a maximum of one note per V/I table if non- monotonic data is found. "NOTE: Line xxx of V/I table yyy for model zzz is non-monotonic! Most simulators will filter this data to remove the non-monotonic data." Where xxx is the line number in the IBIS file. Where yyy is Pullup, Pulldown, GND_clamp or POWER_clamp. Where zzz is the name of the model. ************************************************************************** Change 2- Add detection to IBIS_CHK program for V/I table 'I' sign errors. ************************************************************************** For each of the following V/I tables: Pullup, Pulldown, POWER_clamp, GND_clamp 1) Find the minimum and maximum voltage points (Vmin, Vmax) in the table. 2) IF:The current in the TYPICAL column corresponding to Vmax is less than the current in the TYPICAL column corresponding to Vmin than the table is assumed to have decreasing current. ELSE IF:The current in the TYPICAL column corresponding to Vmax is greater than the current in the TYPICAL column corresponding to Vmin than the table is assumed to have increasing current. ELSE: The table is assumed to have equal current. Note: This works for all cases of discontinuities unless the magnitude of discontinuity is such that this model is in all probability completely unrealistic. ************************************************************************** Change 3- Add a header comment statement at the TOP of the IBIS_CHK program to insure that new changes to the IBIS_CHK program do not break tests that worked in old MAJOR versions. This approach makes the program larger however it insures the parser always works the same on older versions of IBIS. This approach uses more memory, but has the reward of low maintaining costs. The IBIS_CHK program is very small and would not be effected by this until many revisions have occurred. ************************************************************************** NOTICE TO ANY PERSON MODIFING THIS PROGRAM! ------------------------------------------- This program SHALL NOT BE MODIFIED unless there is an associated IBIS Buffer Issue Resolution Document (BIRD). Said BIRD shall be agreed upon by IBIS committee vote. Only the currently elected IBIS_CHK 'czar and programmer' is allowed to modify the source code. The present CZAR is Jon Powell (April 1994). The IBIS committee may also hire programmers from time to time to make major changes to the source code. Note: Source licensees are free to modify their own copies of this source code in any way they choose. Source licensees shall not redistribute the source code modified or otherwise. Source licensing is available from the IBIS open forum. The IBIS open forum is non-profit. The code for each MAJOR version of the IBIS_CHK program SHALL NOT BE MODIFIED when adding code for the next version of the IBIS specification. Instead completely new code for all functions and features shall be created. This may require duplication of numerous functions. Each function shall be preceded by VXX_ where XX is the MAJOR version of the IBIS specification which is being parsed and tested. A MAJOR version would for example be 1.x going to 2.x. A MINOR version would for example be 1.1 to 1.2. Functions using the above syntax would look as follows: V01_GetValue MINOR revisions DO NOT required new code. Startup code shall be provided at the top of the program that reads the version number from the IBIS file and runs the portion of the program corresponding to that MAJOR version. Code that is used only by the program startup function is not duplicated.