当半导体厂商被索要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,无论是输出,还是输入,吻合度是非常高的。
华光光电在质量管理模式创新方面持续提高产品与服务质量
铁硅铝磁芯
计为磁翻板指示器与传统指示器的异同
北斗星通正式发布新一代22nm高精度定位芯片
对抗”升级日态度强硬 三星掌门李在镕亲赴日协商解决
如何使用IBIS模型进行分析
低压直流伺服电机在AGV机器人中的应用
见证与建设,2022世界工业互联网产业大会聚焦“华正方案”
STM32Note初识单片机(2)
光学和电子束方法得到扩展,应对严峻的计量和良率挑战
Wi-Fi6理论最大可支持近10Gbps的速率 可以实现高质量的无线网络
书写板的产品规格/书写幅面/投影幅面
粤港澳国际数据空间河套高地论坛探讨跨境数据治理与标准化合作
三星和LG已然在Micro LED电视领域展开激烈角逐
关于中兴WCDMA网络优化重点的问答解析
微星GS65StealthThin游戏本评测 当性能本讲起颜值MAX-Q当仁不让
vivo S7e已经全渠道正式开售
ON2.0:重新定义下一代全光网
重磅|机智云入选2023年工业互联网100佳,赋能高质量发展,推动新型工业化
监控系统中网络监控存储设备的位置设定