IBIS BIRD50.3 - Add Submodel Bus Hold

From: Bob Ross <bobr@emicx.mentorg.com>
Date: Fri Jun 19 1998 - 18:33:40 PDT

Dear IBIS Folks:

BIRD50.3 is issued to reflect changes in BIRD48.4 associated with introducing
submodels:

- The Title is changed from Add Model Bus Hold to Add Submodel Bus Hold.
- The text is rewritten to reflect the changes in BIRD48.4.

- A complete example is provided.

A large portion of the BIRD50.3 text has been rewritten, so changes are not
noted.

Bob Ross
Interconnectix/Mentor Graphics

******************************************************************************
******************************************************************************

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: Pending

******************************************************************************
******************************************************************************

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.

******************************************************************************
Received on Fri Jun 19 18:37:44 1998

This archive was generated by hypermail 2.1.8 : Fri Jun 03 2011 - 09:52:29 PDT