Subject: cPCI generic 5V Ibis Models

From: "Ruston, Matt" <[email-masked]>
Date: Thu, 6 Jan 2000 10:59:43 -0500

All:

 Hi. I'm trying to do 5V Compact PCI sims and am in need of strong and weak
models. In the cPCI draft spec (PICMG 2.0 D3.0) dated July 21, 1999, there
is reference in Appendix A (Pg 79) to models and they plot the I-V curves
referenced to the min-max specs. Does anyone have these models (either Ibis
or Spice) and can they forward them to me? If not, does anyone have anything
that is close to covering the full range of the cPCI 5V signaling specs?

Thanks in advance...

Matt

                                  Matt Ruston  ([email-masked])
                                  Lucent Technologies CNS
                                  Voice: (508) 486-2188
                                  Fax:    (508) 486-2126

---

From: "D. C. Sessions" <[email-masked]>
Date: Thu, 06 Jan 2000 12:16:14 -0700

> that is close to covering the full range of the cPCI 5V signaling specs?

If someone wants to modify them, I've build a set of V/I models for
AGP, which is similar to the PCI specs.  Shouldn't be too tough.

Models attached.

-- 
D. C. Sessions
[email-masked]

* AGP 2.0 V/I curve functions
* Source:
*         AGP specification  rev. 2.0 Figure 4-29 (3.3v)
*         AGP specification  rev. 2.0 Figure 4-30 (1.5v)
*         AGP specification  rev. 2.0 Figure 4-33 (1.5v)

* Maximum pullup current at 3.3v
.SUBCKT	ioh33max	pad	vddq	vssq
E1	vddq	offs
+	VOL='0.3*v(vddq,vssq)'
E2	offs	pad
+	VOL='((i(E1)/54m)*v(vddq,vssq)/(v(pad,vssq)+(0.4*v(vddq,vssq))))-v(vddq,offs)'
+	MAX=0
.ENDS	ioh33max

* Maximum pulldown current at 3.3v
.SUBCKT	iol33max	pad	vddq	vssq
E1	offs	vssq
+	VOL='0.18*v(vddq,vssq)'
E2	pad	offs
+	VOL='((i(E1)/141m)*v(vddq,vssq)/v(vddq,pad))-v(offs,vssq)'
+	MAX=0
.ENDS	iol33max

* Minimum pullup current at 3.3v
.SUBCKT	ioh33min	pad	vddq	vssq
.PARAM
+ rline	= '0.7/9m'
E1	vddq	offs	VOL='0.1*v(vddq,vssq)'
E2	offs	pad
+	VOL='(i(E2)*rline)-v(vddq,offs)'
+	MIN=0	MAX=4
G1	offs	pad
+	CUR='(v(vddq,vssq)*0.7/rline)-i(E2)'	MIN=-50m	MAX=0
R1	vddq	pad	1e8
.ENDS	ioh33min

* Minimum pulldown current at 3.3v
.SUBCKT	iol33min	pad	vddq	vssq
.PARAM
+ rline	= '0.6/12m'
E1	offs	vssq	VOL='0.1*v(vddq,vssq)'
E2	pad	offs
+	VOL='(i(E2)*rline)-v(offs,vssq)'
+	MIN=0	MAX=4
G1	pad	offs
+	CUR='(v(vddq,vssq)*0.6/rline)-i(E2)'
+	MIN=-50m	MAX=0
R1	pad	vssq	1e8
.ENDS	iol33min

* 1.5v constraint curves

* Maximum pullup current at 1.5v (per 4-30)
.SUBCKT	ioh15max1	pad	vddq	vssq
E1	vddq	offs
+	VOL='0.3*v(vddq,vssq)'
E2	offs	pad
+	VOL='((i(E1)/111m)*v(vddq,vssq)/v(pad,vssq))-v(vddq,offs)'
+	MAX=0
.ENDS	ioh15max1

* Maximum pulldown current at 1.5v (per 4-30)
.SUBCKT	iol15max1	pad	vddq	vssq
E1	offs	vssq
+	VOL='0.3*v(vddq,vssq)'
E2	pad	offs
+	VOL='((i(E1)/111m)*v(vddq,vssq)/v(vddq,pad))-v(offs,vssq)'
+	MAX=0
.ENDS	iol15max1

* Minimum pullup current at 1.5v (per 4-30)
.SUBCKT	ioh15min1	pad	vddq	vssq
.PARAM
+ rline	= '0.675/11m'
E1	vddq	offs	VOL='0.1*v(vddq,vssq)'
E2	offs	pad
+	VOL='(i(E2)*rline)-v(vddq,offs)'
+	MIN=0	MAX=2
G1	offs	pad
+	CUR='(v(vddq,vssq)*0.675/rline)-i(E2)'	MIN=-50m	MAX=0
R1	vddq	pad	1e8
.ENDS	ioh15min1

* Minimum pulldown current at 1.5v (per 4-30)
.SUBCKT	iol15min1	pad	vddq	vssq
.PARAM
+ rline	= '0.675/11m'
E1	offs	vssq	VOL='0.1*v(vddq,vssq)'
E2	pad	offs
+	VOL='(i(E2)*rline)-v(offs,vssq)'
+	MIN=0	MAX=2
G1	pad	offs
+	CUR='(v(vddq,vssq)*0.675/rline)-i(E2)'
+	MIN=-50m	MAX=0
R1	pad	vssq	1e8
.ENDS	iol15min1

* Maximum pullup current at 1.5v (per 4-33)
.SUBCKT	ioh15max2	pad	vddq	vssq
.PARAM
+ ib1		= '200m/9'
E1	vddq	pad2	VOL='MIN(v(vddq,pad),v(vddq,vssq)/2)
G1	vddq	pad
+	CUR='ib1*(v(vddq,pad)+(v(pad2,vssq)*v(vddq,pad2)/v(vddq,vssq)))'
R1	vddq	pad	1e8
.ENDS	ioh15max2

* Maximum pulldown current at 1.5v (per 4-33)
.SUBCKT	iol15max2	pad	vddq	vssq
.PARAM
+ ib1		= '200m/9'
E1	pad2	vssq	VOL='MIN(v(pad,vssq),v(vddq,vssq)/2)
G1	pad	vssq
+	CUR='ib1*(v(pad,vssq)+(v(pad2,vssq)*v(vddq,pad2)/v(vddq,vssq)))'
R1	pad	vssq	1e8
.ENDS	iol15max2

* Minimum pullup current at 1.5v (per 4-33)
.SUBCKT	ioh15min2	pad	vddq	vssq
.PARAM
+ k1	= 48		$ 1/20.833m
+ k2	= 600		$ 1/1.667m
+ k3	= 'k2-k1'
E1	n1	vddq	VOL='MIN(-0.15*v(vddq,vssq),48*i(E1))'
E2	pad	n1	VOL='MIN(0,k3*(i(E1)+(0.5*v(vddq,vssq)/k1)))'
.ENDS	ioh15min2

* Minimum pulldown current at 1.5v (per 4-33)
.SUBCKT	iol15min2	pad	vddq	vssq
.PARAM
+ k1	= 48		$ 1/20.833m
+ k2	= 600		$ 1/1.667m
+ k3	= 'k2-k1'
E1	n1	vssq	VOL='MAX(0.15*v(vddq,vssq),48*i(E1))'
E2	pad	n1	VOL='MAX(0,k3*(i(E1)-(0.5*v(vddq,vssq)/k1)))'
.ENDS	iol15min2