ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Sigrity Special Void详解:铜皮开槽与PDN/TDR仿真实战

Sigrity Special Void详解:铜皮开槽与PDN/TDR仿真实战 1. 先搞清楚一件事Special Void到底在改什么很多刚接触Sigrity的同学第一次看到Special Void这个功能下意识会把它和Allegro里面的Shape Void弄混。这不怪你因为名字实在太像。但我要先明确告诉你Sigrity里的Special Void它是一个基于仿真场景的铜皮修改工具它改的是仿真模型里的铜皮形状而不是去改你原始的PCB设计文件。什么意思举个最直白的场景。你在PowerSI里导入了一块板子准备做PDN阻抗分析但发现有一个电源层的铜皮切割槽slot没有正确导入或者你在做方案预研想看看在某一层电源平面开一条隔离槽之后阻抗曲线会变成什么样。这时候你不可能为了一个仿真假设跑回Allegro里去改版图再重新导入——那样太慢了。Special Void就是干这个用的直接在Sigrity的布局编辑界面里给指定层的铜皮画出一个挖空的区域仿真引擎会在网格剖分和求解时把这个区域当作真正的铜皮缺口来处理。它的核心价值是不破坏原始数据的光标级快速迭代。你可以随便画、随便删、随时改一切只影响当前仿真工程。做PDN优化的时候这基本就是刚需。还要说清楚一个区别Special Void不是Via Antipad过孔反焊盘。过孔反焊盘是过孔本身在平面层上的避让间距属于过孔属性的一部分Special Void是一个独立的铜皮几何操作可以画在任何位置不依赖过孔存在。所以在排查阻抗异常时你要能区分这个突变是过孔反焊盘导致的还是铜皮开槽导致的。这一点后面我会在TDR部分再展开。需要明确的是它适合谁来用正在做PowerSI PDN阻抗仿真、Speed2000瞬态仿真对布局导入后的铜皮完整性存疑或者想做加槽去槽对比实验的硬件工程师和SI/PI工程师。这篇东西默认你用过Sigrity的基本界面但不要求你精通所有操作路径我都会写清楚。2. 动手前必检叠层、文件转换和预处理Special Void看着是个小功能但它能不能生效往往在动手之前就决定了。我在这一步吃过太多亏所以必须先讲。2.1 从Allegro到Sigrity的导入链路最常见的Source布局来源是Allegro.brd文件。Sigrity通过自身的接口读入时建议用File Import Allegro Layout的方式走原生解析而不是先导出中间格式再导入。中间格式在某些版本上会出现铜皮多边形被简化、碎边增多的问题你会发现导入后平面层边缘有很多细碎的三角形这种模型你再去画Special Void网格剖分时会额外消耗内存。导入之后第一件事不是急着找Special Void菜单而是打开Layout Editor的Layer面板逐层核对。重点看两样每一层的导电层类型Plane/Signal是否正确以及叠层的介质厚度是否符合实际板厂反馈的叠构。叠层厚度错得离谱后面所有仿真结果都白搭这不是Special Void能救的。2.2 单位与坐标系的强迫症检查Sigrity工程单位默认是mil还是mm直接影响你画Void时的数值输入。建议进入层叠编辑器把单位统一切成mm因为你在布局文件里看到的D-Code尺寸、孔径信息很多来自公制设计混用单位会在画小尺寸Void时出现肉眼难以发现的偏差。坐标系同样要留意。有时从Allegro导入的布局自带一个偏移的原点而你参考的是板卡边框的绝对坐标。在画Special Void时如果我让你在坐标为(100, 50)的位置画一个矩形槽你要先确认当前编辑器左下角显示的是绝对坐标还是相对坐标否则画出来的东西会跑到板子外面去仿真还不报错。2.3 铜皮完整性的快速预检导入后肉眼扫一遍所有内层平面往往不现实。我的习惯是先跑一次极简的Z方向阻抗仿真只设一对端口频率范围给个大概看结果曲线是否平滑。如果你发现曲线上有不正常的毛刺或阶梯排除端口设置问题之后大概率就是铜皮出现了意外的窄缝或碎铜。这时候再用Special Void去修反而不合适——因为你要修的是导入丢失的部分更稳妥的做法是回Allegro检查实在不行才用单独的Shape对象去补。注意Special Void是有方向的工具它只能把铜皮从有变无不能凭空把没有铜的地方补成有铜。想补铜要找Shape/Create Shape功能别搞混。这些预处理做好Special Void才能画在一个干净的基础上。否则你后面所有验证工作都在拿错误模型做结论浪费时间。3. PowerSI里完整创建Special Void的操作流程3.1 进入布局编辑界面并锁定目标层在PowerSI主界面导入布局后点击Layout Editor进入编辑界面。界面中心是版图左侧是层叠与网络浏览器这个布局和Allegro是两套逻辑别去找命令行的void polygonSigrity这边是图形化操作。先确定你要在哪一层开这个Void。比如你做的是VCC层开槽就在层叠浏览器里把VCC层设为当前活动层。这里有个新手容易忽略的问题如果你当前活动层是走线层Top那画出来的Void会被放进Top层而Top层通常没有大面积铜皮Void画上去没有任何作用仿真也不报错这就是看似成功、实则无效的典型来源。3.2 画Void的三种入口方式在Layout Editor里创建Special Void主要通过菜单栏的Shape Create Special Void或者直接在工具条上找到对应的图标一个带有挖空角标的形状图标。点击后右侧属性面板会弹出Void的类型选择一般支持Rectangle矩形最常用适合隔离槽、挖空区域规划。Polygon多边形适合贴合板边或异形铜皮边界。Circle圆形某些需要绕开圆形器件焊盘的场景会用但频率不高。选定类型后直接在版图上点击起始点拖动或者在属性面板里精确输入坐标和尺寸。这里我强烈建议精确输入尤其做PDN对比实验时Void的位置和尺寸要保证可复现手拖出来的形体会让对比实验失去说服力。3.3 关键参数设置层关联、网络归属和边界处理画完几何形状只是第一步真正决定Special Void行为的是属性面板里的几个参数。第一个是Layer。确认它指向的是你要挖空的那一层而不是当前活动层的意外选择。第二个是Void Type或Void Style。不同版本叫法略有差异但核心含义一致是做一个完全挖空还是做一个只去除铜皮但保留阻焊逻辑的模拟。对绝大多数SI/PI仿真而言选完全挖空即可因为仿真引擎只关心导体的几何形状阻焊不影响电磁场求解。第三个是网络归属Net。有些版本允许给Void指定网络这是给那些开槽处局部还有铜残留、属于另一个网络的复杂场景用的。常规用法下你不需要设置让它跟随所在层的铜皮网络即可。边界处理上特别要注意Void边缘与原有铜皮边界的重合度。如果你画的Void有一部分超出了铜皮边界仿真引擎一般会做自动裁剪但裁剪后Void的实际形状可能和你预期不一样。稳妥的做法是让Void完整落在铜皮区域内部至少留出5-10mil的余量。另外Void不要和过孔反焊盘区域重叠。一旦Void边界和过孔反焊盘边界交叉网格剖分器会在交叉区域做很多细碎三角形直接影响仿真速度和精度。我在实际项目中遇到过因为这类重叠导致内存直接拉满的情况后面会细说。4. Special Void设置之后怎么确认它真的生效了画完Void仿真一跑看结果曲线——这是大多数人的习惯顺序。但我建议你反过来先确认Void被仿真引擎正确识别再跑完整仿真否则一次漫长的仿真跑完才发现Void没生效白白浪费时间。4.1 网格剖分的可视化验证在跑求解之前PowerSI会做网格剖分Meshing。对Special Void这种几何修改最直观的验证方式是查看Mesh结果图进入Mesh显示模式放大到Void区域你会看到在Void边界处网格被加密形成一圈明显细密的三角形而Void内部没有网格。如果把等间距的环状加密看成一种网格护城河那中心区域应该完全空出来。如果你放大后发现Void内部仍然有网格说明这个Void没有真正切入铜皮。我遇到过几次原因是画Void时选错了实体对象实际创建一个独立的Shape而不是Void在拓扑关系上它只是浮在铜皮上方没有执行布尔减法。4.2 前后阻抗曲线的对比观测验证模型正确性之后做一次Condition差分先保存一个没有Special Void的工程状态再画出Void分别提取PDN阻抗曲线叠放在同一张图上。重点看三个特征在预期频段通常是几十MHz到几百MHz是否出现谐振峰偏移。谐振频率点的阻抗峰值是否改变。高频段GHz以上的阻抗趋势是否出现新的起伏。如果曲线完全一模一样就要回头检查Void是否真的落在该层的连续铜皮上。一个常见情况是你画的Void处在两个过孔之间的狭窄铜颈区域这地方本来就是瓶颈再开槽对全局阻抗影响不大不是Void失效而是位置选得不够典型。换到大面积平面区域再试效果立刻体现。4.3 电流密度图的辅助判断除了阻抗曲线还可以用电流密度分布图来验证Void的阻流效果。在PowerSI的后处理里打开电流密度图观察Void附近电流流向的变化。正常情况下Void边界会迫使电流绕行边界外侧会出现明显的电流拥挤带亮度比周围高。这个检查还有一个额外价值帮你判断Void切得是否合理。如果电流拥挤带过亮说明这条路径上电流密度已经逼近甚至超过安全阈值这个开槽设计在实际板卡上可能会带来局部过热点。仿真不只是为了看阻抗电流密度也是重要的工程判据。4.4 一个容易被漏掉的检查点层间耦合变化Special Void改变了平面层的几何形状不仅影响该层本身的电流路径还会因为层间耦合改变返回路径的分布。所以在确认Void生效后我建议顺便看一眼相邻参考层的电流分布是否出现明显变化。如果相邻层是完整地平面一般影响不大如果相邻层也是电源层或者有较多开槽那你可能需要结合两个层的电流密度图一起分析否则单独看一层容易得出片面结论。5. Speed2000场景瞬态仿真的Void处理PowerSI是频域工具Speed2000是时域工具两者对Special Void的处理逻辑在核心上一致但使用场景和关注点差别很大。5.1 Speed2000里的Void建模逻辑Speed2000做的是时域瞬态仿真典型场景是电源上电波形、噪声波动、DDR总线读写。相比PowerSI的扫频阻抗分析Speed2000更关注电流在时域上的瞬态行为。Special Void在Speed2000里同样有效操作入口几乎一致在Speed2000的Layout界面里找到Shape菜单下的Special Void即可。这里要说明一个常见的认知误区很多人以为Speed2000做的是电路级仿真不需要关注铜皮几何。实际上Speed2000对电源分布网络的计算是基于版图抽取的分布式模型铜皮切成什么样直接影响等效电阻和电感网络。你把电源平面切成两个孤岛Speed2000会在时域里如实地模拟出两个孤岛之间的供电差异。5.2 DDR电源/信号场景下的隔离槽设计我在实际项目里用Special Void最多的场景是DDR部分的电源隔离。DDR的VDD和VDDQ虽然在物理上有时来自同一层但为了让两个电源域在噪声上尽量隔离设计上往往要在铜皮上开一定的隔离槽。做法是先在需要隔离的两个网络交界处画出足够长的Special Void槽然后在Void两侧分别设置电源端口跑一次上电瞬态观察VDD和VDDQ的电压跌落和恢复时间。对比开槽前后的波形你能明显看到开槽后两个域之间的耦合噪声被削弱——当然代价是直流压降可能变大。这种trade-off在时域波形上看得清清楚楚。5.3 Speed2000的参数设置差异Speed2000里画Special Void时要额外关注时域步长和网格精度的配合。Void边界越复杂网格越细单步仿真需要的时间就越长。对于Void边界平滑的矩形槽网格可以适当放宽如果Void是多边形带尖角建议把局部网格加密设置为自适应否则尖角处的电流密度计算误差会偏大。另外Speed2000的电源网络等效模型里有些版本需要通过Model Extraction或PDN Extraction过程将版图转成等效网络模型才应用Void修改。如果你发现画了Void但波形没变化先确认自己是不是跳过了这一步。6. 顺着热搜问题聊Sigrity里怎么做TDR仿真既然热词榜上大家都在搜sigrity怎么仿真tdr而这个话题又和Special Void有直接关系我就一起讲透。6.1 TDR仿真的本质和配置路径TDR时域反射计仿真实际上就是向传输线或互连结构注入一个上升沿极快的阶跃信号观察反射波随时间的变化从而定位阻抗不连续点。在Sigrity里做TDR仿真最常用的工具是SystemSI因为它更侧重信号完整性链路分析但如果你已经用PowerSI做完了模型的S参数提取也可以在PowerSI里直接对S参数做时域变换等效得到TDR曲线。在SystemSI里配置TDR的路径通常是新建一个拓扑Topology从版图提取的模型或S参数模型中提取一条目标网络然后在激励源Stimulus设置中选择TDR模式设定上升时间——TDR的上升时间决定了你能分辨的最小不连续长度。经验法则10%-90%上升时间 t_r 对应的空间分辨率约为光速乘以 t_r 再除以介电常数平方根。比如上升时间50ps在FR4介质里大概能分辨出约7mm左右的阻抗不连续。所以做TDR仿真时上升时间不要拍脑袋设要去查你关心的物理特征尺寸。6.2 带Void结构的阻抗突变定位现在回到Special Void和TDR的结合场景。你在PDN仿真里开了一个隔离槽想验证这条走线或平面的阻抗均匀性TDR是最直观的工具。把走线的参考层换成开了Void的区域TDR波形上会在Void边界对应的位置出现一个明显的阻抗上跳因为参考层铜被削掉回流路径被迫绕行局部回路的电感增大阻抗抬升。这个抬升的幅度和Void的宽度、走线到Void边界的距离强相关。反射幅度符合反射系数公式Gamma (Z2 - Z1) / (Z2 Z1)。假设原特性阻抗是50欧姆开槽区域局部阻抗变成65欧姆那反射系数大约是 (65-50)/(6550) ≈ 0.13换算成回波损耗大概是 -17.7dB。这个数字你看着不大但在高速信号上多个这样的不连续点叠加起来眼图质量就会明显劣化。所以我在实际项目中会把这个流程串起来用PowerSI里画Special Void提取S参数再到SystemSI里做TDR仿真用TDR波形验证Void的影响是否可接受。整个过程不需要改原始布局一套模型能跑出频域阻抗、时域TDR、眼图三个维度的结果效率非常高。6.3 TDR设置里的几个注意点做TDR仿真时端口设置要小心。如果只设一个TDR激励端口而远端没有匹配波形末端的全反射会淹没你要看的细节。建议在远端加上实际的负载模型比如器件输入阻抗或者设置仿真窗口只覆盖到目标区域不让末端反射干扰判读。另外不要直接用默认的50欧姆参考阻抗判断所有网络。DDR的ODT、PCIe的差分阻抗、电源网络的极低阻抗各有各的目标值。TDR波形其实是在反映局部阻抗与你设定的参考阻抗的偏差参考阻抗设错了波形上会出现系统性偏移你以为是Void导致的问题其实只是参考基准不对。7. 新手最容易踩的坑我帮你排过了最后这部分是我这几年在多个项目里踩出来的经验汇总。每一条都对应过一次真实的返工。7.1 Void画了没生效先查层和实体类型这是出现频率最高的问题。画了Void仿真后跟没画一样曲线完全重合。排查顺序选中Void对象看属性面板里的Layer是哪层。确认这层在当前仿真中被启用而不是被排除在仿真层之外。确认画的实体确实是Void类型而不是普通Shape。选中对象时属性面板会有类型标识Void会明确显示为voidShape则不会。7.2 内存爆炸和仿真时间失控Void边界产生细碎网格仿真时间和内存呈指数级上升。一个典型的反面案例是我在一个电源平面上画了一个带很多锯齿边的多边形Void结果网格剖分在锯齿附近产生了几十万个额外三角形仿真直接从20分钟变成8小时。应对办法有两个一是把Void边界简化成尽量少的边矩形比五边形好五边形比任意曲线好二是在网格设置里对Void区域单独设置一个相对稀疏的目标网格尺寸不必全局加密到同一精度等级。7.3 Void与过孔反焊盘重叠导致的计算异常如果Void边界切到了过孔反焊盘网格剖分器会在这个交叉区域做非常细致的处理而且部分版本里这类交叉还会造成电流密度结果出现片状的高亮伪影看起来像是出现了巨大的电流尖峰实际上是因为网格退化。检查技巧在Mesh视图下按照高亮三角形数量排序找出异常密集区域看是不是每个密集区都对应一个Void与反焊盘的交叉点。7.4 保存和管理Void不像层叠那样随文件保存这是处理多版本工程时的坑。Special Void对象通常保存在当前Sigrity工程文件里但如果你导出某种中间格式比如导出S参数模型Void信息不会以几何形式一起带出它已经体现在求解结果里了。所以当你收到同事的工程看不到他描述的Void别急着怀疑先问他要原始的Sigrity工程文件而不是S参数文件。另外我建议给Void对象命名养成带日期或版本后缀的习惯比如void_isoDDR_v02。一个复杂的仿真项目里可能有十几个Void不命名的话后期想删掉某一个做对比全凭猜。7.5 别在错误的层做全局开槽实验有些人想模拟某层全部挖空的影响直接在整层范围画一个覆盖全部铜皮的Void。这种做法在某些版本里会导致该层被判定为空层后续的网络连接关系全部失效仿真出很多不必要的告警。想快速屏蔽某一层用层启用Layer Enable/Disable才对不要用Void去覆盖全局。7.6 版本的菜单差异Sigrity的界面在近几年做过多次改版不同大版本里Special Void入口可能从菜单搬到了工具栏甚至换过名称。遇到找不到菜单的情况直接在Layout Editor的搜索/命令栏里输入Void通常能快速定位到对应功能。如果搜索也没有查一下你手头版本的Release Notes里关于Shape功能的部分。我个人在这类操作上的体会有三点一是Special Void并非一个花哨的锦上添花功能而是PDN和SI分析里做Worst-case评估和方案对比的高频工具二是它配合TDR仿真能形成完整的闭环验证开槽之前先仿真开槽之后再仿真用数据说话三是越是简单的矩形Void越比复杂的异形Void可靠仿真建模里简单即稳定是长期适用的原则。希望这篇能把Special Void从入门到实战的这条线讲透你在自己的项目里照着操作一遍会比看十篇文章都有用。
返回列表