Candence PCB Si 仿真设计篇前导:IBIS模型与PKG介绍

最近在做项目时遇到了一个信号SI问题,想自己动手仿真一下,就自己研究了一下如何用Candece 下面的Allegro Sigrity SI进行PCB板级链路仿真:在仿真之前我们要做的第一个准备工作就是准备需要仿真的器件模型:IBIS模型以及PKG文件。

 

1.IBIS模型文件简介:

IBIS(Input/Output Buffer Information Specification):输入输出缓冲器,是一个行为级模型,描述的是电压与电流、电压与时间的关系,也是一种基于V/I曲线的对于输入输出端口快速准确建模的方法,是反映芯片驱动和接受电气特性的一种国际标准。
IBIS 本身只是一种文件格式,它说明在一标准的IBIS 文件中如何记录一个芯片的驱动器和接收器的不同参数,但并不说明这些被记录的参数如何使用,这些参数需要由使用IBIS 模型的仿真工具来读取。

IBIS在信号完整性仿真中有不可或缺的作用,它可以作为一个源端和接收端。它可以被大数的EDA软件识别,并且在有些仿真的软件中没有IBIS模型,是不能进行时域仿真的。在IBIS模型的基础之上,我们可以分析传输线上的信号完整性问题,包括源端到负载端的阻抗、串扰、反射、时延等时域问题。IBIS模型会把每个I/O或pin分为几种状态(输入、输出、浮空),把这几种状态配置成几种模型,通过调用I/O或pin的几种模型来模拟输入输出。

1.0 IBIS模型物理结构

输出结构:

 输入结构:

 1.1 IBIS文件描述定义

1.1.1头文件
这部分包含了IBIS的版本、文件名、版权等信息,如下图所示:


1.1.2.器件描述
包含器件模型名称、器件名称、厂商、封装和引脚等信息,如下图:


1.1.3.模型描述
这部门定义了模型对应的缓冲器类型、Pulldown、Pullup、 Power_Clamp、Gnd_Clamp的IlV数据表;Ramp数据;描述波形上升/下降沿的VIT数据表等,如下图:

1.1.4 IBIS 术语描述

 R_pkg、L_pkg、C_pkg:封装参数
C_comp 为硅片上脚的压焊盘电容 (结电容)
C_pin , R_pin , L_pin : 引脚的RLC参数
signal_name:信号名称
model_name:模型名称
Model_type I/O:模型类型为输入和输出
Polarity Non-Invertin:极性 没有极性
Enable Active_low:使能为低电平有效
Vinl:低电平
Vinh:高电平
Vmeas:端接电压
Cref\Vref\Rref:cell寄生参数
Pullup Reference:上拉
Pulldown Reference:下拉
POWER Clamp Reference:电源钳位
GND Clamp Reference:GND钳位
threshold:阈值
扫描电压范围对于GND钳位是-VDD至VDD
扫面电压范围对于电源钳位是VDD至2VDD
扫描电压范围与数据钳位是-VDD至2VDD
斜坡频率就是电压和电流的关系
电压和电流-伏安特性曲线
电压和时间的关系代表I/O变化的速度
钳位:钳位是指将某点的电位限制在规定电位的措施,是一种过压保护技术。产生这个措施的那些电路叫做钳位电路(clamping circuit)。钳位电路的作用是将周期性变化的波形的顶部或底部保持在某一确定的直流电平上。从而提高整个电路的工作稳定性。在钳位电路中存在钳位二极管(clamping diode),钳位二极管,产生钳位电压(Clamping voltage)
Power_Clamp 为低端ESD结构的V/I 曲线
GND_Clamp 为低端ESD结构的V/I 曲线
Pullup, Pulldown 为高电平和低电平状态的V/I曲线。
Ramp 为上升沿和下降沿的摆率(dv/dt)。指的是输出电压从20%–80%的电压输出幅度所用的时间。为了更加准确地描述上升沿和下降沿的过程,有上升沿和下降沿的V/T 曲线。
dV/dT_r, dV/dT_f:输出上升沿和下降沿的摆率。
即:从20%80%,或从80%20% 电压输出幅度所需的时间。

1.2 IBIS文件模型的查看与编辑

IBIS文件可以通过Cadence-》PCB SI Utilities-》Model Intergrity进行查看和编辑

 

2.PKG文件简介:

在IBIS模型中 .PKG文件使用说明:在某些IBIS文件中会附带.PKG文件的说明,比如像Xilinx 7系列的FPGA,会提供其系列下面的各种具体信号的FPGA.PKG文件,实际提供的.ibs文件在一些重要的场合是不能直接拿来仿真的。

如果需要准确仿真器件各相邻管脚之间互感互容或者从器件DIE到PIN之间的RLC参数带来的影响,则须定义此项。
[Package Model] 为ibis文件非必选项,在ibis使用对应型号的PKG文件,需要在IBIS文件调用此声明;
模型名称使用器件PCB封装名称(是否带公司名称另行讨论),最长40字节。可以定义多个模型。
仿真软件首先确认此器件使用的模型名称,然后到[Define Package Model]选项或者与模型位于相同文件夹中的.pkg文件调取此模型下各种参数进行计算。
所以此模型名称必须与[Define Package Model]选项中文件名相同。
此部分有很强的独立性。可以依附于上述选项作为.ibs文件一部分,也可以单独作为一.pkg文件配合.ibs文件进行仿真

2.1 .pkg文件文件描述定义


下面是它结构形式:
Package Model
此部分有很强的独立性。可以依附于上述选项作为.ibs文件一部分,也可以单独作为一.pkg文件配合.ibs文件进行仿真。
[IBIS Ver]
小于3.2版本的都调整为3.2。
[File Name]
最长20个小写字符,后缀为.pkg.,该值可以不与.ibs文件名相同,但是不建议修改,且文件名必须小写。
[File Rev]
保持原始值,不作修改。
[Date]
[Source]
[Notes]
[Disclaimer]
[Copyright]
[Define Package Model]            
每个[Define Package Model] 的值必须与.ibs文件中[Package Model项目中定义]的值完全匹配。
[Manufacturer]                           
[OEM]
由于相同的DIE可以在不同的器件厂家制造,参数必然不同,所以此项必须写出。               
[Description]
使用简单方便的语言描述器件封装类型等,必须少于60字符。        
[Number Of Sections]      
[Number Of Pins]
对于已经定义[Number Of Sections]项目的,需要按照最大分段数将DIE到PIN的每个分段的Len/R/L/C/Fork/Endfork参数列出,其中Fork/Endfork是用于DIE到PIN上存在分支情况。而每段分段适于Len参数值,终止于“/”如果没有“/”符号,仿真软件将无法识别。      
[Model Data]            
[Model Data]…[End Model Data]表征开始对此封装模型的管脚赋予自身以及相互间耦合的电阻、电容、电感参数,必须注意的是,此项目与[Number Of Sections]不同时出现于同一模型中。         
[Resistance Matrix]
[Inductance Matrix]
[Capacitance Matrix]
[Bandwidth]
[Row]
Full_matrix/Sparse_matrix/ Banded_matrix
对于[Model Data]项目中的这些子项目以及参数,必须明确以下几点:
1.        [Capacitance Matrix]中,Kij参数的定义为:当i=j时,?;当i=/=j时,为i管脚上保持1v的电位而其他任何管脚电位为0时,在j上感应的电荷量,皆为负值。同样道理[Inductance Matrix]中,Lij的定义为:所有管脚中,只有i管脚上通过1am/sec变化的电流时,在j管脚上产生的电压值,皆为正值。
2.        互容和互感是相互的,所以Kij=Kji;Lij=Lji?故而在第i行中已经赋予的Lij或Kij参数值不需要再第j行中再次赋予Lji或Kji。
3.        如果需要定义N个管脚,那么此器件的电阻、电容、电感矩阵将有N行。
4.        第x管脚在矩阵中的位置为[X X]。
5.        使用Banded_matrix时,每行的参数值将由[Bandwidth]的值与管脚始末是否闭合决定。比如[Bandwidth]值为5,而且管脚始末闭合,那么每行的参数值必须有6个(对其耦合的管脚数量为10个)。而不闭合的情况下,如果[Bandwidth]为B,那么从N-B开始,每行的参数值逐行递减1。
6.        使用Full_matrix,矩阵每行的参数值逐行递减1。              
[End Model Data]      
[End Package Model]   

2.2 .PKG文件被IBIS文件调用方法

xilinix FPGA.PKG使用方法可参考:

Xilinx Customer Community

//https://support.xilinx.com/s/article/21632?language=zh_CN&t=1657681061546

注明:本小结将以XC7A200T为说明,在artix7 ibis文件中调用XC7A200T.pkg文件演示说明

1:使用通用 IBIS 文件时:

a) 该系列基本通用 IBIS 文件在 Xilinx 下载中心提供。

b) 该器件系列的每引脚封装寄生数据(如果有)可通过从 Xilinx 下载中心下载的 IBIS 存档文件纳入。 

每个 .pkg 文件代表该系列中的一个晶片/封装组合。封装命名惯例:<PackageName_DieName_ibis>.pkg。 

必要时,请联系 Xilinx 技术支持,帮助您为您的目标器件及封装获得 .pkg 文件。

i) 如若不行:

请使用在该系列 IBIS 文件 (<family>.ibs) 中提供的粗封装寄生。
发现目标封装并取消对数据 R_pkg、C_pkg 和 L_pkg 标识符的注释。
注释所有其它封装(IBIS 中的注释字符为“|”)。
仿真。
ii) 如果有的话,最便捷的方式是在 Vivado 中采用 ISE 或 write_ibis 命令使用 IBISWriter 实用程序。 

如果 IBISWriter 或 write_ibis 命令不能将该封装寄生数据整合在 IBIS 中,您可以手动编辑 IBIS(具有 .pkg 文件提供的数据)。请参考以下步骤。

在Model Intergrity 中打开arrtix7.ibs文件

1) 在 [pin] 部分编辑并确保器件/封装中的每个通用引脚都经过定义并分配有一个网络名和模型名称。下面是编辑引脚部分的实例。

[Pin]  signal_name          model_name 

AD12   CLK_IN_P           LVDS_HP_I

AD11   CLK_IN_N           LVDS_HP_I

B17   DDR_DQS_P        DIFF_SSTL135_T_DCI

B18   DDR_DQS_N        DIFF_SSTL135_T_DCI

...

如下图所示:

红色部分为实际XC7A200T使用的管脚和信号名以及配置的IO MODEL,这里需要把实际FPGA设计的所有管脚全部按照此格式添加进来,不然SI仿真调用模型时会报错;

蓝色框里面为原文件artix7 ibis自带的,它并没有指定特定的管脚映射,需要全部给屏蔽掉

2) 在目标 .pkg 文件中查找带有 [Define Package Model] 和 [End Package Model] 关键词的行。

XC7A200T.PKG

3) 在 IBIS 文件最后一行(具有 IBIS 关键词 [End] 的行)前面的正中间位置插入这两行及所有相关内容。

将第二步中XC7A200T.PKG下面这一块给复制到artix7 ibis文件中

[Define Package Model]

...

[End Package Model]

4) 在首先出现 [Model] 行的上方,输入:[Package Model] <pkg_model_name>。 

<pkg_model_name> 位于以上步骤中复制的 [Define Package Model] 行旁边。确保 <pkg_model_name>s 匹配这两行。

[Package Model]         ffg900_xc7k325t

//Model section

[Model] LVDS_HP_I

//model parameters

[Model] DIFF_SSTL135_T_DCI

//model parameters

...

[Define Package Model]        ffg900_xc7k325t

如下图所示:

XC7A200TFPGA的P5、N4管脚的IO配置了SSTL15_R_F_HR MODEL模型,需要在该行上方添加[Package Model] XC7A200T_ffg1156这一行,代表了XC7A200T IO口调用了该模型

3.仿真

在仿真之前,可以先了解一下PCB SI设计仿真的基础知识,这里推荐一本书籍和一家知名企业的PCB SI仿真设计教程给大家。

PCB SI 仿真入门基础知识可参考:

高速电路仿真教程,cadence、AllegroSigritySIPIEMI入门仿真指导教程-嵌入式文档类资源-CSDN下载

PCB SI cadence sigrity 仿真工具使用设置可参考:

CadencePCBSI仿真教程,国际知名企业内部PCBSI仿真指导教程-嵌入式文档类资源-CSDN下载

  • 5
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数字集成电路Cadence仿真设计是指使用Cadence仿真软件来进行数字电路设计和验证的过程。Cadence是一种专业的EDA(Electronic Design Automation)软件,被广泛应用于集成电路设计仿真和验证领域。 在数字集成电路设计中,设计工程师通常会使用Verilog或VHDL这样的硬件描述语言来描述电路的功能和结构。然后,借助Cadence仿真软件,可以将这些描述转化为可执行的仿真模型。通过对仿真模型进行电路级仿真设计工程师可以验证电路的功能、时序和电气性能等方面的正确性。 设计工程师首先需要在Cadence环境中搭建仿真工程项目,导入电路的描述文件,并设置仿真的参数和约束条件。然后,他们可以使用Cadence提供的仿真器(如Incisive仿真器)对电路进行仿真仿真结果可以以波形图的形式显示,设计工程师可以通过观察波形图来验证电路的工作状态和性能是否符合设计要求。 Cadence仿真设计还可以帮助设计工程师进行电路设计的优化和调试。在仿真过程中,设计工程师可以对电路参数进行调整,并观察仿真结果的变化。通过不断的仿真和调试,设计工程师可以找到并解决电路设计中存在的问题,提升电路的性能和可靠性。 总之,数字集成电路Cadence仿真设计是一种基于Cadence仿真软件进行数字电路设计和验证的过程。它可以帮助设计工程师验证电路的功能和性能,并进行电路参数的优化和调试,从而提高设计的质量和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值