****************************************************************************** ****************************************************************************** BIRD ID#: 50.3 ISSUE TITLE: Add Submodel Bus Hold REQUESTER: Neven Orhanovic, Bob Ross, Mentor G., Arpad Muranyi, Intel DATE SUBMITTED: 4/2/98, 5/21/98, 5/29/98, 6/19/98 DATE ACCEPTED BY IBIS OPEN FORUM: July 17, 1998 ****************************************************************************** ****************************************************************************** STATEMENT OF THE ISSUE: New devices incorporate bus hold or other latching mechanisms to hold the input at a particular state using some active pullup and pulldown components. ****************************************************************************** STATEMENT OF THE RESOLVED SPECIFICATIONS: The Bus Hold functionality is added in the new Section 6a: | Bus Hold: | | When the Submodel_type subparameter under the [Submodel] keyword is set to | Bus_hold, the added model describes the bus hold functionality. However, | while described in terms of bus hold functionality, active terminators | can also be modeled. | | Existing keywords and subparameters are used to describe bus hold models. | The [Pullup] and [Pulldown] tables both are used to define an internal | buffer that is triggered switch to its opposite state. This switching | transition is specified by a [Ramp] keyword or by the [Rising Waveform] | and [Falling Waveform] keywords. The usage rules for these keywords are the | same as under the [Model] keyword. In particular, at least either the | [Pullup] or [Pulldown] keyword is required. Also, the [Ramp] keyword is | required, even if the [Rising Waveform] and [Falling Waveform] tables exist. | However, the voltage ranges and reference voltages are inherited from the | top-level model. | | For bus hold submodels, the [Submodel Spec] keyword and the V_trigger_r and | V_trigger_f subparameters are required. | | The transition is triggered by action at the die using the [Submodel Spec] | V_trigger_r and V_trigger_f subparameters as follows: | | If the starting voltage is below V_trigger_f, then the bus_hold model is | set to the low state causing additional pulldown current. If the starting | voltage is above V_trigger_r, the bus hold model is set to the high | state for additional pullup current. When the input passes though | V_trigger_f during a high-to-low transition at the die, the bus hold output | switches to the low state. Similarly, when the input passes though | V_trigger_r during a low-to_high transition at the die, the bus hold output | switches to the high state. | | No additional keywords are needed for this functionality. |------------------------------------------------------------------------------ | | Complete Bus_hold Model Example: | [Submodel] Bus_hold_1 Submodel_type Bus_hold | [Submodel Spec] | Subparameter typ min max | V_trigger_f 1.3 1.2 1.4 | Falling edge trigger V_trigger_r 3.1 2.6 4.6 | Rising edge trigger | | typ min max | [Voltage Range] 5.0 4.5 5.5 | Note, the actual voltage range and reference voltages are inherited from | the top-level model. | [Pulldown] | -5V -100uA -80uA -120uA -1V -30uA -25uA -40uA 0V 0 0 0 1V 30uA 25uA 40uA 3V 50uA 45uA 50uA 5V 100uA 80uA 120uA 10v 120uA 90uA 150uA | [Pullup] | -5V 100uA 80uA 120uA -1V 30uA 25uA 40uA 0V 0 0 0 1V -30uA -25uA -40uA 3V -50uA -45uA -50uA 5V -100uA -80uA -120uA 10v -120uA -90uA -150uA | |**************************************************************************** | [Ramp] | typ min max dV/dt_r 2.0/0.50n 2.0/0.75n 2.0/0.35n dV/dt_f 2.0/0.50n 2.0/0.75n 2.0/0.35n R_load = 500 | |**************************************************************************** |============================================================================== ****************************************************************************** ANALYSIS PATH/DATA THAT LED TO SPECIFICATION: *** Note, these comments are in tems of the prior "Add Model" Syntax *** A weak driver can be added using the [Add Model] keyword. BIRD50.1 adds the statement that [Add Model Spec] and its V_trigger_r and V_trigger_f subparameters are required. This is because [Add Model Spec] may not be required for other added models. BIRD50.2 deletes the Add_model_mode subparameter in the example since BIRD48.3 deletes this subparameter. *** These coments are in terms of the new "Add Submodel" Syntax in BIRD48.4 ** BIRD50.3 is just an update with respect to the revised syntax. C_comp is removed from the example since it appears only at the top level. The voltages range and reference values are inherited from the top-level model. Required keywords are described for clarity. One of [Pulldown] or [Pullup] keyword is required. Also, the [Ramp] keyword is not required. Also note, that the [Ramp] keyword presumes a totum pole output stage. There is no "Model_type" subparameter in case the hold is just for a single direction (e.g., Open Source). A [Rising Waveform] and [Falling Waveform] table would be a proper way to specify such a case. As under the [Model] keyword, the [Ramp] keyword is required. ****************************************************************************** ANY OTHER BACKGROUND INFORMATION: This proposal is based on a conversation with Bob Ross, Chris Reid, and Arpad Muranyi on March 11, 1998. ******************************************************************************