Re: IBIS datasheets for PCI and DDR

From: D. C. Sessions <dc.sessions@vlsi.com>
Date: Mon Nov 22 1999 - 12:31:05 PST

gedlund@us.ibm.com wrote:
>
> Hello All,
>
> My modeling group has a need for a generic IBIS datasheet that would
> represent the full range of the PCI spec. I guess it would be pretty easy
> to make from the spec (except the VT tables), but I figured why reinvent
> the wheel. A behavioral HSPICE model would be nice, too. We're planning
> to use these models in simulations to evaluate spec compliance.
>
> I'm also looking for the same thing for the DDR SDRAM spec.
>
> Greg Edlund
> Advisory Engineer, Critical Net Analysis
> IBM
> 3650 Hwy. 52 N, Dept. HDC
> Rochester, MN 55901
> gedlund@us.ibm.com

I've attached some behavioral HSPICE models for DDR 4x;
the same approach should work for PCI.

-- 
D. C. Sessions
dc.sessions@vlsi.com

* 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
Received on Mon Nov 22 12:32:06 1999

This archive was generated by hypermail 2.1.8 : Fri Jun 03 2011 - 09:53:46 PDT