ARTICLE DETAIL

资讯详情

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

Allegro刚挠结合FPC层叠结构设计:从材料选型到Stackup Zone实战

Allegro刚挠结合FPC层叠结构设计:从材料选型到Stackup Zone实战 刚挠结合FPC的层叠结构设计是PCB工程师从“常规板子”迈入“复杂互联设计”时避不开的一道坎。我在Allegro里完整做过几个刚挠结合项目之后最大的感受是层叠结构不只是Cross Section表格里躺着的一组厚度数字它直接决定走线、过孔、铺铜、弯曲半径甚至影响板厂能不能正常生产。这篇内容就围绕Allegro里刚挠结合FPC的层叠结构设计展开适合已经能用Allegro画常规多层板、但第一次接触刚挠结合设计或者被柔性区和刚性区叠层切换搞得头疼的Layout工程师。1. 刚挠结合FPC的层叠结构究竟在解决什么问题1.1 为什么会有“一块板上两套叠层”的需求普通的刚性PCB叠层无非是芯板、半固化片PP、铜箔一层层压在一起厚度和层数定了之后整板都是一个物理结构。而FPC软板靠聚酰亚胺PI这类挠性基材承载铜箔可以弯折、卷曲但缺点是没有刚性骨架支撑元器件焊接和整机组装时容易变形。刚挠结合板Rigid-Flex的思路很直接把刚性区的稳定性和柔性区的可弯折性做进同一块板子里中间用过渡区衔接。这样带来的直接好处是——省掉板对板连接器和FPC排线降低装配高度和成本减少插接件在振动环境下的接触不良风险信号不需要经过连接器阻抗连续性和抗干扰能力更好整机内部走线更规整尤其适合摄像头模组、翻折屏幕、医疗探头这类对空间和可靠性都有要求的场景但在EDA工具里实现这个目标比物理概念上的“压在一起”要麻烦得多。因为Allegro不允许一个PCB文件里出现两套完全独立的层叠树更准确地说它允许你通过“叠层分区”的方式在同一套物理层位体系下为不同区域维护不同的介质厚度和材料组合。这就是刚挠结合层叠结构设计的核心难点。1.2 刚性区、柔性区、过渡区三者的角色完全不同设计时要先明确你的板子上需要几个物理功能区域每个区域对叠层的要求是什么。刚性区负责承载绝大部分元器件、连接器、屏蔽罩叠层以FR4、高Tg芯板、PP为主追求机械强度和散热。柔性区只保留可弯折的PI、胶层、铜箔和覆盖膜厚度尽量薄、弯折半径尽量小。过渡区是刚性和柔性材料的交接地带需要用可靠的设计手段保证弯折时应力不会集中在一个点上。这三类区域对叠层参数的需求经常是矛盾的。比如刚性区希望铜厚1oz甚至2oz柔性区却希望铜厚不超过0.5oz否则弯折几次就容易疲劳断裂刚性区需要完整的电源地平面柔性区却常常只能走一两层细线。如果用传统的“整板一套叠层”思路去套Flex区域会被迫跟着用FR4介质厚度和弯折性能完全不能满足要求。在Allegro里我们通常把“刚性区”和“柔性区”理解为两种不同的Stackup Zone把“过渡区”理解为这两个Zone之间的边界。设置清楚Zone之后走线、铺铜、过孔、开窗这些对象的物理属性才能跟着Zone走。2. 动手设置Allegro叠层之前材料、厚度和弯曲半径要先算明白2.1 刚挠结合的常见材料体系层叠结构不是一个纯画图的操作材料选型是它的“底层数据”。在Allegro的Cross Section里每一层都要选Material而材料才是决定电气性能和物理性能的关键。常规刚性区无非是FR4芯板加半固化片阻抗和厚度控制大家都熟。柔性区的材料链则要特殊一点挠性基材最常用的是聚酰亚胺薄膜PI常见厚度有1/2mil、1mil、2mil等介电常数通常在3.2~3.5之间比FR4的4.2~4.6略低胶粘剂有丙烯酸胶、环氧胶、纯胶膜等用来把铜箔粘到PI上。常见厚度10μm、15μm、25μm设计时要算进介质层铜箔分电解铜ED和压延铜RA。需要大幅弯折的区域强烈建议用压延铜它的晶粒结构更适合反复弯折。铜厚常见0.5oz约18μm动态弯折场景甚至用更薄的覆盖膜相当于柔性区的“阻焊层”通常是PI薄膜加胶设计时要按一层介质去算而不是像阻焊那样直接忽略我做实际项目时会先把材料清单列成一张表再往Allegro里填。例如一个6层刚挠结合板可能是4层刚性加2层柔性也可能8层刚性加2层柔性取决于布线资源和成本预算。2.2 板厚预算与弯曲半径怎么估算柔性区最怕的不是信号问题而是弯折应力。最小弯曲半径通常按柔性区总厚度的倍数估算静态弯折一般要求不小于总厚度的10倍动态弯折要求更高建议不小于总厚度的15到20倍。举个例子一个柔性区叠层设计为上下各一层1/2mil PI覆盖膜加25μm胶两层0.5oz压延铜中间一层1mil PI基材加两层胶粗略估算总厚度项目厚度参考PI覆盖膜1/2mil12.5μm胶层25μm压延铜 0.5oz18μm胶层25μmPI基材 1mil25μm胶层25μm压延铜 0.5oz18μm胶层25μmPI覆盖膜1/2mil12.5μm粗算总厚度接近186μm也就是0.186mm。按静态弯折10倍估算最小弯曲半径大约1.9mm如果是动态弯折这个半径预期要拉到3.7mm以上。这里我习惯留足余量毕竟仿真条件和实际装配状态有很大差距。2.3 阻抗控制也要先垫一层计算柔性区的介质层薄、介电常数低同样线宽下特征阻抗会比刚性区偏高。比如刚性区用4mil线宽配合常规介质可以做到100Ω差分但到了柔性区如果还是同样的线宽阻抗可能飘到110Ω以上。有一种常见的处理方案在柔性区把差分线宽适当加宽或者调整介质厚度让阻抗回到目标值。但注意线宽一旦变化同一个网络跨Zone时会出现阻抗微断点虽然不严重但高速信号依然要谨慎。所以更推荐在层叠设计阶段就用阻抗计算工具Polar Si9000、Allegro自带的阻抗算工具等分别算好刚性区和柔性区的线宽铜箔组合再把这些参数反哺到Allegro的约束规则里。3. Allegro Cross Section实操从叠层骨架到Zone参数分配3.1 先建一套包含全部层位的整体骨架打开Allegro PCB Editor后很多人习惯直接去Setup Stackup里敲层数这个方法对普通板子没毛病但刚挠结合板不建议这么干。先要想清楚你的“物理层位”总数是多少。一个8层刚挠结合板如果柔性部分只占其中L2-L3两层那在整体骨架里就要把这8层全部建出来然后再去划分Zone。原因是Allegro的Stackup Zones机制基于同一套层名体系Zone的作用是修改某个区域内各层的介质厚度和材料类型而不是增减层数。整体骨架建立时建议从上到下顶层走线层铜内部信号/平面层铜柔性芯板区PI与胶组合内部信号/平面层铜中间介质FR4/PP底层走线层铜每一层先在Cross Section里定义为Conductor介质层定义为Dielectric材料和厚度暂时按刚性区设置。这个阶段不需要纠结精确值先把层级关系搭出来。3.2 把钻孔层和过孔体系一并想清楚刚挠结合板中柔性区尽量不要放通孔因为镀铜通孔在弯折时容易产生应力裂纹。层叠骨架建立的同一时间就要把过孔结构定下来贯通孔是不是只在刚性区使用柔性区是否需要盲埋孔或者干脆完全禁止过孔。在Allegro里过孔结构定义与层叠是绑定的。如果你定义了一个从L1到L8的穿透孔而柔性区恰好穿越了L1-L8那就得通过约束规则把这类过孔排除在柔性区之外否则DRC不会报错但板厂一弯折就出问题。3.3 创建Stackup Zone刚挠分区的关键一步这一步是刚挠结合层叠设计里最核心的操作在Allegro 17.2及以上版本里有完整的Stackup Zones功能。操作路径是Setup Stackup Stackup Zones。创建Zone时你会定义一个闭合的Board Geometry / Stackup Zone区域再在表格里给这个Zone分配介质厚度和材料。它的逻辑相当于铺一块“异形叠层补丁”覆盖到整板叠层之上。我常用的做法是先用Board Geometry层画出刚挠结合板的轮廓明确柔性区的外形范围在Stackup Zones里新建一个名为FLEX的Zoneshape引用刚才的柔性区轮廓在FLEX Zone的编辑表里把所有非柔性层的介质厚度改成极小值或取消这取决于工厂的实际制程把柔性层位替换成PI、胶层和覆盖膜把Zone类型标记为Bend区域这里有个经验Allegro的Cross Section左侧会显示整个叠层右侧可以针对不同Zone独立设置。要保证默认的Main Zone还是刚性区参数FLEX Zone只覆盖柔性区形状。不要让两个Zone大面积重叠否则后建的Zone会覆盖先建的规则判断会变得很混乱。3.4 给柔性区的覆盖膜Coverlay留出正确的介质位置柔性区的覆盖膜相当于刚性区的阻焊但它的厚度对阻抗影响比阻焊大得多。有人会问Coverlay在Allegro里到底放在哪个层如果是纯FPC设计Coverlay常被当成一层开窗的介质用顶层/底层的Dielectric再加一层PI材料表示。如果是刚挠结合我建议在Flex Zone的叠层里把Coverlay单独建一层单独赋予PI材料厚度然后用负片或铜箔开窗的方式露出焊盘。在Class/Subclass层面Coverlay的开窗区域通常用Board Geometry Coverlay开窗层配合Route Keepout或Shape Keepout来约束。这些层虽然不直接参与电气连接但光绘和制造说明里一定要带出去否则板厂不知道哪里该裸露铜哪里要覆盖PI膜。4. 层叠结构往下传导走线、过孔、铺铜的区隔和约束4.1 柔性区走线的几何偏好要在规则里定死层叠结构决定了柔性区是敏感区域走线就不能像普通BGA区一样随意推挤。在Allegro里我会单独建一个Physical Rule Set例如FLEX_PHYSLine Width最小值和常规走线保持一致特殊阻抗线按计算值Line to Line间距要比刚性区放宽一点因为PI基材在加工时容易涨缩走线角度建议设成45度或Arc禁止90度转角走线长度和过孔数做上限约束减少弯折区的应力节点然后把柔性区的Shape区域关联到这个Rule Set。操作是添加一个RegionClass选择Physical赋值给FLEX_PHYS。这样走线时Allegro会强制检查线转角不符合要求直接DRC报错。这里要特别提醒柔性区内的走线拐角尽量用弧线。我用弧形走线替代45度切角后打样回来的柔性区微裂纹问题明显减少了。4.2 过孔放置区的禁区和过渡区应力释放层叠结构里设置Stackup Zone之后不是所有约束都自动生效。过孔约束必须额外做。在刚挠结合板中我有三个过孔相关的硬性习惯柔性区内部绝不放通孔刚性区和柔性区的交界线附近正反各留至少0.5mm~1mm的禁孔区如果柔性区必须有过孔优先用激光盲孔孔不要打在弯折中心线上在Allegro里这些限制用Physical Rule Set里的Via List能控制一部分更直接的方式是画Route Keepout标明禁止过孔的区域范围。过渡区附近如果空间紧张可以设计成一排阶梯式的禁孔带给板厂留出加工公差空间。4.3 铺铜形式完整铜皮还是网格铜柔性区要不要铺整片铜皮这个问题的答案和弯折次数强相关。如果柔性区只是静态安装时折一下不再反复弯折整片铜皮问题不大还能加强屏蔽和散热。如果柔性区要动态弯折比如翻折屏幕的转轴区域铺完整铜皮很容易疲劳断裂更适合用网格铜。Allegro里做网格铜并不复杂画Shape时选交叉网格或蜂窝网格设置好线宽和间距。但有了层叠的Zone概念后你要检查网格铜是否越过了Zone边界如果跨越了刚柔交界柔性侧的网格密度和刚性区的完整铜皮会出现明显差异这个差异在仿真和实际可靠性上影响不小。4.4 阻抗连续性跨Zone的网络要单独处理我的项目里遇到过这样的情况一组90Ω差分从刚性区进入柔性区板厂回来报告说TDR测试在过渡区出现阻抗跳变幅度大概8Ω。回查原因就是我在柔性区没有调整线宽。层叠结构设计阶段如果事先分别算过两边的阻抗参数这种问题完全可以提前规避。在Allegro设置中我给所有跨Zone信号建一个Signal Model或Net Class把刚性区的线宽规则和柔性区的线宽规则分开并标注延时差异。对于500Mbps以上的高速信号还需要检查过渡区的参考平面连续性柔性区如果换层参考层可能被PI厚度隔开了返回路径会绕一大圈这时需要在过渡区边缘加缝合地孔。5. 刚挠过渡区的设计细节与加工工艺边界5.1 过渡区形态阶梯式过渡优于陡变式刚性和柔性材料交界处如果边界是一条直线弯折时应力会全部集中在同一条线上这是设计中最常见的低级失误。更稳妥的方案是采用阶梯状过渡刚性区的FR4和PP逐步缩短像台阶一样退让让柔性层从刚性层之间慢慢“露出来”。这个形态在Allegro里不增加额外操作但需要你在绘制Stackup Zone边界时把边界画成锯齿形或阶梯形而不是一条光溜溜的直线。我在实际项目里喜欢把过渡区做成一排渐变的圆弧边界让布线工具在跨区时也能平滑过渡。5.2 挠性层的应力释放槽位刚挠结合板在过渡区附近层叠结构里常常需要留应力释放槽。这不是Allegro叠层参数能直接加的而是要在Board Geometry里画Cutout或Slot让板厂在做轮廓加工时把柔性区入口处的PI和胶层断开一部分减少应力累积。开槽区域需要特别注意槽的宽度要大于内层柔性区的厚度否则加工精度不够槽的形状避免直角端头要圆润槽内部不要有任何走线和铜皮Allegro中用Shape Keepout去罩住5.3 拼板设计对层叠Zone的影响刚挠结合板经常要拼板出货。拼板时同一块生产板里可能有多个刚性区也可能有多个柔性区例如一对上下翻折的电池模组连接板。这种情况下Stackup Zones里要建立多个Zone实例分别对应每一个柔性区形状。我常在Allegro里复制Zone对象再用不同Sheet的名称区分确保每一块柔性区都拿到了正确的叠层参数。随便漏掉一个Zone板厂按默认刚性叠层生产那块柔性区就只能整批报废。6. 实战中踩过的坑故障现象、根因排查和修复手段6.1 厂家回复“叠层文件无法制造”——Zone没有正确体现到光绘和制造说明现象我提交设计文件后板厂工程确认问柔性区域的介质厚度跟刚性区一样你们到底哪里是软的排查链路打开Artwork Control Form检查所有光绘层是否完整输出检查Stackup Zone的Shape是否真的在Board Geometry里是否和板框重叠检查光绘输出时Zone对象是否包含在对应的SILKSCREEN或MISC层中结论Allegro的Zone信息和铜箔层、丝印层是独立对象光绘如果没勾选对应层制造端在CAM里根本看不见柔性区的边界。修复方法把Stackup Zone相关的Shape放在单独的Class例如Board Geometry Rigid_Flex_Area_No_Bend同时在光绘输出时把所有Zone对象的Outline一并出给厂家。更稳妥的做法是导出一份PDF叠层示意图手工标注每一块柔性区的厚度和材料组合。6.2 挠性区厚度超差弯曲半径不达标现象打样回来的板子柔性区手感偏硬弯不到设计的角度。排查链路量实际厚度发现比设计值厚了将近0.05mm回到Allegro Cross Section检查Flex Zone的每层厚度发现Coverlay的胶层被重复计算了和板厂确认压合流程发现PI覆盖膜开窗区域和胶层叠加后比预想厚结论Coverlay的胶层在计算时不能和基材胶层简单相加实际生产有压合溢胶。层叠表里必须给Flex区留出溢胶余量以及总厚度公差。修复方法层叠表中Flex区厚度不取理论最大值取中值并和板厂提前确认最小和最大弯曲半径。6.3 过渡区铜皮断裂和裂纹现象可靠性弯折测试几百次后过渡区附近有铜皮裂纹甚至开路。排查链路用放大镜观察断裂位置都在铜皮转角的直角点去Allegro检查走线发现这些位置是线宽突变例如4mil忽然变到10mil检查铜皮过渡区存在尖锐Shape尖角结论铜皮几何突变等于应力集中和叠层厚度关系不大是布线形态问题。修复方法过渡区所有铜皮和走线都需要加泪滴走线宽度渐变要平滑禁止直接跳变。Allegro里我用Conductor Smoothing功能处理Shape轮廓再统一加泪滴。7. 几个让我省心的Allegro刚挠结合操作习惯7.1 叠层图不依赖口头说明直接截图存档每次发板之前我会把Cross Section里Main Zone和Flex Zone分别截图做成一份叠层对比图附在制造说明里。板厂工程经常说文字描述不如图片直观有图就少一轮确认。7.2 17.2以下的版本没有Stackup Zone时怎么办如果是Allegro 16.x或者更老版本没有完整的Stackup Zones功能。那时候我的做法是建一套带“假介质”的叠层把柔性区介质用低厚度FR4代替并在文档里单独说明。实际阻抗计算全在Si9000里搞定Allegro里只负责布线和规则的48%检查。能升级到17.4就早点升级Stackup Zones功能省去大量手工标注工作量。7.3 规则文件里为Flex区单独开一个DRC子类在Constraint Manager里我会建一个独立的DRC子类设置Flex区域内所有Physical和Spacing规则的颜色和显示样式。因为Flex区的规则往往更严格如果没有专门的规则集DRC报错会被淹没在密密麻麻的间距错误里。7.4 用Auto-Stackup做厚度校验Allegro Cross Section里面有一项自动厚度累加功能可以按每个Zone分别算出总板厚。我每次修改一个介质厚度都会盯着这个总厚度看两边数据防止改了刚性区却意外影响柔性区的厚度预算。刚挠结合FPC的层叠结构设计说难不难说容易也不容易。把材料链、弯曲半径、Stackup Zone规则、过孔禁区这几件事在项目初期想清楚后面布线就顺了如果一开始只图叠层表好看后面每个环节都会来找你兜底。希望这篇基于Allegro实操的经验能让你少走几趟弯路。
返回列表