当半导体厂商被索要SPICE模型时,他们并不愿意提供,因为这些模型会包含有专有工艺和电路信息。这个问题已经通过采用IBIS模型来 (输入/输出缓冲器信息规范)解决,IBIS也被称为ANSI/EIA-656,这是一个建模的新标准,在系统设计人员中越来越流行。
它相对于其它传统模型(例如SPICE)有几项优势。例如,仿真时间最多可缩短25倍,IBIS没有SPICE的不收敛的问题。此外,IBIS可以在任何行业平台运行,因为大多数电子设计自动化(EDA)供应商都支持IBIS规范。
1.IBIS模型的文件结构
IBIS模型是一种以扩展名为“.ibs”的ASCII格式文本文件。它由关键字、子参数和定义值组成。
这个文本大致分为以下几个部分。 文件头信息部分包含文件名、日期、版本等信息组件描述部分 默认包模型引脚列表等(可以有多个定义)
模型声明部分电压/电流特性、过渡特性等(可以有多个定义)
子模型部分电压/电流特性、过渡特性等(可以有多个定义)
包建模部分更详细的包模型
[结束]
IBIS模型由除了.ibs文件之外,还包括以下扩展名的文件组成。
拓展名 内容
.pkg 包模型文件被.ibs文件引用。
.ebd 电子板描述文件用于描述DIMM等电路板级别的连接。不被.ibs或.pkg引用,独立存在。
.ami 算法建模接口文件用于定义高速设备(如SerDes)的模型。被.ibs文件引用。
输出模型
以三态为例,三态输出的结构;模型可视为一个驱动器。它包含一个PMOS晶体管和一个NMOS晶体管,两个ESD保护二极管,芯片电容和封装寄生电容。
输出模型通过以下直流电气数据、交流或转换数据以及参数进行表征:
1. 上拉和下拉曲线
2. 电源和GND钳位曲线
3. 斜坡速率
4. 上升和下降波形
5. C_Comp
6. 封装参数
上拉和下拉曲线
上拉和下拉数据决定器件的驱动强度。这些曲线通过特征化输出中的两个晶体管来获得。上拉数据描述当输出为逻辑高电平状态(PMOS晶体管导通)时的I/V行为。反之,下拉数据表示当输出为逻辑低电平状态(NMOS晶体管导通)时的直流电气特性。
C_Comp
这是硅芯片电容,不包括封装电容。它是焊盘与驱动器之间的电容,可以理解为输出pad、钳位二极管和输入晶体管的总电容。那么对于封装参数则是管脚出线的电容、电感和电阻。这两个电容要区分开。C_Comp是关键参数,特别是对于接收器的输入。C_Comp对于每个不同转折点(最小、典型和最大)都有一个对应值。C_Comp最大的值应在最大转折点之下,最小值应在最小转折点之下。
封装参数
R_Pin、L_Pin和C_Pin是每个引脚到缓冲器连接的电阻、电感和电容的电气特性。R_Pkg、L_Pkg和C_Pkg是整个封装的集总值。与C_Comp参数一样,最大的值以最大值列出,最小的值以最小值列出。
差分信号定义
有些模型没有差分信号定义,很简单,自己打开模型在[Pin]结束后加上你需要的差分信号就可以。
[Diff Pin] inv_pin vdiff tdelay_typ tdelay_min tdelay_max
5 6 NA NA NA NA
差分电压阈值的定义是什么?阈值取决于[Diff Pin]的vdiff子参数。如果vdiff是NA(未定义),则不是0,而是默认值200mV。
上升下降时间
上升时间/下降时间的定义是什么?分为两种情况:[Ramp]关键字和[RisingWaveform]、[Falling Waveform]关键字。
仿真中我们要设置的Source源上升/下降时间,并不是IBIS模型中的。
上图的上升下降时间,并非指IBIS"真实输出"信号的上升下降时间(50~100ps),而是指激发IBIS模型的"理想输入"驱动信号的上升下降时间(1~10ps)。输出信号真正的上升下降时间应该是由IBIS模型内所定义的Rising Waveform/Falling Waveform属性所决定,而不是由使用者输入来决定。所以上图输入的Tr/Tf要远小于真正输出信号的Tr/Tf,才不会影响模拟结果,这是初学者很容易误解的地方。
另外,如果出现Over Clocking问题,此时可以选IBIS模型中的Ramp模式。
在相同的频率下,fast corner眼图正常,slow corner眼图不正常。
使用相同的PRBS输入模式,低频率下眼图正常,高频率下眼图不正常。
在相同的高频率下,clock pattern眼图“看似”正常,PRBS输入模式眼图不正常。
输入模型
它包括两个ESD保护二极管、芯片电容和封装寄生电容。
这些元件形成表征输入特性的V/I曲线。在这种情况下,除了封装寄生和C_Comp参数外,输入端模型包括从ESD二极管获得的电源和GND箝位数据。
几组参数
PVT(Process, Voltage, Temperature)模型过去通常是在“角点”构建的。所有缓冲特性都被认为是相对于PVT的依赖参数。
FastCorner = 快工艺,高电压,低温。
SlowCorner = 慢工艺,低电压,高温。
这些可以在IBIS模型的“Min”和“Max”列中输入。在最大列中是Fast/strong,在最小列中是Slow/weak。
在最近的几代中,我们发现只提供快角和慢角不能充分覆盖所有效应。在这些情况下,可以给出其他模型类型(例如“max ringback”模型)。
Packagedefinition and pin allocation
转化到原理图里面
2.使用IBIS模型进行分析
模型检查
Hyperlynx自带的这款软件比较推荐,编辑、修改、检查都比较方便。
IBIS模型是如何運作的:
那么这些IBIS模型里IV/IT/VT的波形信息又是如何在仿真器里运用的呢?为简化起见,先不管静电保护电路(ESD)的PC/GC电路部分,它们在大多数的操作情形都是在反向偏压区而有极小的漏电电流。对于主要的上拉(PU)及下拉(PD)电路而言,可以把它们看作是非线性电阻;就好比是场效应体的P/N通道般,其电阻值随着端电电压值而改变。这两组电路之相互同时运作,便决定了在不同输出负载情况下的缓冲器的瞬态反应VT及IT。
在瞬间的上升期间,上拉电路PU可以视为由完全断路变成完全通路,而下拉电路是由完全通路变成完全断路。由于接到地线的通路成为断路,导致输出电压升高到逻辑1状态。瞬间的下降期间则是相反地运作。因此我们可以定义一个"切换系数(Ku(t), Kd(t))",来乘以对应的PU/PD电流的输出。这个切换系数的X变量是时域的,就像VT/IT中的时域变量一样。Ku(t)=1表示PU完全通路。反之,Kd(t)=0表示PD完全断路。这Ku(t)及Kd(t)的组合即可用以说明VT/IT的相应变化情况。
Ku(t)及Kd(t)的两个变量,需要有两组方程式才能对其求解。假设IBIS模型里有至少两组的VT波形及其负载测试情况,则我们恰用这两组数据来对Ku(t)及Kd(t)进行求解。因为Ku(t)及Kd(t)只和缓冲器里的场效应晶体管切换的经过时间有关,而和其负载无关,所以我们恰可用两组方程来得到Ku(t)及Kd(t)的真解。这也就是为什么一般的IBIS模型里需要至少有两组的VT波形的原因了。
实际操作中,如果我们无法获得两组波形,仿真器也可以做出另一个假设:即在每个时间点上满足Ku(t) + Kd(t) = 1。总体上说,这个假设在缓冲器的稳态高电位或稳态低电位输出时是成立的,但在其间的瞬态转换期间不一定成立。另一种可能是仿真器可以利用IBIS模型中的斜率(Ramp rate)数据来生成假设的上升/下降VT波形,以达到对切换系数求解的目的。
IBIS模型验证
1.ROUT
如何从IBIS文件中找到驱动器阻抗信息?”大多数时候,我们想要这些信息,以便控制传输路径阻抗不连续引起的反射。
当驱动端的输出阻抗与传输线特性阻抗(Zo)不匹配时,会出现反射,导致接收端出现振铃。
使用上下拉电阻在接收处端接传输线以匹配Zo是解决这一问题的一种方法。尽管这种方法工作良好,但它不是优选的方法,因为电阻值将在45-70欧姆范围内,以匹配现代PCB设计中发现的典型单端传输线阻抗。这样的低电阻导致驱动器上的额外负载,从而导致更高的功率耗散。
一个更好的方法是在Buffer的末端添加一个串联电阻,以弥补阻抗的差异。例如,如果缓冲器的输出阻抗为20欧姆,驱动50欧姆的传输线,则需要添加一个30欧姆的电阻与输出串联。
因为Buffer是半导体,它的输出阻抗可能会根据上升沿/下降沿转换、PVT(缓慢、典型、快速)及其驱动的负载而变化。由于IBIS模型是基于ASCII的,当使用四个V-T波形表中的两个驱动50欧姆时,我们可以简单地使用文本编辑器来查看和快速估计输出阻抗。
与下降沿相比,上升沿的输出阻抗通常不同。要确定从低到高转换的输出阻抗,可以使用下拉[上升波形];R_fixture=50;V_fixture=0.000表。此表的示例如下所示:
[Rising Waveform]
R_fixture = 50.0000
V_fixture = 0.000
| time V(typ) V(min) V(max)
|
0.000S 0.000V 0.000V 0.000V
0.2000nS 0.000V 0.000V -1.7835uV
0.4000nS -1.1143mV -8.0018uV -7.8340mV
0.6000nS 0.1336V -5.4161mV 0.9354V
0.8000nS 1.1220V -12.5300mV 2.3940V
* * * *
* * * *
9.6000nS 2.5680V 2.1880V 2.7880V
9.8000nS 2.5680V 2.1880V 2.7880V
10.0000nS 2.5680V 2.1880V 2.7880V
表的前三行告诉我们,上升波形有一个50欧姆的电阻连接到缓冲输出,并向下拉至0伏,如下等效电路所示。
输出阻抗(Zs)和50欧姆负载的组合形成了由以下等式描述的简单分压电路:
V0=VDC*50/(Zs+50)
VO=Buffer输出引脚处的电压
VDC=电源电压
Zs=缓冲器阻抗
Zs=50*( VDC-V0)/V0
如果使用上面V-T表中10nS的典型电压,VDC为3.3V,VO为2.568V,则50欧姆上升沿的输出阻抗等于14.25欧姆。
要确定高到低转换的输出阻抗,使用上拉[下降波形];表类似于以下示例:
[Falling Waveform]
R_fixture = 50.0000
V_fixture = 3.3000
V_fixture_min = 3.0000
V_fixture_max = 3.4500
| time V(typ) V(min) V(max)
|
0.000S 3.3000V 3.0000V 3.4500V
0.2000nS 3.3000V 3.0000V 3.4500V
0.4000nS 3.2995V 3.0000V 3.4500V
* * * *
* * * *
9.4000nS 0.5598V 0.6824V 0.4812V
9.6000nS 0.5598V 0.6824V 0.4812V
9.8000nS 0.5598V 0.6824V 0.4812V
10.0000nS 0.5598V 0.6824V 0.4812V
这一次,表格告诉下降的波形有一个50欧姆的电阻器连接到缓冲输出,并向上拉至V_fixture,如等效电路所示。
输出阻抗由以下公式计算:
Zs=50*V0/( V_fix- V0)
式中:VO=Buffer吸收电流时的输出电压 V_Fix=测试夹具的电压在10nS时使用 V_Fix的典型值=3.3V VO=0.5598V,Zs=10.21欧姆。
对于这个特定的IBIS模型,输出阻抗根据边缘过渡而变化。对于上升沿,当使用典型值时,输出阻抗为14.25欧姆,下降沿为10.21欧姆。阻抗也将在最小/最大条件下变化。
如果负载不是50欧姆,不能依赖这种简单的方法来进行计算。相反,要通过仿真来确定。
对于输出端的新模型,搭建链路如下所示,LPDDR4模型,我们可以通过波形的反馈验证出芯片的ROUT。
2.镁光的DDR模型通常会提供很详细的IBIS Quality Report
DQ_34_4800 driving DQ_34_4800 at 4.8Gbps
DQ_34_4800 driving DQ_IN_ODT60_4800 at 4.8Gbps
实线是Hspice,虚线是IBIS,无论是输出,还是输入,吻合度是非常高的。
编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !