Subject: s2ibis2 question?

From: Huang <[email-masked]>
Date: Mon, 14 Oct 1996 18:21:18 +0800

Hello,

  I am a new learner for IBIS models version 2.1 and is using s2ibis2.
Now I am facing a problem: while I characterize for a simple 3-state I/O
pad (refer to attachment), the generated .spi file will not function
correctly.  After examining the .spi file, I found the TN pin will NOT
be set while characterizing for the A pin (and vice versa).  So I need
to correct this error by hand.  Is there any way to make this process
more automatically?  Or, do I make a wrong .s2i file?

  Any help or comments will be appreciated.

best regards,
Arthur Huang

ps. my s2ibis2 is s2ibis2.sparc, version no. v0.91BETA

[Attachment]
(first is bd4t.s2i, second is bd4t)
| TEST IBIS characterization
[IBIS Ver]	2.1
[File rev]	1.0
[Date]	Mon Oct 14 15:56:30 1996
[Disclaimer]	for characterization purpose only
[Spice type]	hspice
| [Iterate]
| [Cleanup]
[Component]	bd4t
[Manufacturer]	Arthur
| [Package model]	pkg_type
[Spice file]	bd4t
[Temperature range]	50	100	0
[Voltage range]		3.3	3.0	3.6
[R_pkg]			1.0m	0.5m	1.5m
[L_pkg]			2.5nH	2.0nH	3.0nH
[C_pkg]			4.0pF	3.5pF	4.5pF
| [Diff pin]
| describe the differential pin list

| [Pin mapping]
| currently just neglect this command

[Pin]
A	A	s_A	A
TN	TN	s_TN	TN
IO	IO	s_IO	bd4t
-> A TN
VDD	vdd	s_p	POWER
pGND	g	GND	GND

[Model]	A
[Model type]	Input
[Polarity]	Non-Inverting
[Vinl]	0
[Vinh]	5.0

[Model]	TN
[Model type]	Input
[Polarity]	Non-Inverting
[Vinl]	0
[Vinh]	5.0

[Model]	bd4t
[Model type]	I/O
[Polarity]	Non-Inverting

* testing spice deck for bd4t IBIS 2.1 model characterization

* change the following line to your library file
.inc "bd4t.lib"
.global vdd gnd vpp

xCKT A IO ZI TN bd4t

.subckt bd4t a io zi tn
xnd1 a tn n1 nand
xnd2 n1 tn n2 nand
xiv1 n2 n3 inv
mpio io n1 vdd vdd p w=60u l=1u m=1
mnio io n3 gnd gnd n w=30u l=1u m=1
xiv2 n4 zi inv
xiv3 io n4 inv
.ends bd4t

.subckt nand a b z
mpa z a vdd vdd p w=6u l=1u m=1
mpb z b vdd vdd p w=6u l=1u m=1
mna z a mid gnd n w=3u l=1u m=1
mnb mid b gnd gnd n w=3u l=1u m=1
.ends nand

.subckt inv a z
mp z a vdd vdd p w=6u l=1u m=1
mn z a gnd gnd n w=3u l=1u m=1
.ends inv

---

From: [email-masked] (Hoang Nguyen)
Date: Tue, 15 Oct 96 11:24:21 EDT

Dear IBIS gurus:

I'd like to share a similar experience working with s2ibis program,
which Arthur has posted earlier.

1. For 3-state I/O buffer, the enable pin (in the pin list) needs to be
   connected to a resistor and tie to VDD or GND, depending if you have
   active-high or active-low buffer.  s2ibis program does not do this
   automatically.  In addition, declaring [Enable] Active-High or 
   Active-Low in .s2i file does not guarantee that pullup/pulldown 
   output disable simulation results are correct, unless the proper path
   is provided to VDD or GND by the users as mentioned above.

2. This is a related question to the above.
   When s2ibis generates Power clamp table and Pullup table for 3-state I/O,
   s2ibis sweeps a voltage range VDD->2*VDD for Power Clamp simulation.
   I think the program does this according to IBIS Spec:
   
   Curve		Low Voltage		High Voltage
   -----		-----------		------------
   [POWER Clamp]	POWER			POWER + POWER

   But when n-channel is used as pullup device, we only get insignificant
   current flow because the voltage range is not in the active region of the
   device.  Has anyone have similar experience?

   To generate pullup table, only diode data [power clamp] in the active 
   region [in the voltage range where the diode is active] is subtracted 
   from from pullup data to generate pullup table.  So then is it OK to sweep
   -VDD->VDD for n-channel pullup device in Power clamp simulation? because
   in this region the diode is active.  It's contrary to IBIS Spec outlined
   above. Please advise.

Best regards,

Hoang Nguyen
Mitsubishi Semiconductor

---

From: Arpad Muranyi <[email-masked]>
Date: Thu, 17 Oct 96 12:30:00 PDT

Text item: 

Hoang,

Regarding 1) I can't help you, because I am not using that tool.
Regarding 2) my answer is between your lines.

Arpad Muranyi
Intel Corporation
=============================================================================

Dear IBIS gurus:

This is all correct.  In most cases, N-channel pullups do not have parasitic 
clamps with respect to Vcc, because the substrate is connected to GND.  The data
you see is noise and/or leakage only.

Your question here is not entirely clear to me, but is seems to me that you are 
asking whether it is OK to subtract the entire Clamp curve from the pullup curve
including the -VDD to 0 V region (where the clamp is active).

To set things straight, when you sweep a 3-stated device from -VDD to 2*VDD, you
get the GND Clamp on one end and the Power Clamp on the other end of the curve. 
The same thing is happening with the pullup and pulldown sweeps.  Each of these 
have GND and Power Clamp data embedded within them in the top and bottom 1/3 of 
the sweep.

To avoid the doubling (or tripling) of the clamps, the entire range of the data 
obtained with the 3-stated sweep needs to be subtracted from the pulldown and 
pullup sweeps.  This is not in contradiction with the spec.

Best regards,

Hoang Nguyen
Mitsubishi Semiconductor

Text item: External Message Header

The following mail header is for administrative use
and may be ignored unless there are problems.

***IF THERE ARE PROBLEMS SAVE THESE HEADERS***.

Subject: Re: s2ibis2 question?
To: [email-masked]
From: [email-masked] (Hoang Nguyen)
Date: Tue, 15 Oct 96 11:24:21 EDT
.6.12/8.6.12) with SMTP id LAA13973 for <[email-masked]>; Tue, 15 Oct 1996 11:26:
27 -0400
Received: from unknown(198.28.5.20) by gatekeeper.msai.mea.com via smap (V1.3)
     id sma005634; Tue Oct 15 11:09:09 1996
Received: (from uucp@localhost) by gatekeeper.msai.mea.com (8.6.12/8.6.12) id LA
A05638 for <[email-masked]>; Tue, 15 Oct 1996 11:09:20 -0400
Received: from gatekeeper.msai.mea.com by pacific.mea.com with SMTP
     (1.38.193.4/16.2) id AA02050; Tue, 15 Oct 1996 11:24:22 -0400
Received: from pacific.mea.com (pacific.mea.com [140.237.7.4]) by vhdl.vhdl.org
(8.7.3/8.7.3) with SMTP id IAA10706 for <[email-masked]>; Tue, 15 Oct 1996 08:35:
19 -0700 (PDT)
Received: from vhdl.vhdl.org (vhdl.vhdl.org [198.31.14.3]) by mailbag.jf.intel.c
om (8.7.6/8.7.3) with ESMTP id IAA03945; Tue, 15 Oct 1996 08:32:28 -0700 (PDT)
Received: from mailbag.jf.intel.com ([email-masked] [134.134.248.4])
by relay.jf.intel.com (8.7.4/8.7.3) with ESMTP id IAA05394; Tue, 15 Oct 1996 08:
29:55 -0700 (PDT)
Return-Path: [email-masked]