Subject: IBIS BIRD50.3 - Add Submodel Bus Hold

From: [email-masked] (Bob Ross)
Date: Fri, 19 Jun 98 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.

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