To All:
BIRD57 is being sent out again since copies received on some
systems had extra characters in the text.
Bob Ross
Mentor Graphics
IBIS folks:
BIRD57 is issued at the last minute to deal with a real-life "timed latch"
implementation situation which could not be modeled with the current
Bus_hold model. The proposed resolution is to add a subparameter to the
[Submodel Spec] keyword.
Because these changes are required to model exisiting devices, it would be
very important to incorporate them in version 3.2 of the IBIS spec. Since
the changes are relatively minor, it would be desirable to vote on this BIRD
on the December 18, 1998 meeting provided no serious technical issues arise.
Arpad Muranyi
Intel Corporation
******************************************************************************
******************************************************************************
BIRD ID#: 57
ISSUE TITLE: Timed Bus Hold Extension
REQUESTER: Bob Ross, Mentor Graphics,
Arpad Muranyi & Stephen Peters, Intel
DATE SUBMITTED: December 4, 1998
DATE ACCEPTED BY IBIS OPEN FORUM: Pending
******************************************************************************
******************************************************************************
STATEMENT OF THE ISSUE:
A new application of the bus hold functionality involves turning off
(putting in a Hi Z state) the bus hold circuitry after a period of time.
The Bus_hold submodel can be extended to support this functionality with the
addition of a delay subparameter in the [Submodel Spec] keyword.
******************************************************************************
STATEMENT OF THE RESOLVED SPECIFICATIONS:
The unofficial IBIS Version 3.2 document that includes the BIRD48.4, BIRD49.4
and BIRD50.3 extensions is used as the basis for showing how BIRD57 would be
implemented.
The original [Submodel Spec] keyword is modified by the addition of a new
subparameter called Off_delay. The changes are indicated by an asterisk at
the beginning of each line (|*) that it effects.
|=============================================================================
| Keyword: [Submodel Spec]
| Required: No
| Description: The [Submodel Spec] keyword defines four columns under which
| specification and information subparameters are defined for
| submodels.
|* Sub-Params: V_trigger_r, V_trigger_f, Off_delay
|
| Usage Rules: The [Submodel Spec] is to be used only with submodels.
|
| The following subparameters are used:
| V_trigger_r Rising edge trigger voltage
| V_trigger_f Falling edge trigger voltage
|* Off_delay Turn-off delay from V_trigger_r
|* or V_trigger_f
|*
| For each subparameter contained in the first column, the
| remaining three hold its typical, minimum and maximum values.
| The entries of typical, minimum and maximum be must be placed
| on a single line and must be separated by at least one white
| space or tab or tab character. All four columns are required
| under the [Submodel Spec] keyword. However, data is required
| only in the typical column. If minimum and/or maximum values
| are not available, the reserved word "NA" must be used to
| indicate the typical value by default.
|
| The values in the minimum and maximum columns usually
| correspond to the values in the same columns for the inherited
| top-level voltage range or reference voltages in the top-level
|* model. The V_trigger_r and V_trigger_f subparameters
|* should hold values in the minimum and maximum columns that
|* correspond to the voltage range or reference voltages of the
|* top-level model. The Off_delay subparameter, however, is an
|* exception to this rule because in some cases it may be
|* completely or partially independent from supply voltages
|* and/or manufacturing process variations. Therefore the
|* minimum and maximum entries for the Off_delay subparameter
|* should be ordered simply by their magnitude.
|
| Unless noted, each [Submodel Spec] subparameter is independent
| of any other subparameter.
|
| V_trigger_r, V_trigger_f rules:
|
| The voltage trigger values for the rising and falling edges
| provide the starting time when an action is initiated.
|
|* Off_delay rules:
|*
|* The functionality of the Off_delay subparameter is to provide
|* an additional time related mechanism to turn off circuit
|* elements.
|*
|-----------------------------------------------------------------------------
| Dynamic Clamp Example:
|
[Submodel Spec]
| Subparameter typ min max
|
V_trigger_r 3.6 2.9 4.3 | Starts power pulse table
V_trigger_f 1.4 1.2 1.6 | Starts gnd pulse table
|
| Bus Hold Example:
|
[Submodel Spec]
| Subparameter typ min max
V_trigger_r 3.1 2.4 3.7 | Starts low to high
| bus hold transition
V_trigger_f 1.8 1.6 2.0 | Starts high to low
| bus hold transition
|** New Example added here
|
| Bus_hold application with pullup structure triggered on and then clocked off:
|
[Submodel Spec]
| Subparameter typ min max
V_trigger_r 3.1 2.4 3.7 | Low to high transition
| triggers the turn on
| process of the pullup
V_trigger_f -10.0 -10.0 -10.0 | Not used, so trigger
| voltages are set out
| of range
Off_delay 5n 6n 4n | Time from rising edge
| trigger at which the
| pullup turned off
|
|** End of new example
The revised Bus Hold Section shows modifications by |* lines to document the
new Off_delay subparameter and application information including a new
example:
|=============================================================================
|
| 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, V_trigger_r, and
|* V_trigger_f are required. The Off_delay subparameter is optional, but
|* can only be used if the submodel consists of a pullup or a pulldown
|* structure only, and not both. Devices which have both pullup and pulldown
|* structures controlled in this fashion can be modeled using two submodels,
|* one for each half of the circuit.
|
| 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.
|
|* If the bus hold submodel has a pullup structure only, V_trigger_r provides
|* the time when its pullup is turned on and V_trigger_f or Off_delay provides
|* the time when it is turned off, whichever occurs first. Similarly, if the
|* submodel has a pulldown structure only, V_trigger_f provides the time when
|* its pulldown is turned on and V_trigger_r or Off_delay provides the time
|* when it is turned off, whichever occurs first. The required V_trigger_r
|* and V_trigger_f voltage entries can be set to values outside of the input
|* signal range if the pullup or pulldown structures are to be held on until
|* the Off_delay turns them off.
|*
|* The starting mode for each of submodels which include the Off_delay
|* subparameter of the [Submodel Spec] keyword is the off state. Also, while
|* two submodels provide the desired operation, either of the submodels may
|* exist without the other to model turning on and off only a pullup or a
|* pulldown current.
|*
| 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
|
|** A Second Example is inserted below
|
|-----------------------------------------------------------------------------
|
| Complete Pullup Timed Latch Example:
|
[Submodel] Timed_pullup_latch
Submodel_type Bus_hold
|
[Submodel Spec]
| Subparameter typ min max
|
V_trigger_r 3.1 2.6 4.6 | Rising edge trigger
| Values could be set out
| of range to disable the
| trigger
V_trigger_f 1.3 1.2 1.4 | Falling edge trigger
Off_delay 3n 5n 2n | Delay to turn off the
| pullup table
|
| Note that if the input signal goes above the V_trigger_r value, the
| pulldown structure will turn off even if the timer didn't expire yet.
|
| 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] table is omitted to signal Open_source functionality
|
|-----------------------------------------------------------------------------
|
[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
|
|** End of Second Example
|=============================================================================
ANALYSIS PATH/DATA THAT LED TO SPECIFICATION:
BIRD57 is basically an extension of BIRD50.3. BIRD50.3 describes a static
bus hold circuit which is controlled only by the pad voltage of the device.
However, some devices can have the bus hold circuits which are turned on
by the pad voltage, but are turned off by an internal timer of clock
signal. These devices could not be modeled using the BIRD50.3 extensions.
BIRD57 provides the extension to model such devices.
Several approaches were considered:
Modify or Enhance the [Driver Schedule] keyword for Input models
(perhaps including a new keyword)
Create a new Submodel_type for 'Timed_latch' as a new Submodel extension
Enhance the Bus_hold Submodel
The first choice builds upon an older approach versus the newer, preferred
Submodel approach. The second choice was considered, but in our discussions
we would have had to document mew meanings for some transition relationships
related to a desired Hi-Z mode.
The third choice was selected because the existing Bus Hold description for
"Open_drain" or Open_source" functionality could be easily extended. The
off state of an Open_* device is equivalent to a Hi-Z mode.
Two Submodels are used since the off transition of each of the Submodels
can be entered by the [Ramp] information or corresponding [Rising Waveform]
or [Falling Waveform] table. A single Submodel is permitted for just turning
on and off a pullup or pulldown current.
******************************************************************************
ANY OTHER BACKGROUND INFORMATION:
BIRD57 evolved from discussions between Bob Ross, Arpad Muranyi, and Stephen
Peters on December 3, 1998 to resolve how IBIS Version 3.2 would handle a
new active latch that is being implemented in digital buffers.
******************************************************************************
Received on Wed Dec 9 16:57:39 1998
This archive was generated by hypermail 2.1.8 : Fri Jun 03 2011 - 09:52:29 PDT