**************************************************************************** **************************************************************************** BUFFER ISSUE RESOLUTION DOCUMENT (BIRD) BIRD ID#: 86.1 ISSUE TITLE: Clarification of Submodel Mode REQUESTOR: Lynne Green, Green Streak Programs, Bob Ross, Teraspeed DATE SUBMITTED: November 21, 2003 DATE REVISED: December 26, 2003 DATE ACCEPTED BY IBIS OPEN FORUM: January 9, 2004 **************************************************************************** **************************************************************************** STATEMENT OF THE ISSUE: In IBIS 4.0, it is not clear if the statement "Set the submodel mode to All if the submodel is to be used for all modes of operation." is for just those buffer types mentioned in this paragraph, or for all buffer types. The IBIS parser does not check for inconsistencies. **************************************************************************** STATEMENT OF THE RESOLVED SPECIFICATIONS: Existing paragraphs for [Add Submodel]: | If the top-level model type is one of the I/O or 3-state | models, the submodel mode may be Driving, Non-Driving, or All. | For example, if the submodel mode is Non-Driving, then the | submodel is used only in the high-Z state of a 3-state model. | Set the submodel mode to All if the submodel is to be used for | all modes of operation. | | The submodel mode cannot conflict with the top-level model | type. For example, if the top-level model type is an Open or | Output type, the submodel mode cannot be set to Non-Driving. | Similarly, if the top-level model type is Input, the submodel | mode cannot be set to Driving. Add the paragraph: |* |* The submodel mode can be set to All to cover all permitted |* modes for any top-level model type including, for example, |* Input, Output, and I/O. |* **************************************************************************** ANALYSIS PATH/DATA THAT LED TO SPECIFICATION: BIRD86: People create models without noticing the restriction on the submodel mode. This is not caught by the IBIS 3.2 parser, so this is difficult to debug in a model. BIRD86.1 The BIRD86 proposal is captured below as one possible interpretation. Proposed text: | If the top-level model type is one of the I/O or 3-state | models, the submodel mode may be Driving, Non-Driving, | or All. | For example, if the submodel mode is Non-Driving, then | the submodel is used only in the high-Z state of a | 3-state model. | Set the submodel mode to All if the submodel is to be | used for |** both Driving and Non-Driving modes of operation. | | The submodel mode cannot conflict with the top-level | model type. For example, if the top-level model type | is an Open or Output type, the submodel mode cannot be | set to Non-Driving |** or All. Similarly, if the top-level model type is |** Input, the submodel mode cannot be set to Driving or All. | However, BIRD86.1 proposes the opposite interpretation that 'All' was intended to include all the permitted modes for any of the top-level models including those with only one mode. The parser already functions in this manner and would not be changed. **************************************************************************** ANY OTHER BACKGROUND INFORMATION: (Test Case for BIRD86 proposal) | test case for submodel mode | *************************************************** | [IBIS Ver] 3.2 [File Name] submodel1.ibs [File Rev] 0.0 [Date] 20 Nov 2003 [Source] Dummy model [Notes] Dummy data [Disclaimer] BIRD testing use only | [Component] Test1 [Manufacturer] Nobody | [Package] R_pkg 5.95E-02 5.36E-02 6.59E-02 L_pkg 4.21E-09 3.07E-09 5.91E-09 C_pkg 0.910E-12 0.758E-12 1.110E-12 | [Pin] signal_name model_name R_pin L_pin C_pin 1 A1 testA 10 GND GND 20 VCC POWER | | [Model] testA Model_type Input Vinl = 0.8000V Vinh = 2.0000V C_comp 3.67pF 3.24pF 4.23pF | [Add Submodel] |Submodel_name Mode testA1 All | [Temperature Range] 40.0000 100.0000 -25.0000 [Voltage Range] 3.3000V 3.0000V 3.6000V | [GND Clamp] | voltage I(typ) I(min) I(max) | -5.500E+00 -4.0 -4.5 -5.5 0.000E+00 0 0 0 5.500E+00 0 0 0 |*********************************************************************** | [Submodel] testA1 Submodel_type Dynamic_clamp | |Voltage typ min max |Voltage Range 3.3000V 3.0000V 3.6000V | [POWER Clamp] | voltage I(typ) I(min) I(max) | -5.500E+00 4.0 4.5 5.5 0.000E+00 0 0 0 5.500E+00 0 0 0 | [END] ****************************************************************************