[原创]IBIS模型的基本知识

2003-06-03 14:46发布

--------------------------ByYinko----------------------

IBIS模型的由来

随着数字系统性能的不断提升,信号输出的转换速度也越来越快,在信号完整性分析中,不能简单的认为这些高速转换的信号是纯粹的数字信号,还必须考虑到它们的模拟行为。为了在PCB进行生产前进行精确的信号完整性仿真并解决设计中存在的问题,要求建立能描述器件I/O特性的模型。这样,Intel最初提出了IBIS的概念,IBIS就是I/O Buffer Information Specification的缩写。

为了制定统一的IBIS格式,EDA公司、IC供应商和最终用户成立了一个IBIS格式制定委员会,IBIS公开论坛也随之诞生。在1993年,格式制定委员会推出了IBIS的第一个标准Version 1.0,以后不断对其进行修订,现在的版本是1999年公布的Version 3.2, 这一标准已经得到了EIA的认可,被定义为ANSI/EIA-656-A标准。每一个新的版本都会加入一些新的内容,但这些新内容都只是一个IBIS模型文件中的可选项目而不是必须项目,这就保证了IBIS模型的向后兼容性能。

现在,已经有几十个EDA公司成为IBIS公开论坛的成员,支持IBIS的EDA公司提供不同器件的IBIS模型以及软件仿真工具。有越来越多的半导体厂商开始提供自己产品的IBIS模型。

IBIS与SPICE的比较
SPICE作为一种通用的电路模拟语言,最早由加州大学伯克利分校发明。SPICE模型是对电路中实际的物理结构进行描述。由于其精确性和多功能性,已经成为电子电路模拟的标准语言。SPICE模型目前有两个主要的版本:HSPICE和PSPICE,HSPICE主要应用于集成电路设计,而PSPICE主要应用于PCB板和系统级的设计。

采用SPICE模型在PCB板级进行SI分析时,需要集成电路设计者和制造商提供能详细准确的描述集成电路I/O 单元子电路的SPICE模型和半导体特性的制造参数。由于这些资料通常都属于设计者和制造商的知识产权和机密,所以只有较少的半导体制造商会在提供芯片产品的同时提供相应的SPICE模型。 SPICE模型的分析精度主要取决于模型参数的来源(即数据的精确性),以及模型方程式的适用范围。而模型方程式与各种不同的数字仿真器相结合时也可能会影响分析的精度。有的半导体生产者在向外界提供SPICE模型时,常常会对一些涉及到知识产权的部分进行‘清理’ ,这样也会导致仿真结果的不准确。

IBIS模型不对电路的具体结构进行描述,而只是采用I/V和V/t表的形式来描述数字集成电路I/O单元和引脚的特性。半导体厂商很容易在不透露自己的知识产权的同时为客户提供这种模型。

IBIS模型的分析精度主要取决于I/V和V/T表的数据点数和数据的精确度。由于基于IBIS模型的PCB板级仿真采用查表计算,因而计算量较小,通常只有相应的SPICE模型的1/10到1/100。 用它进行仿真的速度要比用SPICE模型快很多。随着电路板的设计越来越复杂,使用SPICE模型仿真会花去很长的时间,而使用IBIS模型使得对整个电路板上的系统进行仿真成为可能。虽然IBIS模型没有SPECE模型那么精确,但对于系统级分析而言已经是完全足够了。

使用IBIS模型的另外一个优点就是,很多的IBIS模型都是由实际的器件得到,这样,一旦有了完全的IBIS数据,那么仿真得到的数据就与实际的器件有了直接的关系。

总之,由于IBIS模型的方便,快捷,以及具有必要的精确度, 越来越多的半导体厂商都愿意向客户免费提供自己产品的IBIS模型。

由于目前还没有一种统一的模型来完成所有的PCB板级信号完整性分析,因此在高速数字PCB板设计中,需要混合各种模型来最大程度地建立关键信号和敏感信号的传输模型。

对于分立的无源器件,可以寻求厂家提供的SPICE模型,或者通过实验测量直接建立并使用简化的SPICE模型。对于关键的数字集成电路,则必须寻求厂家提供的IBIS模型。目前大多数集成电路设计和制造商都能够通过Web网站或其它方式在提供芯片的同时提供所需的IBIS模型。对于非关键的集成电路,若无法得到厂家的IBIS模型,还可以依据芯片引脚的功能选用相似的或缺省的IBIS模型。当然,也可以通过实验测量来建立简化的IBIS模型。对于PCB板上的传输线,在进行信号完整性预分析及解空间分析时可采用简化的传输线SPICE模型,而在布线后的分析中则需要依据实际的版图设计使用完整的传输线SPICE模型。

IBIS模型的构成
一个IBIS文件包括了从行为上模拟一个器件的输入、输出和I/O缓冲器所需要的数据,它以ASCII的格式保存。IBIS文件中的数据被用来构成一个模型,这个模型可以用来对印刷电路板进行信号完整性仿真和时序分析。进行这些仿真所需的最基本的信息是一个缓冲器的I/V参数和开关参数(输出电压与时间的关系)。要注意的是,IBIS本身只是一种文件格式,它说明在一个标准的IBIS文件中如何记录一个芯片的驱动器和接收器的不同参数,但并不说明这些被记录的数据如何使用,这些参数要由使用IBIS模型的工具来读取。

IBIS模型是以元件为中心的,也就是说,一个IBIS文件允许你模拟整个的一个元件,而不仅仅是一个特定的输入、输出或I/O缓冲器。因而,除了器件缓冲器的电学特性参数以外,IBIS文件还包括了器件的管脚信息以及器件封装的电学参数。从Version 1.1开始,就定义了一个IBIS模型文件的最基本的组成元素为I/V数据表、开关信息和封装信息(图1-7-1)。


图1-7-1 IBIS模型的基本组成元素
图中,模块1 PullDown和模块2 PullUp表现了标准输出缓冲器的上拉和下拉晶体管,用直流I/V数据表来描述它们的行为。模块3中的Power_Clamp和Gnd_Clamp是静电放电或钳位二极管,也是用直流I/V数据表来描述的。模块4在IBIS文件中是Ramp参数,表示输出从一个逻辑状态转换到另一个逻辑状态,用dV/dt来描述某一特定阻性负载下输出波形的上升沿和下降沿。模块5描述的是体电容和封装寄生参数,其中C_comp是硅晶元电容,它是不包括封装参数的总的输出电容;L_pkg、R_pkg和C_pkg分别是由封装带来的寄生电感、寄生电阻和寄生电容。如果描述的仅仅是输入管脚的IBIS模型,则只由模块3和模块5两部分组成即可。

IBIS规范要求的I/V曲线的范围是-Vcc到(2*Vcc),制定这一电压范围的原因是,由全反射所引起的过冲理论上的最大值是两倍的信号摆幅。Gnd_Clamp的I/V曲线范围定义为-Vcc到Vcc,而Power_Clamp的I/V曲线范围是0到(2*Vcc)。要注意的是,Pullup和Power_Clamp在IBIS文件中的电压Vtable为Vcc-Voutput。
[Pulldown]
|
| Voltage I(typ) I(min) I(max)
|
-5.0V -40.0m -34.0m -45.0m
-4.0V -39.0m -33.0m -43.0m
|……
0.0V 0.0m 0.0m 0.0m
|……
5.0V 40.0m 34.0m 45.0m
10.0V 45.0m 40.0m 49.0m
|
[Pullup] | Note: Vtable = Vcc - Voutput
|
| Voltage I(typ) I(min) I(max)
|
-5.0V 32.0m 30.0m 35.0m
-4.0V 31.0m 29.0m 33.0m
|……
0.0V 0.0m 0.0m 0.0m
|……
5.0V -32.0m -30.0m -35.0m
10.0V -38.0m -35.0m -40.0m
|
[GND Clamp]
|
| Voltage I(typ) I(min) I(max)
|
-5.0V -3900.0m -3800.0m -4000.0m
-0.7V -80.0m -75.0m -85.0m
-0.6V -22.0m -20.0m -25.0m
-0.5V -2.4m -2.0m -2.9m
-0.4V 0.0m 0.0m 0.0m
5.0V 0.0m 0.0m 0.0m
|
[POWER Clamp] | Note: Vtable = Vcc - Voutput
|
| Voltage I(typ) I(min) I(max)
|
-5.0V 4450.0m NA NA
-0.7V 95.0m NA NA
-0.6V 23.0m NA NA
-0.5V 2.4m NA NA
-0.4V 0.0m NA NA
0.0V 0.0m NA NA

Ramp参数表示了缓冲器的上升和下降时间, Ramp中的dV是缓冲器输出电压由20%变化到80%间的差值。这一参数只计入了晶元电容C_comp的影响,而不考虑封装寄生参数的影响。有时也用dV/dt曲线来描述同样的开关特性,相比之下dV/dt曲线要更加精确一些。R_load表示这些数据是在什么样的负载状况下得到的,如果使用的是标准的50 ohm负载,那么这一项是可选择的。

[Ramp]
| variable typ min max
dV/dt_r 2.20/1.06n 1.92/1.28n 2.49/650p
dV/dt_f 2.46/1.21n 2.21/1.54n 2.70/770p
R_load = 300ohms

上面所提到的这些数据都有三个值可供选择:典型值、最小值和最大值.这些是由工作环境的温度、电源电压以及工艺制程的变化来决定的。使用各种数据的最小值和最大值,就可以表现出模型的最差和最好情况。例如,要得到一个快速的模型,可以使用最高值的电流、最快的ramp数据以及最小的封装寄生参数;而要得到慢速的模型则正好相反。在有的模型中,并不提供最小值和最大值, 只是用N/A来表示,如上面举的Power Clamp的例子。而典型值在模型中是必须要提供的。

封装寄生参数在IBIS模型文件中用R_pkg、L_pkg和C_pkg来表示,如果在文件中对管脚的说明部分对每个管脚又赋予了具体的封装参数值,那么全局定义的封装参数就不起作用。

在前面给出的IBIS文件的例子中可以看到,每一部分的开头都由方括号开始,在方括号中的是定义语句的关键字,它对跟在后面的数据作出了说明,这样仿真器就可以使用这些数据。在一个IBIS文件中,有的关键字是必须的,而有的则是可选择的。一个有效的IBIS文件必须包括以下三部分的数据和关键字:
1. 被模拟的器件及IBIS文件本身的信息,包含这些信息的关键字为[IBIS Ver]、[File Name]、[File Rev]、[Component]、[Manufacturer]。
2. 与封装的电气特性相关的信息以及管脚分布情况,用关键字[Package]和[Pin]说明。
3. 模拟器件的输入、输出及I/O缓冲器所需的数据,用关键字[Model]、[Pullup]、[Pulldown]、[GND Camp]、[Power Clamp]和[Ramp]说明。

使用IBIS模型
IBIS模型可以通过仿真器件的SPICE模型来获得,也可以用直接测量的方法来获得。最为最终用户,最常见的方法是到半导体制造厂商的网站上去下载各种器件的IBIS模型,在使用前要对得到的IBIS模型进行语法检查。

IBIS模型主要用于板级系统或多板信号的信号完整性分析。可以用IBIS模型分析的信号完整性问题包括:串扰、反射、振铃、上冲、下冲、不匹配阻抗、传输线分析、拓扑结构分析等等。IBIS模型尤其能够对高速信号的振铃和串扰进行准确精细的仿真,它可用于检测最坏情况的上升时间条件下的信号行为,以及一些用物理测试无法解决的问题。在使用时,用户用PCB的数据库来生成电路板上的连线的传输线模型,然后将IBIS模型赋给电路板上相应的驱动端或接收端,就可以进行仿真了。
图1-7-2和图1-7-3给出了一个用IBIS模型进行信号完整性分析的例子。可以看到,在使用IBIS模型进行仿真后,发现信号质量不佳,于是采取了添加终端匹配的方法,使信号质量有了较大的改善。

为了满足多板信号仿真的要求,IBIS最新的版本Version3.2中添加了EBD(Electrical Board Description)的新特点。EBD模型的基本语法与IBIS模型相同,它是将整块电路板做为一个器件来对待,这样,在多板仿真时就可以直接调用EBD模型,而不用关心EBD模型所描述的电路板内部的具体情况。使用一些电路板仿真软件可以自动生成EBD模型,例如HyperLynx6.1就有这一功能。

图1-7-2 未添加终端匹配的例子

图1-7-3 添加了串联匹配的例子

虽然IBIS模型有很多的优点,但是也存在一些不足。目前,仍有许多厂商缺乏对IBIS模型的支持。而缺乏IBIS模型,IBIS仿真工具就无法工作。虽然IBIS文件可以手动创建或通过Spice模型来转换,但是如果无法从厂家得到最小上升时间参数,任何转换工具都无能为力。另外,IBIS还缺乏对地弹噪声的建模能力。


IBIS相关工具及链接
IBIS问世以来,出现了很多相关的工具,下面介绍几种常用的免费工具:
Ibischk: 能够对IBIS文件进行语法检查
S2ibis: NCSU发明的SPICE到IBIS的转换工具,支持HSPICE、PSPICE 和SPICE3
S2iplt: NCSU发明,能够将IBIS文件中的V/I数据以图的形式表现。
Visual IBIS editor: HyperLynx中提供的工具,能够对IBIS模型进行语法检查,编辑以及对V/I数据绘图。
IBIS Cookbook: 详细描述了产生一个IBIS模型所需的步骤。

如果需要到网上查找一些IBIS的相关内容,下面的几个链接可能会提供一些帮助:
http://www.eigroup.org/ibis/ibis.htm
http://www.innoveda.com/products/datasheets_HTML/ibis.asp
http://www2.ncsu.edu/eos/project/erl_html
http://www.icst.com/products/pcmotherboard.htm
http://www.mentorg.com/icx/modeling/ibis_modeling.html
赞赏支持

登录 后发表评论
0条评论
还没有人评论过~