Re: [IBIS-Users] putting together typ/min/max data in ibis file

From: Michael Fishman <michael.fishman_at_.....>
Date: Wed Mar 19 2008 - 04:21:05 PDT
Hi Anand,
I dont know what do you mean by Vcm shift in your simulations, but about I-V
data collection/generation process itself I can say the following. First of
all, your way to generate pulldown/pullup data for corners is correct. But I
think you have problem when dealing with clamping currents. In two words -
you need to subtruct the clamping current BEFORE you do any
transformation/manipulation/splitting of the simulated data, I mean - first
run all simulations with appropriate sweeps, subtruct what you need and then
format the resulted data into IBIS file.

So, I suggest the following algorithm in your case of 1.8V (+-10%) supply:

1) Run pulldown enabled (buffer drives zero, enable is active) simulation
for each corner with the same sweep range of PAD voltage [-1.8;3.6]V.

2) Run pullup enabled (buffer drives one, enable is active) simulation for
each corner with different sweep range of PAD voltage:  [-1.8;3.6]V for
typ,  [-1.9;3.5]V for min, [-1.7;3.7]V for max.

3) Run high-impedance state (*buffer is disabled, no matter what is input
data. Be careful here, if the input still affect the output in some way,
lets say via some configurable terminator structures, you should do this
step separately for "driving" zero and "driving" one situations*)
simulations for each corner with the same sweep range of PAD voltage [-1.9
;3.7]V.

4) Subtract current data of (3) in range [-1.8;3.6] from current data of (1)
in each corner accordingly. Resulted data is ready for [Puldown]
ground-relative IBIS table.

5) Subtract current data of (3) from current data of (2) when using
appropriate voltage range of (3) data: [-1.8;3.6]V for typ,  [-1.9;3.5]V for
min, [-1.7;3.7]V for max. The resulted data need to be transform by
Vtable=VCC-Vpad in order to be [Pullup] VCC-relative IBIS table.

6) "Split" (3) current data as following:
    GND [-1.8;1.8] & POWER [1.8;3.6]  for typ,
    GND [-1.8;1.8] & POWER [1.7;3.5]  for min,
    GND [-1.8;1.8] & POWER [1.9;3.7]  for max
  Three currents columns of what we called GND are ready for [GND Clamp]
ground-relative IBIS table.

7) Take three currents columns of what we called POWER in (6) and override
the first value of typ column (for 1.8V) and two first values of min column
(for 1.7V, 1.8V) with numeric zero (0.00A) value. This step is for avoiding
double counting of the currents from [GND Clamp] and [POWER Clamp] by IBIS
simulator (*actually the error from double counting in this case is
neglected because current through power clamping diode near around the VCC
is very small, so it is for your decision*).

8) Transform the POWER data by Vtable=VCC-Vpad and put it into IBIS file as
[POWER Clamp] vcc-related table.

Hope it helps (of course if you are still around and reading this :)),
         Michael.

--
Michael Fishman,
Consulting Engineer,
iDEA++ Ltd.
http://www.ideapplications.net/index.php?page=5


On 3/18/08, Anand Ramalingam <anandr@magma-da.com> wrote:
>
>  Hi All,
>
>
>
> I am putting together data from typ/min/max corners in a single ibis file.
>
> I am not sure whether I am doing this in a correct manner
>
> for GND/PWR clamp curves and Pulldown/Pullup curves.
>
> This is because I see the shift in Vcm for min/max cases when
>
> simulate using the ibis files I have generated.
>
>
>
> I read through the cookbook but I think it does not answer what I was
> looking for.
>
>
>
> Let me explain how I generate data for different corners for
>
> pulldown, pullup and gnd/pwr clamps.
>
>
>
> typ corner: vdd(typ) = 1.8 V
>
> min corner: vdd(min) = 1.7 V
>
> max corner: vdd(max) = 1.9 V
>
>
>
> vss = 0 for all corners.
>
>
>
> * PULLDOWN:
>
>
>
> typ/min/max:
>
>
>
> Generate I-V curves with voltage being swept form [-1.8, 3.6]V
>
> for all corners.
>
>
>
> * PULLUP:
>
>
>
> (1) typ:
>
>
>
> Generate I-V curves with voltage being swept form [-1.8, 3.6]V.
>
> Since vdd(typ) = 1.8 v translate the voltages to
>
> 1.8-[-1.8, 3.6] = [3.6, -1.8]
>
>
>
> (2) min:
>
>
>
> Generate I-V curves with voltage being swept form [-1.9, 3.5]V.
>
> Since vdd(min) = 1.7 v translate the voltages to
>
> 1.7-[-1.9, 3.5] = [3.6, -1.8]
>
>
>
> (3) max:
>
>
>
> Generate I-V curves with voltage being swept form [-1.7, 3.7]V.
>
> Since vdd(max) = 1.9 v translate the voltages to
>
> 1.9-[-1.7, 3.7] = [3.6, -1.8]
>
>
>
> Before writing the pullup and pulldown data to ibis file
>
> I subtract the clamp current from the pullup/pulldown currents.
>
> Generation of clamp current is described next.
>
>
>
> * CLAMP CURRENTS
>
>
>
> (1) typ:
>
>
>
> * For clamp data generate currents in the following voltage range
>
> [-1.8:0.1:3.6] V //[start:incr:end]
>
>
>
> and then split the data such that
>
> GND Clamp: contains currents from [-1.8, 1.7]
>
> PWR Clamp: contains currents from [1.8, 3.6]
>
>     Since PWR Clamp is written wrt to vdd(typ)
>
>     the voltages that are written to the ibis file is:
>
>     1.8-[1.8, 3.6] = [0, -1.8]
>
>
>
> (2) min:
>
>
>
> * For clamp data generate currents in the following voltage range
>
> [-1.8:0.1:3.5] V //[start:incr:end]
>
>
>
> and then split the data such that
>
> GND Clamp: contains currents from [-1.8, 1.7]
>
> PWR Clamp: contains currents from [1.7, 3.5]
>
>     Since PWR Clamp is written wrt to vdd(min)
>
>     the voltages that are written to the ibis file is:
>
>     1.7-[1.7, 3.5] = [0, -1.8]
>
>
>
> * min clamp data has the current corresponding to 1.7 being
>
> present in GND clamp (as 1.7 V) and also in PWR clamp (0 V).
>
>
>
> (3) max:
>
>
>
> * For clamp data generate currents in the following voltage range
>
> [-1.8:0.1:3.7] V //[start:incr:end]
>
>
>
> and then split the data such that
>
> GND Clamp: contains currents from [-1.8, 1.7]
>
> PWR Clamp: contains currents from [1.9, 3.7]
>
>     Since PWR Clamp is written wrt to vdd(max)
>
>     the voltages that are written to the ibis file is:
>
>     1.9-[1.9, 3.7] = [0, -1.8]
>
>
>
> * max clamp data skips the data corresponding to 1.8 V.
>
> It is not contained either in GND clamp or in PWR clamp.
>
>
>
>
>
> Here are my questions.
>
> (Hopefully someone is still around and reading this!)
>
>
>
> 1) The most obvious question,
>
> Is my data generation correct?
>
>
>
> 2) Assuming my data generation is correct:
>
> Is the following subtraction right?
>
>
>
>   * min:
>
>   Pulldown data [-1.8, 3.6] is subtracted by
>
>   clamp data {[-1.8, 1.7] U [1.7, 3.5]}
>
>     * Pulldown data [1.8, 3.6] is subtracted
>
>       by clamp data  in the range [1.7, 3.5]
>
>
>
>   * max:
>
>   Pulldown data [-1.8, 3.6] is subtracted by
>
>   clamp data {[-1.8, 1.7] U [1.9, 3.7]}
>
>     * Pulldown data [1.8, 3.6] is subtracted
>
>       by clamp data in the range [1.9, 3.7]
>
>
>
>
>
>   There is a shift by 0.1 V in these subtractions
>
>   (the same thing can be observed for Pullup data)
>
>   and I think this is causing the shift in the Vcm for
>
>   min/max corners.
>
>
>
>
>
> Can someone point out my errors and point to right docs for
>
> which show the right way to do the slicing/dicing for
>
> typ/min/max data.
>
>
>
>
>
> Thanks for your patient reading.
>
> Anand
>
> --
> This message has been scanned for viruses and
> dangerous content by *MailScanner* <http://www.mailscanner.info/>, and is
> believed to be clean.

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.


--------------------------------------------------------------------
|For help or to subscribe/unsubscribe, e-mail majordomo@eda-stds.org
|with the appropriate command message(s) in the body:
|
|  help
|  subscribe   ibis       <optional e-mail address, if different>
|  subscribe   ibis-users <optional e-mail address, if different>
|  unsubscribe ibis       <optional e-mail address, if different>
|  unsubscribe ibis-users <optional e-mail address, if different>
|
|or e-mail a request to ibis-request@eda-stds.org.
|
|IBIS reflector archives exist under:
|
|  http://www.eda-stds.org/pub/ibis/email_archive/ Recent
|  http://www.eda-stds.org/pub/ibis/users_archive/ Recent
|  http://www.eda-stds.org/pub/ibis/email/         E-mail since 1993
Received on Wed Mar 19 04:24:25 2008

This archive was generated by hypermail 2.1.8 : Wed Mar 19 2008 - 04:25:27 PDT