芯片IO仿真模型的两种格式:IBIS模型、HSPICE模型
连接器仿真模型的两种格式:SPICE模型、S参数模型
Allegro PCB SI支持包括上述四种模型在内业界流行的仿真模型,但一般都需要转化为Cadence自己的DML(Device Modeling Library)后才能使用。
电源完整性仿真的主要三个方面:
1、板级电源通道阻抗仿真分析。在充分利用平面电容的基础上,通过仿真分析确定旁路电容的数量、种类、位置等,以确保板级电源通道阻抗满足器件稳定工作要求。
2、板级直流压降仿真分析。确保板级电源通道满足器件的压降限制要求。
3、板级谐振分析。避免板级谐振对电源质量及EMI的致命影响等。
在典型的FR4材料中,信号的传播速度约为每纳秒150~200毫米(约等于6~7mil/ps)。
导体介电常数越高,电传播速度越慢,信号在传输过程中可能会遇到反射、衰减、串扰等问题,这些都可能导致信号传输延迟。此外,PCB上的信号线布局、线宽、线间距等物理参数也会影响信号的传播速度和质量。
以下是在HFSS中仿真TDR和S参数的笔记:
一 常用快捷键及高效建模技巧
1、常用快捷键
a.ctrl+d,fit it all,软件自动将模型以合适的大小放在画图窗口中间;
b.ctrl+h,隐藏选择的object\face
c.字母o,选object(物体、body)
d.字母f,选face
e.字母e,选Edge(线)
f.连续按字母b,相连接的物体切换选择
g.Alt+左键,旋转(按住鼠标滚轮亦可)
h.shift+左键,平移
i.shift+alt+左键,模型的放大和缩小
j.alt+左键双击9个区域,可以切换9个不同的视角
k.快速选择目标,左键点击滚轮标,蓝色高亮
2、如何确保移动、移动复制物体时沿着单一轴方向精确平移?
在执行move\duplicate alone line操作后,按住X、Y、Z即可让物体沿这三个轴方向准确平移
3、如何裁剪model?
巧用split,使用split可以沿XY\ ZX\ ZY 三个面来裁剪模型,保留箭头指示方向的模型
步骤:Relatiives CS-Split-裁剪
4、如何分裂物体?(一分二、一分多)
Edit\ Boolean\ Separate bodies即可,用此办法可以来判断两物体融合后是否真正接触;
被分裂的物体在模型树下变成两个物体,说明被分裂的物体没有融合;
如果物体融合在一起,那么操作之后是不会分裂成两个物体的。
5、面(sheet)生成体(object)
Edit\ Surface\ Thicken Sheet
6、移动复制如何参数化复制数量?
勾选Attach to original object即可;
注:移动复制后是不接触的一个物体,如果材料不一样,需要执行分裂物体操作,分裂物体后,复制的数量不再可更改。
7、线(line)生成面、线生成体
选中、在属性窗口选择不同的横截面类型;
Cross Section窗口选择type,设置数据(中间向两边增长)。
8、从object截取一个面
选取face\ Edit\ Surface\ Create object from face\ Thicken sheet
9、自动建立辐射边界条件
方法一:auto create region+set radiation boundary
自动创建的空气盒子没有属性,即没有赋予边界条件,需要手动添加边界条件
步骤:create region-Assign Boundary-Radiation
调整空气盒子的大小,双击CreateRegion,六个维度可以设置±X \ ±Y \ ±Z
方法二:(Project Manager)model/ create open region
创建出来的空气盒子很大,这种创建方式适合天线(因为辐射较强),自动给出坐标
方法三:HFSS\ Solution Type\ 勾选Auto-Open Region+Radiation
这种方法创建的空气盒子是不自动显示的,不太推荐
显示方法-把上述路径的Auto-Open Region再勾选一下
10、如何快速修改模型(对模块仿真来说,比较重要的技能)?
巧用move face,可拉伸(加大)、内推(减小)、去倒角
步骤:选中face-Surface\ Move faces along normal\ 设置数值(正数倒角向外扩,负数倒角变直角)
实际应用:可用于GND挖空(两个object相减,调整腔体大小)
11、旋转坐标系
Relative CS-Rotated(按照X、Y的顺序定义)
12、取横截面Section
Modeler-Surface-Section
13、使用软件自带3d components
View-Component Libraries(可以选择建立生成自己常用的模型,参数化w\h\d...)
二 信号完整性仿真软件设置大全
1、多核并行运算设置(提升求解速度)
注意:并行运算只是在扫频时才有效果,同时计算多个频点的S参数,但是对划分网格初始迭代阶段没有效果。
方法一:Simulation>HPC Options
方法二:Tools>Options>HPC and Analysis Options
设置逻辑处理器/内核:点开后在弹窗中点击Edit>Total Enabled Cores>Cores
笔记本/服务器逻辑处理器/内核查看方法:任务管理器>性能
2、Solution type求解模式设置
a.执行HFSS>Solution type>Terminal,因为SI仿真经常需要观察差分S参数以及差分阻抗,只有在driven terminal下才可以定义差分,在driven modal不能定义,两者加载的信号类型不同。
b.Driven terminal在端口处加载的是幅度为1V的电压信号,这样软件才可以定义差模电压和共模电压,进而计算差分阻抗和共模阻抗;
补充:terminal: 传输线trace与port相接触的地方叫terminal;
在terminal上加载(正弦波)电压信号
c.Driven modal在端口处加载的是平均功率为1W的各种模式电磁波,在端口处计算每个模式的入射电磁波和反射电磁波,进而计算端口的S参数,如果要观察耦合传输线的奇模和偶模阻抗,则需要选择driven modal;
3、Design setting
a.执行HFSS>Design settings;
b.选择材料自动覆盖功能(Validations>Enable material override),金属自动覆盖介质,小块金属自动覆盖大块金属,省去减法subtract操作;
c.选择使用因果性材料(Lossy Dielectrics>Automatically use causal materials),因为SI仿真都是宽带扫描,截止频率fmax通常要设置为75GHz,为了避免在时域仿真中出现因果性问题,推荐勾选此选项;
d.自动导出S参数(Export On Completion>Export touchstone...),避免软件突然报错卡死,如果没将数据导出,需要重新仿真,浪费时间。
4、定义差分
Excitations>Differential pairs
5、自适应网格划分
选择自适应宽带网格划分,软件会自动选择N个频率,低中高频都有,在这几个频率的求解精度都满足后,才会进行扫频
补充:single单点求解/ Multi-Frequencies多点求解/ Broadband宽带求解
宽带求解中high frequency最少是45GHz
6、最小收敛次数及保存场分布数据
a.在求解设置时Driven Solution Setup>Options>Minimum Converged Passes(最少收敛次数。模型小,设置3次;模型一般大,设置2次;模型很大,设置1次)
b.options>solution options>order of basis functions>SI问题选择mixed order
c.保存场分布数据:Advanced>勾选Save Fields
7、插值法扫描(Interpolating)
SI仿真分析时,经常要观察通道的TDR阻抗分布,那么以多少上升沿时间的step阶跃信号来观察TDR?对最终的求解结果影响很大。
HFSS其实不直接支持时域仿真,它是将求解得到的S参数进行IFFT来反推TDR的,S参数中最大频点的设置会影响到rise time, rise time越小,对应的fmax越大,也就是求解的频带会很宽,在HFSS中,为了加快宽带求解的速度,软件会推荐你使用插值法扫描。
8、Fmax最大求解频率的确定
在transient下,根据软件自动换算频谱来设置最大求解频率fmax
步骤:瞬态模型下Analysis>Add solution setup>Input signal>Function(TDR)>根据Rise time确定Fmax
9、更改显示字体大小
为了方便观察仿真结果,需要调整下report显示字体的大小,在options下面更改
步骤:Tools>Options>General Options>Reporter>Report2D
10、调整窗口位置
方法一:show messages
方法二:View>Progress/Message Manager
三 PCB模型的裁剪和简化
1、PCB裁剪方法(HFSS 3d layout提供了两种裁剪模型的方法)
- 按网络属性来裁剪,适用于裁剪比较大的模型,比如整个TX、RX通道的仿真,建议layout后仿真按net来裁剪模型;
- 按区域(不同形状)来裁剪模型,适用于裁剪比较小的模型,比如单个过孔、耦合电容等局部阻抗不连续性结构的仿真,建议layout前仿真按区域来裁剪模型;
补充:前仿真:逐个优化各个阻抗不连续结构、优化过孔、优化电容、优化连接器和PCB相接触的地方、PCB和FPC焊接的地方;
2、按照net裁剪模型
步骤:cutout>create new创建新的仿真文件以免覆盖原文件>勾选filter geometry by net(根据网络选择结构)>include net选择需要分析的网络(& GND 勾选clip at extents,因为只需要一部分GND即可)>auto generate extent>okay
Auto generate extent说明:expansion type(普通边框方式裁剪、自适应边框方式裁剪、边框凸起方式裁剪);expansion parameters(扩展GND大小设置);corner style(圆角拐角、方角拐角)
3、按照区域裁剪模型
先画一个矩形面或者多边形>保持shape呈红色状态(模型被选中状态)>cutout>create new>取消勾选filter geometry by net>okay(裁剪出来的模型会包含其他不需要的object)
4、模型简化原则
- 删繁去简——删除多余的小特征结构、删除明显对性能无影响的结构体;
- 修漏补缺——缺角、漏洞对性能无明显影响的,应该将模型补充完整,减小mesh网格数,模型也更美观;
- 存主去次——对性能有重要影响的结构保留,影响微弱的去掉。
补充:
删除封装焊盘时逐个删除;选中空缺直接删除;删除多余via;
删除多于层数(包括层叠remove)
补空缺(选择多边形命令>绘制多边形>unite);
修改过孔层数(选择过孔>properties>padstack usage>padstack range)
5、修改过孔属性
6、模型检测--geometry check
7、模型建完确定okay后,可以选择在HFSS 3d layout或者HFSS中仿真
创建端口(右键Select Edges>选择线建立port)>>右键analysis>>add HFSS solution setup>>advanced>>右键setup>>analyze(如果在HFSS中仿真选择export>>HFSS model)
8、叠层设置
设置介质层:HFSS Extents>Dielectric>Type>Conformal>Horizontal设置为0;
设置叠层时:ETCH蚀刻角,一般设置为80%即可;Rough粗糙度,默认设置即可;
添加材料时:需要设置name、介电常数、介质损耗参数
四 HFSS 3D Lay3out 端口设置及转HFSS model方法
1、常见的三种端口
Gap port=lumped port、wave port、circuit port最为常见,其中circuit port等效于一个电流源,内阻可以自由设置,转换成HFSS 3D model时,该port无效,因为HFSS本身不支持这种类型的port。
2、性能差异
三种端口求解的性能无明显差异,其中wave port性能最好、lumped port次之、circuit port在高频性能就最差,因此如果分析的频段小于25GHz,三种端口都可以,如果分析的频段大于25GHz,尽量用wave port。
3、Gap port属性说明
a.只选中一条边设置端口,软件默认会选择最近的GND作为reference plane;
b.如果选择两条边设置端口,第一次点击的是正极也就是信号,第二次点击的是负极,也就是reference plane;
c.Gap port转Wave port方法:EM Design>HFSS Type
4、wave port属性说明
a.耦合传输线(差分线)wave port设置方法1:同时选中两条边>port>create
b.耦合传输线(差分线)wave port设置方法2:先单独定义两个Gap port>同时选中两个Gap port>port>couple edge ports(wave port拆分成两个gap port,执行decouple)
Q:为什么3d layout 设置的wave port 是一个带厚度的pec?
A:因为wave port是外部端口,当放在求解区域内部时,为了保证电磁波的单向传输(电磁波不能穿透金属),必须在port后面添加一个pec conductor。
5、circuit port设置方法
方法1:选中一条边>port>create circuit ports
先选择single一条边>再选择reference gnd一条边>port>create circuit ports
方法2:port>create circuit port>先分别点击两个点>选择两个点所在的层
6、小结
a.Gap port、wave port、circuit(低速)总结起来是适合于走线(传输线)以及矩形焊盘端口设置的,相对比较简单;
b.注意事项:如果走线模型不是矩形,要调整其形状;或者隐藏器件outline,方法如下:
将传输线末端改为直角:选中传输线>properties>footprint>StartCapType>flat/extended;
隐藏器件outline:Layer>最后一列取消勾选
7、BGA焊球生成及端口设置
生成BGA:先选中器件>看part type是不是IC(如果不是IC将其更改为IC,只有IC才能长BGA焊球,才能设置端口,更改方法:components>右键器件名>type>IC)>Model Info>Die Properties>type/flip chip>orientation/chip down(向上生长)>solder ball properties>shape/spheroid(椭球形)>设置焊球尺寸(根据规格书)>solder材料属性
设置port:选中IC>port>create ports on component>选中高速信号网络>type/port>OK(其实是环形的lumped port)
BGA阻抗优化:
BGA焊球引起阻抗不连续的两个原因:①BGA PAD通常比差分线宽②焊球,相对于导体厚度加厚了;以上两个原因导致BGA焊球阻抗偏低。
BGA焊球优化:反焊盘尺寸有限,因此在优化过程中,以S参数为主,TDR为辅。对于25Gbps速率,只要RL<-20dB@freq=20GHz即可。
8、查看空气盒子以及介质
查看空气盒子:HFSS extents>show
调整尺寸:HFSS 3d layout>HFSS extents>dielectric>horizontal(介质超过铜的尺寸,一般是0)>airbox>(horizontal>vertical空气盒子扩展尺寸)>应用
9、导出HFSS model
步骤:先添加一个HFSS求解HFSS Setup>右键export to HFSS
由于HFSS不支持circuit port,当将模型导出至HFSS中时,尽量使用gap port或者wave port,不然需要在HFSS中重新绘制端口。
五 3D Layout导入垂直安装SMA转接头
六 TX通道完整仿真实例
七 差分线
7.1 建立差分线模型的4种方法
1、从3d layout直接切出model或者直接画model,难度系数*
在HFSS 3D Layout中,draw line>duplicate>draw rectangle(gnd)>select edges>port>create
2、常规套路,直接在HFSS里面建立model,难度系数**
a.梯形截面画法:由line直接生成、梯形面加厚、底面拉伸操作;
b.绿油厚度的画法:scale
line直接生成:line>设置坐标>properties/type>Isosceles Trapezoid>设置模型数据>thru mirror>draw box(y 10*w1)>选择sub底部face>create object from face(gnd)>thicken sheet>信号层绿油/移动坐标原点/右键/scale/thicken sheet/unite(soldermask)
3、由Q2D生成HFSS 3d Model,难度系数*
先在Q2D分析差分线,画出2D模型>复制到HFSS中>thicken sheet
4、由脚本建立model,难度系数毫无压力
7.2 使用Q2D分析差分线阻抗
1、Q2D仿真流程介绍
①建立模型(基于XY平面的sheet;可以给sheet赋予材料属性;可以直接生成HFSS 3d model)
②设置边界条件(只支持有限导体边界;select edge设置边界;常用来仿真金属的表面粗糙度)
③设置导体类型(支持5种类型的导体;只能设置一个参考地;GND类型导体不计算它的寄生参数)
④求解设置
⑤求解
⑥结果后处理(强大的reduce matrix;支持定义差分)
注意:Q2D有两种solution type,一种为open,常规的微带线、带状线、耦合差分线等非封闭的传输线就用open求解方式;另外一种为close,同轴线、各种封闭的线缆必须选择close求解方式。
2、影响差分阻抗的因素
介质厚度、介质的介电常数、线宽及上下线宽差异、线间距、绿油厚度及其介电常数、铜厚度
3、PCB制造参数确定
计算阻抗时,PCB制造参数不能凭空想象,尤其是铜厚、上下线宽以及介电常数等,需要严格的基于PCB厂家提供的文件和数据。
4、建立diff pair模型
Q2D的模型是基于XY平面的,当建立的模型不在XY平面时,软件会报错;
同时Q2D里面建立的模型是sheet,可以赋予材料属性;在HFSS里面sheet只能添加边界条件和端口;
①分析数据计算出坐标,建立2d差分线
②设置trace的绿油:CTRL+C/V>将坐标原点移动到模型底部中心位置>scale设置X/Y值>更改坐标原点Global>thru mirror
③添加介质>添加GND>添加表层绿油>unite
④定义材料属性,修改名称
(修改变量产生畸变时,检查修改相对坐标RelativeCS1;检查模型Simulation>Validate)
⑤设置导体类型:Conductors>Auto assign signals>将GND修改为reference ground
(Q2D里面有5种导体,定义为GND的导体,软件不计算它的寄生RLGC参数,但是它会影响signal line的RLGC寄生参数。)
⑥定义差分对:reduce matrix>original>diff pair>选中差分信号线>Save and Create
⑦添加求解设置Analysis>ADD Solution Setup>General/CG Advanced/RL Advanced
⑧添加扫频:Setup>Add frequency sweep
⑨Analyze All
⑩查看差分阻抗:DiffPairMatrix>Matrix>Tline data>选择diff pair>cm共模阻抗df差模阻抗;
查看结果:Results>matrix report>2D
5、为什么1GHz时的阻抗偏高大概1ohm?
特征阻抗跟频率弱相关,随着频率增高,阻抗会稍微减小,这跟导体的自电感减小有关系。
6、查看等效介电常数
results>create matrix report>rectangular plot>EpsEff>model1差模model2共模
7、定义全局变量:project>submit job
7.3 差分线TDR仿真注意事项
1、建立HFSS模型
新建HFSS>Q2D模型ctrl c/v>sheet>thicken sheet>HFSS>Design Setting>Lossy Dielectrics>勾选Automatically use causal materials
2、求解设置
修改操作平面XZ>draw rec(修改name/10~6倍h1)>along line>设置端口(port1>assign excitation>wave port>use as reference/GND>port2同上>定义空气盒子(修改操作平面XY>create region>assign boundary>radiation>okay)>修改求解方式为terminal
3、求解
Analysis>Add solution setup>Advanced>General选项卡{设置与自适应求解频率、收敛精度的相关选项:Frequency频率;Maximum Number of Passes最大迭代次数;Maximum Delta S S参数收敛误差标准;}>Options选项卡{设置与网格剖分的相关选项:一般来说,如果内存充裕,Minimum Converged Passes设置为3即可,当Maximum Delta S下降到0.01以下,也就是HFSS缺省收敛标准的一半时,一般可以认为绝对收敛}>创建差分对:右键Excitations>Differential Pairs>New Pair
设置求解时需要设置的选项:General{Broadband\Frequency0-75 \Maximum Number of Passes15\Maximum Delta S 0.02};Options{Min Number of Passes 1最小迭代次数\Min Converged Passed 3最小收敛次数};Advanced{Max Delta Zo 2\Use Radiation Boundary On Ports}
General:最大迭代次数改为20,求解精度改为0.005、
求解精度不够的话,TDR会偏低;模型简单,增加求解精度,让网格数尽量多(3w个网格差不多);