原文:http://blog.sina.com.cn/s/blog_c5501ce90101knkq.html
为了进行电路模拟,必须先建立元器件的模型,也就是对于电路模拟程序所支持的各种元器件,在模拟程序中必须有相应的数学模型来描述他们,即能用计算机进行运算的计算公式来表达他们。一个理想的元器件模型,应该既能正确反映元器件的电学特性又适于在计算机上进行数值求解。一般来讲,器件模型的精度越高,模型本身也就越复杂,所要求的模型参数个数也越多。这样计算时所占内存量增大,计算时间增加。而集成电路往往包含数量巨大的元器件,器件模型复杂度的少许增加就会使计算时间成倍延长。反之,如果模型过于粗糙,会导致分析结果不可靠。因此所用元器件模型的复杂程度要根据实际需要而定。
在基于信号完整性计算机分析的PCB设计方法中,最为核心的部分就是PCB板级信号完整性模型的建立,这是与传统的设计方法的区别之处。SI模型的正确性将决定设计的正确性,而SI模型的可建立性则决定了这种设计方法的可行性。
目前构成器件模型的方法有两种:一种是从元器件的电学工作特性出发,把元器件看成‘黑盒子’,测量其端口的电气特性,提取器件模型,而不涉及器件的工作原理,称为行为级模型。这种模型的代表是IBIS模型和S参数。其优点是建模和使用简单方便,节约资源,适用范围广泛,特别是在高频、非线性、大功率的情况下行为级模型几乎是唯一的选择。缺点是精度较差,一致性不能保证,受测试技术和精度的影响。另一种是以元器件的工作原理为基础,从元器件的数学方程式出发,得到的器件模型及模型参数与器件的物理工作原理有密切的关系。SPICE 模型是这种模型中应用最广泛的一种。其优点是精度较高,特别是随着建模手段的发展和半导体工艺的进步和规范,人们已可以在多种级别上提供这种模型,满足不同的精度需要。缺点是模型复杂,计算时间长。
一般驱动器和接收器的模型由器件厂商提供,传输线的模型通常从场分析器中提取,封装和连接器的模型即可以由场分析器提取,又可以由制造厂商提供。
在电子设计中已经有多种可以用于PCB板级信号完整性分析的模型,其中最为常用的有三种,分别是SPICE、IBIS和Verilog-AMS、VHDL-AMS。
1 SPICE模型
Spice是Simulation Program with Integrated Circuit Emphasis的缩写,是一种功能强大的通用模拟电路仿真器,已经具有几十年的历史了,该程序是美国加利福尼亚大学伯克利分校电工和计算科学系开发的,主要用于集成电路的电路分析程序中,Spice的网表格式变成了通常模拟电路和晶体管级电路描述的标准,其第一版本于1972年完成,是用Fortran语言写成的,1975年推出正式实用化版本,1988年被定为美国国家工业标准,主要用于IC,模拟电路,数模混合电路,电源电路等电子系统的设计和仿真。由于Spice仿真程序采用完全开放的政策,用户可以按自己的需要进行修改,加之实用性好,迅速得到推广,已经被移植到多个操作系统平台上。
自从Spice问世以来,其版本的更新持续不断,有Spice2、Spice3等多个版本,新版本主要在电路输入、图形化、数据结构和执行效率上有所增强,人们普遍认为Spice2G5是最为成功和有效的,以后的版本仅仅是局部的变动。同时,各种以伯克利的Spice仿真程序的算法为核心的商用Spice电路仿真工具也随之产生,运行在PC和UNIX平台,许多都是基于原始的SPICE 2G6版的源代码,这是一个公开发表的版本,它们都在Spice的基础上做了很多实用化的工作,比较常见的Spice仿真软件有Hspice、Pspice、Spectre、Tspice、
SmartSpcie、IsSpice等,虽然它们的核心算法雷同,但仿真速度、精度和收敛性却不一样,其中以Synopsys公司的Hspice和Cadence公司的Pspice最为著名。Hspice是事实上的Spice工业标准仿真软件,在业内应用最为广泛,它具有精度高、仿真功能强大等特点,但它没有前端输入环境,需要事前准备好网表文件,不适合初级用户,主要应用于集成电路设计;Pspice是个人用户的最佳选择,具有图形化的前端输入环境,用户界面友好,性价比高,主要应用于PCB板和系统级的设计。
SPICE仿真软件包含模型和仿真器两部分。由于模型与仿真器是紧密地集成在一起的,所以用户要添加新的模型类型是很困难的,但是很容易添加新的模型,仅仅需要对现有的模型类型设置新的参数即可。
SPICE模型由两部分组成:模型方程式(Model Equations)和模型参数(Model Parameters)。由于提供了模型方程式,因而可以把SPICE模型与仿真器的算法非常紧密地联接起来,可以获得更好的分析效率和分析结果。
现在SPICE模型已经广泛应用于电子设计中,可对电路进行非线性直流分析、非线性瞬态分析和线性交流分析。被分析的电路中的元件可包括电阻、电容、电感、互感、独立电压源、独立电流源、各种线性受控源、传输线以及有源半导体器件。SPICE内建半导体器件模型,用户只需选定模型级别并给出合适的参数。
采用SPICE模型在PCB板级进行SI分析时,需要集成电路设计者和制造商提供详细准确描述集成电路I/O 单元子电路的SPICE模型和半导体特性的制造参数。由于这些资料通常都属于设计者和制造商的知识产权和机密,所以只有较少的半导体制造商会在提供芯片产品的同时提供相应的SPICE模型。
SPICE模型的分析精度主要取决于模型参数的来源(即数据的精确性),以及模型方程式的适用范围。而模型方程式与各种不同的数字仿真器相结合时也可能会影响分析的精度。除此之外,PCB板级的SPICE模型仿真计算量较大,分析比较费时。
2 IBIS模型
IBIS 是I/O Buffer Information Specification 的缩写,它是一种基于I/V曲线的对I/O BUFFER快速准确建模的方法,是反映芯片驱动和接收电气特性的一种国际标准,它提供一种标准的文件格式来记录如驱动源输出阻抗、上升/下降时间及输入负载等参数,非常适合做振荡和串扰等高速电路设计中的计算与仿真。
为了制定统一的IBIS 格式,EDA 公司、IC 供应商和最终用户成立了一个IBIS格式制定委员会,IBIS公开论坛也随之诞生,它是由一些EDA厂商、计算机制造商、半导体厂商和大学组成的。在1993 年,格式制定委员会推出了IBIS 的第一个标准Version 1.0,以后不断对其进行修订,现在的最新正式版本是2004年公布的Version 4.1,V4.1主要加入了对多语言模型的支持,包括Berkeley SPICE, VHDL-AMS 和 Verilog-AMS,IBIS模型具备了对整个系统建模的能力,模型应用的范围得到了很大的扩充,但是这需要同时支持这些模型的混合仿真引擎才能进行仿真,因此模型的软件的大规模应用还有待时日。IBIS标准已经得到了EIA的认可,被定义为ANSI/EIA-656-A标准。每一个新的版本都会加入一些新的内容,但这些新内容都只是一个IBIS 模型文件中的可选项目而不是必须项目,这就保证了IBIS 模型的向后兼容性能。
现在,已经有几十个EDA 公司成为IBIS 公开论坛的成员,支持IBIS 的EDA公司提供不同器件的IBIS 模型以及软件仿真工具。有越来越多的半导体厂商开始提供自己产品的IBIS 模型。由于IBIS模型无需描述I/O 单元的内部设计和晶体管制造参数,因而得到了半导体厂商的欢迎和支持。现在各主要的数字集成电路制造商都能够在提供芯片的同时提供相应的IBIS模型。
IBIS规范本身只是一种文件格式,它说明在一标准的IBIS文件中如何记录一个芯片的驱动器和接收器的不同参数,但并不说明这些被记录的参数如何使用,这些参数需要由使用IBIS模型的仿真工具来读取。
IBIS模型仅提供驱动器和接收器的行为描述,但不泄漏电路内部构造的知识产权细节。换句话说,销售商可以用IBIS模型来说明它们最新的门级设计工作,而不会给其竞争对手透露过多的产品信息。并且,因为IBIS是一个简单的模型,在进行PCB板级仿真采用查表计算,因而计算量较小,比相应的全Spice三极管级模型仿真要节省10~15倍的计算量。
IBIS提供两条完整的I/V曲线分别代表驱动器为高电平和低电平状态,以及在确定的转换速度下状态转换的曲线。I/V曲线的作用在于为IBIS提供保护二极管、TTL图腾柱驱动源和射极跟随输出等非线性效应的建模能力。IBIS模型的分析精度主要取决于I/V和V/T表的数据点数和数据的精确度。
与Spice模型相比,IBIS模型的优点可以概括为:
在I/O非线性方面能够提供准确的模型,同时考虑了封装的寄生参数与ESD结构;
? 提供比结构化的方法更快的仿真速度;
? 可用于系统板级或多板信号完整性分析仿真。可用IBIS模型分析的信号完整性问题包括:串扰、反 射、振荡、上冲、下冲、不匹配阻抗、传输线分析、拓扑结构分析。IBIS尤其能够对高速振荡和串扰进行准确精细的仿真,它可用于检测最坏情况的上升时间条件下的信号行为及一些用物理测试无法解决的情况;
? 模型可以免费从半导体厂商处获取,用户无需对模型付额外开销;
? 兼容工业界广泛的仿真平台,几乎所有的信号完整性分析工具都接受IBIS模型。
当然,IBIS不是完美的,它也存在以下缺点:
? 许多芯片厂商缺乏对IBIS模型的支持。而缺乏IBIS模型,IBIS工具就无法工作。虽然IBIS文件可以手工创建或通过Spice模型自动转换,但是如果无法从厂家得到最小上升时间参数,任何转换工具都无能为力
? IBIS不能理想地处理上升时间受控的驱动器类型的电路,特别是那些包含复杂反馈的电路;
? IBIS缺乏对地弹噪声的建模能力。IBIS模型2.1版包含了描述不同管脚组合的互感,从这里可以提取一些非常有用的地弹信息。它不工作的原因在于建模方式,当输出由高电平向低电平跳变时,大的地弹电压可以改变输出驱动器的行为。
3 Verilog-AMS模型和VHDL-AMS模型
与Spice模型和IBIS模型相比,Verilog-AMS和VHDL-AMS模型出现的时间要晚些,是一种行为模型语言。作为硬件行为级的建模语言,Verilog-AMS和VHDL-AMS分别是Verilog和VHDL的超集,而Verilog-A则是Verilog-AMS的一个子集。
在模拟/混合信号(AMS)语言中,与SPICE和IBIS模型不同的是,在AMS语言中是由用户来编写描述元器件行为的方程式。与IBIS模型相类似,AMS建模语言是独立的模型格式,可以应用在多种不同类型的仿真工具中。AMS方程式还能够在多种不同的层次上来编写:晶体管级、I/O 单元级、I/O 单元组等,唯一的要求是制造商能够写出描述端口输入/输出关系的等式。
实际上,AMS模型还能够被用于非电的系统元件上。一般地,可以把模型写得简单些可以加快仿真的速度,一个更详细的模型往往需要更多的时间来仿真。在某些情况下,一个相对简单的行为模型比Spice模型还要精确些。
由于Verilog-AMS和VHDL-AMS都是一种新的标准,被采纳也只是近5年的事情,迄今为止只有少数的半导体厂商能够提供AMS模型,目前能够支持AMS的仿真器也比SPICE和IBIS的要少。但AMS模型在PCB板级信号完整性分析中的可行性和计算精度毫不逊色于SPICE和IBIS模型。
上述几种模型的性能对比如表1中所示:
表1 高速电路仿真模型比较对照表
特性 Spice模型 IBIS模型 Verilog-AMS和VHDL-AMS
精度 精确 好 好
高频设计支持 可达几至几十GHz级 适合于1GHz以下
V4.1扩展支持GHz上
地弹、回流建模支持 支持 不支持 不支持
目标 IC设计 PCB和系统设计 IC、PCB和系统设计
目标电路 模拟电路,混合信号 数字电路 混合信号
模型级别 晶体管、MOS管、二极管等 数字引脚I/O、I/V和V/T曲线 行为模型
计算速度/计算量 慢/大 快/小 速度和精度的折衷
模型来源 IC厂家、SPICE厂家、仿真器厂家 IC和仿真器厂家 仿真器厂家
模型规范的版本 Ph.D. thesis, 1972
SPICE 2G6, 1984
不断有新的模型支持 1.0 1993
3.2 1999
4.1 2004 VHDL-AMS 1999
Verilog-AMS 1998
4 模型的校验
不管你决定选择何种模型和仿真工具,你所使用的方法必须是有效的。至少,模型的准确性、完整性必需得到保证。例如,一个接收器的IBIS模型必需包括Vinl和Vinh的值,驱动器的IBIS模型必需包括Vmeas的值。IBIS模型的数据表可以通过图形化的显示工具来检查,比如Mentor的Visual IBIS Editor或Cadence的Model Integrity工具。
同时,模型还必需能通过仿真器的检验,一个简单的点到点的互连可以被用来校验模型,比如检测是否存在收敛性问题,注意互连必需包括至少一段传输线,这样才能观察到反射、过冲和嵌位二极管的嵌位特性。
最终,模型还要通过实际的硬件测试进行再次校验。当然,器件的实际工作条件不可能完全符合仿真的参数,得到的测量数据与仿真结果无法完全一致,但是反映出来的器件特性应该吻合,比如在同样的负载条件下,边缘的斜率、过冲的幅度、信号的曲线形状等应该相似。
5 模型的选用
由于目前还没有一种统一的模型来完成所有的PCB板级信号完整性分析,因此在高速数字PCB板设计中,需要混合上述几种模型来最大程度地建立关键信号和敏感信号的传输模型。
对于分立的无源器件,可以寻求厂家提供的SPICE模型,或者通过实验测量直接建立并使用简化的SPICE模型,或者使用专门的建模工具(如三维、二维的电磁场模型提取软件)建模。
对于关键的数字集成电路,则必须寻求厂家提供的模型,如IBIS模型或Spice。目前大多数集成电路设计和制造商都能够通过Web网站或其它方式在提供芯片的同时提供所需的IBIS模型,IBIS模型一般不提供,如需要可以找厂家索取。
对于非关键的集成电路,若无法得到厂家的IBIS模型,还可以依据芯片引脚的功能选用相似的或缺省的IBIS模型。当然,也可以通过实验测量来建立简化的IBIS模型。
对于PCB板上的传输线,在进行信号完整性预分析及解空间分析时可采用简化的传输线SPICE模型,而在布线后的分析中则需要依据实际的版图设计使用完整的传输线SPICE模型。如果需要更精确的分析,需要对传输线进行准确建模,可以利用二维或三维的模型提取工具。
IBIS(Input/Output Buffer Information Specification)模型是一种基于V/I曲线的对I/O BUFFER快速准确建模的方法,是反映芯片驱动和接收电气特性的一种国际标准,它提供一种标准的文件格式来记录如驱动源输出阻抗、上升/下降时间及输入负载等参数,非常适合做振荡和串扰等高频效应的计算与仿真。
IBIS规范最初由一个被称为IBIS开放论坛的工业组织编写,这个组织是由一些EDA厂商、计算机制造商、半导体厂商和大学组成的。IBIS的版本发布情况为:1993年4月第一次推出Version1.0版,同年6月经修改后发布了Version1.1版,1994年6月在San Diego通过了Version2.0版,同年12月升级为Version2.1版,1995年12 月其Version2.1版成为ANSI/EIA-656标准,1997年6月发布了Version3.0版,同年9月被接纳为IEC 62012-1 标准,1998年升级为Version3.1版,1999年1月推出了当前最新的版本Version3.2版。
IBIS本身只是一种文件格式,它说明在一标准的IBIS文件中如何记录一个芯片的驱动器和接收器的不同参数,但并不说明这些被记录的参数如何使用,这些参数需要由使用IBIS模型的仿真工具来读取。欲使用IBIS进行实际的仿真,需要先完成以下四件工作:
IBIS是一种简单直观的文件格式,很适合用于类似于Spice(但不是Spice,因为IBIS文件格式不能直接被Spice工具读取)的电路仿真工具。它提供驱动器和接收器的行为描述,但不泄漏电路内部构造的知识产权细节。换句话说,销售商可以用IBIS模型来说明它们最新的门级设计工作,而不会给其竞争对手透露过多的产品信息。并且,因为IBIS是一个简单的模型,当做简单的带负载仿真时,比相应的全Spice三极管级模型仿真要节省 10~15倍的计算量。
IBIS提供两条完整的V-I曲线分别代表驱动器为高电平和低电平状态,以及在确定的转换速度下状态转换的曲线。V-I曲线的作用在于为IBIS提供保护二极管、TTL图腾柱驱动源和射极跟随输出等非线性效应的建模能力。
由上可知,IBIS模型的优点可以概括为:
当然,IBIS不是完美的,它也存在以下缺点:
IBIS模型采用I/V和V/T表的形式来描述数字集成电路I/O单元和引脚的特性。由于IBIS模型无需描述I/O 单元的内部设计和晶体管制造参数,因而得到了半导体厂商的欢迎和支持。现在各主要的数字集成电路制造商都能够在提供芯片的同时提供相应的IBIS模型。
IBIS模型的分析精度主要取决于I/V和V/T表的数据点数和数据的精确度。由于基于IBIS模型的PCB板级仿真采用查表计算,因而计算量较小,通常只有相应的SPICE模型的1/10到1/100。
采用SPICE,产品推向市场的时间取决于获得模型,得到仿真结果的时间;在IBIS中,主要是从SPICE仿真界果中建立模型。换句话说, IBIS模型能够很容易的验证产品测试结果(并且,如果有必要产生新的模型)。如果同样进行测量和模型验证的话,IBIS模型能够同SPICE具有同样的精度。IBIS模型提供的信息需要I/O传输特性、而不是内部电路的信息。
IBIS是为了满足信号完整性(SI)仿真的需要,其结果是IBIS模型具有信号完整性(signal integrity)分析所需要的信息,如在不同的负载下信号上升/下降时间。由于提取的水平如此之高,所以模型不能够很容易的调整大小,但是对于信号完整性(SI)的应用不成问题。
1、IBIS模型
随着数字系统性能的不断提升,信号输出的转换速度也越来越快,在信号完整性分析中,不能简单的认为这些高速转换的信号是纯粹的数字信号,还必须考虑到它们的模拟行为。为了在PCB进行生产前进行精确的信号完整性仿真并解决设计中存在的问题,要求建立能描述器件I/O特性的模型。这样,Intel最初提出了 IBIS的概念,IBIS就是I/O BufferInformation 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模型。
2、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模型。
3、IBIS模型的构成
一个IBIS文件包括了从行为上模拟一个器件的输入、输出和I/O缓冲器所需要的数据,它以ASCII的格式保存。IBIS文件中的数据被用来构成一个模型,这个模型可以用来对印刷电路板进行信号完整性仿真和时序分析。进行这些仿真所需的最基本的信息是一个缓冲器的I/V参数和开关参数(输出电压与时间的关系)。要注意的是,IBIS本身只是一种文件格式,它说明在一个标准的IBIS文件中如何记录一个芯片的驱动器和接收器的不同参数,但并不说明这些被记录的数据如何使用,这些参数要由使用IBIS模型的工具来读取。
IBIS模型是以元件为中心的,也就是说,一个IBIS文件允许你模拟整个的一个元件,而不仅仅是一个特定的输入、输出或I/O缓冲器。因而,除了器件缓冲器的电学特性参数以外,IBIS文件还包括了器件的管脚信息以及器件封装的电学参数。从Version 1.1开始,就定义了一个IBIS模型文件的最基本的组成元素为I/V数据表、开关信息和封装信息(图1)。
图1 IBIS模型的基本组成元素
图中,模块2 Pullup和模块1 PullDown表现了标准输出缓冲器的上拉和下拉晶体管,用直流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 4 0.0m 4 9.0m
|
[Pullup] | Note: Vtable=Vcc -Voutput
|
Voltage I(typ) I(min) I(max)
-5.0V 32.0m 30.0m 35.0m
-4.0V 3 1.0m 2 9.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 C1amp]
|
| Voltage I(typ) I(min) I(max)
|
-5.0V -390 0.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/&曲线来描述同样的开关特性,相比之下dV/&曲线要更加精确一些。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文件必须包括以下三部分的数据和关键字:
4、建立IBIS模型
IBIS模型可以通过仿真器件的SPICE模型来获得,也可以用直接测量的方法来获得。作为最终用户,最常见的方法是到半导体制造厂商的网站上去下载各种器件的IBIS模型,在使用前要对得到的IBIS模型进行语法检查。
建立一个器件的IBIS模型需要以下几个步骤:
5、使用IBIS模型
IBIS模型可以通过仿真器件的SPICE模型来获得,也可以用直接测量的方法来获得。最为最终用户,最常见的方法是到半导体制造厂商的网站上去下载各种器件的IBIS模型,在使用前要对得到的IBIS模型进行语法检查。
IBIS模型主要用于板级系统或多板信号的信号完整性分析。可以用IBIS模型分析的信号完整性问题包括:串扰、反射、振铃、上冲、下冲、不匹配阻抗、传输线分析、拓扑结构分析等等。IBIS模型尤其能够对高速信号的振铃和串扰进行准确精细的仿真,它可用于检测最坏情况的上升时间条件下的信号行为,以及一些用物理测试无法解决的问题。在使用时,用户用PCB的数据库来生成电路板上的连线的传输线模型,然后将IBIS模型赋给电路板上相应的驱动端或接收端,就可以进行仿真了。
图2和图3给出了一个用IBIS模型进行信号完整性分析的例子。可以看到,在使用IBIS模型进行仿真后,发现信号质量不佳,于是采取了添加终端匹配的方法,使信号质量有了较大的改善。
图2 未添加终端匹配的例子
图3 添加了串联匹配的例子
为了满足多板信号仿真的要求,IBIS最新的版本Version3.2中添加了EBD(ElectricalBoard Description)的新特点。EBD模型的基本语法与IBIS模型相同,它是将整块电路板做为一个器件来对待,这样,在多板仿真时就可以直接调用 EBD模型,而不用关心EBD模型所描述的电路板内部的具体情况。使用一些电路板仿真软件可以自动生成EBD模型,例如HyperLynx6.1就有这一功能。
虽然IBIS模型有很多的优点,但是也存在一些不足。目前,仍有许多厂商缺乏对IBIS模型的支持。而缺乏IBIS模型,IBIS仿真工具就无法工作。虽然IBIS文件可以手动创建或通过Spice模型来转换,但是如果无法从厂家得到最小上升时间参数,任何转换工具都无能为力。另外,IBIS还缺乏对地弹噪声的建模能力。
6、IBIS相关工具及链接
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_htm
IBIS 学习笔记
IBIS(Input/Output Buffer Information Specification)模型是基于V/I曲线的对I/O Buffer快速准确建模的方法,其目的是提供一种集成电路制造商与仿真软件供应商以及设计工程师之间相互交换电子元件仿真数据的标准方法。IBIS是一种行为模型,它不是从要仿真的元件的结构出发定义的,而是从元件的行为出发定义的。IBIS本身是一种标准的文本格式,它记录驱动器和接收器的不同参数,如驱动源输出阻抗、上升/下降时间以及输入负载等参数,但它不说明这些记录参数是如何使用的。
IBIS模型分为驱动器模型和接收器模型,如下图示:
Pull up/pull down:标准输出缓冲器的上拉和下拉晶体管,用直流I/V数据表来描述它们的行为。
Power clamp/gnd clamp:静电放电和钳位二极管,用直流I/V数据表来描述它们的行为。
Ramp:表示输出从一个逻辑状态转换到另一个逻辑状态,用dV/dt来描述。
C_comp:硅晶圆电容,它是不包括封装参数的总输出电容。
R_pkg/L_pkg/C_pkg:封装带来的寄生电阻、电感和电容。。
无论是驱动器模型还是接收器模型都是由两部分组成的:缓冲器结构模型([model] section)和封装因子([component]&[pin] section)。
IBIS文件结构
IBIS文件包括了从行为上模拟一个器件的输入、输出和I/O缓冲器所需要的数据,它以ASCII的格式保存。IBIS文件的格式如下图示:
IBIS文件主要由三部分构成:
1. 文件头描述:包括IBIS版本、文件名以及资料来源、修订等信息。
2. 元件描述:该部分包含从数据手册中得到的元件引脚、封装电特性等信息,用关键字[package]和[pin]说明。
3. 模型描述:该部分描述电流、电压曲线和开关特性,模型用[pull up]、[Pull down]、[gnd clamp]、[power clamp]和[ramp]等关键字说明,[model]后的参数定义了模型的类型(输入、输出、I/O、开漏极等)以及它的输入/输出电容。
IBIS模型有3组可能的值:min、max以及typ。
IBIS文件中的V/I曲线数据包括:pull up、pull down、power clamp、gnd clamp四种,V/I曲线数据描述电压从-Vcc~+2Vcc的对应电流的情况,输入芯片的电流为正。
IBIS模型类型:
1. 输入(input):作为接收器,必须定义输入门限(Vinh、Vinl)、Power clamp和gnd clamp;
2. 输出(output):作为驱动器,必须定义power clamp、gnd clamp、pull up、pull down、ramp(dV/dt),此外可以有输出高低电平门限(不属于IBIS模型规范);
3. I/O:根据使能既可以作为驱动器也可以作为接收器;
4. 三态(3-state):通常作为驱动器,也可通过使能端关闭;
5. open_drain:典型的驱动器模型,有一个开路的上拉侧;
6. I/O_open_drain:具有I/O和open_drain双重特性;
7. open_sink:驱动器模型,有一个开路的上拉侧,由用户提供一个上拉的电阻和一个电压连接;
8. I/O_open_sink:具有I/O和open_sink双重特性;
9. open_source:驱动器的模型,有一个开路的下拉侧,由用户提供一个下拉电阻和地或电源的电压连接;
10. I/O_open_source:具有I/O和open_source双重特性;
11. ECL:Emitter Coupled Logic,包括input_ECL、output_ECL、I/O_ECL、3-state_ECL;
12. 终端terminator:通常是输入模型,当没有数字逻辑门限时作为模拟的负载效应,如电阻、电容、二极管等。
参考资料:
? Cadence高速PCB设计与仿真分析 北京航空航天大学出版社 黄豪佑等
IBIS 原理说明
IBIS 模型在做类似板级SI 仿真得到广泛应用。在做仿真的初级阶段,经常对于ibis 模型的描述有些疑问,只知道把模型拿来转换为软件所支持的格式或者直接使用,而对于IBIS 模型里面的数据描述什么都不算很明白,因此下面的一些描述是整理出来的一点对于ibis 的基本理解。在此引用很多presention来描述ibis 内容(有的照抄过来,阿弥陀佛,不要说抄袭,只不过习惯信手拈来说明一些问题),仅此向如muranyi 等ibis 先驱者致敬。本文难免有些错误或者考虑不周,随时欢迎进行讨论并对其进行修改!
IBIS 模型的一些基本概念
IBIS 这个词是Input/Output buffer information specification 的缩写。本文是基于IBIS ver3.2 所撰写出来(www.eigroup.org/IBIS/可下载到各种版本spec),ver4.2增加很多新特性,由于在目前设计中没用到不予以讨论。。。
在业界经常会把spice 模型描述为transistor model 是因为它描述很多电路细节问题。而把ibis 模型描述为behavioral model 是因为它并不象spice 模型那样描述电路的构成,IBIS 模型描述的只不过是电路的一种外在表现,象个黑匣子一样,输入什么然后就得到输出结果,而不需要了解里面驱动或者接收的电路构成。因此有所谓的 garbage in, garbage out,ibis 模型的仿真精度依赖于模型的准确度以及考虑的worse case,因此无论你的模型如何精确而考虑的worse case 不周全或者你考虑的worse case 如何周全而模型不精确,都是得不到较好的仿真精度。
IBIS 模型的构成
经典示意图如下:
从上图可以看出,基本的IBIS模型包括如下的一些信息(对于不同类型的model有一些信息会省略掉)
VI 曲线: Pullup & Pulldown &POWER clamp& GND clamp
VT曲线: Rise waveform, Fall waveform
还有一些其它比较重要的信息比如Die capacitance: C_comp(最近好像那个muranyi对这个很感兴趣,一直发布presentation讨论怎么把这个做的更精确)以及RLC package parameter。至于一些基本的输入以及使能信息会在软件设置自动生成,不需要我们多关注。对于于ibis模型长什么样子,大家去micron主页 ddr2 sdram模块下载几个io buffer看看是什么样。希望你先看看长啥样再看下面的一些说明。
IBIS 的应用场合
任何电路都可以用下面的模型(好像是Shannon 模型我不知道。。。)来描述
Driver -------------interconnect------------------Receiver
注意IBIS 模型描述的是Driver/Receiver 的行为特性而并不是它们的电路特性,因而内部的一些逻辑延时是没有考虑的(在此你就该好好明白为啥要区分Tco的概念),通过使用IBIS 模型,从而得出interconnect 对于电路的影响。在目前一些使用ibis model 仿真的软件中,在Cadence 里面,ibis 模型是转换为dml 格式,在Hyperlynx 里面直接调用ibis 模型。由于ibis 支持的buffer type 很多,每个类型都会有对应的格式以及需要包含的信息,常用有output, input 以及IO 模型,至于其他的模型,大家可以参照ibis 说明,有些些微的差异。
IBIS 模型中vi/vt 曲线的由来
有大牛的示意图形,不多说
Pull down 曲线由来(此曲线需要考虑与clamp 曲线重复的部分)
Ground clamp 曲线由来
Pull up 曲线由来(此曲线需要考虑与clamp 曲线重复的部分)
Power clamp 曲线由来
注意:ibis 里面定义电流流入方向为正;在此图中pull up 以及power clamp 曲线都没经过转化(传说的vcc relative 没出现,^_^,使用Vcc relative 从目前得到的解释是模型可以应用在兼容电压模式,举个例子2.5v 兼容3.3V 的器件,2.5v 和3.3v 工作状态下可以使用相同的模型而不用建立两模型描述单个器件)
IBIS 模型在软件中的应用
目前高速信号软件大部分都是spice-compatible 软件,而且很多都内嵌field solver分析传输线,因而在仿真中势必会把ibis 模型的信息转换成spice 信息来使用,来看看ibis 模型是如何转换成spice 信息使用的。看下如下的示意图,
当外接fixture,此部分电路可以直接在spice 中求解
但是VI 曲线仅仅描述的是DC 状态,那么在ibis 模型中描述瞬态的vt 曲线如何
转换值得商讨,看以下的等效图
可以得出等式:-Iout=Ku*Ipu+Kd*Ipd+Ipc+Igc
如果rising/falling waveform 只有一条曲线,比如VCC+Rfixture,可假设
得方程
如果有两条曲线,比如VCC/GND+Rfixture,Ku 与Kd 独立解出,从而可以得出仿真的瞬态曲线
比较有趣的问题
Vi/Vt 曲线的匹配(参考hyperlynx 的帮助)
对于falling waveform R_fixture=50 Ohms and V_fixture=3.3V负载线与pull up 曲线交界为falling waveform 起始点,与pull down 曲线交界为falling waveform 终点(始终记住pull up 是Vcc relative 需要转换)
对于Rising waveform R_fixture=50 Ohms and V_fixture=3.3V
负载线与pull down 曲线交界为rising waveform 起始点,与pull up 曲线交界为rising waveform 终点
Package model 的应用
在ibis 里面有三个地方可以使用package model
A, [Pin] 语句里面,描述的是local package 参数,只有typ 值
B, [Package]语句里面,描述的是global package 参数,有slow/typ/fast 取值
C, [Define Package Model]里面,描述的是local package 参数,能带传输线,只有typ 值
Ramp 数值由来
测量vt 曲线
dv=(80%-20%)*(Vmaximum-Vminimum)
dt= t [80%*(Vmaximum-Vminimum)]- t [20%*(Vmaximum-Vminimum)]
总结
1,很多人告诉我说想验证ibis 模型,比较好玩,实际上你用软件检查后你会发现很少有其它事情我们可以做的。。。毕竟,你不是做芯片的,不要扁我!对于有问题的ibis 模型,我们有办法做什么事情么?没有,但你一定要知道问题在那儿,灭那些芯片的而不用被他们嘲笑,哈哈。
2,关于ibis 的发展前途,从目前发展趋势,它的归宿只有两个:
a 由于自动化的需要,迟早要成为一个编程语言,哈哈,又多一个求生的饭碗,大家快去学。。。
b 不要高兴太早,它有可能语法太庞大复杂最终被其它取代。。。
参考文献
1.Hyperlynx 帮助
2.The Development of Analog SPICE Behavioral Model Based on IBIS Model
3.Introduction to IBIS models and IBIS model making