BIRD7.2

From: Bob Ross <bob@icx.com>
Date: Tue Feb 01 1994 - 16:10:11 PST

Hello IBIS members and Kellee:

Please send BIRD7.1 to the bird cage.

Kellee, I really like your counter proposal, so I have revised BIRD7.1
exactly as you have specified. You are right that 3-state-Open-XXXX
is functionally the same as setting the device in the off state. I looked
at the terms in the Toshiba ASICs, and not closely at the content. If
there are any distinctions, they are not relevant in IBIS, so the extra
3-state_open_xxx Model_types are removed. I think we are in complete
agreement on functionality.

Revisions include:
   
   Complete set of "Open types"
   "Open_sink" terminology introduced and means open AND sink.
   "Open_source" terminology introduced and means open AND source.
   "I/O_open_drain added for backward consistency.
   Inclusion of "_ECL" Types (different class of "open" devices).
   Notes section expansion to describe measurements.
   ANALYSIS PATH revision and expansion.

Bob Ross, Interconnectix, Inc.

*****************************************************************************
*****************************************************************************
                 Buffer Issue Resolution Document (BIRD)

BIRD ID#: 7.2
ISSUE TITLE: Open Specification Completion
REQUESTOR: Bob Ross, Interconnectix, Inc.
DATE SUBMITTED: 13 January 1994
DATE REVISED: 31 January 1994, 1 February 1994
DATE ACCEPTED BY IBIS OPEN FORUM: {will be filled in when accepted}

*****************************************************************************
*****************************************************************************
STATEMENT OF THE ISSUE:

Model_type "Open_drain" provides insufficient coverage for "open" sided
models. For completeness, additional "open" Model_types are need. Also,
necessary ECL related Model_types are added for clarity and to avoid
several tests required before processing the [Model]. Methods to produce
[Ramp] data need to be expanded for "open" devices.

******************************************************************************
STATEMENT OF THE RESOLVED SPECIFICATIONS:

Under the keyword [Model], additional Model_type selections are added:
I/O_open_drain, Open_sink, I/O_open_sink, Open_source, I/O_open_source,
Output_ECL, I/O_ECL, Input_ECL. The [Model] keyword specification in Version
1.1 is edited to show these Model_types. Changed text is separated by blank
lines. NOTES ON DATA DERIVATION METHODS is revised to clarify the [Ramp]
measurements for open models.

The [Model] keyword is revised to the following:

|==============================================================================
| Keyword: [Model]
| Required: Yes
| Description: Used to define a model, and its attributes
| Sub-Params: Model_type, Polarity, Enable, Vinl, Vinh, C_comp

| Usage Rules: Each Input, Output, I/O, 3-state, Open_drain, I/O_open_drain,
| Open_sink, I/O_open_sink, Open_source, I/O_open_source,
| Input_ECL, Output_ECL, and I/O_ECL model must
                   
| begin with the keyword [Model]. The model_name must match
| the one that is listed under the [Pin] keyword and must not
| contain more than 20 characters. An .ibs file must contain
| enough [Model] keywords to cover all of the model_names
| specified under the [Pin] keyword, except for those
| model_names which use reserved words (POWER, GND and NC).
| Model_names with reserved words are an exception and
| they do not have to have a corresponding [Model] keyword.
| C_comp is allowed to use "NA" for the min and max values only.
| Other Notes: A complete [Model] description normally contains the following
| keywords: [Voltage range], [Pullup], [Pulldown], [GND_clamp],
| [POWER_clamp], and [Ramp]. However, some models may have only
| a subset these keywords. For example, an input structure
| normally only needs the [Voltage range], [GND_clamp], and
| possibly the [POWER_clamp] keywords.

| Model_types with "open_sink" specify that the output has
| an OPEN side (the [Pullup] keyword is not used or I = 0mA
| for all voltages specified) AND the output SINKS current.
| Model_types with "open_drain" have the identical meaning and
| are retained for backward compatibility. Model_types with
| "open_source" specify that the output has an OPEN side (the
| [Pulldown keyword is not used or I = 0mA for all voltages
| specified) AND the output SOURCES current. Model_types with
| "_ECL" specify that the model represents and ECL type logic
| which follows different conventions for the [Pulldown] keyword.

| Note that C_comp defines the silicon die capacitance. This
| value should not include the capacitance of the package.
|
|------------------------------------------------------------------------------
[Model] model_name

Model_type Input, Output, I/O, 3-state, Open_drain, I/O_open_drain,
                Open_sink, I/O_open_sink, Open_source, I/O_open_source,
                Input_ECL, Output_ECL, I/O_ECL | List one only

Polarity Non-Inverting, Inverting | List one only, -if any
Enable Active-High, Active-Low | List one only, -if any
| Signals RAS, CAS, A(0-64), D(0-128),... | Local list, -if desired
Vinl = 0.8V | input logic "low" DC voltage, -if any
Vinh = 2.0V | input logic "high" DC voltage, -if any
| variable typ min max
C_comp 12.0pF 10.0pF 15.0pF
|==============================================================================

Section 3) on NOTES ON DATA DERIVATION METHOD is revised as follows:

  3) Ramp Rates:
     The ramp rates (listed in AC characteristics below) should be derived
     as follows:

       1. Start with the silicon model, remove all packaging.

       2. If: The Model_type is one of the following: Output, I/O, or
               3-state (not open or ECL types);
           Then: Attach a 50 ohm resistor to GND to derive the rising edge
               ramp. Attach a 50 ohm resistor to POWER to derive the
               falling edge ramp.

           If: the Model_type is Output_ECL or I/O_ECL;
           Then: Attach a 50 ohm resistor to the termination voltage
               (Vterm = VCC - 2v). Use this load to derive both the
               rising and falling edges.

           If: The Model_type is either an open_sink type or open_drain type;
           Then: Attach either a 50 ohm resistor or the vendor suggested
               termination resistance to either POWER or the vendor suggested
               termination voltage. Use this load to derive both the rising
               and falling edges.

           If: The Model_type is an open_source type;
           Then: Attach either a 50 ohm resistor or the vendor suggested
               termination resistance to either GND or the vendor suggested
               termination voltage. Use this load to derive both the rising
               and falling edges.

        3. and 7.: **** Delete Items 3. and 7. ****

        4. - 6.: **** Renumber these Items as 3. - 5. ****
        

*******************************************************************************
ANALYSIS PATH/DATA THAT LED TO SPECIFICATION:

Open-drain is corrected to Open_drain as a Model_type selection and is kept
for backward compatibility. I/O_open_drain is added. The new types with
"open_sink" and "open_source" are added to generically describe an output
with either an open [Pullup] or [Pulldown] and an output that sinks or
sources current. Without requiring an explicit test, these new Model_types
signal that the [Pullup] or [Pulldown] tables are not defined or are not to
be used if defined. Model_types for ECL are defined to fill the functionality
table below.

Conditions: | Model_type:
             |
pullup&down: | Output 3-state I/O
no pullup: | Open_sink I/O_open_sink
             | Open_drain I/O_open_drain
no pulldown: | Open_source I/O_Open_source
no pullup/dn:| Input
ECL up&down: | Output_ECL I/O_ECL
ECL no up/dn:| Input_ECL

Note, "ECL" is intended to be generic. It can be used to model "PECL" logic
spanning from Vcc = 5V to GND. Input_ECL is redundant, but may signal the
simulator to use different default Vinl and Vinh values if these OPTIONAL
(a BIRD2.1 issue) input parameters are not specified.

For the "open" Model_types there exists several other naming methods based
on comments received and some combinations I though of. BIRD7.2 is written
in terms of (0).

(0) Retain "Open_drain" and add "I/O_open_drain" for Version 1.1 consistency.
    Add "open_sink" and "open_source" Model_types. (5 new terms, 2 redundant
    terms).
no pullup: | Open_sink I/O_open_sink
             | Open_drain I/O_open_drain
no pulldown: | Open_source I/O_open_source

(1) Use "up" and "down". Retain Open_drain for Version 1.1 compatibility
    as a redundant Model_type. (Bird7.1 - 4 new terms, 1 redundant term).
no pullup: | Open_up I/O_Open_up
             | Open_drain
no pulldown: | Open_down I/O_Open_down

(2) Retain "Open_drain", but use "up" & "down" for generic names elsewhere.
    (3 new terms).
no pullup: | Open_drain I/O_Open_up
no pulldown: | Open_down I/O_Open_down

(3) Use "drain", "collector", "emitter". "emitter is generic for CMOS logic &
    TTL no pulldown devices. (5 new terms).
no pullup: | Open_drain I/O_Open_drain
             | Open_collector I/O_Open_collector
no pulldown: | Open_emitter I/O_Open_emitter

(4) Use "drain" generically for "up", and "source" generically for "down"
    for TTL and CMOS logic. (Bird7.0 - 3 new terms)
no pullup: | Open_drain I/O_Open_drain
no pulldown: | Open_source I/O_Open_source

(5) Use "Open_drain" generically to mean "Open". Test for no pullup or
    no pulldown in [Model]. (1 new term)
no pullup: | Open_drain I/O_Open_drain
no pulldown: | Open_drain I/O_Open_drain

(6) Retain "Open_drain, but use "Open" generically to mean "Open". Test for
    no pullup or no pulldown in [Model]. (2 new terms)
no pullup: | Open_drain I/O_Open
no pulldown: | Open I/O_Open

(7) Use "Open" generically to mean "Open". Retain "Open_drain" for Version
    1.1 compatibility. Test for no pullup or no pulldown in [Model]. (2 new
    terms, 1 redundant term).
no pullup: | Open I/O_Open
             | Open_drain
no pulldown: | Open I/O_Open

Currently, the user may choose to model the "Open" side directly through
control of the [Pullup] and [Pulldown] keyword. Omission of [Pullup] could
be interpreted as an "open_sink" device. Omission of [Pulldown] could be
interpreted as an "open_source" device. However, this method was never
specified in IBIS Version 1.1 as the correct method and therefore was not
the only method to specify "Open" devices.

The user may choose to model the "Open" side directly through control of the
[Pullup] and [Pulldown] data. If all of the data contains I(typ) = 0mA
entries (a minimum of two entries are required), then that [Model] could be
interpreted as "open". Zero valued [Pullup] data corresponds to "open_sink"
or "open_drain" types. Zero valued [Pulldown] data corresponds to
"open_source" types.

Without the additional Model_types, the above two approaches plus the existance
of "Open_drain" provide a confusing and inconsistent specification and
require the simulator to perform a variety of tests before being able to
process the data.

The "ECL" model types are added to avoid similar confusion.

One final consideration is that whoever generates the [Model], whether through
simulation or measurement, must know beforehand the Model_type in order to
generate the [Ramp] data according to the rules. Therefore it is reasonable
to require that this information be included as part of a Version 2.0
specification. This avoids the inefficiency of forcing the simulator to
perform many tests before processing the IBIS data. The simulator can then
translate the data into its internal format and apply its own simulator-
specific compaction schemes (the simulator does not have to provide all
of the Model_types). With BIRD7.2, the IBIS Statement of Intent within
the first paragraph is preserved: "the intention of this template is to
specify a consistent format that can be parsed by software, allowing each
simulation vendor to derive models compatible with their own product."

******************************************************************************
ANY OTHER BACKGROUND INFORMATION:

Jon Powell initiated the issue in Email of October 1993 questioning whether
we needed "I/O_OPEN_DRAIN" and I/O_OPEN_COLLECTOR". He referred to the
SN74ALS641 Open Collector Tranceiver as a specific example.

Kellee Crisafulli in Email of July 1993 considered "open output devices
(open-drain, open-collector, open-source)". Furthermore, he referred to "open
collector npn" and "open collector pnp" devices. In the discussion, he
proposed new Optional (Required for open-side devices) keywords dV/dt_r_off
(turn off time of high side driver) and dv/dt_f_off (turn off time of low side
driver). Included it the discussion was the requirement that "If the pulldown
table is missing then dV/dt_r_off is required" and "If the pullup table is
missing then dV/dt_f_off is required". Kellee elaborated further on the
measurement/extraction issues of the ramp values. BIRD7.1 now addresses
the ramp specification.

The modifications on Notes on Derivations Method by Kellee Crisafulli and
Stephen Peters are added with changes for notation consistency.

The usage of "Open_up" and "Open_down" is an adaptation of one of Arpad
Muranyi's comments on BIRD7 suggesting "open pullup" and "open pulldown".

Kellee Crisafulli's last suggestion on notation has been adopted in BIRD7.2.

******************************************************************************
Received on Tue Feb 1 22:41:01 1994

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