ARTICLE DETAIL

资讯详情

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

Cadence Allegro封装库创建全流程:从Padstack到PCB导入实战

Cadence Allegro封装库创建全流程:从Padstack到PCB导入实战 1. 封装库创建前的整体思路与准备工作1.1 为什么封装库是PCB设计的根基搞硬件设计的都清楚原理图是逻辑封装才是物理世界的落脚点。你原理图画得再漂亮网表导进PCB之后发现某个器件的焊盘间距错了0.1毫米整块板子可能就废了。我见过太多项目因为封装问题导致打样回来贴不上料尤其是那些引脚密集的QFN、BGA器件焊盘尺寸差个几丝贴片良率直接崩盘。Cadence Allegro在高速高密度PCB设计领域一直是标杆级工具它的封装库体系Package Symbol和焊盘体系Padstack分离设计灵活性极高但代价就是上手门槛不低。很多从AD转过来的朋友一开始很不适应——在AD里画个封装就是放几个焊盘改改尺寸到了Allegro里得先建Padstack再建Package Symbol还要设置Place Bound、Silkscreen、Assembly等一堆子类。这套流程看似繁琐但一旦你理解了它的设计哲学就会发现这种分层管理在大规模项目中优势明显同一个封装可以引用不同的Padstack同一个Padstack可以被多个封装复用改一个焊盘参数所有引用它的封装同步更新。这篇文章面向的是刚接触Allegro封装库创建的工程师或者之前一直用别人的库、想自己动手建标准器件的朋友。我会从Pad Stack Editor开始一步步走完一个标准SMD器件封装的完整创建流程包括焊盘设计、封装绘制、参数设置和常见问题排查。所有操作基于Allegro 17.4版本16.6的操作逻辑基本一致差异我会单独标注。1.2 建库之前必须想清楚的几件事动手之前有几个前置决策直接影响后续效率。第一你的库放在哪里。Allegro通过padpath和psmpath两个环境变量来定位焊盘和封装文件。我强烈建议在项目根目录下建一个lib文件夹里面分padstacks和symbols两个子目录然后在Setup - User Preferences - Paths - Library里把这两个路径加进去。这样做的好处是项目自包含换台电脑或者发给同事只要把整个项目文件夹拷过去就能用不会出现“找不到焊盘”的报错。很多人图省事直接用全局库路径结果项目迁移时各种缺文件这个坑我踩过不止一次。第二焊盘尺寸从哪来。答案永远是查器件Datasheet的Recommended Land Pattern。不要凭经验拍脑袋也不要用AD封装库直接转——不同EDA工具的焊盘补偿算法不一样转过来尺寸可能偏大或偏小。Datasheet上给的Land Pattern是器件厂商推荐的焊接尺寸已经考虑了贴片公差和焊锡爬升直接拿来用最稳妥。如果Datasheet没给那就得自己算后面我会讲计算方法。第三命名规范先定好。封装命名看起来是小事但库大了之后命名混乱会让你痛不欲生。我的习惯是[封装类型][引脚数]_[体宽]x[体长]P[间距]比如QFN40_6x6P0.5表示40脚QFN、本体6x6mm、引脚间距0.5mm。焊盘命名则用[类型][长]x[宽]比如SMD30x15表示30mil长、15mil宽的表贴焊盘。统一规范之后搜索和复用效率会高很多。注意Allegro的封装名称不区分大小写但建议统一用大写避免在不同操作系统之间迁移时出现文件名匹配问题。2. Pad Stack Editor焊盘设计核心细节2.1 焊盘设计的基本参数与计算逻辑Pad Stack Editor是Allegro封装体系的原子级工具所有封装都建立在焊盘之上。打开方式很简单开始菜单里找Padstack Editor或者在Allegro里通过Tools - Padstack - Modify Design Padstack进入。新建一个焊盘首先要选类型。表贴器件选Surface Mount通孔器件选Through Hole过孔选Via。这里以最常用的表贴矩形焊盘为例。关键参数就三个焊盘长度X方向、焊盘宽度Y方向、焊盘形状。形状一般选Rectangle圆形焊盘选Circle有些IC的散热焊盘会用Oblong长圆形。尺寸怎么定以0402封装的电阻为例Datasheet推荐的Land Pattern通常是焊盘长度0.55mm焊盘宽度0.60mm两焊盘中心间距0.70mm。但Allegro默认单位是mil所以需要换算0.55mm ≈ 21.65mil0.60mm ≈ 23.62mil。我一般会取整到22mil和24mil误差在可接受范围内。这里有个经验公式可以参考对于片式元件焊盘长度 ≈ 元件端头长度 0.2mm焊盘宽度 ≈ 元件宽度 0.1mm。但这个公式只适用于没有Datasheet推荐值的情况有推荐值一定优先用推荐值。在Pad Stack Editor里Parameters选项卡下设置Units选Millimeter或Mil建议跟Datasheet保持一致减少换算错误Decimal Places选4精度够用Pad Geometry选RectangleWidth和Height填入计算好的尺寸2.2 阻焊层与钢网层的处理技巧焊盘本体尺寸定好之后还要设置阻焊层Soldermask和钢网层Pastemask。这两层的尺寸直接影响焊接质量。阻焊层是PCB上开窗让焊盘露出来的区域。常规做法是焊盘本体尺寸每边外扩0.05mm约2mil也就是阻焊开窗比焊盘大0.1mm。这个值叫Solder Mask Expansion在Pad Stack Editor的Mask选项卡里设置。但要注意有些PCB厂家的工艺能力有限阻焊对位精度可能是±0.075mm这时候外扩0.05mm可能不够会导致焊盘边缘被阻焊覆盖。我一般会跟板厂确认他们的阻焊对位公差如果大于0.05mm就把外扩值加到0.075mm甚至0.1mm。钢网层是SMT贴片时锡膏印刷的区域尺寸通常和焊盘本体一致或者略小一点比如每边内缩0.025mm以减少锡珠和桥连的风险。对于引脚间距小于0.5mm的器件钢网层内缩是必须的否则印刷锡膏量过大回流焊时极易短路。在Pad Stack Editor里Mask选项卡下Soldermask Top填焊盘尺寸 2 × 外扩值Pastemask Top填焊盘尺寸或略小提示如果同一个焊盘在顶层和底层都要用记得把Bottom层的阻焊和钢网也设上。虽然表贴器件一般只在一面但通孔器件两面都要开窗。2.3 热焊盘与散热过孔的设置对于需要接地的焊盘尤其是QFN的底部散热焊盘通常要打散热过孔。这些过孔在Pad Stack Editor里可以通过Drill和Thermal Relief选项卡设置。散热过孔的常规做法在散热焊盘上均匀打9个或16个过孔孔径0.2mm~0.3mm过孔间距1.0mm~1.2mm。过孔本身要盖油Tented防止锡膏流入过孔导致焊接不良。在Allegro里过孔盖油是通过阻焊层不开窗实现的——在Pad Stack Editor里把过孔的Soldermask尺寸设为0即可。热焊盘的连接方式有全连接Solid和十字连接Thermal Relief。对于需要手工焊接的器件十字连接有利于散热避免焊接时热量被铜皮迅速吸走。对于回流焊的器件全连接更常见因为回流焊温度均匀不需要考虑手工焊接的散热问题。在Thermal Relief选项卡里可以设置十字连接的辐条宽度和间隙一般辐条宽度设为0.3mm~0.5mm间隙0.2mm~0.3mm。3. 封装符号创建全流程实操3.1 新建Package Symbol与子类规划Padstack建好之后进入Allegro的PCB Editor选择File - New类型选Package Symbol然后指定封装名称和保存路径。新建之后第一件事是设置工作区域和栅格。Setup - Design Parameters里Design选项卡下把Extents设成合适的大小比如-5000到5000 mil。Grids选项卡里设两套栅格一套大栅格比如50mil用于放置器件本体轮廓一套小栅格比如5mil或1mil用于精细调整。我习惯用快捷键F10切换栅格效率很高。接下来规划子类Subclass。Allegro的封装符号包含多个子类每个子类承载不同的信息子类名称用途是否必须Pin引脚焊盘必须Package Geometry / Silkscreen_Top丝印轮廓必须Package Geometry / Assembly_Top装配轮廓推荐Package Geometry / Place_Bound_Top放置边界必须Package Geometry / Courtyard_Top禁布区推荐Ref Des / Silkscreen_Top位号丝印必须Ref Des / Assembly_Top位号装配推荐Silkscreen是印在板子上的白色油墨用于标识器件位置和方向。Assembly是给装配图用的不印在板子上但出装配图时需要。Place_Bound是器件的占位区域用于DRC检查器件是否重叠。Courtyard是比Place_Bound稍大一圈的禁布区防止器件太靠近导致焊接或维修困难。3.2 放置焊盘与引脚编号放置焊盘用Layout - Pins命令或者直接点工具栏上的引脚图标。在弹出的选项里Padstack选择刚才建好的焊盘X和Y填坐标Rotation填旋转角度Pin Number填引脚编号。对于多引脚IC一个个放太慢。可以用Layout - Pins里的Multiple Pins模式设置起始编号、增量、行列数和间距一次性放一排。比如QFN的40个引脚分成四边每边10个间距0.5mm用Multiple Pins几分钟就能放完。放完之后一定要用Display - Measure工具量一下首尾引脚的距离跟Datasheet核对。我遇到过有人把0.5mm间距的QFN按0.65mm放了结果画完PCB才发现只能删掉重来。引脚编号的显示位置也要调整。默认编号在焊盘中心会跟焊盘重叠看不清。在Setup - Design Parameters - Display里把Pin Number的尺寸改小比如改成20mil然后通过Edit - Move把编号移到焊盘外侧。这个工作比较繁琐但为了后续布线和检查方便值得花时间。3.3 绘制丝印、装配与Place Bound丝印轮廓用Add - Line命令在Options面板里选Package Geometry / Silkscreen_Top线宽一般设0.15mm约6mil。丝印线不能压在焊盘上否则印刷时油墨会沾到焊盘影响焊接。丝印轮廓一般比器件本体大0.2mm左右给制造公差留余量。装配轮廓用同样的方法子类选Package Geometry / Assembly_Top线宽可以细一点0.1mm即可。装配轮廓应该精确反映器件本体的物理尺寸因为装配图是给结构工程师和产线用的。Place Bound用Add - Rectangle或Add - Shape绘制子类选Package Geometry / Place_Bound_Top。这个区域应该覆盖整个器件包括引脚的投影范围。Place Bound的作用是DRC检查时判断两个器件是否物理重叠。如果Place Bound画小了两个器件实际会撞在一起但DRC不报错那就麻烦了。Courtyard用Add - Shape绘制子类选Package Geometry / Courtyard_Top。Courtyard比Place Bound每边大0.25mm左右用于确保器件之间有足够的间距进行焊接和返修。对于高密度板Courtyard可以适当缩小但不能小于0.1mm。位号Ref Des的放置用Layout - Labels - Ref Des选择Silkscreen_Top子类放在器件轮廓外侧。位号文字高度一般设0.8mm~1.0mm线宽0.15mm。注意位号不要跟丝印轮廓重叠也不要放在焊盘上。4. 封装验证与常见问题排查4.1 用Padstack和Symbol Checker做自检封装建完之后不要急着用。Allegro自带检查工具Tools - Padstack - Check可以检查焊盘是否有非法参数Tools - Package Symbol - Check可以检查封装符号的完整性。我一般还会手动做几项检查用Display - Element点击封装查看所有子类是否齐全用Display - Measure量关键尺寸跟Datasheet逐项核对在Setup - Constraints - DRC里跑一遍DRC看有没有间距违规把封装放到一个测试板上跟其他器件一起跑DRC检查Place Bound和Courtyard是否合理4.2 常见报错与解决方法报错1Padstack not found。原因是padpath环境变量没设对或者焊盘文件没放在指定路径下。检查Setup - User Preferences - Paths - Library里的padpath是否包含焊盘所在目录。报错2Pin number mismatch。原理图符号的引脚编号和封装引脚编号不一致。检查原理图符号的引脚编号是否从1开始连续封装是否漏放了某个编号的焊盘。报错3Silkscreen overlap with pad。丝印线压到了焊盘。用Edit - Move把丝印线移开或者用Edit - Vertex调整丝印线的形状绕开焊盘。报错4Place Bound overlap。两个器件的Place Bound重叠。如果是故意的比如多个器件共用散热器可以在Constraint Manager里给这两个器件加一个Place Bound的例外规则。如果不是故意的调整器件位置或缩小Place Bound。报错5Courtyard overlap。跟Place Bound类似但Courtyard的规则更严格。在高密度板上如果实在无法避免可以在Constraint Manager里把Courtyard的检查级别从Error降为Warning。4.3 封装库的版本管理与复用封装建好之后建议用Git或SVN做版本管理。每次修改封装提交时写清楚改了什么、为什么改。我见过一个项目因为封装库没有版本管理两个人同时改同一个封装结果合并时冲突导致一批板子焊盘尺寸错了。复用方面Allegro支持从现有PCB中导出封装File - Export - Libraries可以把PCB中用到的所有封装和焊盘导出到指定目录。这个功能在接手别人项目或者从旧项目迁移时特别有用。但要注意导出的封装可能包含项目特定的参数比如特定的阻焊外扩值复用到新项目时要检查一遍。提示从PCB导出封装时Allegro会同时导出Padstack和Symbol。如果只想导出Symbol可以在Export Libraries对话框里取消勾选Padstacks但这样导出的Symbol会引用原来的Padstack路径换项目后可能找不到焊盘。5. 从封装到PCB的衔接与效率提升技巧5.1 封装导入PCB的完整流程封装建好之后怎么用到PCB里标准流程是原理图设计完成后在Allegro里新建PCB然后File - Import - Logic导入网表。网表里包含了每个器件的封装名称Allegro会根据psmpath去搜索对应的.dra文件。如果某个封装找不到Allegro会报错并列出缺失的封装名称。这时候要检查封装名称是否跟网表里的一致大小写不敏感但拼写要一致、psmpath是否包含封装所在目录、封装文件是否完整.dra和.psm两个文件都要有。导入成功后用Place - Manually手动放置器件或者用Place - Quickplace自动放置。放置时注意器件的方向尤其是极性器件二极管、电解电容、IC的方向不能搞反。5.2 快捷键设置与批量操作Allegro的快捷键设置是提升效率的关键。在Setup - User Preferences - Ui - Input里可以自定义快捷键。我常用的几个F2Zoom FitF3Zoom InF4Zoom OutF5切换栅格F6Display ElementF7MoveF8CopyF9Delete批量修改封装属性可以用Edit - Find配合Edit - Change。比如要把所有封装的丝印线宽从6mil改成5mil先Find byPackage Geometry / Silkscreen_Top然后Change线宽即可。5.3 封装库的持续维护与团队协作封装库不是建完就完了需要持续维护。我的做法是每个项目结束后把新用的封装整理一遍去掉项目特定的参数归入标准库。标准库按器件类型分类Resistor、Capacitor、IC、Connector、Inductor等每个分类下再按封装尺寸细分。团队协作方面建议指定一个人负责库的审核和合并其他人只能提交修改请求不能直接改库。这样可以避免多人同时修改导致的冲突。库的目录结构要统一所有人都用同一套padpath和psmpath配置。注意Allegro的封装文件.dra是二进制格式不同版本之间可能有兼容性问题。17.4建的封装在16.6里可能打不开反之亦然。如果团队里有人用不同版本建议统一版本或者把封装导出为通用格式如.txt的Padstack参数再导入。6. 个人实操心得与避坑经验封装库创建这件事说难不难说简单也不简单。技术门槛其实不高但细节极多任何一个细节疏忽都可能导致批量性的焊接不良。我做了这么多年踩过的坑总结下来就几条第一永远不要相信自己的记忆永远查Datasheet。我见过太多人凭经验建封装结果0402和0603的焊盘搞混了整批板子贴片偏移。Datasheet上的Recommended Land Pattern是器件厂商经过大量实验验证的直接拿来用最稳妥。第二建完封装一定要做实物验证。有条件的话用3D打印或者激光切割做一个器件模型放到焊盘上比一比。没有条件的话至少打印一张1:1的封装图拿实物器件放在上面核对。这个步骤花不了多少时间但能避免大问题。第三封装命名和目录结构要一开始就定好。库小的时候怎么命名都行库大了之后命名混乱会让你找封装找到崩溃。我的命名规范是[类型][引脚数]_[体宽]x[体长]P[间距]比如QFN40_6x6P0.5。焊盘命名用[类型][长]x[宽]比如SMD30x15。目录按器件类型分每个类型下按封装尺寸分。第四阻焊外扩值要跟板厂确认。不同板厂的阻焊对位精度不一样有的能做到±0.05mm有的只能做到±0.1mm。外扩值设小了焊盘边缘被阻焊覆盖焊接不良设大了焊盘之间容易桥连。我一般会跟板厂确认他们的工艺能力然后根据引脚间距调整外扩值。引脚间距小于0.5mm的器件阻焊外扩值建议不超过0.05mm。第五钢网层内缩是防止桥连的有效手段。对于引脚间距小于0.5mm的器件钢网层每边内缩0.025mm~0.05mm可以减少锡膏印刷量降低回流焊短路的风险。这个技巧在QFN和细间距QFP上特别有效。第六封装库要版本管理。用Git或SVN管理封装库每次修改写清楚改了什么、为什么改。我见过一个项目因为封装库没有版本管理两个人同时改同一个封装结果合并时冲突导致一批板子焊盘尺寸错了。这个教训太深刻了。第七从PCB导出封装时要注意路径问题。Allegro的Export Libraries功能可以把PCB中用到的所有封装和焊盘导出到指定目录但导出的Symbol会引用原来的Padstack路径。换项目后如果padpath没设对会找不到焊盘。解决办法是导出时同时导出Padstacks然后把新路径加到padpath里。最后再分享一个小技巧Allegro的Tools - Padstack - Modify Design Padstack可以批量修改PCB中已使用的焊盘。比如要把所有过孔的孔径从0.3mm改成0.25mm用这个工具可以一次性改完不用一个个改封装。这个功能在优化过孔参数时特别有用。
返回列表