ARTICLE DETAIL

资讯详情

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

Allegro刚挠结合板层叠设计实战:从叠层构建到阻抗控制

Allegro刚挠结合板层叠设计实战:从叠层构建到阻抗控制 做刚挠结合板Rigid-Flex PCB这几年在消费电子、车载、医疗设备里越来越常见很多项目从立项开始就直接要求“刚挠一体、立体组装”拿到的原始需求往往只有一句“这一段要做成软板可以折下来”。真正在Allegro里落地的时候最让人抓狂的不是布线反而是层叠——刚性区8层、挠性区2层这个叠层在软件里怎么表达挠性区的PI介质、覆盖膜、补强板往哪里填为什么明明叠层看着挺好一跑DRC就报一堆错误这篇文章我把Allegro里做刚挠结合FPC层叠设计的完整思路和实操步骤拆开讲清楚包括材料参数怎么填、多区域Stackup怎么挂、覆盖膜开窗怎么管理、阻抗在FR4和PI之间怎么换算以及我踩过的坑。适合刚接触Allegro的硬件工程师也适合从AD或PADS转过来、第一次用Allegro画软硬结合板的人。1. 刚挠结合FPC层叠设计前必须想清楚的三件事1.1 先搞清楚层叠结构哪几层走到挠性区刚挠结合板的本质是“不同区域拥有不同的层叠”。刚性区域使用FR4芯板、半固化片PP和铜箔压合挠性区域则靠聚酰亚胺PI基材和挠性铜箔承载走线外侧用覆盖膜Coverlay保护。两层结构之间通过一个过渡区Transition Zone衔接让弯折应力逐步释放而不是在某个截面上突然从2mm厚的刚性板硬生生变成0.2mm厚的柔性排线。在Allegro里动手之前先要把层叠方案在脑子里或纸上定下来。举个例子一个典型的6层刚挠板可能长这样刚性区是完整的6层结构L1、L2、L3、L4、L5、L6都在当板子走到挠性区时只有中间的L3和L4继续延伸其余四层全部截断挠性区等效为“双面软板”。这里有个关键概念叫“中性层”Neutral Axis。软板弯折时中性层应力最小所以挠性芯板最好放在整个刚性叠层的中间附近而不是靠近表面层。如果你把挠性区放在L1-L2位置折弯时材料受拉压应力很大FR4断口会从过渡区蔓延到软板这是设计之初就要尽量避免的结构布局。确定层叠延伸范围后还要统计刚挠区是否有层数差异、哪些层只在刚性区敷铜、哪些走线要从刚性区通过过渡区进入挠性区、过孔钻孔是否会落在折弯路径上。这些信息决定了你在Allegro里怎么建Stackup、怎么分配区域、怎么设置约束。1.2 材料选择决定了层叠参数PI、胶、覆盖膜不是随便填的在Cross-Section里填参数最重要的事情是知道自己在填什么材料。刚性区的介质通常是FR4Dk约4.2-4.5损耗因子0.02左右层间用PP压合。挠性区的基材是PI膜常见厚度有12.5μm、25μm、50μmDk在3.2-3.5之间比FR4低铜箔常用1/3oz约12μm和1/2oz约18μm动态弯折区域最好选择压延铜RA铜它的延展性和耐疲劳性能比电解铜ED铜好。覆盖膜也是需要填进层叠里的“正经介质层”。覆盖膜通常包括一层PI膜加一层胶Adhesive比如12.5μm PI加25μm胶压合之后胶的厚度会有压缩实际厚度可能只有20μm左右。很多初学者在Allegro里做挠性区层叠时只填了基材PI和铜箔完全忘了覆盖膜——这会直接导致挠性区总厚度算错折弯半径校核、压合说明、结构干涉检查全部失真。另外如果挠性区是两层以上软板层压在一起层间需要使用纯胶膜Adhesive Bonding Sheet或热固胶。蜂窝板、软硬结合板厂都有自己常用的胶膜型号和厚度填参数前先找板厂要一份推荐叠层不要自己拍脑袋填。1.3 阻抗与信号完整性同一根线跨两个介质区怎么办刚挠板最容易被忽视的问题是阻抗连续性。高速信号从刚性区的微带或带状线进入挠性区后介质从FR4变成PIDk和损耗因子都变了同样的线宽线距阻抗会明显变化。举个例子差分对100欧姆在FR4层叠里可能是5/5mil线宽/间距到了挠性区如果还是5/5mil差分阻抗往往会偏高因为PI的Dk相对更低耦合电容变小。所以做层叠时我会把挠性区的阻抗需求直接写进Stackup备注并提前用阻抗计算器算一遍。Allegro的Cross-Section本身自带阻抗求解功能输入层厚、材料Dk、铜箔厚度后可以直接算出特定线宽下的单端/差分阻抗。挠性区的目标应该是“尽量保持和刚性区一致的阻抗”手段包括调整挠性区走线宽度、调整覆盖膜厚度、控制挠性芯板到参考层的距离。对于高速信号还有一个容易被坑的点挠性区的参考平面。如果挠性区只有两层铜而且一层被用来做阻抗参考地那另一层走线没问题但如果是多层挠性芯板局部平面被过孔或挖空打断阻抗参考就变了这个在层叠阶段就要规划好不能等布线完再回头补。2. Allegro中刚挠层叠搭建的完整实操流程2.1 进入Rigid-Flex设计模式在Allegro里做刚挠板第一步不是直接拿层叠管理器堆材料而是先确认软件是否开启了Rigid-Flex相关设计功能。以Allegro 17.4为例在Setup菜单中选择Design Parameter Editor打开Design标签页找到Rigid-Flex Design有些版本是Rigid Flex并勾选。勾选后Allegro才会在相关的菜单和面板中开放刚挠设计工具比如多Stackup管理、区域分配、3D刚性/挠性视图等。如果你用的是22.1以后的版本Rigid-Flex开关可能默认就是打开状态但仍建议检查一下避免做到一半发现功能没启用。这一步很容易被跳过后果是后面你明明画了区域框却找不到“Assign Stackup”“Create Rigid/Flex Region”之类的选项甚至Cross-Section也没有多Stackup下拉框。我的习惯是新建板子后第一时间就把Rigid-Flex Design打开不管当前项目是不是刚挠板反正不影响普通板设计但需要时随时能用。2.2 在Cross-Section中创建整体层叠层叠管理器是Allegro里做刚挠结构的主战场入口是Setup菜单下的Cross-Section快捷键通常是Xsection如果你做过快捷键设置可以直接敲这个命令调出来。打开后你会看到一个从Top到Bottom的层列表每一行代表一层最上方是Top丝印/阻焊最下方是Bottom丝印/阻焊中间是导体层Conductor、介质层Dielectric、平面层Plane等。搭建步骤如下先按刚性区的完整层数把基础叠层建出来。比如6层刚性板就在Top和Bottom之间添加L2、L3、L4、L5四层内层一共6个导体层。介质层用Dielectric插入设置在每两层相邻导体之间。给每一层填写Material材料、Type层类型、Thickness厚度、Etch Factor蚀刻因子、Dielectric Constant介电常数、Loss Tangent损耗因子等参数。如果层数多手工一个个添加容易漏可以在某个内层上右键选择“Add Layer Above/Below”弹出的对话框里一次性指定导体和介质层的数量Allegro会自动补齐。需要注意的是Cross-Section里的层顺序是Top向下、Bottom向上编辑时要注意不要看反方向。另外Allegro允许在层叠中插入“Plating”层电镀标识层刚挠板的沉铜、通孔电镀信息可以在这一层体现但普通设计可以不填。2.3 定义刚挠区域与Stackup关联这是Allegro做刚挠板最核心的一步也是很多从AD/PADS转来的工程师最不适应的部分。在普通EDA里软板往往靠“画一块区域再设置层开关”来实现在Allegro里刚挠板是用“多个Stackup 区域绑定”来管理的。以17.4版本为例在Cross-Section界面的顶部或左上角会有一个“Layer Stack-up”的下拉列表旁边通常带一个“”号按钮。点“”新建Stackup可以命名为Rigid_A、Rigid_B、Flex_C等。新建时选择“Copy from existing stack-up”把起初创建的完整刚性叠层复制一份然后针对不同区域去调整。具体到刚挠板场景你至少需要三套Stackup刚性区A的Stackup包含完整层叠材料是FR4PP。刚性区B的Stackup如果另一块刚性区层叠不同比如厚板变薄板单独建一套。挠性区的Stackup把完整叠层中不进入挠性区的层删除只保留挠性芯板走线层、PI基材、覆盖膜。举个例子前面的6层刚挠板中L3和L4是挠性芯板那么在Flex_C这个Stackup里标号大概是这样的L3铜箔、PI基材、L4铜箔然后外部再算上覆盖膜层。如果你把Top和Bottom的阻焊层也复制进来需要删掉换成覆盖膜层。Stackup建好后回到Allegro绘图区用板框或绘制多边形的方式把刚挠区域圈出来。通常的做法是在Board Geometry的Outline子层或者Design Outline层画三组闭合形状Rigid区域A的外形、Rigid区域B的外形、Flex区域的外形。画完以后框选区域图形在右键菜单或Rigid-Flex面板中找到“Assign Stackup”或“Set Stackup”命令将对应的Stackup指定给这个区域。完成区域绑定后Allegro会把不同的Stackup对应到不同的物理区域在2D/3D视图里都可以实时看到哪些层在哪些区域有效。这一步做完其实整个刚挠板的层叠模型就建好了后面的走线、铺铜、DRC都会按区域去判断层与规则。2.4 过渡区与折弯线设计刚挠板不能只画两个区域然后“啪”地接在一起物理上必须有一个过渡区来分散应力。过渡区常做成锯齿状或阶梯状叠层结构上也讲究错位渐变让每一层在折弯边界处的截断点相互错开避免应力集中。在Allegro里过渡区通常用Outlines或者Route Keepin的闭合图形来表达也可以使用Design Parameter Editor中的“Bond Line”相关设置。我习惯的做法是单独建立一个“Flex_Transition”区域放在刚性区和挠性区之间宽度2-5mm并在折弯线和区域边界上绘制标记层方便板厂和结构工程师识别。折弯线Bend Line建议单独放在一个专门的Board Geometry子层比如“Bend_Line”或“Flex_Bend1”。在Allegro中可以使用Line或Route Keepout画线设定好折弯方向。弯曲半径的校核公式很简单单次动态弯曲的弯曲半径一般做到板厚的10倍以上静态弯曲可以宽松一些但也不建议小于2-3倍厚度。比如挠性区总厚0.2mm静态折弯半径至少要0.5-0.6mm动态弯折则尽量做到2mm以上——这些数值要在设计阶段就写进标注里不要等板子回来了再对着样条线发愁。3. 层叠参数与规则设置的关键细节3.1 材料厚度、介电常数与损耗因子设置层叠管理器里填写参数时最容易出问题的是单位换算和忽略部分参数。Allegro默认支持mm和mil切换但材料厚度表往往混用单位必须统一。1oz铜箔约35μm板厂实际提供的是15μm、9μm、5μm等规格填的时候要确认清楚到底是成品铜厚还是基铜厚度。Dk和损耗因子是阻抗计算和信号完整性仿真要用的关键参数。刚性区FR4的Dk别直接填4.5实际上不同玻纤布、不同树脂含量的FR4板材Dk会有差异在1GHz下可能是3.8-4.3最好问板厂要实测数据。挠性PI膜Dk则通常在3.3左右。Allegro的层叠管理器里对每种介质层都提供了“Dielectric Constant”和“Loss Tangent”参数这两个值填准了内置的阻抗计算器才可信。这里分享一个经验我在填覆盖膜的Dk时会把它和胶层合成一个等效Dk或者分开两层填。分开填更精确但需要知道胶的Dk和厚度如果不知道板厂一般会给压合后的综合参数这时候可以简化为“Coverlay PI层Adhesive层”两个子层用板厂数据填。无论如何叠层文件要能反推出总厚度否则后续做3D装配检查时会和结构对不上。3.2 为挠性区单独设置布线规则刚挠板的布线规则很难用一套全局规则搞定。刚性区线宽/线距可以做得比较密挠性区考虑到弯折可靠性走线通常要更宽、更疏、拐角更缓。Allegro中支持对区域设置独立的Physical和Spacing约束这是在做完Stackup区域绑定后必须马上做的工作。操作思路如下打开Constraint Manager在Physical约束里创建一个“Flex_C”规则集。设定挠性区的最小线宽、差分对线宽线距、最大走线长度等参数。比如刚性区最小线宽0.075mm挠性区最小线宽则可以设到0.1mm差分对也一样相应放宽。在Spacing约束里创建挠性区的间距规则适当增大线与线、线与过孔的距离。将刚划定好的挠性区图形或Stackup关联到这些规则集。区域规则在Constraint Manager中通常显示为区域表单在里面可以看到哪个区域关联了哪套规则。如果漏了这一步最常见的结果是挠性区走完线后DRC不管是静态还是动态都报出一堆间距错误而且这些错误往往不影响功能只是因为规则套错了。反过来如果挠性区规则太松又会出现占面积大的问题。我的习惯是“先定规则、再走线”绝对不等到布线完成后再回头设区域约束。3.3 覆盖膜开窗与补强板图形管理挠性板与刚性板最大的区别之一是挠性区表面没有阻焊层取而代之的是覆盖膜。覆盖膜会覆盖大部分铜面只在焊盘、测试点、金手指等需要暴露的位置开窗Window。在Allegro中开窗图形通常绘制在特殊层常见命名有“BOARD GEOMETRY/Window”、“BOARD GEOMETRY/Coverlay”、“FLEX_WINDOW”等具体看公司的层命名规范。做刚挠板时我建议至少新建下面几种子层覆盖膜开窗层用于表示覆盖膜上需要抠掉的区域。补强板层在挠性端头需要插拔的位置画补强区域如PI补强、FR4补强或钢片补强。折弯线层画折弯指示线。补强板虽然不属于电气层但在Allegro里最好也画出来尤其当补强区域涉及焊盘和器件时要避免器件位置刚好落在补强边缘否则贴片时应力不均。在层叠管理器中补强板厚度属于叠层厚度的一部分但不需要占据电气层可以用“Board Geometry”子层来表示并在叠层备注里写清补强区域位置和厚度。这些图形尽量放在独立的子层不要和板框、装配图混在一起。出光绘时覆盖膜开窗需要单独输出一版很多板厂要求覆盖膜层和阻焊层分开出这个后面第4节再展开。3.4 阻抗计算实例同样100欧差分在FR4和PI中的线宽差异理论说得再热闹不如给一个可以直接参考的计算实例。假设刚性区层叠是这样的L1到L2之间是0.1mm FR4介质L2是参考地挠性区层叠是L1铜箔18μm、25μm PI基材、L2参考地。现在要在L1走100欧姆差分对分别算一下刚性区和挠性区需要的线宽线距。使用Allegro内置阻抗计算器或Polar等工具输入刚性区参数介质高度约0.1mmFR4的Dk约4.2铜厚18μm目标差分100欧姆算出来典型值大约是线宽0.15mm、间距0.15mm左右具体数值和参考层宽度、阻焊厚度有关。再看挠性区介质高度25μmPI的Dk约3.3铜厚18μm同样目标差分100欧姆算出来线宽往往要放到0.2mm以上甚至间距也要同步调整才会落到目标阻抗范围。这个结果乍看很意外介质更薄反而要加宽线原因在于PI的Dk低单位长度的电容小特性阻抗天然偏高所以必须用更宽的线来增加对地电容、拉低阻抗。如果挠性区仍坚持0.15mm线宽差分阻抗可能飙到110-120欧姆对高速接口来说已经超标了。所以做刚挠板层叠时一定要把刚性区和挠性区的阻抗参数分开计算并在叠层文件里标注两套参数。设计过程中如果挠性区走线必须变窄一定要回到Cross-Section里重新核算不要简单复制刚性区的阻抗规则。4. 常见问题排查与经验笔记4.1 层叠DRC报错Material/Thickness未定义刚挠板在Allegro里最常见的报错是“Missing thickness/material definition for layer”这个错误通常是新建Stackup时没有把每一层参数填齐。特别是挠性区复制刚性区叠层后删除多余层留下的空行、或者覆盖膜层没有设置材料名都会触发报错。排查思路很简单打开Cross-Section逐层检查重点看Material、Thickness、Type三列。正常填好的介质层Material应该是具体的板材名如FR4、PI、Coverlay、PPType应该是Dielectric导体层的Type是Conductor或Plane材料可以是Copper。如果某一行Type是“Undefined”或Thickness是0那就是漏了。我还会做一步“自检”把Cross-Section导出成叠层表Allegro支持生成叠层报告和板厂确认的叠层结构一段段对一遍确认介质层数、铜箔顺序、总厚度一致。特别是挠性区总厚经常有人算出0.15mm板厂实际压出来0.2mm厚度偏差影响折弯半径和连接器高度务必确认。4.2 挠性区过孔与折弯区冲突刚挠板的挠性区上尽量不要放任何过孔尤其是机械钻孔。万一必须在挠性区转弯处打过孔过孔应该远离折弯边缘孔壁到折弯线的距离至少保持一个孔直径到两个孔直径以上避免孔壁铜开裂。在Allegro里我通常在挠性折弯区画一个Route Keepout禁止放置过孔和器件。这个Keepout要专门画在挠性区的Stackup对应区域上而不是全板Keepout。有人直接把Keepout画到Board Outline里导致刚性区的器件也被挡了这是很尴尬的问题。另外刚挠过渡区附近的过孔容易出问题。板子在压合时过渡区本来就受力过孔孔壁和铜箔连接处在弯折应力下非常容易微裂建议过渡区10mm范围内使用小孔0.2mm以内并加装背钻或埋孔尽量减少机械盲孔。4.3 光绘输出时Coverlay层频繁漏层刚挠板的光绘文件和普通板差别主要在覆盖膜层和阻焊层。刚性区用阻焊Solder Mask挠性区用覆盖膜Coverlay两者不能混在一起输出。特别是挠性区如果有开窗光绘上必须单独出现“Coverlay Opening”层。我的习惯是在Artwork表单里为刚挠板增加单独的Coverlay开窗输出项使用方式是在Board Geometry的Window层上只保留覆盖膜开窗的图形然后输出这一层。同时阻焊层图形注意不要覆盖到挠性区否则板厂可能把不该开窗的地方开了或者把该覆盖膜保护的区域当阻焊处理外观和可靠性都出问题。还有一点输出钻孔文件时刚挠板往往有通孔、盲孔、埋孔混搭NC Drill要分开对应每一组过孔对。Allegro中可以在Manufacture - NC - Drill Customization里配置不同过孔对的钻孔文件不然盲孔和埋孔混在一起板厂钻孔程序容易错。4.4 板厂沟通提交叠层文件前先做几件事软件里做干净了最后还差一步和板厂对齐。刚挠板不是普通FR4多层板材料型号、PI厚度、覆盖膜类型、压合顺序、过渡区处理每家板厂的标准流程都有差异。我每次发板前会准备一份完整的叠层沟通文件内容包括每一层Stackup的材料、厚度、公差刚性区和挠性区两套叠层并排对比标明层转换位置覆盖膜开窗和补强板的图形说明折弯区域、弯曲半径要求阻抗需求表哪个网络、单端/差分、目标值、参考层Allegro本身支持导出叠层报告Manufacture - Cross-Section Report或直接打印Cross-Section界面把关键参数截图放到板厂说明里比只发PCB文件和PDF清晰得多。板厂反馈的叠层如果和设计有出入别嫌麻烦改回Allegro里再检查一遍DRC和阻抗再来回沟通。这一步省掉的话后面样品流到贴片工序就会发现挠性区金手指高度不对、覆盖膜盖住了焊盘之类的低级问题。5. 顺手补几个Allegro刚挠层叠的高频操作小技巧最后再分享几个在实际项目中反复用到的Allegro刚挠层叠操作技巧不按项目流程来纯粹是经验清单。第一个给Cross-Section设快捷键。Allegro默认的快捷键没有覆盖Xsection我习惯在env文件里绑定一个顺手的键。打开后可以快速切换不同Stackup查看层叠效率比来回点菜单高很多。第二个层叠管理器里的3D预览一定要用。在Cross-Section界面右上角或右键菜单里常有“3D View”功能打开后能看到板子在空间中的刚挠形状。很多层叠顺序错误、区域绑定反了的问题在2D层叠表里看不出来3D视图里一眼就能发现“挠性区跑到刚性区上面去了”。第三个用“Report”功能输出叠层数据。Allegro的Reports菜单里可以生成包含层名、材料、厚度的文本报告我经常把这个报告存成txt和Excel一起发板厂比截图方便修改和比对。第四个如果你常用Skill可以找一些开源的刚挠板工具比如批量给开窗层加边框、自动生成覆盖膜图形的脚本。团队里人多的时候统一建一套子层命名规范和Skill脚本能省不少事。不过Skill脚本要和自己的Allegro版本匹配装之前先在测试板上验证。刚挠结合板设计是一个整体性很强的工作层叠只是第一步但它决定了后面所有的布线、阻抗、结构、生产工艺能不能顺利落地。在Allegro里多花点时间把Stackup和区域绑定的基础打扎实后面实际画板、出数据、和板厂协作都会顺畅很多。我自己的体会是刚挠板的层叠到位这个项目就成功了一半层叠草率后面返工的时间和成本才是真的疼。
返回列表