ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Cadence Allegro封装制作全流程:从焊盘设计到丝印整理

Cadence Allegro封装制作全流程:从焊盘设计到丝印整理 做封装这件事你在原理图库和PCB库之间来回折腾的时候迟早得自己上手。Cadence 17.4的Allegro封装制作流程说难不难但步骤分散在几个编辑器里刚接触的人容易卡在“不知道下一步点哪里”。这篇教程就是把你从零开始画一个完整PCB封装的过程完整过一遍从焊盘设计到丝印整理全部按实际操作的顺序来每一步尽量说清楚为什么要这么做。这篇内容适合几类人刚转行做硬件设计的新人手头有数据手册却不知道如何转成封装尺寸的技术支持以及平时用Allegro画板但封装一直依赖别人、这次想自己掌握全流程的工程师。不管你是画通孔插件封装还是表贴封装整个思路都通用。Cadence 17.4和16.6在封装编辑器上的操作逻辑基本一致我以17.4的界面为主但老版本用户也能照着做。1. 做封装前先把这些东西定下来很多人打开Allegro就开始画画到一半发现尺寸不对再回头改效率低还容易漏。封装制作的真正起点不是软件而是数据手册你先得把元件手册里的关键尺寸全部吃透。1.1 先看数据手册这几个参数必须拿准拿到一颗芯片或连接器的规格书别急着看电性能参数先找“Package Drawing”或“Mechanical Dimensions”这几页。你需要从中提取的核心尺寸包括引脚间距Pitch、引脚宽度Lead Width、引脚长度Lead Length、器件本体长宽高、引脚数量以及引脚相对于本体中心的偏移量。以最常见的SOIC-8封装为例手册会给出像“1.27mm pitchbody width 3.9mmlead width 0.41mm”这样的信息。这些数字不是说直接照抄就行焊盘尺寸要在此基础上做一些补偿通常是用引脚宽度或长度加一个固定增量具体增量多少和焊接工艺、组装精度有关这个稍后细说。另外特别注意一点有些手册标注的是“推荐焊盘尺寸Recommended Land Pattern”如果是这种情况你可以直接用推荐值不用再自己加。一个有经验的工程师拿到手册第一件事是做一张“封装参数提取表”把引脚数、间距、宽度、长度、本体尺寸、高度逐个列出来再标注哪个数字来自手册的哪个图。这个过程看着繁琐却能帮你避免最致命的问题手册单位看错。很多国外器件手册使用毫米和mil两套单位标注混在一起你要是把0.65mm看成0.65mil做出来的封装就差了40倍完全不能用。1.2 Cadence 17.4的封装设计流程总览在Allegro中一个完整的PCB封装由两部分组成焊盘Padstack和封装符号Symbol。焊盘是封装的基础单元定义的是金属部分和过孔结构封装符号则是在Allegro中用这些焊盘拼出来的元件整体包括引脚、外形、丝印、装配层和占地区域。所以标准流程是先打开Padstack Editor单独建焊盘把它保存到焊盘库路径下然后在PCB Editor中新建封装文件调用这些焊盘摆放引脚位置再画外框和丝印最后保存为.dra文件并生成.psm文件供PCB调用。这个流程在Cadence 17.4里没有变化但要注意17.4的库文件格式与老版本兼容性问题跨版本使用库时最好先在“Package Design”模式下检查一遍引脚和丝印位置是否正确。初学者经常犯的一个错是跳过了焊盘制作直接在封装里用一个简单的矩形焊盘代替。临时画个铜皮确实能让封装“看起来完成了”但后续做DRC检查、出Gerber、做仿真都会出问题因为缺少了焊盘应有的层叠结构和钻孔信息。所以老老实实走正式流程磨刀不误砍柴工。2. 焊盘是封装的地基先把它搞定焊盘制作是在Padstack Editor里完成的。它决定了一个引脚连到PCB上时哪些层有铜、哪些层没有以及孔的尺寸。焊盘做错后面的封装就是空中楼阁。2.1 焊盘类型怎么选焊盘分为两大类通孔焊盘和表贴焊盘。通孔焊盘用在插件元件、连接器、接插件上需要通过钻孔穿过整个板子表贴焊盘用在贴片元件上只存在于表面层。从Padstack Editor的“Type”选项上你可以看到“Through”和“Single”两种定义方式。通孔焊盘需要定义的是从顶层、内层到底层的完整层叠结构表贴焊盘只需要定义“表层焊盘Regular Pad”和“阻焊层Soldermask”顶层的焊盘就作为器件的焊接面。还有一种“Blind/Buried”类型用于盲埋孔和HDI板设计普通项目用不到新手可以先忽略。对于引脚数量少的被动元件比如0402电阻表贴焊盘就是两个矩形对BGA这类阵列封装焊盘形态相对统一更讲究命名规范因为库里可能有几百个封装需要批量管理。2.2 Padstack Editor界面要点与参数设置打开Padstack EditorStart菜单里搜索Padstack Editor或从Allegro的Tools菜单下进入第一步就是设置单位。很多人习惯用Mils我建议你先看数据手册用的是什么单位。Cadence 17.4支持在Preference中切换单位显示但如果你在毫米和密尔之间反复切换很容易产生小数误差。通常我建议直接用Mils来定义因为Allegro对整个设计环境的默认单位是Mils画板时栅格、线宽、间距规则也都是基于Mils的。但手工测量时用毫米会比较直观解决方法是手册用毫米读数然后用计算器转成Mils转换过程保留至少两位小数。举个例子一个引脚宽度为0.4mm、长度为1.2mm的焊盘转换成Mils就是15.75mil和47.24mil。参考焊盘尺寸时一般会在引脚宽度方向上每边增加4mil左右长度方向上每端增加6mil这样计算下来焊盘大约是24mil×60mil。这里有一个细节表贴焊盘的Regular Pad常规焊盘通常会比引脚宽是为了容纳贴片机的贴装误差和焊料润湿。但也不宜过大焊盘太宽会造成元件自对准不良甚至引起立碑现象尤其是阻容件。对于通孔焊盘要设置的是钻孔尺寸和焊盘外径。钻孔尺寸一般比引脚直径大8~12mil焊盘外径比钻孔大18~25mil。以常见的0.8mm引脚为例钻孔选0.9mm约35mil焊盘外径选1.5mm约59mil。这些数值不是拍脑袋定的它们对应了常规的制造能力、镀铜工艺和装配精度。如果你的PCB工厂工艺能力一般焊盘外径过大反而会让钻孔附近的基材强度变差。在Padstack Editor的“Layers”选项卡里你需要为每一层指定焊盘的形状和尺寸。通孔焊盘通常顶层、底层设置同样的圆形焊盘内层也是一样表贴焊盘只需设置TOP层和阻焊层。阻焊层的开窗尺寸一般比焊盘大3~4mil这个参数在“Soldermask”一栏里设置。注意如果是BGA焊盘还会涉及“Thermal Relief”热焊盘和“Anti-Pad”反焊盘的设置这直接关系到电源平面的连接质量稍后单独说。2.3 热焊盘和反焊盘有什么用当你把通孔焊盘放在一个完整的电源或地铜皮上时如果没有做热焊盘和反焊盘焊盘会与铜皮完全短路而且焊接时热量会被整块铜皮吸走导致虚焊。所谓热焊盘Thermal Relief是让焊盘通过几根细的“辐条”与铜皮相连既能保证电气连接又限制了热量传导路径反焊盘Anti-Pad则是把焊盘周围挖空一圈让过孔或者引脚在穿过平面层时不会意外短接。在Cadence中设置热焊盘的时候要指定辐条数量通常是4根和辐条宽度比如4根辐条各宽12mil中间以45度或90度交叉连接。反焊盘的尺寸通常比焊盘外径大6~10mil形成一个环形的空隙。这些设置在Padstack Editor里都有对应的选项在做电源模块或主板这类大面积铺铜的板子时这一项特别重要。热焊盘和反焊盘的数值也不是越大越好。反焊盘过大会在平面上形成比较大的空洞影响平面层电流回流路径和阻抗连续性过小则可能导致焊盘和铜皮距离太近制造时产生毛刺。在2.4GHz以上的射频板上这方面的选择会更讲究但常规数字板用常规参数就行。2.4 命名规范与库路径设置焊盘命名是新手经常忽略、到后面项目大时才后悔莫及的地方。一个PCB库里有几十上百种焊盘并不奇怪如果命名随意后期找一个焊盘就要挨个点开看效率极低。建议采用“型号_尺寸_类型”的格式比如“SOIC8_P24_W60_T”表示SOIC8封装、引脚间距24mil、焊盘宽度60mil、通孔(“Through”)“0402_L20_W24_SMT”表示0402电阻表贴焊盘长度20mil宽度24mil。命名规则不需要统一到全公司但至少自己项目里要能一看就懂。保存焊盘的时候需要确认你的焊盘库路径是有效的。Cadence在环境变量里通过“padpath”来指定焊盘库位置在Allegro的Setup - User Preferences - Design Paths中可以查看和修改。保存后的.pad文件必须放在这个路径下否则后面调用时软件会提示找不到焊盘。实际工作中有很多“明明存了焊盘却找不到”的报错百分之八十都是路径环境变量没有配置好。提示在Setup - User Preferences - Design Paths中padpath和psmpath是两条关键路径前者对应焊盘.pad文件后者对应封装符号.psm文件。改完路径后记得重新启动Allegro才能让设置生效。3. 在Allegro里一步步画出封装焊盘就绪之后真正的“画封装”环节才正式开始。这个部分需要打开的是Allegro PCB Designer在File - New中选择“Package Symbol”类型来新建一个封装文件。3.1 新建封装文件别选错类型新建封装时要特别注意文件类型选择。Allegro的“Drawing Type”选项里有好几种包括Board、Package Symbol、Mechanical Symbol、Format Symbol等。你要选的是“Package Symbol”而不是“Mechanical Symbol”。前者可以放置引脚、定义电气属性后者只能画机械外形不能放引脚。选错类型后面会非常痛苦。在Drawing Name里填一个文件名这个文件保存时会生成一个.dra文件。这个文件名会作为你的封装名建议和元件的型号对应比如“SOIC8_N”“STM32F103_LQFP48”这样方便后续在PCB中调用。命名规则也应该遵守公司的库管理规范如果公司没有规范自己定一个统一的、有意义的规则。3.2 设置栅格与设计参数打开封装编辑器后第一件事不是画图而是设置栅格Grid。Allegro的默认栅格可能和你的元件引脚间距不匹配导致放置引脚时位置总是差一点点。在Setup - Grids中你可以设置“Non-Etch”和“All Etch”两个状态下的X、Y步进。对于引脚间距是1.27mm50mil的元件可以把栅格设为25mil或5mil这样所有引脚放置的位置都能对齐到栅格上。另一个需要设置的是“Design Parameter”中的精度Accuracy。建议把精度设为2位小数也就是0.01mil。太低的精度会导致尺寸微小误差特别是在摆放多引脚器件的时候引脚之间的相对位置会被放大。在Setup - Design Parameter Editor - Design - Accuracy中设置单位精度。还有一项是绘图尺寸Drawing Size封装的图纸区域不用开得太大A4或A3大小足够但必须能容纳器件全部元素。如果图幅太小后面画丝印或者标注时会出现元素超出图纸边界的情况导出时也容易被软件截断。3.3 放引脚方向、编号与原点放置引脚使用的是Layout - Pins命令快捷键是P。在弹出的Pin Options面板中你需要选择正确的焊盘名Padstack然后设置引脚编号Pin Number和引脚方向Pin Direction。引脚方向主要影响后续DRC检查中引脚连接关系一般输入型引脚设为Input、输出型设为Output但对封装来说设置为Bidirectional通常最省事。放置引脚时最核心的规则是第一个引脚Pin 1放在原点左边或者下边并确定好所有引脚的排列顺序。通常原点应该设置在器件的几何中心而不是任意角落。以SOIC-8为例如果器件引脚间距是50mil行间距是250mil那么你可以把Pin 1放在坐标-150, -125处然后按顺序放置其他引脚。放置引脚的时候需要注意方向。光标周围会有一个引脚的预览形状按R可以旋转按F可以翻转。操作上先输入坐标再点击放置比鼠标粗放地摆放精确得多。很多新手不知道可以直接输入XY坐标结果所有引脚只能靠目测对齐最后间距参差不齐这是封装制作的大忌。放完引脚后应该立即检查引脚之间的相对位置是否正确。用Display - Highlight和Dimension - Linear来测量相邻引脚间距如果和手册不一致马上调整。这里有个经验放完引脚后先不要画任何图形立刻用工具的“Show Element”命令查看每个引脚的坐标确保编号和位置对应再往下进行。3.4 画本体轮廓与Place Bound引脚放好接下来画的是器件的实体外形。外形画在“Assembly_Top”和“Silkscreen_Top”两层但还有一个容易被忽略的图层叫“Place_Bound_Top”它是一个逻辑占位区域定义了器件在PCB上占用的总面积用于防止元件之间重叠和规划布局。Place Bound区域应该比器件本体略大一般大出10~20mil它不会被制造出来只存在于设计数据中。画Place Bound使用Add - Rectangle命令在Options面板中把Active Class and Subclass选为“Package Geometry”和“Place_Bound_Top”然后按器件的最大外形尺寸画出矩形。同时需要在该图层上设置器件的“高度”属性。高度属性在后续做3D视图或机械干涉检查时非常关键。选中Place_Bound矩形用Edit - Properties在弹出的对话框中添加“Package_Height_Max”属性填入器件高度例如2.0mm这样在3D模型和碰撞检查时能正确识别。3.5 设置元件编号和属性在封装里需要设置一个元件编号RefDes的占位符这个占位符在PCB上会以“U1”“R1”这样的形式显示。它的位置在丝印层可以用Add - Text命令添加文字内容填写“REFDES”并且设置字体层级Change - Text Block建议设置为3号或者4号字宽度至少5mil否则加工出来的字会看不清。这个占位符会在原理图导入PCB后被自动更新为实际编号。还有一个容易忽略的属性是“DEVICE”属性它用来关联原理图符号和PCB封装。在Setup - Device Setup中设置器件类型或者在属性编辑器里添加“DEVICE”和“VALUE”属性。这些属性直接关系到原理图网表导入PCB时能否正确匹配库管理越严格的地方越重视这一项。讲到这一步封装的主体已经完成了。接下来要花心思的地方是丝印和标注它看着简单实际很多公司在PCB评审时会盯着丝印挑问题。4. 丝印层不只画个框就行丝印Silkscreen是PCB表面印刷上去的文字和符号层不参与导电但对于制造、焊接、调试和后期维修都至关重要。封装里的丝印是原理图库封装到PCB后显示在板子上的关键图形如果画得不规范生产阶段就会出问题。4.1 丝印的设计规则丝印的线宽至少要5mil以上普通工艺建议采用6mil或8mil如果是高密度板可以缩小到4mil但不能再低了否则加工时断线模糊。丝印的颜色一般是白色或黄色不影响电路功能但如果丝印线跨过焊盘可能会影响阻焊层附着力和焊接润湿性所以规范要求丝印线不能进入焊盘区域。在Allegro中丝印线画在“Silkscreen_Top”层使用Add - Line命令线宽在Options面板的Line Width中设置。常用的丝印外框线宽我一般用0.127mm5mil或0.203mm8mil具体取决于板子密度。画完线之后要把线宽统一如果后期需要批量调整可以用Edit - Change的线宽修改工具选中所有丝印线一次性修改。外框的位置也有讲究。丝印外框比器件本体尺寸大5~10mil是为了在器件贴偏时仍能看到轮廓不至于丝印线和本体重叠产生混淆。长宽方向一般设成比本体外扩10mil即可不用太大否则相邻器件空间紧张时丝印会打架。4.2 极性标识和管脚一标识极性标识是丝印中最容易被新手漏掉的内容但它在生产、手工焊接、维修时都是关键的定位信息。常见的方式是在Pin 1附近画一个小圆点或者画一个“1”字放在丝印线框外的角落。有些封装比如二极管用一条竖线表示负极对应关系电解电容则会在丝印上画出半圆形的凸起区域代表正极方向。需要特别强调的是丝印上极性的逻辑和元件实物必须一致。说明白一点你画的标识必须指示出焊盘1的位置而焊盘1的位置又必须在封装库里和原理图符号的1脚一致。这个一致性检查建议在封装完成时做一次“符号对比”——分别在原理图符号库和PCB封装库中显示Pin 1的位置手动目视比对。在Allegro中给Pin 1添加标识可以使用Add - Text或者画一个圆放置在Pin 1的斜对角圆心偏移到丝印区域外。用圆点标识时圆的直径一般设为20mil左右线宽和丝印一致。还有一种常用做法是直接在Pin 1引脚旁边画一个小矩形框标注“1”这种方法对多排引脚芯片尤其有用。4.3 装配层与建议结合除了丝印层还有一个层是装配层Assembly_Top。这一层是给贴片机做视觉定位和人工查看用的和丝印的区别在于装配层图形通常和器件本体外形一致并且比丝印层更精细。装配层在PCB打样时不会直接印刷出来但它在生成装配图时会被使用有的工厂也会把它作为丝印的参考层。在Allegro中装配层的外形一般使用Add - Rectangle或Add - Line画矩形放在“Assembly_Top”层。装配层图形不需要加粗线宽用0.1mm甚至更细的线即可它的精确定位比视觉效果更重要。如果你的封装同时有本体外形和丝印外形装配层和丝印层可以分开画数据上允许两者大小不同但实际意义是要一致的。再补充一个实用建议如果你的板子会做3D模型展示或者机械装配验证装配层的尺寸要严格按照元件的最大外形尺寸画不能为了美观而缩小。它直接影响你在MCAD工具中做干涉检查时的结果。5. 常见问题与排查技巧实录封装做到上机、导出、流片你迟早会遇到几个经典报错和视觉上的“怪象”。这里挑几个在Cadence 17.4的封装场景里最容易出现的问题把排查思路直接写出来。5.1 焊盘保存不了或找不到焊盘保存时提示“Unable to save padstack”最常见的原因是焊盘库路径不对。你在Padstack Editor里保存焊盘时它会默认存到一个路径但这个路径和Allegro Design环境中设置的padpath不一致。解决办法就是在Padstack Editor的Options栏里查看当前保存路径或者在Allegro的Setup - User Preferences中把padpath改成自己统一管理的目录。还有一种情况是保存时提示“Name already exists”这可能是因为你打开了别人库里的焊盘做修改后直接保存覆盖了源文件。很多时候厂家的封装库是只读的你应该在保存时换一个名字或者把库文件复制到自己的目录里再修改。我在处理外来库文件时习惯先复制一份再改名从源头上避免把原厂库改烂。5.2 “Cell is read-only” 的问题建立封装后如果在编辑器中保存时报“Cell is read-only”说明这个封装文件被设置为只读属性或者它在库中被标记为只读状态。这种问题常见于你从别人那里拷贝过来的封装文件。解决方法是选中文件后右键查看属性取消“只读”勾选或者在Allegro中检查Library Path看文件是否存储在带权限限制的只读目录中。还有一种隐蔽的情况是文件被签出Check Out这种情况下你需要联系库管理员确认或者在工作区中另存为一个新封装名。这个问题看着简单但经常出现在项目Deadline之前特别影响心情。我的建议是把外部获取的库文件统一复制到一个自己完全控制的目录下再做任何修改并且在打开文件的时候看一下窗口顶部的文件名路径确认不是指向系统保护目录。5.3 封装导入PCB后焊盘不显示做完封装放进PCB有时候发现某些引脚的焊盘不见了只剩一个丝印框。这种情况大概率是焊盘文件没有被正确加载或者焊盘定义中的层叠设置有误。在PCB Draw模式下用Display - Status检查“Pads”和“Symbols”的完成状态。如果显示缺符号回到封装编辑器中检查是不是引脚参考的焊盘文件丢失或者用Tools - Padstack - Modify Design Padstack刷新一次焊盘定义。还有一个常见原因是封装中添加了引脚但是没有给引脚连接网络在PCB中使用时Deck网络显示为空。这并不代表焊盘不见了而是逻辑上没有连接到任何网络。用Edit - Properties查看引脚的网络属性或者在PCB里手动分配网络即可。5.4 原理图引脚编号映射错误原理图导入PCB时报“引脚编号不匹配”的错误大多是封装中引脚编号与原理图符号引脚编号不一致。比如原理图里SOP-8的8个引脚编号是1~8但你的封装里误把某个引脚编号写成9或A两边对应不上导入就会失败。解决办法是在封装编辑器中用Edit - Text把所有引脚的编号调成和原理图符号完全一致特别注意数字“1”和字母“I”在一些字体下容易混淆要仔细核对。这个错误在新人身上特别常见。如果你画的是多焊盘连接器原理图引脚编号可能包含字母或组合比如“A1”“B2”封装和原理图必须严格一致一个字母错了整颗元件都连不上。我建议每做一个新封装都用原理图里的对应Symbol做一次交叉比对可以截图对照也可以直接看引脚数量的统计。5.5 丝印线宽出光绘时被异常处理出光绘后丝印线在某些区域突然从清晰变模糊甚至断线这通常不是丝印本身画错而是光绘设置中对于最小线宽做了限制或者把某些层误选了。Cadence出光绘文件时在Artwork Control Form中如果你把“Silkscreen_Top”层的线宽改成“Undefined line width”下填了一个过大的数值它会强制把所有丝印线加粗导致图形变形。正确的做法是保持undefined line width为0或4mil并把suppress shape填充等选项按实际需求配置。另外丝印线如果画在了板框边缘出光绘后会被切割掉一部分视觉上就会看到“断丝印”。这是板框设计问题不是光绘问题需要在封装阶段就检查丝印是否超出板边或靠近孔位。在Allegro中可以开启Manufacturing - Outline层查看板框范围确保丝印在板框内。最后再分享一点个人习惯封装制作是一件极度依赖细致的工作花半小时精心做一个标准封装远比赶时间随便画一个、后面在PCB阶段反复返工要划算得多。我自己在做封装时一直保持一个习惯每个封装完成后在分配层上留下一个版本注释比如“v1.0 2025-xx-xx初始化封装”方便后面任何人看到这个封装都能知道它是什么时候、由谁建立的。这种做法在团队项目里尤其能省去不少沟通成本。Cadence 17.4的Allegro封装流程并不复杂但每个细节都值得重视。焊盘尺寸的选取、丝印线宽的控制、引脚编号的对应关系这些都是在项目曝光后才会显现价值的工作。希望这篇教程能帮你把这条路走顺少踩几个我踩过的坑。如果后续有条件我会再整理一篇关于复杂封装——比如BGA和连接器——的制作心得以及如何把自制封装和原理图符号做好联动那部分内容同样有意思。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进