Subject: BIRD35 - Multi-stagged Outputs

From: [email-masked] ( Bob Ross)
Date: Mon, 13 May 96 09:39 PDT

To IBIS Committee:

The multi-stagged switching functionality has been on the priority list for
Version 3.0 addtions.  Below is a proposal to start the discussion.

The key elements of this proposal are:

1.  The [Model] keyword and subparameters and all keywords under [Model] keep 
    their same definitions.  The existing [Pulldown], [Pullup] and [Ramp]
    keywords are still required for downward compatiblility.  

2.  Up to 10 new internal building blocks consisting of local [Pullup(n)],
    [Pulldown(n)], [Rising Waveform(n)] and [Falling Waveform(n)] keywords
    are permitted.

3.  There are some syntactical ordering restrictions that preserve readability
    and permit one-pass parsing.

4.  Only one of [Pulldown(n)] or [Pullup(n)] keywords is required to support 
    Open_source (Open_sink) and Open_drain configurations.  Both the [Rising 
    Waveform(n)] and [Falling Waveform(n)] keywords are required for each 
    stage.

5.  The [Gnd Clamp] and [Power Clamp] keywords are not split into sections.

Unlike exiting IBIS keywords, the new tables cannot be measured directly
or even be produced easily by direct decomposition and simulation of Spice 
elements because of too much internal interaction.  The actual construction 
would be by trial and validation and based on the known architectural intent.
 
I have not explored all possibilities and implications of this proposal.
However, I believe it is even possible to model bus hold effects using a
final delayed correction stage.

The example is fabricated to be a 100 ohm pullup/pulldown stage and a 100
ohm pulldown stage that is switched later and at a slower rate.  This will
provide both waveform shaping and impedance changes during transition.

Bob Ross
Interconnectix, Inc.

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

BIRD ID#:      35
ISSUE TITLE:   Multi-stagged Outputs
REQUESTER:     Bob Ross, Interconnectix, Inc.
DATE SUBMITTED:                       5/13/96
DATE ACCEPTED BY IBIS OPEN FORUM:     Pending

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

STATEMENT OF THE ISSUE:

Modeling output transitions of buffers consisting of several sequentially
switched internal devices has been a long standing request.  The addition
of the [Rising Waveform] and [Falling Waveform] keywords partially addresses
the issue by waveform shaping control.  However, these keywords do not model
the dynamic impedance changes during transitions.  The more direct solution
is to add IBIS keywords which allow modeling the internal architecture more
closely.

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

STATEMENT OF THE RESOLVED SPECIFICATIONS:

An extension of the existing [Pullup], [Pulldown], [Rising Waveform] and
[Falling Waveform] syntax is proposed.  Up to ten sets (n=0,...,9) of keyword
groupings for [Pulldown(n)], [Pullup(n)], [Rising Waveform(n)], and [Falling Waveform(n)] to describe modeling individually controlled switching.  The
summation of the new keywords override the existing [Pullup], [Pulldown],
[Rising Waveform] and [Falling Waveform] descriptions of the low to high and
high to low driver switching.  All other parameters and requirements for the
[Model] keyword do not change.

Add the following keywords as a group afer the [Falling Waveform] keyword
example:

|==============================================================================
|    Keywords:  [Pulldown(n)], [Pullup(n)], n=0,...,9
|    Required:  No
| Description:  Defines a partitioning of an output buffer into groupings
|               of [Pulldown(n)], [Pullup(n)], [Rising Waveform(n)], and
|               [Falling Waveform(n)] descriptions to be summed to form
|               the complete output response.
|
| Usage Rules:  The [Pulldown(n)], [Pullup(n)] tables follow the same rules
|               as the [Pulldown], [Pullup], but override them.  Either the
|               [Pulldown(n)] or the [Pullup(n)] or both may be given for (n).
|               Both the corresponding [Rising Waveform(n)] and [Falling 
|               Waveform(n)] descriptions are required.  These waveforms are
|               used to describe the switching on and off behavior.  The
|               outputs of all stages are connected to produce the total
|               response. 
|
|               The usage of [Voltage Range] and [Pullup Reference] and
|               [Pulldown Reference] apply to all of the [Pulldown(n)] and
|               [Pullup(n)] tables
|
| Other Notes:  If an output stage is described by only a [Pullup(n)] or 
|               [Pulldown(n)] chararacterization, the unused table may be
|               omitted or may be entered using all zero entries for current.
|==============================================================================

|==============================================================================
| Keywords:     [Rising Waveform(n)], [Falling Waveform(n)], n=0...9
| Required:     Yes, for [Pulldown(n)] and [Pullup(n)] specified
| Description:  Describes the shape of the rising and falling edge
|               waveforms of a driver component (n) to describe sequential
|               turn-on and turn-off of portions of a driver.
|
| Sub-Params:   R_fixture, V_fixture, V_fixture_min, V_fixture_max,
|               C_fixture, L_fixture, R_dut, L_dut, C_dut
|
| Usage Rules:  The [Rising Waveform(n)] and [Falling Waveform(n)] keywords
|               follow the same rules as [Rising Waveform] and [Falling
|               Waveform] keywords.  However, these timing descriptions
|               are used only with the corresponding [Pulldown(n)] and
|               [Pullup(n)] tables.
|
|               The DC starting and ending values of each Waveform table
|               must be at the initial and final states of the transition.
|               These individual switches may be full transitions
|               from low-high or high-low or pulse transitions of low-
|               high-low and high-low-high.  These transitions all must
|               be with respect to a common time reference so that delays
|               in transitions relative to one another can be used to 
|               simulate squential turn-on and turn-off characteristics.
|
|               Several waveform descriptions are permitted for each (n).
|               The model components 0...n must grouped in sequential order
|               and must start with (0).  I.e., all table(0) keywords must
|               be placed before any table(1) keyword, and so forth.  Up to
|               ten such keyword groupings are permitted.  The sequential
|               ordering may differ from the switching sequence.  E.g., 
|               table(1) may switch before table(0).
|
| Other Notes:  While the R_dut, L_dut, and C_dut subparameters are 
|               allowed, they would normally not be used.
|   
|------------------------------------------------------------------------------
|
| Pulldown and Pullup Switch (0)
|
[Pulldown(0)]
|
|  Voltage   I(typ)    I(min)    I(max)
   -5.0V    -50.0m      NA        NA
    0.0V      0.0m      NA        NA
    5.0V     50.0m      NA        NA
   10.0V    100.0m      NA        NA
|
[Pullup(0)]                              | Note: Vtable = Vcc - Voutput
|
|  Voltage   I(typ)    I(min)    I(max)
   -5.0V     50.0m      NA        NA
    0.0V      0.0m      NA        NA
    5.0V    -50.0m      NA        NA
   10.0V   -100.0m      NA        NA
|
[Rising Waveform(0)]
R_fixture = 100
V_fixture = 0
|
|Time       V(typ)     V(min)    V(max)
   0.0ns     0.0        NA        NA
   0.5ns     2.5        NA        NA
   1.0ns     2.5        NA        NA
   5.0ns     2.5        NA        NA
|
[Falling Waveform(0)]
R_fixture = 100
V_fixture = 5
|
|Time       V(typ)     V(min)    V(max)
   0.0ns     5.0        NA        NA
   0.5ns     2.5        NA        NA
   1.0ns     2.5        NA        NA
   5.0ns     2.5        NA        NA
|
| Pulldown Switch (1)
|
[Pulldown(1)]
|
|  Voltage   I(typ)    I(min)    I(max)
   -5.0V    -50.0m      NA        NA
    0.0V      0.0m      NA        NA
    5.0V     50.0m      NA        NA
   10.0V    100.0m      NA        NA
|
[Rising Waveform(1)]
R_fixture = 100
V_fixture = 5
|
|Time       V(typ)     V(min)    V(max)
   0.0ns     2.5        NA        NA
   0.5ns     2.5        NA        NA
   1.5ns     5.0        NA        NA
   5.0ns     5.0        NA        NA
|
[Falling Waveform(1)]
R_fixture = 100
V_fixture = 5
|
|Time       V(typ)     V(min)    V(max)
   0.0ns     5.0        NA        NA
   0.5ns     5.0        NA        NA
   1.5ns     2.5        NA        NA
   5.0ns     2.5        NA        NA
|

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

ANALYSIS PATH/DATA THAT LED TO SPECIFICATION:

The proposal is designed to add to the existing IBIS structures and retain
as much existing meaning as possible.  The new "stage" tables follow all of 
the conventions of the existing non-stagged tables.  For that reason, 
even the subparameters R_dut, L_dut, and C_dut are permitted, although 
they are not relevant nor are expected to be used.  

The overall structure is to connect independently controlled stages to a
common output node.  The relative relationhips between waveform controls 
are used to produce phased turn-on and turn-off models.  The structure can
be also be used to model other internal artifacts.  These may include
providing an extra boost pulse or providing bus hold modeling.  

A general objection to these structures is that they do not relate to any
externally obtained extraction.  The intent of these structures is to give
a format for modeling a known architecture with behavioral blocks and 
to also add some detail to existing models.

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

ANY OTHER BACKGROUND INFORMATION:

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