从零开始用 Cadence Allegro SPB17.4 建封装听起来吓人其实拆开就那么几件事画焊盘、画外框、放管脚、存文件。真正劝退新手的不是操作量大而是没人告诉你哪些步骤不能省、哪些坑绕不过去。这篇就把我自己常用的流程完整走一遍从焊盘做到3D预览顺手把最小必要层到底指哪些层讲清楚。内容偏保姆级每一步都会解释为什么这么做照这个流程做完你会对 Allegro 的文件体系有个质的理解。1. 动手前的准备Allegro封装文件是怎么组织的1.1 三类文件搞清楚后面思路就通了用 Allegro 建封装本质上是在为一颗元器件准备一套身份证身体零件。新手最容易懵的地方在于一个封装不是单个文件而是由三样东西拼起来的。Padstack焊盘文件.pad描述每一个引脚在顶层、内层、底层长什么样通孔的话还要定义钻孔尺寸。焊盘文件是独立于封装单独存在的。Package Symbol封装符号.dra / .psm描述器件的外形包括丝印框、装配层、约束区域、管脚摆放位置。.dra 是工作文件.psm 是落库后 Allegro 真正调用的文件。Symbol 与焊盘的关联关系封装文件里通过引用焊盘文件名来把焊盘挂到每个管脚上。理解这三层关系你就能明白为什么网上教程都强调先建焊盘再建封装。就像配钥匙要先有钥匙坯焊盘就是那个坯。SPB17.4 的界面和 16.6 相比改动不小但底层文件逻辑没变学会一套思路版本随便换。1.2 SPB17.4环境里先搞定哪几个设置打开 Allegro PCB Designer 后建议先做两件事不然建封装时容易卡在莫名其妙的地方。第一、确认封装库路径。在 Setup - User Preferences 里搜devpath把你自己建的库路径加进去。这样后面保存封装、调用焊盘时Allegro 会优先去这个目录找文件。路径里尽量不要出现中文和空格之前有人因为用户名是中文导致封装保存失败折腾半天。第二、设置好单位精度。封装设计里单位建议统一用毫米mm精度设到小数点后四位。别觉得精度高了没必要后面做3D模型对齐、导入结构件的时候四舍五入会让你吃大亏。设置路径是 Setup - Design Parameters - Design 选项卡里的 User Units 和 Size。还有一点容易被忽略Allegro 的格点Grid设置。建封装时格点设成 0.0254mm1mil或者 0.05mm 都行但记住一个原则——焊盘间距和丝印线条尽量落在格点上否则后续画板对位会极其痛苦。我习惯把非电气格点设成 0.127mm5mil电气格点设成 0.0254mm。提示SPB17.4 默认开启了 OpenGL 加速如果电脑显卡驱动不新3D窗口偶尔会花屏。真遇到了别急着重装先把 Setup - User Preferences - Display 里的opengl选项关掉试试。2. 焊盘先行SMD与通孔Padstack的填表逻辑焊盘文件是封装的地基这一步做错后面全白搭。Allegro 里打开 Padstack Editor开始菜单里直接搜或者在 Allegro 里点 Tools - Padstack - Modify Database Padstack 也能唤起会看到一堆参数栏我一个个说。2.1 SMD焊盘的参数怎么算先看最常见的表贴焊盘SMD。比如一个 0603 电阻数据手册上焊盘尺寸是 1.6×0.8mm但你不能直接照抄因为那是器件引脚尺寸不是焊盘尺寸。焊盘要比引脚略大给贴片机和焊接留余量。我常用的经验值是宽度方向加 0.2~0.3mm长度方向加 0.1~0.15mm。以 0603 为例焊盘我通常做 0.9×0.8mm宽×高。如果器件密度高可以适当缩小但最低不能比引脚窄。在 Padstack Editor 里SMD 焊盘只需要设置这几层Regular Pad顶层选 Geometry 为 Rectangle 或 Oblong填 Width 和 Height。Soldermask阻焊层比 Regular Pad 大 0.1mm 左右。也就是每边外扩 0.05mm防止绿油盖住焊盘边缘导致虚焊。Pastemask钢网层通常和 Regular Pad 一样大或者略小 0.05mm。这个层是开钢网用的开太大锡膏会连锡。Thermal Pad / Anti PadSMD 焊盘不需要设保持空白即可。这里有个细节Allegro 的 Soldermask 默认值是等于 Regular Pad很多新手没注意直接保存。结果就是板上焊盘比实际小一圈。养成习惯每次建完焊盘点开 Soldermask 检查一遍。2.2 通孔焊盘与热风焊盘Thermal Pad插件器件、排针、直插电容这些需要通孔焊盘Through-Hole。通孔焊盘的参数比 SMD 复杂核心是钻孔尺寸和各层铜箔尺寸。钻孔尺寸等于引脚直径 0.2~0.3mm 余量。比如一个引脚直径 0.6mm 的直插电阻孔开 0.8mm 比较舒适。大了焊接容易歪小了插不进去。Regular Pad一般取孔径 0.4~0.6mm。0.8mm 的孔焊盘做到 1.3~1.4mm 比较合理。热风焊盘Thermal Pad这层是内层铜箔用的。板上内层通常是完整地平面如果直连一个大焊盘热量会被铜皮快速吸走手工补焊时特别难受。热风焊盘就是做成十字或梅花形状只留几条细的连接筋既保证电气连接又能隔热。Allegro 里 Thermal Pad 的 Flash 符号需要单独画也可以在 Padstack Editor 里直接选 Geometry 生成简化花焊盘。Anti Pad表示焊盘与内层铜箔之间的隔离间距一般取孔径 0.4~0.5mm 的圆形防止内层铜皮太近造成短路。通孔焊盘的层比 SMD 多顶层TOP、内层INNER、底层BOTTOM都要分别设置。别嫌麻烦内层跌了会直接导致多层板无法制造。2.3 命名规则把焊盘名当数据库主键用这个问题被无数人忽略但命名规则直接决定你的库好不好用。我自己的规则是类型_尺寸_孔径比如SMD_0P9X0P8、TH_1P4_0P8。如果是热风焊盘加后缀_T比如TH_1P4_0P8_T。千万别起类似pad1、pad2这种名字。等你画完一块板回头要改封装时看到这些名字会崩溃。焊盘文件一旦建好被多个封装引用改一个会牵动一大批所以命名清晰是变相给自己省事。3. 最小必要层解析封装.dra里到底哪些层不能少很多人建封装喜欢把所有层都画一遍结果文件又大又乱还没什么用。Allegro 封装里能用的层很多但对一块正常量产板来说真正必要的层就那么几个。3.1 层的分工与在PCB上的去向先明确一个概念封装里的层在放置到PCB上之后会映射成板上的几何图形。理解这个映射关系你才知道哪些层画了有意义哪些画了白画。PACKAGE GEOMETRY / SILKSCREEN_TOP丝印层最终会印在板子表面的白漆。包括器件外框、极性标记、第一脚标记。PACKAGE GEOMETRY / ASSEMBLY_TOP装配层工厂做贴片程序时用来识别器件方向板上看不到实物但贴片机上要用。PACKAGE GEOMETRY / PLACE_BOUND_TOP约束区域告诉 Layout 软件这个器件占多大范围。DRC 检查时器件间距就靠它判断不画的话器件之间不会报间距错误。PACKAGE GEOMETRY / REF DES位号文字板上显示为 R1、C2、U3 这些。PACKAGE GEOMETRY / DEVICE TYPE器件型号文本一般只在封装编辑器里可见板上可以不开显示。SILKSCREEN_TOP 和 ASSEMBLY_TOP 经常被新手混淆。丝印是给肉眼看的线宽可以细一点离焊盘要有安全距离装配层给机器看的可以画得比器件实体略大一圈。3.2 哪些层可以偷懒哪些层必须做直接给结论这是我经历过量产项目后的实践经验层名是否必须原因SILKSCREEN_TOP必须没有丝印板子做出来不知道器件方向ASSEMBLY_TOP必须贴片机程序识别需要缺了可能无法做FCTPLACE_BOUND_TOP必须没有约束区域DRC就不检查间距REF DES建议必须方便焊接时对照位号且占空间很小DEVICE TYPE可选只在库里有用板上看不到也没关系PACKAGE GEOMETRY / COURTYARD_TOP不需要这是系统自动生成的不用手动画有不少教程会让你画 COURTYARD_TOP实际上 Allegro 会在保存时自动计算 Place Bound 来生成 courtyard 信息。手动画反而容易和约束区域冲突。3.3 与Silkscreen、Assembly相关的文本对象在封装里放文本时记得选对文本层级。Allegro 中文本类Text Class选择位号文本选REF DES / Silkscreen_TOP这样板上显示在丝印层随实物印出。器件型号选DEVICE TYPE / Assembly_TOP仅在库里看板上不显示。文本高度一般设 0.8~1.0mm丝印文字线宽 0.127mm 左右。太小的丝印印刷出来会糊工厂最怕看到 0.5mm 以下的字。极性符号如二极管横杠、电解电容的号可以单独画在丝印层用Add - Line画线别用文字代替。4. 从零建封装把焊盘、丝印、约束区域摆到位4.1 新建Package Symbol并配置格点与单位焊盘准备好后开始真正的封装绘制。在 Allegro 里点 File - NewDrawing Type 选Package symbol文件后缀 .dra命名沿用器件型号。比如新建一个 0603 电阻封装名字可以叫R_0603。进入编辑界面后先设置格点和单位。用Setup - Design Parameters把 User Units 改成 MillimeterSize 精度改为 4 位小数。格点设成 0.0254mm 或 0.05mm确保焊盘中心点能落在格点上。4.2 器件外形与丝印先画好占位框画封装有个顺序技巧先画丝印框再放焊盘最后画约束区域。丝印框的意义是占位让焊接人员和维修人员一眼看出器件的物理轮廓。画法很直接点Add - Line在 Class 里选PACKAGE GEOMETRYSubclass 选SILKSCREEN_TOP然后按照器件的数据手册以原点为中心画一个矩形。以 0603 封装为例丝印框大小大约 2.0×1.2mm线宽 0.127mm。画完后顺手在丝印层上加一个第一脚标识——一个小圆点或者斜线放在第一脚附近。别小看这个小标记没有它位号文本的方向根本无法判断。4.3 摆放焊盘与管脚编号摆焊盘是本流程里最容易出错的地方因为涉及原点、间距、方向三个维度。操作路径Add - Pin在弹出的窗口里输入焊盘名称比如SMD_0P9X0P8然后在命令行或者 Options 面板里输入坐标把两个焊盘放上去。摆放时一定要保证焊盘中心间距严格等于数据手册上的引脚间距。例如 0603 电阻两个焊盘中心间距是 1.6mm。两个焊盘关于原点对称这样封装旋转、镜像时不会偏。管脚编号Pin Number从 1 开始递增且顺序与原理图符号一致。放完焊盘后右键选Done然后点焊盘按I或右键 Properties可以检查焊盘的管脚编号。一定要和原理图里元件的引脚号对得上否则后面导入网表会报Pin Number mismatch这是网上好多人问的 pcb封装 usb16 对于具有管脚映射的元件无效 这类错误的根源之一。4.4 保存出.psm并做Symbol检查画完所有内容后执行Design - Packaging - Symbol Check这是 Allegro 自带的封装体检功能。系统会检查焊盘是否缺失、约束区域是否存在、管脚是否重复等。有报错就双击跳到对应位置修改直到全部通过。确认无误后保存文件。Allegro 会自动生成 .psm 文件Symbol 文件。这两个文件必须在你的库路径下且 .dra 和 .psm 的主文件名一致。不一致的话PCB 里调用封装时会出现无法找到symbol的尴尬。有一个坑要特别提醒如果你打开别人给的封装文件发现保存按钮是灰的命令行提示cell read-only那是因为源文件被设置为只读属性或者在库管理器中被锁定了。解决办法很简单在资源管理器里去掉 .dra 文件的只读属性失效后重新打开就行。提示保存前记得把颜色显示切到全层可见模式快捷键Color/VisibilityCtrlF5把所有层的勾都打上防止某个焊盘或线条混在暗色层里没看到。5. 让封装看得见STEP模型与3D预览的实现PCB封装做好了只是平面视角。要做到带3D预览需要给封装绑定一个三维模型这一步在很多教程里被当成高级功能其实在 SPB17.4 里已经是基本功了。5.1 Allegro的3D预览能干什么SPB17.4 的 3D 引擎已经做得很成熟可以在 Layout 阶段直接打开 3D 视图把板子翻过来看器件高度、干涉情况甚至可以做简单的外壳碰撞检查。这对有结构限制的产品尤为重要——比如外壳限高 5mm某一颗电解电容高度 6.3mm在 2D 阶段很难察觉3D 视图里一眼就看出来了。3D 预览的操作入口是View - 3D View或者快捷键 CtrlAltF3不同版本可能略有差异。打开后你会发现 PCB 已经有一个基础 3D 形态板框是绿色的焊盘是裸露的金属色但没有绑定模型的器件只会显示为一个灰色方块。这就是为什么需要给封装单独配 STEP 模型。5.2 STEP模型从哪里找、怎么转要获得器件的真实三维形状需要.step或.stp格式的模型文件。来源有三个芯片厂商官网TI、ADI、ST、NXP 这些大厂都会提供封装对应的 STEP 模型名字通常在Mechanical/3D Model或者Design Resources下。这是最靠谱的来源。第三方平台像 3D ContentCentral、GrabCAD 这类的库经常能找到非主流器件模型但质量参差不齐需要自己检查尺寸。自己画实在找不到用 SolidWorks、Fusion 360、FreeCAD 这类软件按数据手册的外形尺寸画一个简化版也是可以的。我做过最简单的是一个插件电阻一个长方体和两根短圆柱耗时十五分钟完全够用。顺带说一句如果你拿到的是.stp但 Allegro 提示格式不支持可以用 FreeCAD 或在线转换工具转成.step再导入。版本太老的 STEP 文件偶尔会出问题转成 AP214 格式最稳。5.3 把模型绑定到封装并调整位姿在封装编辑器里绑定模型和 PCB 里绑定模型是两套操作。这里重点说封装编辑器里的做法因为这样封装导出后所有用这块封装的器件都会自动带 3D 模型。操作路径Setup - Step Packaging Exchange不同版本菜单名可能有差异SPB17.4 里一般叫Step Model Mapping或类似入口。在弹出的界面里选中当前封装点击 Browse 找到你的 STEP 文件。导入后别急着关窗口先检查模型原点是否对准封装原点。很多时候厂商模型的原点定义和封装原点对不上需要在 Mapping 窗口里填 X、Y、Z 方向的 Offset 和旋转角度。我遇到过最离谱的一次模型原点偏了整整 5mm不调的话整个器件悬空在板子上方。判断是否对齐的方法很简单在封装编辑器的 3D View 里打开同时显示焊盘和模型。正确的状态应该是——模型的引脚底部与焊盘顶面贴合模型中心大致在封装丝印框中心第一脚方向与丝印标记一致。微调时每次改动 Offset 就刷新一次 3D 视图别一次性改多个方向容易越调越乱。5.4 3D预览验证时的关键视角3D 模型绑定好后在 PCB 编辑器里放置封装CtrlAltF3 打开 3D 视图就可以看到完整的器件了。验证时可以重点看三个视角俯视视角看模型和丝印框是否基本重合如果有明显的偏移说明刚才的 Offset 没调好。侧视视角看器件高度是否符合预期和旁边限高区域是否冲突。底视视角把板子翻过来看引脚是否露出焊盘特别是通孔器件。如果发现模型太大或太小最常见的原因是模型单位错了。STEP 文件有时是英寸有时是毫米Allegro 导入时默认按毫米处理尺寸差 25.4 倍就会看起来明显不对。这种情况直接调整 Scale 参数而不是去改 Offset。6. 实战中绕不开的坑替换封装、只读文件与管脚映射做完一遍完整流程后结合这几年帮人排查封装问题的经验把最容易踩的几个坑集中说一遍。6.1 封装导入PCB时没有可用Symbol怎么办新建封装后在 PCB 里放置时提示找不到 symbol哪怕文件明明在库路径下。这个问题的九成原因是Allegro 不认识你的库路径或者 .psm 没有生成成功。第一步检查Setup - User Preferences - Design Paths - devpath里是否包含你的库目录。第二步打开 .dra 文件确认保存时没有报错。如果一个封装文件只保存出 .dra 而没有 .psm多半是保存前 Symbol Check 失败了。重新跑一遍检查把红色报错清干净再保存。还有一种情况是调用的库是网络共享盘路径权限不够导致 Allegro 无法写入 .psm。本地建库目录时最不容易出问题。6.2 cell read-only的真正原因打开别人发来的封装发现所有编辑命令都不可用状态栏一直提示cell read-only。这个问题的本质是文件被 Allegro 识别为库文件而该文件被操作系统标记为只读。解决方式关闭 Allegro。在文件管理器里找到 .dra 文件右键 - 属性取消只读勾选。重新打开。如果是团队协作中通过版本管理工具如 SVN、Git同步的文件还要确认自己本地工作区的文件没有被锁。另外Allegro 在打开文件时会生成一个锁文件如果异常退出可能会留下残留下次打开也会提示只读把同目录下同名的.$$$或.lck文件删掉即可。6.3 管脚映射报错与Pin Number的坑标题里提到过一个报错pcb封装 usb:usb16 对于具有管脚映射的元件无效-非数字管脚 编号 b8。这种错误的本质是原理图符号的引脚编号是字母如 B8、GND而 PCB 封装的管脚编号是数字1、2、3两边对不上。在 Cadence 体系里原理图符号和 PCB 封装通过管脚编号建立映射。编号必须完全一致不能一个用 A1/A2 一个用 1/2更不能把引脚名当成引脚号。遇到这种问题的排查顺序在 Capture 原理图里双击器件看 Pin Number 到底是什么。打开 PCB 封装编辑器点击每个引脚看 Properties 里的 Pin Number。两边逐一对应不一致的改掉重新生成网表再导入。如果原理图用的是 Power/Signal 类型的引脚尤其要小心。默认情况下电源引脚编号可能是 GND、3V3 这种文本而不是数字这样导入 PCB 时几乎必然报错。规范做法是把电源引脚的 Pin Number 也改成数字引脚名字才用来放 GND、3V3 这些名称。6.4 替换封装单板级替换与库级更新最后说一下封装替换这是日常画板最高频的操作之一。比如布局走到一半发现某个器件买不到料需要换成同封装不同尺寸的型号。替换封装有两个层级单板替换在 PCB 编辑器里选中器件右键 - Replace Padstack/Symbol选择新的封装名。这个操作只对当前板上这一个器件生效不影响库。库级更新修改 .dra 文件并保存后回 PCB 里执行Tools - Update Symbols - Package Symbols全部更新所有使用该封装的器件。库级更新有个容易翻车的点如果你改动了焊盘而焊盘文件又被其他封装引用更新时会牵动其他器件。所以在改焊盘前先确认这个焊盘是不是全局唯一。如果不是建议复制一个新的焊盘再单独更新目标封装。顺带补充一个实用技巧替换封装后记得检查器件的丝印和装配层文字是否过大过小、是否有重叠。系统不会自动调整文本位置替换完很容易出现位号被焊盘压住的情况。最后分享一个我自己的习惯每个封装做完都会在库里放一个测试板文件一个 10×10mm 的空白 PCB把新封装丢进去用 3D 视图看一眼再导出一份 PDF 放到封装同目录下。下次不确定某个封装长什么样时不需要打开 Allegro直接看 PDF 就行。这个习惯救了我很多次尤其是面对一堆命名没有规律的老封装时效率提升非常明显。