一文学会Cadence Sigrity PDN仿真——硬件新手小白都能看懂的保姆级教程
1 PDN概念
电源完整性的仿真,实际上是在仿真以及优化系统中的等效串联电阻。知道了仿真以及优化的目标之后,接下来就是要弄明白这个串联电阻从哪儿来以及怎么优化。
整个系统中的串联电阻实际上由三部分组成:没有相位的阻抗,有相位的容抗和感抗,得益于相位,在某个特定的频点,容抗和感抗会大小相等,相位相反而相互抵消,这时候整个系统中就剩下了阻抗,所以整个系统的串联电阻达到了一个最低值,这种现象就是----谐振。当系统处于谐振点时候,整个系统会有一个最小的串联电阻,所以第一个优化电阻的手段就是让谐振来的更频繁一点。 可以看到电阻是一个频率相关的变量,除去谐振点这种特殊的频率,总的来说随着频率的升高,阻抗恒定不变,感抗升高,容抗降低。所以我们找到了第二个优化回路电阻的方法,对于高频来说,我们在优化串联电阻的时候,实际上是在想办法减小回路电感。
PDN重要性:
提供负载的工作电源提供稳定的参考电平
电源噪声大带来的危害:
信号抖动增大
信号噪声裕量减小
电路功能故障
EMI超标
PDN设计要求:
PDN满足负载对电源电压的要求(控制压降)
PDN满足负载对电源电流的要求(控制温升)
确定动态电流和目标阻抗
选用合适的电源芯片或者电源模块
根据目标阻抗设计电源去耦网络
确定去耦电容规格
量化去耦电容数量
去耦电容摆放
信号参考平面的PDN要求低阻抗
没有目标阻抗要求或目标阻抗偏高的PDN不适合作为高速信号的参考平面
PDN载流能力及压降
电源通道上的最大负载
负载上容许的压降
PCB容许的温升:单板容许温升上限 5—25度
VRM(常见DCDC或者LDO)模块对负载电压的检测及调整输出都需要时间,通常在毫秒(ms)级。当稳压模块无法及时响应负载对电流需求的快速变化时,稳压电源的输出就会下降,从而产生电源纹波。通常VRM不能对变化时间低于100ms的瞬态涌流变化做出响应,即VRM纹波噪声是KHz级别的。低于100ms的瞬态噪声需要借助电源分配系统(PDS)其他模块如去耦电容、电源地平面、片上去耦加以滤波。
评价VRM性能的一个重要指标就是小信号输出阻抗,好的VRM设计可以在负载电流允许的整个范围内得到电压纹波很小的输出电压,即负载电流变化,小信号输出阻抗变化不大。但是随着频率升高,回路增益下降, VRM输出阻抗增加,因此需要在VRM附近并联几个大容值电容来降低VRM的输出阻抗。
典型的4元件VRM电路模型
PCB电源地平面形成平板电容器,电源和地平面噪声经过平板电容,不同边界的多重反射构成了在PCB中常见的谐振现象。电源、地平面的谐振特性对我们系统的性能带来不利的影响。
在谐振频率附近,能量会被介质存储或消耗掉,而且只要该电源、地平面的位置有激励源,就很容易起振。通过增加滤波电容或适当调整芯片的外置,从而达到我们的设计要求。一般FR4板材, Er较小,平板电容值太小了,对电源滤波起不到明显作用。电源和地平面的实际作用就是为芯片和去耦电容间提供低电感路径。
从阻抗算式 Z=ESR+jwESL+1/(jwC) 来看, 目标阻抗与工作频率密切相关。
选择适当的电容对实现目标阻抗至关重要,由于电容的材料和结构等不同,不同种类的电容具有不同的频率特性。一般地, 1kHz~1MHz频段选用电解电容, 1MHz~100MHz频段选用高频陶瓷电容。在100MHz以后,平面层地滤波作用逐渐突出,到GHz频段,平面层成为主要地电源滤波元件。
在高速电路的设计中,为了保证IC等器件从直流到时钟频率的多次谐波频段上都能稳定工作,从IC等器件向电源传输系统看进去的阻抗必须保持在较低的值。这就是目标阻抗,目标阻抗是我们所期望的电阻值Ztarget, Ztarget与一定的频率范围相关。Ztarget,的计算方法:
目标阻抗
Power Supply Voltage是工作电压
Allowed Ripple 是允许的工作电压纹波系数
Current 是工作电流
对电源、地平面的分析,有效的手段是采用目标阻抗控制来实现对电源分配系统电源噪声的
控制,也即将每个芯片的电源、地管脚附近作为观测端口,控制端口的输入阻抗在一定的频率范围内,达到芯片可以接受的容限值,从而控制⊿ I噪声。但是对电源、地平面的分析,涉及到物理结构、物理位置、叠板、滤波、各个器件的动态工作特性等等,非常复杂,详细准确的分析需要采用2.5D电磁场法进行有限元计算,并结合电路仿真的手段,将二者融合。
2 PDN仿真步骤
A) AC simulation:
Use accurate stack-up information with permittivity and loss tangent.
Enable only PDN nets and classifies PDN VDD nets as PowerNets and GND as GroundNets
Disable “Keep shape enabled when net is disabled”
Set special voids to 0.1 mm for all four types of special void.
Set mesh edge length to 1 mm.
Turn off via fanning.
Run shape processing.
Simulate each domain separately for large power domain.
B) DC simulation:
Set VRM at sense point for switching mode power supply (SMPS)
Set VRM at PMIC output for low dropout regulator(LDO)
3 PDN仿真设置(AC)
3.1 文件转换
以pads asc文件为例
-
选择sigrity suite manager
-
打开allegro sigrity suite manager,选择PADS2SPD->CAD Translators
-
双击CAD Translators ,打开Allegro Sigrity Pads2Spd Translator将PCB文件转换成Sigrity专用的仿真文件格式SPD文件
3.2 启动Power SI软件
双击图标,进入Power SI主界面,选择Model Extraction仿真模式,接下来导入仿真文件,进行仿真设置。
3.3 仿真环境设置
设置全局仿真环境,在菜单栏选择Tools->Options->Edit Options。QTI推荐的PDN simulation condition 如图所示。
-
在Options窗口,选择Layout->Processing,设置尺寸小于1mm的shape都转
成Pad处理 -
在Options窗口,选择Simulation(Basic)->General,设置多线程仿真
-
在Options窗口,选择Simulation(Basic)->Network Parameters,设置电源Port的参考阻抗为0.1 Ohm,信号Port的参考阻抗为50 Ohm,并勾选“Set As Default”。 (在Port窗口点击Generate Port时,会按照这里设置的参考阻抗指定给电源Port和信号Port)
-
选择Simulation(Basic)->Network Parameters,设置默认保存的S参数文件格式。Touchstone是通用的S参数文件格式,如果S参数会给到第三方工具进行仿真,就需要勾选Touchstone格式。 BNP文件是Sigrity特有的格式, S参数文件的体积会比Touchstone格式小很多,仿真效率也更高
-
仿真环境设置:在Options窗口,选择Simulation(Basic)->Special void,优化仿真中对shape void的处理。
Special voids are negative metal shapes that are not included in simulation.
During PDN analysis, set special void to 0.1 mm.
– Accurate modeling of current flow path is critical.
– When a power net is small with lots of antipads, the special void size should be set small enough such that the antipads are modeled as “normal” void.
– Otherwise, the loop inductance is under-estimated.
-
在Options窗口,选择Simulation(Advanced)->Mesh,“ Maximum Mesh EdgeLength”设置1mm( Qual推荐)。 Smaller mesh edge length leads to more accurate results. Turn off via fanning .
-
在Options窗口,选择Layout->Processing,设置To Turn OFF via fanning, set via-antipad search and via-antipad search range to be 0 and 1, respectively. When via fanning is ON, the anti-pad of a via will be patched. The via pad touches the metal plane surrounding it. This is not recommended for PDN modeling.
-
保存仿真环境设置,在菜单栏选择Tools->Options->Export Options。保存的文件名称:PDN AC options.xml
-
Stackup设置:在workflow中选择“Check Stackup”,打开Stack Up窗口。检查并设置叠层名称Layer Name, Thickness(金属层、介质层的厚度), 材料参数, Conductivity(只设置金属层,一般为5.8e+007) , 介电常数Er,板材损耗因子Loss Tangent(Df), Trapezoidel Angle梯形角度,线路界面不是理想方形。设置完成后点击OK按钮回到主界面。
Stack-up Details
Use accurate PCB stack-up: layer thickness, Conductivity(5.8e+007) , permittivity(Er or Dk), and loss tangent(Df).
① Copper thickness directly impacts DC resistance.
② Dielectric thickness impacts PCB loop inductance, and therefore AC impedance.
③ Permittivity impacts AC impedance, and has a large variation from ~2.5 to ~4.5.
④ Loss tangent has smaller impact on PDN – it can vary by a factor of two, but the impact on PDN metrics that are extracted are minimal, so it is good to have to get most accurate simulation results.
- 设置过孔孔壁镀铜厚度:选中“ Pad Stack”选项卡,可对仿真的过孔进行设置,包括信号孔,定位孔等。主要设置孔的焊盘和反焊盘Anti-pad的大小。 Anti-pad设置对高速信号参数提取非常重要。一般设置值:镭射孔10um,机械孔13um。
- 仿真网络设置:首先,选择需要仿真的电源网络,将其从信号网络类别转换到PowerNets类别中;将所有GND网络(包含单点接地的GND网络)转换到GroundNets类别中,同时将power和GND两类以外的网络全部disable掉。
Net Select
Classify power and ground nets
PowerSI engine handles power/ground nets differently from signal nets.
User must assign power rails under simulation as power nets group, and GND as ground nets group.
Keep shape enabled when net disabled.
When enabled, this option includes all planes in the simulation.
This option can lead to unacceptably long simulation times.
This option is ON by default. Disable this feature to reduce the simulation time.
- 分配电容模型:在workflow中选择“Select Components”,打开Component Manager页面。在Component Manager页面,点击Filter->By Property,在Component Manager Filter窗口勾“with at least 1 enabled signal net”、 “with all nets enabled, all pins connected”和“in final simulation”这几个选项。点击OK执行过滤,将待仿真电源网络上的相关电容全部筛选出来。可以看到,过滤后只会显示和仿真相关的器件,可以方便地检查和设置器件的电气模型。
- 分配电容模型,手动设置电容模型方法有两种:在Component Manager页面,点击Assign,分配器件模型不装配的器件,可以不分配模型,并且在Circuit/Linkage Manager里通过右键菜单Disable Selected Circuit 将这些器件禁掉。
方法1 : 直接用s2p文件
特别需要注意:电容模型s2p文件必须与spd仿真文件在同一文件夹下面。编辑筛选出来的电容器件,将其赋予相应的S参数文件( s2p文件), 描述语句如下:S1 1 2 0 model= GRM155R61A105KE15_series.s2p电容模型的种类可以在s2p文件的开头描述中获取,一般村田的都是串联模型。
方法2: 使用netlist文件GRM155R61A105KE15.mod, netlist文件用记事本打开,如图所示,将SUBCKT到ENDS之间复制。注意将port1改为1, Port2改为2,如下图所示。
电容模型赋值完成后,会提示相同的器件全部被赋值,避免同一料号的器件每个赋值一遍,
同时也使其生 效,此过程不断点击ok即可。
注意观察使能后的电容,器件上的叉号已经消失,同时位号前有一个√,这表明赋值成功;最终,除待仿真 的芯片以外,全部赋值成功,即可进入后期仿真流程。
三端子电容模型添加方法:
该项目实际分配的电容模型如下:
- Extraction Enable:在workflow中选择“Enable Extraction Mode”,确保前面有符号。
- 设置仿真端口,电源仿真采用源端/负载端双端口设置,双端口的好 处是可以在低频段将仿真曲线压低,可以比较好的体现出整体的电 源PDN曲线。在workflow中选择“Generate Port(s)”,把电源的Port的Ref Z改成0.1 Ohm。
使用命令自动设置port:在powersi中view->pane->TCL Command在TCL Command窗口中输入下列命令:sigrity::add port -name {04_VDD_P1_02(F14)_L2} -type {0} -circuit {U1101} -posPoles {F14} -negPoles {D16} {F15} {F13}{D12}04_VDD_P1_02(F14)_L2 :port名U1101:器件位号{F14} : port的positive pin{D16} {F15} {F13} {D12}: port的negative pin
- 设置仿真端口,负载端设置: 设置端口前确保“Enable Extraction Mode” 模式已经开启。端口设置采用手动方式,自行选取相应的仿真范围。
- 手动端口设置可以直接通过网络选择整体芯片自动生成端口。不过此方式范围较大,如电源在局部集中,较远处的GND点也会作为参考,仿真精度变差。
- 还可以半手动的方式,选择电源ball周围一定范围的GND作为参考点;此时电源和GND端口会耦合比较紧密,不会混成一整片了。阻抗分析将器件电源和地管脚作为集总端口处理,即假定各电源和地管脚的电流分配是一样的,但事实上该假设对多数芯片是不成立的。为了分析不同管脚对PDN阻抗的贡献,需要逐一评估每个管脚或者相邻管脚的阻抗特性。 Powersi提供Pin-based的端口添加方式,相邻管脚合并为一个端口。端口合并的管脚数量少,其回路面积大,阻抗也大。谐振是PCB平面的本征属性,需要优化高速信号走线,以避免平面谐振带来的信号完整性问题。
- 设置仿真端口,源端设置;源端主要指PMU端,如果是有输出电容就按照上面的过程自动选择输出电容为端口;如果只有输出电感无电容,那么需要手动设置端口;当电源端附近没有GND孔或pin等可以Hook的点,可以手动在GND铜皮上加一个Node点。
- 该项目设置MSM8905 PDN Port如下:
- 文件剪切,如仿真文件面积大,将会耗费较长时间,可以考虑将不涉及仿真的部分剪切掉;多电源仿真时,需要注意内层走线,不要将待仿真电源的走线切掉了。
- 在workflow中选择“Setup Simulation frequencies”。设置仿真频率为10Hz-1GHz,扫频方式为Adaptive。 QTI对每个CPU都有推荐的仿真频率,可以参考。
- 执行Shape Processing Shape processing allows users to model metal geometries on layers.Shape processing meshes the shape on layers and keeps thenets/traces as is.
- 在菜单栏选择File->Save, layout文件和仿真设置。如果有需要的话,也可以用“Check Errors/Warnings”功能先检查layout的开路、短路错误。
- 在“ Net Manager”选项卡下,右击,选择“ Enable All Nets”,避免相关参考网络未选中状态无效。“ Enable All Nets”可以避免漏选对仿真网络有影响的信号,假如只勾选了仿真网络和GND,但是如果参考平面是其他电源平面网络,则不勾选电源而仿真出来的结果是有误的。如果PCB较大,信号和电源复杂,勾选“ Enable All Nets”对PC要求较高,可以将无关信号disable,但是参考网络必须要全部勾选,不能遗漏。
- 选定要仿真的port
Simulate Each Power Domain Separately
When a port is defined for PDN simulation, all positive pins of the port are connected together and all negative pins of the port are connected together.
PowerSI does not allow two ports to share the same power pin.
When two ports share GND pins, all GND pins of the two ports are connected together.
As a result, simulating power domains separately reduces the probability of this issue, but it can happen within a single
- MSM8909平台要求的PDN仿真顺序如下:
- 启动仿真,提取PDN参数。
4 PDN仿真设置(DC)
4.1 创建PowerDC Workspace
- 打开PowerDC主程序,在workflow中选择“Resistance Measurement Generation” ,选择“Create New Single-Board Workspace”。
4.2 导入PDN AC仿真的SPD文件
- 在workflow中选择“Enable Resistance Measurement Mode” ,确保前面有符号;选择“Load a New/Different Layout”;在“ Attach Layout File”窗口中选择“ Load an existing layout;选择PowerSI中配置好的SPD文件。 导入SPD文件后, stackup/port /cap models/ Nets(PowerNets和GroundNets)等不需要重新设置。
4.3 创建VRM
- 点击Optional: Set up VRM,选择“ Create by using existing circuits defined in the layout file ”,点击“下一步”。
- 选择要创建VRM的电源。本项目有3个电源,这里先创建“ VREG_S1_1P15 ,点击“下一步”。
- 选择PMIC,点击“下一步”,Nominal Voltage 使用默认值: 0.0,点击“下一步”。
- 检查VRM,点击“完成”。
- 由于自动产生的positive/negative pin 不适用SMPS,需要unlink所有的node。分别右击positive/negative pin, 选择Unlink All。单击并选中positive/negative pin;选择合适的positive node,右击并选择“ Link theselect node(s) to”。 Zoom in to the preferred link,and right click that point, select Link the select node(s) to;选择“ Save with physical node”。这样就完成了positive pin。 negative pin( GND) 也是同样操作,重点是选择合适的node。
- SMPS VRM创建node位置有两种情形:
1. SMPS with both positive and negative sense lines, Have a sense line for both power and GND。
• Resistance measure from power sense point to the CPU BGAs, back to GND sense point (red).
• Define a 0 V VRM with:
+ve: Power sense point
-ve: GND sense point
2. SMPS with positive sense line only。 Has a power sense line.
• Resistance measure from the power sense point to MSM BGAs,back to PMIC GND pins (red).
• Define a 0 V VRM with:
+ve: Power sense point
-ve: lumped PMIC GND pins
- LDO VRM创建node位置:
Low dropout regulator (LDO)
• No external sense line.
• Resistance measure from PMIC output pins to MSM BGAs (red).
• Define PMIC as a 0 V VRM with
+ve: VREG_LDO output
-ve: lumped GND pins
- 设置好的VRM如下:
4.4 创建阻抗测量点
- 在workflow中选择“Set up Resistance Measurements” 。经过了前面PowerSI AC仿真,这里不需要重新设置了。
- 开始仿真:在workflow中选择“Start Simulation ”
5 仿真结果分析
- 仿真数据处理,电源阻抗数据仿真完成后,需对其进行处理,选择合适的模式进行转换;选择Z(阻抗模式)观察数据,同时X/Y轴数据采用指数形式表示。
- 源端端口短路,为得到低频端平缓曲线,将源端短路处理。
- 处理前后曲线在低频段完全不同
- 数据后处理:高通PDN规范中Maximum impedance。如下图Maximum impedance可以从powersi的Z阻抗曲线直接提取。
- 选择Z(阻抗模式)观察数据,同时X/Y轴数据采用指数形式表示在阻抗显示窗口右键选择
Marker。
- 显示25Mhz下的阻抗。
- 数据后处理:max effective impedance。高通PDN规范中max effective impedance。提取 max effective impedance不仅包括自阻还包括周围port对它的串阻Zeff=Z11+Z12+Z13。其中的Z12 Z13等就是其它port对port1的串阻。
- 选择Z阻抗曲线,显示回损和串扰
- 在曲线图形窗口点击右键,选择Expression Calculation,在Curve Expression中输入Z1[1,1]+
Z1[1,2]+ Z1[1,3]+ Z1[1,4]
- 下图显示max effective impedance曲线,可以从图中看出来: Z11eff(@1MHz)=69,
Z11eff(@19MHz)=71 , Z11eff(@25MHz)=105 与PDN规范比较。
- 该项目PDN结果( Result)汇总如下,并做仿真结果( Q Result)对比,二者相差不大
- VDD_APC PDN曲线
- VDD_CORE distributed PDN曲线
- VDD_P1 PDN( Distributed Port) :max effective impedance曲线
- VDD_CORE PDN曲线
- VDD_APC与VDD_CORE提取 PDN数据对比。 VDD_APC单独提取,结果与参考结果相近, VDD_CORE没影响
- 仿真数据保存:仿真结果会自动保存成带有时间后缀的bnp数据格式,建议自行再保存一份数据文件,同时设置一个能体现数据用途的名字;如有需要,也可以再保存一份Touchstone 2.0格式的数据文件,用于后续PI/SI协同仿真。
- 仿真数据调用:Sigrity可以对比多次仿真数据,以便确定各种优化措施落实效果;通过在数据窗口空白处右键load过往数据,叠加曲线,明显对比出优化的效果。
6 FAQ
- Q1. PDN阻抗计算,看很多书上都是讲Z=V*5%/I, V工作电压, I工作电流。 1G内的总线,可否用此种方式计算?
- A1.不能。要依照负载对纹波的要求设置。 30MHz-1GHz不能直接套用,除非是IC版图设计者。如果只是做PCB设计, 30MHz以上请做测试,确定纹波高次谐波下需要的电压纹波和电流谐波最大值。 VRM教程: Power Integrity Modeling and Design for Semiconductors and Systems,也可以看看邵鹏老师关于VRM模型的一些教程。
- Q2. VRM电源稳压模块设置;我通常的做法是在电感上去建立模型,阻抗设置为0.01欧姆。不知道这种做法是否ok?正确方式该如何处理?
- A2. 不可以。额定电阻体现不出高频特性,要做空载满载测试纹波,反推等效电感和等效电阻。
- Q3. 您所说的空载满载是指实际测量还是需要仿真得出? 如果是仿真是如何设置?
- A3. 测试得到。
- Q4. 仿真频率设置。现在的做法是0.35/Tr, Tr为总线clk的上升沿T/10。这样是否ok?
- A4. 这种算法是针对高速数字信号的,对于电源,用Tr确定带宽不是绝对适用, PCB级的PDN到1GHz已经是极限了,更高频率你可以测也解决不了。很多时候PCB只分析到几十MHz。大于MHz的PDN在IC内部的die RC上处理。这很符合电容封装的去耦要求。
- Q5. 我们设计的总线,比如DDR3/4会跑到1200多M,此时仿真DDR电源,该如何去设置截止频率点?
- A5. 板级通常只要到100MHz以下, 100MHz以上难以通过电容和PCB设计解决。
- Q6. 观测端口设置。现在是将相邻电源和GND设置为一个观测端口,这样会出现很多端口。仿真得出的结果感觉PDN阻抗有些大,这样设置是否ok?标准方式是怎么样的?
- A6. OK。感觉有点大就对了,它真的有这么大。
- Q7. 仿真过一个案子的DDR电源; 100MHz时 PDN阻抗已经到1欧姆。 VRM阻抗是设置的是0.01OHM,是不是太高了点。
- A7. 参考A1。
- Q8. 在0.35/Tr的仿真频率范围内,仿真得到的结果都需要小于目标阻抗Z才算是OK吗?如果是,是否有一个电容标准,在一个固定的频段如何选择电容大小和多少来去除阻抗的跳变?如果不是,什么标准才算是将电源PDN阻抗问题处理好呢?
- A8. 不是,因为所要求的频率做不到。没有绝对标准,只有相对标准。不同频率不同容值不同封装不同位置不同下孔都会在高频段出现较大差异。什么标准算处理好呢,测试重载下时域的纹波稳定在芯片容忍的范围内就是标准。
- Q9. 测试重载下时域的纹波稳定在芯片容忍的范围,应该需要比较准确的芯片模型吧?什么情况下需要测试时域呢?还是都需要去做?
- A9. 测试时域时用于反推VRM的RL模型然后用来仿真。这主要是针对1MHz以下才要做的,如果不关注可以不用做。
更多推荐
所有评论(0)