作者: ADI产品应用工程师Rolynd Aquino,ADI系统应用工程师Francis Ian Calubag,
ADI产品应用工程师Janchris Espinoza
摘要
本文提供有关在创建IBIS模型时如何使用LTspice?的说明指南,涵盖从IBIS预建模程序到IBIS模型验证的整个过程。本文还详细介绍如何在LTspice中为IBIS模型准确提取I-V、V-T、斜坡和C_comp数据。此外,还提供定性和定量FOM方法,用于验证IBIS模型的性能。该应用案例展示了为假设的ADxxxx三态数字缓冲器开发IBIS模型的过程,其中包含适合输入和三态CMOS接口的可用IBIS模板,有助于即刻开始创建您的IBIS模型。
简介
在构建任何系统时,仿真都发挥着关键作用。它帮助设计人员预见问题,进而避免费时且成本高昂的修改。我们的目标始终是一次就成功!在仿真高速数字接口时,如果设计不当,简单的PCB走线可能会影响信号质量。在信号完整性仿真中,IBIS(输入/输出缓冲器信息规范)模型用来表示器件的数字接口。
如IBIS系列文章的第1部分所述,IBIS是一个行为模型,通过以表格形式列出的电流与电压(I-V)和电压与时间(V-T)数据来描述器件的数字接口的电气特征。IBIS模型应尽量准确,且不含任何解析错误,避免在之后使用时出现问题。此外,对于具有数字接口的每个部件或器件,都应该提供可用的IBIS模型。这样客户需要时,可直接从制造商的网页上下载。但是,事实并非总是如此。对于IBIS模型用户,他们常遇到的一个问题就是模型的可用性。当他们在设计中选用的部件没有IBIS模型时,其产品开发可能受阻。
IBIS模型最好是由其制造商提供;但是,用户也可以创建IBIS模型。本文介绍如何使用LTspice,基于SPICE模型创建最基础的IBIS模型。下文使用IBIS建模手册(IBIS 4.0版)中的规格来介绍LTspice仿真设置。还要介绍如何使用定性和定量品质因数来验证IBIS模型。
何谓“最基本的”IBIS模型?
为了帮助客户使用LTspice创建基本的IBIS模型,需要先定义“基本”一词。基本的IBIS模型不仅取决于I/O模型关键字,还取决于需要建模的数字缓冲器的类型。这意味着需要重新审视IBIS的早期版本,以定义建立缓冲器模型需要满足的最低要求,以及当时建模的数字接口的类型。事实证明,单端CMOS缓冲器是可以使用IBIS建模的最简单的数字IO之一,本文将予以介绍。
图1.3态CMOS缓冲器的IBIS模型
表1.基于Model_type的IBIS模型组件汇总
Model_type | [封装] | C_comp | [GND_ Clamp] | [Power_ Clamp] | [下拉] | [上拉] | V-T表 | [斜坡] |
输入 | ? | ? | ? | ? | — | — | — | — |
3态 | ? | ? | ? | ? | ? | ? | ? | ? |
I/O | ? | ? | ? | ? | ? | ? | ? | ? |
图1显示3态CMOS缓冲器IBIS模型的结构。如第1部分所述,IBIS模型中的组件或关键字取决于模型类型。表1汇总列出基本的IBIS模型的组件,具体由Model_type决定。
应用案例
在本文中,我们将使用一个假设的ADxxxx器件的LTspice模型来创建IBIS模型。它是一个带有使能引脚的单输入和单输出数字缓冲器。因此,得到的IBIS模型将具有两个输入(DIN1和EN)、一个三态输出(DOUT1)。
一般来说,生成IBIS模型有五个基本步骤:
u 建立预建模程序。
u 对从SPICE模型中提取的C_comp、V-I和V-T数据进行LTspice仿真。
u 格式化IBIS文件。
u 使用IBIS解析器测试检查文件。
u 比较IBIS模型与SPICE模型在相同加载条件下的仿真结果。
IBIS模型提供典型数据、最小数据和最大数据。它们通过工作电源电压范围、温度和工艺来确定。为简洁起见,本文只讨论典型条件。
Ibischk Golden Parser系列可用于检查IBIS模型是否符合IBIS规范。ibischk可执行文件可从IBIS.ORG网页免费获取。本文使用集成ibischk的第三方IBIS模型编辑软件。
预建模程序
在开始仿真之前,用户应该下载器件的数据手册,并安装SPICE模型和LTspice文件。通过确定部件具备的数字接口数量和类型(例如,输入、开漏、三态等),对部件进行初始评估。
根据器件数据手册,确定工作电源电压、工作温度、集成电路(IC)封装类型、器件引脚排列、数字输出时序规格的加载条件(RLoad和/或CLoad),以及数字输入的低电平输入电压(VINL)和高电平输入电压(VINH)。ADxxx SPICE模型如图1所示,其指标参数列在表2。
通过使用关键字,将有关器件数字接口的所有信息汇集到一个IBIS文件中。关键字是IBIS模型中用括号括起来的标识符,如第1部分所述。更多详细信息请参阅此部分内容。
图2.Adxxxx 3态数字缓冲器SPICE模型。
表2.ADxxxx数据手册参数
数据手册参数 | 值 |
VDD | 1.8 V(典型值) |
工作温度 | 25°C |
VINL | 0.3 × VDD |
VINH | 0.7 × VDD |
IC封装 | 6引脚SOT-23 |
CLoad | 15 pF |
与IC封装模型相关的关键字是[Package]。它包含RLC(电阻-电感-电容)寄生参数,代表从芯片焊盘到IC焊盘/引脚的连接。此信息可从制造商处获得。也可以查找另一个IBIS文件的[Package]数据,只要该器件采用的封装与正在评估的器件完全相同,并且来自同一制造商。6引脚SOT-23封装的器件封装寄生参数如表3所示。
表3.6引脚SOT-23封装寄生参数
[封装] | |||
变量 | 典型值 | 最小值 | 最大值 |
R_pkg | 1.595E-01 | NA | NA |
L_pkg | 4.455E-09 | NA | NA |
C_pkg | 0.370E-12 | NA | NA |
器件引脚排列如表4所示。关键字[Pin]用于描述引脚及其对应的模型名称。[Pin]一般为3列格式。第一列是引脚编号,第二列是引脚描述,第三列是模型名称。有些封装包含类似的引脚(VCC、GND)。这些引脚可以按模型分组和描述。在这种情况下,由于SPICE模型没有给出有关内部晶体管级原理图的信息,因此最好为每个数字接口创建单独的模型。在IBIS文件中,模型名称“Power”和“GND”用于命名电源和接地引脚。非数字接口和“请勿连接”引脚则描述为“NC”或无连接。请注意,模型名称是区分大小写的。由于在稍后的建模程序中还会用到,所以需给出具体的模型名称。
表4.ADxxxx引脚列表
[Pin] | Signal_name | Model_name |
1 | VDD | Power |
2 | DIN1 | cmos_di1 |
3 | EN | cmos_en |
4 | DOUT1 | cmos_out1 |
5 | GND | GND |
6 | NC | NC |
ADxxxx真值表如表5所示。这在建立LTspice仿真时非常有用。还必须要知道如何将DOUT1引脚设置为高阻抗(高阻)模式、逻辑1和逻辑0。
表5.ADxxxx真值表
EN | DIN1 | DOUT1 |
0 | 0 | 高阻 |
0 | 1 | 高阻 |
1 | 0 | 0 |
1 | 1 | 1 |
LTspice设置和仿真
一般来说,IBIS模型通过前面提到的I-V(电流与电压)和V-T(电压与时间)数据描述数字缓冲器的行为。进行IBIS建模时,每种类型的数字接口都拥有一组自己的I-V和/或V-T数据,如表1所示。表6更加详细地列出了这些数据集。注意查看每个数据集的注释。那些标记为“推荐”的数据,表示这些数据缺失不会在ibischk解析器测试中导致误差。但是,这些数据集对通道仿真有一定的作用。例如,钳位数据有助于分析信号反射。
表6.输入和3态接口的I-V和V-T数据集
IBIS关键字 | 输入 | 3态 | ||
V-I数据 | C_comp | 必需 | 必需 | |
[Power_Clamp] | 推荐 | 推荐 | ||
[GND_Clamp] | 推荐 | 推荐 | ||
[上拉] | — | 必需 | ||
[下拉] | — | 必需 | ||
V-T数据 | [上升波形] | 加载至VDD | — | 推荐 |
加载至GND | — | 推荐 | ||
[下降波形] | 加载至VDD | — | 推荐 | |
加载至GND | — | 推荐 | ||
[斜坡] | — | 必需 |
[Power_Clamp]和[GND_Clamp]
图3.[Power_Clamp]和[GND_Clamp]关键字结构的概念图
[GND_Clamp]和[Power_Clamp]通过以表格形式列出的I-V数据显示数字缓冲器的静电放电(ESD)器件的行为。[Power_Clamp]表示以VDD为基准的ESD器件的整体行为,接地箝位表示以GND为基准的ESD器件的整体行为。
在LTspice中,I-V数据可以使用.DC SPICE命令/指令进行测量。DOUT1的接地箝位用图4所示设置进行测量。在该设置中,使用适当的电源电压将该器件配置为高阻态模式(请参见表5)。这可以确保将ESD器件与核心电路隔离。VSWEEP是以GND为基准的扫描电压。使VSWEEP基准电压接地,确保只显示GND箝位ESD器件的特征。
根据IBIS规格,应扫描电压轨以外(最好从-VDD到2 × VDD)的I-V数据,本例中是从–1.8 V到+3.6 V。通过直接执行此操作,扫描VDD以外的电压将会开启电源箝位ESD器件。为了避免这种情况,首先在–1.8 V至+1.8 V范围内扫描VSWEEP,并使用外推方法添加3.6 V数据点。此方法适用于所有I-V数据集。
另外,请注意所有I-V数据集最多只接受100个数据点。如果数据点超过这个数目,在ibischk解析器测试中会提示错误。设置.DC命令的增量,使得到的数据点数量小于或等于99。这是为了容纳用于2 × VDD外推的一个额外数据点。
进行直流扫描时,仿真中可能出现非常大的反向电流。要解决这个问题,将起始扫描从近似二极管势垒电位(-0.7 V)设置为VDD (+1.8 V)。然后将数据外推至符合–VDD至2 × VDD I-V数据。另一种方法是将一个小电阻Rser与VSWEEP串联,以限制极端电流。
图4.ADxxxx DOUT1接地箝位设置
单击运行按钮,LTspice开始运行仿真。由于正在评估DOUT1,所以目标节点为Ix(U1:DOUT1)。虽然从技术角度来看I(VSWEEP)也是正确的,但IBIS模型需要Ix(U1:DOUT1)上的电流极性。这是为了最大限度减少I(VSWEEP)数据的进一步格式化,使其适合模型。结果应该如图5所示。仿真完成后,先单击结果窗口保存数据,然后单击文件 -> 将数据导出为文本。导航至要保存的目录,单击受测节点,然后单击OK(如图6所示)。
图5.接地箝位仿真结果
图6.将仿真数据导出为文本
[Power_Clamp]数据提取与接地箝位设置类似,因此扫描电压VSWEEP以VDD为基准。设置和结果如图7所示。
图7.ADxxxx OUT1电源箝位设置和结果
[下拉]和[上拉]
图8.I-V关键字结构的概念图
图8显示了I-V关键字结构的概念图。[下拉]和[上拉]表示缓冲器中上拉和下拉元素的行为。如果以图表形式表示,它们看起来就像MOSFET的I-V特征曲线。在提取[下拉]和[上拉]数据时,了解如何通过器件的真值表操控从输出引脚输出的信号非常重要。提取[下拉]和[上拉]数据的设置与[GND_Clamp]和[Power_Clamp]类似,即DOUT1引脚使能,且不处于高阻模式。
要提取[下拉]数据,DOUT1引脚应设置为逻辑0输出或0 V。所以,必须设置适当的电源电压,如图9所示。对EN引脚施加1.8 V的等效逻辑高压,以使能DOUT1引脚,对DIN1引脚施加逻辑0或0 V,将DOUT1引脚设置为逻辑0输出。可以通过真值表(表5)进行确认。结果如图10所示。
图9.ADxxxx OUT1下拉设置
图10.ADxxxx OUT1下拉图
放大[下拉]数据,它类似于MOSFET的I-V特征曲线,如图11所示。
图11.ADxxxx DOUT1下拉图(缩放视图)
在保存下拉数据时,请注意它构成了[GND_Clamp]和[下拉]的总电流。图12可以更好地说明这一点。要移除[GND_Clamp]组件,只需从[下拉]保存数据中逐点减去它。为了简化这一操作,[GND_Clamp]和[下拉]直流分析的电压增量、开始电压和结束电压必须相同。
图12.来自下拉保存数据的实际电流
获取上拉数据的设置如图13所示。提供适当的电源电压,以将DOUT1设置为逻辑1 (1.8 V)。这将确保上拉元件激活/开启。然后,VSWEEP也在–1.8 V至+1.8 V范围内扫描,并且以VDD为基准。以这种方式连接VSWEEP,可以防止用户格式化数据以符合IBIS规范。
图13.ADxxxx DOUT1上拉设置和结果
与[下拉]一样,保存的[上拉]数据是从[Power_ Clamp]和[上拉]总电流得出的结果。因此,用户需要从保存的[上拉]数据中逐点减去数据,以去除[Power_Clamp]组件,如果它们的直流扫描参数相同,这很容易完成。提醒大家,对所有的I-V数据测量使用相同的直流扫描参数。
图14.来自保存的[上拉]数据的实际电流
[C_comp]
[C_comp]关键字代表缓冲器的电容,其最小、典型和最大拐角的值各不相同。它是晶体管和裸片的电容,与封装电容不同。可以采用两种方式提取[C_comp]。当引脚由交流电压供电时,可以使用方程1中的公式来得出近似值,也可以使用方程2中的公式进行计算。
其中:
u ImIac:被测电流的虚值
u F:交流电源的频率
u VAC:交流电源的幅度
使用LTspice进行C_Comp提取
如图15所示,可以通过提供交流电压和频率扫描来提取缓冲器电容。由于提供的是交流电压,所以要测量电流的实部和虚部部分。当用交流电压供电时,必须反转电流的极性,以测量缓冲器的输入电流值。测量输出缓冲器电容时,对于图15所示的图,唯一要做的更改就是必须将交流电源连接至输出引脚。
图15.ADxxxx C_comp提取设置
交流电压的幅值可以是任意值,但通常设置为1 V。它将按照SPICE指令进行频率扫描。使用.AC命令绘制波形时,默认设置为以波特模式显示,单位为dB。必须将其设置为笛卡尔模式才能查看电流值,这样可以直接使用缓冲器电容公式进行处理。要查看缓冲器电容波形,用户必须先右键单击波形窗口,然后单击添加走线,再选择被测量的引脚。波形图窗口将显示两条线。
实线表示被测电流的实部,虚线表示被测电流的虚部。
图16.向图中添加走线对话框
若要将图形设置从波特改为笛卡尔,右键单击波形窗口左侧的y轴,以打开左纵轴—幅度对话框。然后将图示方式从波特改为笛卡尔。
图17.将图设置从波特改成笛卡尔
用于C_Comp设置的LTspice指令
LTspice指令用于设置电路的工作模式、测量变量和过程参数,以计算C_comp。以下是用来测量缓冲器的C_comp值的LTspice指令:
u AC Lin 10 1k 10k:将电路的工作模式设置为从1 kHz至10 kHz的交流线性频率扫描。
u .Options meascplxfmt:将.meas命令的默认结果更改为波特、奈奎斯特或笛卡尔模式。
u .Options measdgt:设置.meas语句的有效数字位数。
u .meas语句:这些指令用来找出电路中某些参数的值。
这些SPICE指令可以根据用户想要显示的参数进行修改。有关在LTspice中可使用的指令的详细说明,请参阅LTspice Help。测量语句的结果可以在工具 > SPICE错误日志中查看。
图18.SPICE错误日志中的测量语句结果。
SPICE错误日志中显示的结果将采用笛卡尔形式。X坐标为电流和缓冲电容的实部,Y坐标为电流和缓冲器电容的虚部。如上所述,在测量缓冲器电容时,电流的虚部是缓冲器电容所需的部分,所以C_comp的实际值就是图18中突出显示的值。
[上升波形]和[下降波形]
什么是上升和下降波形?
[上升波形]和[下降波形]关键词模拟输出缓冲器的切换行为。对于输出模型,建议包含四个V-T数据集:上升和下降波形,以地为基准加载;上升和下降波形,以VDD为基准加载。
提取上升和下降V-T数据
要在LTspice中提取OUT1的上升或下降波形,以分段线性(PWL)信号或将脉冲电压电源的形式向输入引脚发送上升沿或下降沿输入激励。仿真中使用的输入刺激的转换必须要快,以便为模型提取出最快的输出转换。在测量输出引脚的电压时,将使用.TRAN命令对原理图进行瞬态分析。将一个50 Ω电阻用作负载,用于提取3态输出缓冲器的4个V-T波形的数据,但它可能会因缓冲器设计和驱动能力有所不同,以进行输出转换。50 Ω为V-T数据提取的默认加载值,因为它是PCB走线电阻的典型值。将50 Ω负载连接到缓冲器相对地(加载至接地)或VDD(加载至VDD)的输出引脚。
图19.使用脉冲电压电源的采样上升沿输入刺激
通过以地为基准50 Ω负载获取下降波形
为了产生一个以地为基准的下降输出波形,需要一个下降沿输入,并且50 Ω负载需要以GND为基准,如图20所示。得到的V-T波形如图21所示,其中输出稳定在16 ns到20 ns左右。需要注意的是,瞬态分析时间应足以捕捉下降波形(在稳定时)。
图20.通过以地为基准的50 Ω负载获取下降波形的ADxxxx设置
图21.通过以地为基准的50 Ω负载获取下降波形的ADxxxx结果
通过以VDD为基准50 Ω负载获取下降波形
图22显示通过以VDD为基准50 Ω负载获取下降波形的设置和结果。如图所示,要完全捕获输出的下降跃迁,需要50 ns瞬态时间。
图22.采用以VDD为基准50 Ω负载的ADxxxx设置和DOUT1下降波形图
通过以地为基准50 Ω负载获取上升波形
对于上升波形,采用PWL信号形式的上升沿输入刺激。图23中的设置显示,负载电阻连接至相对于地的输出引脚,这将产生上升负载对地的V-T数据。
图23.采用以地为基准50 Ω负载的ADxxxx设置和DOUT1上升波形图
负载连接至VDD时的上升波形
使用相同的上升沿输入刺激,但50 Ω需要以VDD为基准。
检查V-T数据正确性的一种方法是查看逻辑低电压和逻辑高电压。在VDD为基准波形应具有相同的逻辑低电压和逻辑高电压电平,并且逻辑高电压应与VDD相同。另一方面,以GND为基准波形也应具有相同的逻辑低电压和逻辑高电压,并且逻辑低电压电平应为约0 V。
图24.采用以VDD为基准50 Ω负载的ADxxxx设置和DOUT1上升波形图
导出波形
然后,必须执行以下步骤,以保存从四个设置中提取的V-T波形:
u 右键单击图。
u 将鼠标悬停在文件上,然后单击将数据导出为文本。
图25.将LTspice图保存为文本文件
u 选择要导出的波形和导出波形的目录。
u VX和VY:表示上升/下降转换沿的20%和80%点位置的电压。
u dV和dT:这些是IBIS模型的[斜坡]关键字的计算值。
u
图26.选择走线,设置保存目录
使用LTspice提取斜坡数据
[斜坡]关键字是斜坡率(dV/dt),表示在上升或下降转换沿的20%到80%位置捕捉的上升和下降VT数据。此方法可以在LTspice上实现,因为它能够使用.MEAS和.PARAM指令计算这些参数。可以通过在VT波形设置上添加SPICE指令来完成斜坡提取过程。这意味着斜坡和VT波形可以同时提取。
图27.ADxxxx VT设置,以及用于提取上升波形的斜坡的附加指令
图27显示上升波形斜坡计算的设置。为了计算下降波形的斜坡,应该互换VLO和VHI的时间值,因为下降斜坡的输出波形从缓冲器的逻辑高电平开始,并转变为逻辑低电平。
用于斜坡提取的LTspice指令
用于斜坡提取的SPICE指令如下:.TRAN,这是用于VT上升/下降波形的SPICE指令;.OPTIONS,用于将SPICE错误日志上显示的输出设置为笛卡尔模式,并将其限制为所需的有效位数;.MEAS,用于斜坡的实际计算。
u VLO:表示逻辑低电压。
u VHI:表示逻辑高电压。
u Diff:表示转换的20%点位置的电压,该电压将分别与VLO和VHI参数相加和相减,以得到转换的20%和80%点位置。
图28.上升斜坡波形描述
图29.SPICE错误日志,用于计算斜坡率
构建IBIS模型
所有提取的I-V和V-T数据都将编译到BIS模型(.ibs)文件中。以下是IBIS文件的实际模板,用户可以在构建IBIS模型时用作参考。
.ibs文件以[IBIS Ver]关键字开头,后接文件名和修订号。IBIS版本3.2将在[IBIS Ver]关键字中使用,因为它是构建3态输出缓冲器所需的最低版本。.ibs文件的文件名应和[文件名称]关键字中的文件名相同;否则,解析器会将其检测为错误。此外,文件名不得包含任何大写字母,因为解析器只允许文件名使用小写字母。有关其他重要的关键字,将在后面章节中讨论。
.ibs文件的下一部分包括[组件]、[制造商]、[封装]和[引脚]关键字。ADxxxx有两个输入缓冲器(DIN1和EN)和一个输出缓冲器(DOUT1),因此它的IBIS模型总共有三个缓冲器模型。[封装]关键字通过RLC封装寄生值作为器件的封装模型。所有器件缓冲器的模型名称在[引脚]关键字下定义,这与在[模型]关键字下定义命名变量类似。
在.ibs文件的下一部分,使用测量得出的I-V和V-T数据构建器件的数字缓冲器的模型。缓冲器模型的内容因Model_type变量中指定的缓冲区类型而异。由于模型cmos_di1是一个输入缓冲器,它的缓冲器模型只包含C_comp、[Power_Clamp]和[GND_Clamp]数据。输入缓冲器模型还包括VINH和VINL值,这两个值都可以在器件的数据手册中找到。由于DIN1和EN都是输入缓冲器,所以它们的缓冲器模型具有相同的结构。
另一方面,3态缓冲器模型包含一些与输入缓冲器模型类似的关键字,但包含额外的I-V和V-T数据。cmos_out1的缓冲器模型包括一个额外的子参数Cref,它代表输出电容负载,还包括Vmeas,它代表基准电压电平。通常情况下,使用的Vmeas是VDD值的一半。
除了C_comp、[Power_Clamp]和[GND_Clamp],3态缓冲器还包含额外的I-V数据:[上拉]和[下拉]。
最后,所有IBIS模型都应该用[结尾]关键字作为结尾。
IBIS模型验证
正如本系列文章的第1部分所述,IBIS模型验证由解析器测试和相关过程组成。这些是确保IBIS文件符合IBIS规范的必要步骤,并且模型的执行尽可能接近参考SPICE模型。
解析器测试
对于上一节中创建的IBIS文件,首先应进行解析器测试,然后再继续执行相关过程。ibischk是用于检查IBIS文件的Golden Parser。它用于检查IBIS文件是否符合IBIS协会设置的规范。有关更多信息,请访问ibis.org。在撰写本文时,使用的最新解析器是ibischk版本7。
在执行解析器测试时,最好使用集成了ibischk的IBIS模型编辑软件,例如Cadence Model Integrity和Hyperlynx Visual IBIS Editor。这些工具有助于简化语法检查。但是,如果用户没有这些工具,可以访问ibis.org免费下载可执行代码。它是在各种操作系统上编译的,所以用户不必担心应使用哪种操作系统。
相关程序
在这个验证阶段,需要检查IBIS模型的性能是否与参考模型(在本例中为SPICE模型)相同。表7显示不同的IBIS质量级别(从0级到3级)。它描述了经受不同程度测试后,IBIS模型的精确程度。在本例中,由于参考模型是ADxxxx SPICE模型,所以生成的IBIS模型的质量等级为2a。这意味着它通过了解析器测试,具有数据手册中所描述的一组正确完整的参数,并通过了相关程序。
表7.IBIS质量等级
质量等级 | 说明 |
0级 | 通过Golden Parser (ibischk) |
1级 | 与检查清单文件中一样完整、正确。 |
2a级 | 与仿真相关 |
2b级 | 与测量相关 |
3级 | 以上全部 |
要将IBIS模型与参考SPICE模型关联起来,可以按照一些常规步骤执行操作。图30中的流程图总结了这些步骤。
图30.IBIS与SPICE模型的关联流程图
设置品质因数
关联的基础是在相同的加载条件和输入刺激下,IBIS模型的行为应该与SPICE模型数字接口相同。这意味着从理论上,它们的输出应该重叠在一起。一般来说,有两种方法可以描述IBIS模型的输出与SPICE参考模型的接近程度:定性方法和定量方法。用户可以使用这两种方法来确定IBIS模型与SPICE模型之间的关系。
定性FOM测试需要依靠用户的观察能力。它要求对两个输出进行目视检查,以确定是否通过相关性检查。这可以通过叠加IBIS和SPICE的输出结果来实现,并使用工程判断来确定图形是否相关。在进行定量FOM测试之前,这可以作为相关性初步检查。当接口以相对较低的频率或比特率运行时,此测试就已足够。
IBIS IO缓冲器精度手册中提出了另一种定性FOM测试,即曲线包络度。它使用过程电压温度极值定义的最小和最大曲线。最小和最大曲线作为相关性的边界。要通过测试,IBIS结果中的所有点都应该在最小和最大曲线之内。这种方法在本文中不适用,因为它仅适用于典型条件。
定量FOM测试使用数学运算来衡量IBIS与SPICE之间的相关性。在IBIS IO缓冲器精度手册中也提出了曲线包络度,它使用IBIS和SPICE输出的数据点。它计算IBIS和参考数据点之间x轴或y轴差值的绝对值除以轴上使用的总范围和点数的乘积的总和。具体如公式3所示,此方法适合作为检测本文所示的应用案例的关联方法。但是,还需要考虑其他因素。方程3中给出的FOM要求将IBIS和SPICE的结果映射到一个通用的x-y网格上,这将用到数值算法和插值方法。如果用户想要执行快速定量FOM测试,本文提出了另一种方法,即使用曲线和x轴所限定的面积的曲线面积度量。
曲线面积度量以SPICE结果为参考,比较IBIS曲线下的计算面积。具体如公式4所示。但是,在进行曲线面积度量测试之前,所创建的模型必须通过定性测试。这确保了IBIS和SPICE曲线是同步的,并且相互叠加。在获取曲线下的面积时,因为对IBIS和SPICE结果使用了相同的方法,所以用户可以使用数值方法,例如梯形规则或中点规则。在使用这种方法时,建议使用尽可能多的点,以更接近该面积。
验证ADxxxx IBIS模型
IBIS模型验证的第一步是解析器测试。图31显示adxxxx.ibs IBIS模型文件的解析器测试结果,该文件是使用HyperLynx Visual IBIS Editor编写的。用户执行解析器测试时,目标是不会出现任何错误。如果出现任何错误或警告提示,模型构建人员需要加以解决。这样可以保证IBIS模型在仿真工具之间的兼容性。
图31.ADxxxx 解析器测试结果
下一步是设置FOM参数。本文仅使用定性FOM和曲线面积度量作为衡量相关性的方法。该测试可能会使用IBIS和SPICE在相同负载条件和输入刺激下的瞬态响应曲线。曲线面积度量FOM≥95%才能通过相关性测试。DOUT1、DIN1和EN的相关性如下所示。
DOUT1
图32显示了LTspice上用于检测DOUT1相关性的SPICE测试台。在原理图上提供适当的电压电源以使能驱动器,并且为DIN1引脚提供脉冲信号源来驱动DOUT1。要在LTspice中完成DOUT1驱动器模型,还需要使用额外的组件。C_comp代表芯片电容。将C_comp和C_load添加到LTspice模型后,继续加入RLC封装寄生(R_pkg、L_pkg、C_pkg)和C_load。
图32.LTspice DOUT1相关性测试台
DOUT1 IBIS模型相关性测试台建立在Keysight先进设计系统(ADS)上,如图33所示。与LTspice测试台一样,使用相同的输入激励、C_load、电压电源和瞬态分析。但是,未在原理图中显示C_comp和RLC封装寄生,因为它们已经包含在3态IBIS模块中。
图33.ADS OUT1相关性测试台
瞬态响应曲线根据C_load测量得出。我们比较LTspice和ADS结果,并将它们叠加在一起实施定性FOM分析。如图34所示,LTspice和ADS DOUT1的响应非常相似。可以使用曲线和度量来量化它们之间的差异。计算1 μs瞬态时间内曲线下的面积。计算得出的曲线面积度量为99.79%,满足设置的≥95%的通过测试条件。所以,DOUT1 IBIS模型与SPICE模型相关。
图34.LTspice与IBIS模型OUT1响应
DIN1和EN
在验证输入端口时,通过定性FOM和曲线面积度量来关联LTspice和ADS的瞬态响应曲线。LTspice中的测试台如图35所示。这适用于DIN1和EN引脚。与DOUT1一样,将提取的C_comp置于DIN1端口位置,后接RLC封装寄生效应。然后,连接50 Ω R_series电阻,该电阻后接输入刺激脉冲电压电源。测量响应的探头点在DIN1_probe位置。
图35.LTspice DI1相关性测试台
用于验证输入端口的Keysight ADS测试台如图36所示。同样,在输入端口前放置一个R_series 50 Ω电阻,并使用相同的输入脉冲刺激。此处未显示C_comp和RLC寄生效应,因为它们已经包含在IBIS模块中。用于测量瞬态响应的探头位于DI1_probe位置。
图36.ADS DI1相关性测试台
将LTspice和ADS的瞬态响应曲线叠加在一起进行FOM定性测试。如图37所示,曲线是相同的,LTspice曲线完全与ADS曲线重叠。计算得出的DI1的曲线面积度量为100%,满足所设置的≥95%的通过测试条件。EN引脚相关性结果也给出了相同的图形和曲线面积度量。
图37.LTspice与IBIS模型的DI1响应
总结
本文介绍如何使用LTspice来提取数据和构建IBIS模型。还提出通过定性FOM和曲线面积度量的定量FOM将IBIS模型与参考SPICE模型关联起来的方法。这样就可以让用户确信IBIS模型的行为与SPICE模型类似。尽管还有本文未介绍其他类型的数字IO,但提取C_comp、I-V数据和V-T数据的程序可以作为创建其他类型IO模型的基础。
您可以免费下载和安装LTspice,并开始创建自己的IBIS模型。
参考资料
Casamayor, Mercedes.“AN-715应用笔记:走近IBIS模型:什么是IBIS模型?它们是如何生成的?”ADI公司,2004年。
IBIS。I/O缓冲器精度手册。IBIS开放论坛,2000年4月。
Roy Leventhal和Lynne Green。半导体建模:用于信号、功率和电磁完整性仿真。Springer,2006年。
Michael Mirmak、John Angulo、Ian Dodd、Lynne Green、Syed Huq、Arpad Muranyi、Bob Ross。IBIS建模手册(IBIS 4.0版)。IBIS开放论坛,2005年9月。
作者简介
Rolynd Troy Aquino是ADI公司新技术集成团队的产品应用工程师。主要负责对ADI产品进行IBIS、IBIS-AMI和LTspice建模和仿真。他于2014年成为ADI的实习生,并于2016年正式加入ADI。他于2015年毕业于玛布亚大学(马尼拉),获电子工程学士学位。
Francis Ian Calubag是ADI公司的系统应用工程师。他于2019年进入ADI公司的系统应用团队实习,并于2020年正式加入ADI的新技术集成团队。主要负责对ADI产品进行IBIS和LTspice建模和仿真。他于2020年毕业于菲律宾莱西姆大学(甲米地),获电子工程学士学位。
Janchris Espinoza是ADI公司新技术集成团队的产品应用工程师。主要负责对ADI产品进行IBIS建模和仿真。他于2019年在ADI的Analog Garage团队实习,并于2020年9月正式加入ADI。他于2020年2月毕业于德拉萨大学,获电子工程学士学位。