Subject: BIRD 45.1 -- Dynamic clamps

From: [email-masked] (Neven Orhanovic)
Date: Thu, 20 Nov 1997 16:23:22 -0800 (PST)

Dear IBIS folks:

Here is a revision of BIRD 45 with changes that incorporate 
most of your feedback.

--Neven

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

BIRD ID#:       45.1
ISSUE TITLE:    Dynamic Clamps
REQUESTER:      Neven Orhanovic and Bob Ross, Interconnectix
DATE SUBMITTED: 10/31/97, 11/20/97
DATE ACCEPTED BY IBIS OPEN FORUM: Pending

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

STATEMENT OF THE ISSUE:

A novel type of termination technique is used in today's integrated circuits.
The termination consists of a pair of built in dynamic clamps whose V-I curves 
change with time. The clamp is switched "on" when needed and switched 
"off" otherwise (to conserve power). When the clamp is switched "on" its V-I 
curve provides more clamping than a regular static clamp and when it is 
turned "off" it behaves like a normal clamp. 

The "on" switching of the dynamic clamps can be triggered by an input signal 
crossing a triggering threshold or by some external clock. The "off" switching 
can be triggered by a built in timer or an external clock.

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

STATEMENT OF THE RESOLVED SPECIFICATIONS:

The [Dynamic GND Clamp] and [Dynamic POWER Clamp] keywords are introduced 
under the [Model] keyword to describe dynamic ground and power clamps,
respectively. For each dynamic clamp (ground or power), three subparameters
and two keywords are used to describe the switching and V-I characteristics 
of the clamp.

|==============================================================================
| Keywords:    [Dynamic GND Clamp], [Dynamic POWER Clamp]
| Required:    No.
| Description: Describes ground and power clamps that are switched on and off 
|              dynamically.
|
| Subparameters: V_trigger, V_trigger_min, V_trigger_max
|
| Usage Rules: The [Dynamic GND Clamp] and [Dynamic PWR Clamp] specifications 
|              contain three subparameters and two keywords. The subparameters 
|              (V_trigger, V_trigger_min, V_trigger_max) specify the threshold 
|              clamp voltage value that causes the clamp to begin switching 
|              from "off" to "on" according to the [Pulse Table] section. 
|              These values correspond to the typical, weak (slow), and strong 
|              (fast) situations. The [Pulse Table] section describes the 
|              switching characteristics of the dynamic clamp, and the [Clamp 
|              Table] section gives the V-I table of the clamp in its "off" 
|              state. This data is used as follows.
|
|              A dynamic clamp is modeled by a V-I curve that is offset 
|              (translated) along the voltage axis with the voltage waveform 
|              given in the [Pulse Table] section. The resulting dynamic V-I 
|              curve can be expressed as
|     
|                   I = f( V - V_pulse(t) ),
|
|              where V_pulse(t) is the offset voltage waveform described by 
|              the [Pulse Table] section and f(V) is the resulting V-I curve 
|              of the clamp in its off state, corresponding to the data 
|              given in the [Clamp Table] section. The [Clamp Table] data 
|              follows the same format and rules as the V-I curve data of 
|              the corresponding regular ground or power clamp ([GND Clamp], 
|              [POWER Clamp]). The [Pulse Table] section describes the offset 
|              voltage waveform and uses the same format as the [Rising 
|              Waveform] and [Falling Waveform] sections in driver models.
|               
|              Once the voltage on the clamp crosses the triggering threshold,
|              the [Pulse Table] data is used to offset the V-I curve obtained 
|              from the [Clamp Table] section. The dependence of the offset
|              pulse on the clamp voltage is illustrated below.
|
|
|                            Clamp voltage vs. time.
|
|                           o o o o 
|                         o
|                       o
|                      o -------
|                     o|       ^ 
|                    o |       | V_trigger
|                   o  |       v            time
|               o o    | ------------------------>
|                      |
|                      |              
|                      |              
|                      |      Clamp offset voltage vs. time.
|                      |
|                      |                      o o o o    
|                      |                    o        o     
|                      |                  o           o  
|                      |          o o o o              o 
|                      |         o                      o 
|                      |        o                        o          time
|                      o o o o o                          o o o -------->
|
|                      ^
|                      |_  Pulse data is used from this moment on
|                          to offset the V-I curve.
|                      
|      
|------------------------------------------------------------------------------
|
| Example: 
|
[Dynamic GND Clamp]
|
V_trigger     = 1.4V
V_trigger_min = 1.2V
V_trigger_max = 1.6V
|
[Pulse Table]
|
|    Time          V(typ)       V(min)        V(max)
|
|       0             0            0             0
|    1e-9             0            0             0
|    2e-9           0.9          0.8           1.0
|   10e-9           0.9          0.8           1.0
|   11e-9             0            0             0 
|
[Clamp Table]
|
|  Voltage        I(typ)       I(min)        I(max)
|
    -5.000     -3.300e+01    -3.000e+01    -3.500e+01
    -4.000     -2.300e+01    -2.200e+01    -2.400e+01
    -3.000     -1.300e+01    -1.200e+01    -1.400e+01
    -2.000     -3.000e+00    -2.300e+00    -3.700e+00
    -1.900     -2.100e+00    -1.500e+00    -2.800e+00
    -1.800     -1.300e+00    -8.600e-01    -1.900e+00
    -1.700     -6.800e-01    -4.000e-01    -1.100e+00
    -1.600     -2.800e-01    -1.800e-01    -5.100e-01
    -1.500     -1.200e-01    -9.800e-02    -1.800e-01
    -1.400     -7.500e-02    -7.100e-02    -8.300e-02
    -1.300     -5.750e-02    -5.700e-02    -5.900e-02
    -1.200     -4.600e-02    -4.650e-02    -4.550e-02
    -1.100     -3.550e-02    -3.700e-02    -3.450e-02
    -1.000     -2.650e-02    -2.850e-02    -2.500e-02
    -0.900     -1.850e-02    -2.100e-02    -1.650e-02
    -0.800     -1.200e-02    -1.400e-02    -9.750e-03
    -0.700     -6.700e-03    -8.800e-03    -4.700e-03
    -0.600     -3.000e-03    -4.650e-03    -1.600e-03
    -0.500     -9.450e-04    -1.950e-03    -3.650e-04
    -0.400     -5.700e-05    -2.700e-04    -5.550e-06
    -0.300     -1.200e-06    -1.200e-05    -5.500e-08
    -0.200     -3.000e-08    -5.000e-07     0.000e+00
    -0.100      0.000e+00     0.000e+00     0.000e+00
     0.000      0.000e+00     0.000e+00     0.000e+00
     5.000      0.000e+00     0.000e+00     0.000e+00
|
|
[Dynamic POWER Clamp]
|
V_trigger     = 3.6V
V_trigger_min = 3.8V
V_trigger_max = 3.4V
|
[Pulse Table]
|
|    Time          V(typ)       V(min)        V(max)
|
|       0             0            0             0
|    1e-9             0            0             0
|    2e-9          -0.9         -1.0          -0.8
|   10e-9          -0.9         -1.0          -0.8
|   11e-9             0            0             0 
|
[Clamp Table]
|
|  Voltage        I(typ)        I(min)        I(max)
|
    -5.000      1.150e+01     1.100e+01     1.150e+01
    -4.000      7.800e+00     7.500e+00     8.150e+00
    -3.000      4.350e+00     4.100e+00     4.700e+00
    -2.000      1.100e+00     8.750e-01     1.300e+00
    -1.900      8.000e-01     6.050e-01     1.000e+00
    -1.800      5.300e-01     3.700e-01     7.250e-01
    -1.700      2.900e-01     1.800e-01     4.500e-01
    -1.600      1.200e-01     6.850e-02     2.200e-01
    -1.500      3.650e-02     2.400e-02     6.900e-02
    -1.400      1.200e-02     1.100e-02     1.600e-02
    -1.300      6.300e-03     6.650e-03     6.100e-03
    -1.200      4.200e-03     4.750e-03     3.650e-03
    -1.100      2.900e-03     3.500e-03     2.350e-03
    -1.000      1.900e-03     2.450e-03     1.400e-03
    -0.900      1.150e-03     1.600e-03     7.100e-04
    -0.800      5.500e-04     9.150e-04     2.600e-04
    -0.700      1.200e-04     4.400e-04     5.600e-05
    -0.600      5.400e-05     1.550e-04     1.200e-05
    -0.500      1.350e-05     5.400e-05     1.300e-06
    -0.400      8.650e-07     7.450e-06     4.950e-08
    -0.300      6.250e-08     7.550e-07     0.000e+00
    -0.200      0.000e+00     8.400e-08     0.000e+00
    -0.100      0.000e+00     0.000e-08     0.000e+00
     0.000      0.000e+00     0.000e+00     0.000e+00
|
|==============================================================================

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

ANALYSIS PATH/DATA THAT LED TO SPECIFICATION:

The proposal is designed to retain as much of the existing IBIS clamp syntax 
as possible. The dynamic clamp V-I curve tables follow all of the 
conventions of the existing V-I tables. 

The overall modeling approach is to decompose the dynamic clamp into its
static and dynamic portions. The static part can be modeled by a regular
clamp. The dynamic part is connected to the same rail voltage as its static
part and modeled by a V-I curve that is shifted along the voltage axis by 
the offset voltage pulse. 

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

ANY OTHER BACKGROUND INFORMATION:

Based on a conversation with Arpad Muranyi on 11/14/97, changes were made to 
include typical, minimum, and maximum values of the triggering voltage and
more general offset voltage waveforms. 

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

---

From: Paul Gregory <[email-masked]>
Date: Fri, 21 Nov 97 8:10:24 MST

It seems to me that the values for  V_trigger, V_trigger_min, and V_trigger_max
ought to be in the three column format the same as other typ, min, max data.
This is the convention used for other such data and to introduce a new convention
without a clear reason for it would lead to confusion.

Thus, 

|              (fast) situations. 
|
[Dynamic GND Clamp]

V_trigger     = 1.4V
V_trigger_min = 1.2V
V_trigger_max = 1.6V

Would change to 

| Subparameters: V_trigger

| Usage Rules: The [Dynamic GND Clamp] and [Dynamic PWR Clamp] specifications 
|              contain one subparameter and two keywords. The subparameter 
|              (V_trigger) specifies the threshold 
|              clamp voltage value that causes the clamp to begin switching 
|              from "off" to "on" according to the [Pulse Table] section. 
|              These values correspond to the typical, weak (slow), and strong 
|              (fast) situations. 

[Dynamic GND Clamp]
|               typ     min     max
V_trigger       1.4V    1.2V    1.6V

--
 -- Paul Gregory

   phone: (208) 396-5086               USmail: Hewlett-Packard
     fax: (208) 396-4122                       M/S 143
   email: [email-masked]                  11311 Chinden Blvd.
                                               Boise, ID  83714

---

From: Kellee Crisafulli <[email-masked]>
Date: Fri, 21 Nov 1997 10:25:40 -0800

>Here is a revision of BIRD 45 with changes that incorporate 
Where is the example file:  bird45.ibs
It is extremely important that there be an example of any BIRD in
actual flight so we can make sure our simulators do what the BIRD
implies.

-------------------------------------------------------------------------
Have a great day...
Kellee Crisafulli at HyperLynx
[email-masked]	http://www.hyperlynx.com
-------------------------------------------------------------------------