Cadence Allegro 17.4封装制作实战:从Padstack到SOIC-8完整流程 如果你刚把 Cadence 17.4 装好兴冲冲打开 Allegro PCB Designer准备像用其他 EDA 一样直接画封装那你大概率会在半小时内怀疑人生这个软件里怎么就找不到一个“画封装”的按钮这不是你的问题。Allegro 的封装体系从一开始就和其他工具不一样焊盘不叫焊盘叫 Padstack要先用独立的 Pad Designer 生成一个.pad文件封装也不叫封装叫 Symbol要在 PCB Editor 里画好.dra源文件再通过 Create Symbol 生成.psm库文件。这三样东西少一个你的封装就进不了 PCB就算进去了也大概率是灰色虚影。这篇文章我就以 SOIC-8 为例从数据手册怎么读、焊盘怎么做、封装怎么画、丝印和位号怎么加到原理图管脚映射报错怎么排查完整走一遍 17.4 环境下的封装制作流程。内容里会穿插我这些年踩过的坑尤其是那些“软件不报错、但板厂会骂人”的细节。适合第一次用 Cadence 做封装的新手也适合从 16.6 升级到 17.4 后对界面变化不熟的老伙计。1. 先把 Allegro 的封装“两段式”逻辑吃透后面才不会白干1.1 一张图理解 .pad、.dra、.psm、.fsm 的关系Cadence 的封装体系里文件类型特别多新手第一反应往往是怎么这么碎别急其实核心只有四类.pad焊盘文件由 Pad Designer 生成。它描述的是一个焊盘的物理结构比如顶层焊盘多大、阻焊开窗多大、钢网开口多大、如果是通孔过孔内径外径又是多少。一个焊盘文件可以被多个封装调用。.fsmFlash 符号也叫热焊盘符号由 PCB Editor 生成。它用于内层负片层的热焊盘连接通常通孔插件器件的封装里都会用到。.dra封装源文件是你在 PCB Editor 里实际编辑、画图的那个文件。它不等同于封装库。.psm封装符号文件由.dra执行 File Create Symbol 生成。PCB 设计时真正调用的是这个文件。调用关系也很好理解.psm封装里引用了若干个.pad焊盘通孔器件的焊盘可能还会引用.fsm热焊盘。Cadence 在打开封装时会通过三个库路径去找这些文件padpath、psmpath、flashpath。很多新人第一次失败就死在路径上焊盘文件明明存在但封装就是显示不出来。原因就是你建了一个自定义库目录却忘了告诉 Allegro 去那里找。1.2 为什么 Cadence 要拆得这么碎用一个生活化类比做 PCB 封装就像做一批家具。焊盘是标准五金件封装是木工图纸热焊盘是特定场景的连接件。如果你把五金件直接焊死在图纸里下次换一个板材厚度就得重画图纸效率极低。Cadence 把焊盘单独拆出来就是为了让你在不同封装之间反复复用焊盘也方便根据不同板厂工艺统一修改开窗、钢网参数。在多层板设计里焊盘是否需要有 Flash 热焊盘取决于你用的是正片还是负片层。正片铺铜可以直接用花孔连接负片层则需要靠 Flash 符号来留出热桥。这个以后做电源板、内存条、连接器板时会频繁碰到新手第一次画通孔封装时最好就养成做 Flash 的习惯不然内层连接会出大问题。1.3 17.4 和 16.6 在操作入口上的几个区别Cadence 17.4 的界面比 16.6 现代化了不少但菜单逻辑基本没变。几个容易搞混的点16.6 里做封装一般直接打开 Allegro PCB Design Editor17.4 安装后开始菜单里同样有 Allegro PCB Designer打开后通过 File New 创建文件。17.4 的 Start Page 默认会显示最近打开的文件很多新人会以为必须从某个模板启动其实直接 File New 即可。16.6 的 Pad Designer 是一个独立程序17.4 里依然有独立的 “Allegro Pad Designer”也可以从 PCB Editor 的 Tools Padstack Edit 来打开已有焊盘。17.4 对显卡、高分屏支持更好但前提是装了对应版本补丁。如果打开界面卡顿先检查补丁版本而不是怀疑电脑不行。换句话说网上大把 16.6 的封装教程放到 17.4 照样能用只是窗口样式变了命令和菜单名没有翻天覆地。1.4 先花 5 分钟设置库路径这一步太重要了我甚至建议你第一次建库之前就做。打开 Allegro PCB Designer 后选择 Setup User Preferences在左侧找到 Design PathsPadpath添加你的焊盘目录比如D:\my_lib\padstacksPsmpath添加你的封装目录比如D:\my_lib\symbolsFlashpath添加你的 Flash 符号目录比如D:\my_lib\flash设置完点 OK不用重启但建议新建文件前确认一下。以后你从别人那里拷来的库“用不了”95% 是这个路径没配好。2. 用 Pad Designer 制作 SOIC-8 焊盘数据从哪来每一项怎么填2.1 封装数据的关键不要只抄“封装尺寸”要看“焊盘图形”新手最容易犯的错就是打开一个芯片手册把“Package Dimensions”里的本体长度、宽度抄下来然后照着画焊盘。这个思路是错的。datasheet 里的本体尺寸是物理尺寸决定的是你的丝印外框和装配层轮廓而焊盘的位置、大小应该看手册里的“Recommended Land Pattern”或者“PCB Footprint”没有的话再查 IPC-7351 标准。以 SOIC-8 为例我一般会用到这么几个数据参数数值示例说明引脚间距Pitch1.27 mm两侧引脚之间的同一排间距焊盘宽度沿引脚排列方向0.6 mm比引脚可焊接宽度略宽焊盘长度垂直引脚排列方向1.8 mm伸出器件本体的可焊接区长度左右两排焊盘中心距6.4 mm左右焊盘中心在 X 方向的距离器件本体尺寸长 4.9 mm宽 3.9 mm画丝印和装配层用注意这个表是教学示例不是某个具体厂商的规格。不同厂家的 SOIC-8 推荐焊盘会略有差异量产前建议以你选型器件的官方文档为准。为什么我强烈建议用“厂家推荐焊盘”而不是“自己估一个”因为你手工估算很难同时满足可焊性和散热需求。焊盘太短引脚吃锡面积不够焊盘太长容易出现连锡焊盘太窄贴片机贴装偏差容忍度低。IPC 和原厂推荐值都是拍脑袋拍出来的但拍了很多年比新手一晚上想出来的靠谱得多。2.2 打开 Pad Designer建一个 SMD 顶层焊盘在开始菜单里找到 Allegro Pad Designer打开后选择 File New输入焊盘文件名。我先说一下命名规范建议用“类型_尺寸_间距”的方式比如smd_soic8_0.6x1.8_p1.27这样以后搜索焊盘文件的时候一眼就能看出它适合什么封装。接下来关键步骤在 Parameters 选项卡里把单位为 Millimeter精度设置为 4 位小数。Allegro 默认经常是 mil新手最容易漏掉这个导致后面坐标差得离谱。类型选择 SMD Pin 或者 Single。对于普通表贴焊盘选 SMD 即可。切换到 Layers 选项卡找到 BEGIN LAYER顶层导电层设置 Regular Pad 的 Geometry 为 RectangleWidth 填 0.6Height 填 1.8。找到 SOLDERMASK_TOP 层这一步我建议把阻焊开窗比焊盘外扩 0.075~0.1 mm也就是宽度填 0.75~0.8高度填 1.95~2.0。找到 PASTEMASK_TOP 层这是钢网开孔层可以跟焊盘一样大也可以略缩小 0.05 mm。如果你不确定先做和焊盘同尺寸后期让钢网厂按精度调整。保存文件到padpath指向的目录。很多新手在 Layers 页面看到一堆默认的 Thermal Relief 和 Anti Pad搞不清楚要不要填。对于纯表贴焊盘常规情况下只需要关心 BEGIN LAYER 和阻焊、钢网层。如果你做的封装要嵌到内层做埋入式器件那才需要去管中间层。新手阶段先无视。2.3 阻焊开窗为什么要比焊盘大这个坑我真实踩过。有一批板子做回来焊盘边缘被绿油盖住了一部分手工焊接时怎么都上不了锡最后用显微镜一看才发现是阻焊开窗设计得太小。Allegro 里如果直接把 SOLDERMASK_TOP 的 Regular Pad 设成和焊盘一样大生产时由于对位公差绿油很容易爬上焊盘边缘。板厂一般会要求阻焊开窗比焊盘大 0.1 mm 以上所以我在 Pad Designer 里已经习惯直接外扩 0.075~0.1 mm。2.4 一个 SOIC-8 封装需要建 8 个焊盘文件吗不需要。Allegro 的封装放置引脚时Pin Number 是由封装里的放置操作决定的不是焊盘文件决定的。也就是说你只需要建一个smd_soic8_0.6x1.8_p1.27.pad然后在封装编辑器里把它依次放到 8 个位置再给每个位置分别命名为 1~8 号引脚即可。这个逻辑和很多其他 EDA 不一样所以我每次带新人的时候都会强调一遍同一个封装里的同尺寸焊盘永远只建一个公共焊盘文件。3. 在 PCB Editor 里画封装从新建 Package Symbol 到放完 8 个引脚3.1 新建 Package Symbol打开 Allegro PCB Designer 之后选择 File New。Drawing Type 选择 Package Symbol。Drawing Name 输入soic8路径选到你的symbols目录。点击 OK 后先别急着画打开 Setup Design Parameter Editor。把 User Units 改成 Millimeter精度设成 4 位小数。把绘图范围设置大一点比如 Width 100Height 80避免后面画丝印跑出边界。在 Drawing Type 里还能看到 Package Symbol Wiz那是 Cadence 自带的封装向导。新手也可以试试但我建议至少手画一遍再体验向导不然遇到向导生成的半成品都不知道怎么改。网格设置上我习惯把 Grid Spacing 设成 0.1 mm。原因很简单SMD 封装的坐标基本都能落到 0.1 mm 网格上画丝印时也足够整齐。3.2 放置 8 个焊盘这一步是核心操作。点击菜单 Layout Pins右侧 Options 面板会弹出放置选项Pin number 填 1Padstack 选择之前建的焊盘文件X 坐标填-3.2Y 坐标填-1.905Rotation 填0放置完成后继续放 2 号脚X 还是-3.2Y 改成-0.635。3 号脚 Y 改为0.6354 号脚 Y 改为1.905。右排引脚从 5 号开始5 号脚X 3.2Y 1.905Rotation 1806 号脚X 3.2Y 0.635Rotation 1807 号脚X 3.2Y -0.635Rotation 1808 号脚X 3.2Y -1.905Rotation 180为什么右侧引脚要旋转 180 度因为矩形焊盘本身对称看不出来旋转与否但一旦你以后用到非对称焊盘、ID 型焊盘旋转方向直接决定 PCB 上引脚端头朝向。趁现在养成习惯右排引脚统一旋转 180适合引脚本体方向。如果觉得鼠标点击容易飘可以在命令窗口直接输入x -3.2 -1.905按回车光标就会精确跳到那个坐标。焊盘放完之后按 F6 或者右键选择 Done 结束放置。放大看一下8 个焊盘应该排列整齐左右各 4 个间距均匀。如果发现某个焊盘偏了用移动命令 M选中焊盘输入精确坐标归位。3.3 放完之后先看一眼颜色层在 Color/Visibility 面板中确认一下 Top 层的焊盘显示是否打开。如果打开后只看见焊盘轮廓线看不到填充大概率是 Color Scheme 没选对或者你用了线框显示模式。这一步通常还要检查焊盘的 Padstack 名是否都正确指向同一个焊盘文件。选中任意焊盘右键选择 Property Edit看 Padstack Name 字段即可。3.4 保存源文件但先别急着 Create Symbol很多教材上来就让你 File Create Symbol但这只是生成.psm库文件并不代表封装真的画完了。还没画丝印、装配层、Place Bound这时候生成的库文件是不完整的后续还要重新生成覆盖。我的习惯是先用 CtrlS 保存.dra源文件等所有层都画完最后确认无误再 Create Symbol。4. 丝印、装配层、Place_Bound、位号一个都不能少4.1 画外形丝印Silkscreen_Top丝印是 PCB 板上白色的那层标记作用非常直观告诉贴片机操作员和维修工程师元件怎么摆、方向在哪。Allegro 里丝印画在 Package Geometry 类的 Silkscreen_Top 子类下。我画 SOIC-8 丝印的做法画一个矩形尺寸比本体大一点点一般用 5.2 x 4.2 mm中心在原点。线宽设为 0.2 mm。太小的话板厂可能做不出来太大又显得很粗鲁。在 1 号脚附近画一个小圆或圆弧作为方向标记。半径 0.3 mm 左右线宽同 0.2 mm。丝印不要与焊盘重叠。如果丝印框离焊盘太近一般要求至少 0.2~0.3 mm 的净空不然焊接时丝印油被污染或者板厂报 DRC 警告。新手经常会问丝印到底画大一点还是小一点我说句实在话丝印不是用来精确贴装的它是给人看的因此只需要表达出“器件摆放范围”和“方向”即可。画得跟本体一模一样反而没必要。4.2 装配层Assembly_Top装配层是给装配图模块和贴片机编程人员看的画的是器件的真实实体轮廓。这个层不参与 PCB 电气连接但在生成装配图、做 3D 模型、做元件高度检查时非常有用。操作方式一样用 Add Rectangle在 Package Geometry 类的 Assembly_Top 子类下画一个 4.9 x 3.9 mm 的矩形中心在原点。我还会在装配层加上一行虚拟位号文本。在 Allegro 里新建封装时系统一般会自动放置一个 RefDes 文本默认内容就是REFDES。这个文本可以移动但不要把它删掉也不要改成U1这种具体值。因为封装库是给所有同型号器件共用的一旦写死PCB 上每颗料位号都会变成一样的。4.3 Place_Bound_Top布局布线的“虚拟围墙”Place_Bound 是 Allegro 里一个很多人都会忽略、但极其重要的层。它的英文全称是 Placement Bound位于 Package Geometry 的 Place_Bound_Top 子类作用是告诉 Allegro 这个元件占用的三维空间范围。它不只是一条好看的线还直接参与以下功能Room 约束和布局规则元件间距 DRC3D 模型碰撞检测选中/高亮元件的有效范围画法很简单Add Rectangle在 Place_Bound_Top 子类下画一个比装配层略大的闭合矩形比如 6.6 x 5.2 mm。画完后建议顺手给这个 Place Bound 加一个高度属性。选中矩形右键 Property Edit添加PACKAGE_HEIGHT_MAX属性值设为 1.75 mm。这样以后做 3D 检查的时候Allegro 知道这个器件最高不能超过 1.75 mm。很多人刚学 Cadence 时会觉得 Place_Bound 可有可无结果后面布局时发现器件明明看着没重叠DRC 却疯狂报 component 间距问题排查半天才想起新画的封装没有 Place_Bound。4.4 位号文本的显示控制Allegro 里的位号文本不是一个普通字符串它属于 Ref Des 类。放文本的菜单入口在 Add Text然后 Class 选择 Ref DesSubclass 可以选择 Silkscreen_Top 或者 Assembly_Top。这里有个 17.4 新手特别容易踩的坑封装编辑器里看不到位号文本不一定是没放很可能是视图里没有勾选显示。可以在 Setup Drawing Options 里找到 Display RefDes 相关选项勾选之后位号才会显示。如果你发现位号文本方向不对选中后右键 Rotate 调整即可。位号文字高度一般设 0.8~1.0 mm太小 PCB 上会看不清太大像贴标签。5. 原理图符号的管脚编号和封装焊盘对不上这根错因和排查链路你可以直接抄5.1 那个“非数字管脚 编号 B8”的报错到底是什么Cadence 用户群里经常有人问这句话“错误pcb封装 usr:usb16 对于具有管脚映射的元件无效 - 非数字管脚 编号 B8。”我第一次看到这个报错的时候也挺懵因为封装本身能打开引脚也都在但原理图导入 PCB 就是不行。根因其实不复杂Capture 原理图符号里的每个引脚都有一个 Pin Number网表导入 Allegro 时Allegro 会拿这些 Pin Number 到封装里去匹配焊盘。如果你的原理图符号管脚编号写的是A1、B8、VBUS、GND这种字母开头的名称Allegro 在匹配时就会因为封装焊盘编号是数字而找不到对得上的引脚于是报“非数字管脚”。这里有个重要的概念原理图符号的 Pin Number 和 Pin Name 是两回事。Pin Name 是给工程师看的信号名比如USB_DP、USB_DM写什么都行Pin Number 是电气映射编号必须先被封装焊盘编号承接。5.2 规范的原理图编号应该是纯数字Cadence 这套体系虽然对字母编号支持得不好但业界主流做法本来就是纯数字引脚编号。尤其是一堆 USB、HDMI、FPC 连接器排线引脚编号在 datasheet 里经常标成 A1、B2 之类很多新手照着抄就翻车了。正确做法在 Capture 原理图符号里把 Pin Number 改成1, 2, 3, 4, ...这样的纯数字。把 datasheet 里的A1、B1信息放到 Pin Name 里作为信号名保留。确保 Pin Number 唯一不能有两个引脚都叫 1。封装里对应焊盘的 Pin Number 必须和原理图完全一致顺序无所谓但名称必须匹配。反过来如果你坚持要做字母编号理论上 Allegro 封装焊盘的 Pin Number 也可以填字母。但你会发现 DRC、约束管理、仿真模型一系列环节都会有各种兼容问题。我在实际项目里从来不让字母编号进 Allegro 网表除非客户建好的符号锁定死了否则一律转数字编号。5.3 完整排查链路报错之后按这个顺序查如果你的器件导入时就报管脚映射错误建议按下面顺序排查打开 Capture 原理图符号编辑器件列出所有 Pin Number。打开 Allegro 封装编辑器Display Report输出所有焊盘的 Pin Number 列表。两个列表做对比查找缺失或格式不一致的项。如果原理图里有A1、B2这类编号把 Pin Number 改成自然数Pin Name 保留原信号名。如果封装里缺少某一个焊盘回到第 3 章的 Layout Pins 补充。修正后重新生成网表再导入 PCB。排查完你就会发现这类问题其实和封装画得对不对一点关系都没有纯粹是符号和封装之间的编号没对齐。5.4 制作完封装后建议做一次最小网表测试不要等整板原理图全部画完才去导入 Allegro。我的习惯是每做一个新封装就在 Capture 里建一个临时设计只放一个该器件导一次网表确认无报错后再继续做下一颗料。这个习惯为我省了无数个小时。因为如果封装真的有问题在只有一颗料的网表里定位比在一千颗料的原理图里定位容易得多。6. 封装做完怎么自检DRC、放置测试和 17.4 里的库路径设置6.1 先保存源文件再 Create Symbol封装画完至少要做一次“保存两连击”CtrlS 保存.dra源文件。File Create Symbol生成.psm封装库文件。很多人改完封装发现 PCB 里调不出来就是因为只做了第一步没做第二步。反过来有些人改了封装并生成了.psm但在 PCB 里放置的还是旧符号这是因为 PCB 工程的库缓存没刷新需要在 PCB 里执行 Place Update Symbols 或者重新打开工程。6.2 在封装编辑器里跑 DRCAllegro 封装编辑器也是能跑 DRC 的只是入口比较隐蔽Setup Design Rule Check或者在命令窗口输入drc。你需要确保在 Analysis Modes 里开启与 Package 相关的检查项。执行后结果会显示在右下角的日志区域如果丝印线段断开、Place_Bound 没有闭合、焊盘之间间距超限都会在这里被扫出来。17.4 的 DRC 界面比老版本好看一点但核心思路没变DRC 是规则检查不是布线布完了才用。封装阶段就跑一遍能及早发现低级错误。6.3 新建一块空白 PCB 做放置测试这一步强烈建议做。新建一个空白 Board 文件设置好库路径然后 Place Manually在 Advanced Settings 里勾选 Library 作为放置源。搜索soic8如果能搜到直接点放置。如果搜不到检查psmpath是否包含封装目录。检查.psm文件是否真的生成在封装目录下。检查封装文件名有没有拼写错误Cadence 的库搜索对文件名大小写有一定容忍度但目录路径一定要对。如果放置出来的封装只有丝印没有焊盘检查padpath是否包含焊盘目录。打开封装编辑器看焊盘是否显示正常。检查焊盘文件名是否和封装里引用的名字完全一致。6.4 17.4 层颜色和显示问题封装“消失”的常见原因Allegro 的颜色管理跟板卡和封装有关封装编辑器里看到的颜色和 PCB 编辑器里不一定一样。常见现象有现象大概率原因解决办法放置后只看到位号看不到焊盘层颜色没打开Color/Visibility 里打开 Top 导电层焊盘变成空心圆圈用的是负片层显示调整颜色和填充方式丝印看不到丝印层没开启打开 Silkscreen_Top封装高亮成绿框缺焊盘或 DRC 报错查看焊盘路径和 DRC 结果6.5 17.4 快捷键设置与我的效率习惯Allegro 默认快捷键不算多但可以自己配。在 17.4 里可以通过 Setup User Preferences UI Input 找到别名配置也可以用命令行直接输入 alias。我保留了最常用的几个默认操作M移动I?实际上不同版本不同建议在命令窗口敲 alias 查看当前映射F6CancelF4Oops 撤销上一步如果你实在记不住快捷键用鼠标右键菜单也可以完成大部分操作。Allegro 的右键菜单是上下文相关的选中焊盘后右键就能旋转、移动、属性编辑这个逻辑比 16.6 顺手不少。快捷键配置文件一般存在%USERPROFILE%\pcbenv\allegro.env里。换电脑或者重装系统前记得把这个文件备份出来。我遇到过好几次因为重装系统丢掉个性化快捷键配置整个操作效率瞬间回到原始时代。7. 最后关于封装库管理我踩过的几个坑和补救习惯7.1 命名规则要形成肌肉记忆封装库文件多了以后命名乱最致命。我的规则是焊盘文件用“类型_引脚尺寸_间距”封装文件用“器件型号_焊盘方案_版本”。比如smd_soic8_0.6x1.8_p1.27.pad soic8_w0.6_l1.8_p1.27_revA.dra soic8_w0.6_l1.8_p1.27_revA.psm宁可文件名长一点也不要叫什么PAD_1、NEWFINAL_V2。否则半年后你自己都会忘了这个文件对应的是哪颗料。7.2 从同事库复制封装时一定要连 Flash 文件一起拷我有一段时间从同事那拷了一个带大焊盘的插件连接器封装复制了.psm和.pad漏掉了.fsm。结果 PCB 内层负片连接全部变成了全连接圆形隔离盘电源平面被烧得一塌糊涂。所以从别人那里拷封装时我建议看一下封装文件里引用了哪些焊盘焊盘文件里引用了哪些 Flash把所有依赖都拷齐再统一放到自己的库目录里。7.3 17.4 可以和 16.6 库共存但版本管理要注意Cadence 17.4 打开 16.6 的封装一般没问题但 17.4 保存过的.dra再用 16.6 打开就很可能不兼容。如果你的公司还有其他同事在用 16.6建议封装库维护时以低版本为主或者专门准备一个低版本兼容导出流程。不然每次更新封装都是一次“我来兼容你还是你来兼容我”的扯皮。7.4 每个封装都应该做一次“最小验证板”我现在做新封装已经养成了一个固定套路封装做完放进一张空白 PCB不仅跑 DRC还把器件复制几份模拟一下实际贴装间距然后导出一版 3D 预览看一眼方向和高度。这一步看着多余但真的能抓到很多莫名其妙的问题。比如丝印方向箭头画反了、位号跑到器件正下方去了、装配层轮廓高光不对等等。这比板子都发出去了再被产线追着骂要舒服得多。如果你只负责画封装而不负责 PCB 设计也建议至少做到“放置测试 DRC 通过”这一步。一个库里全是“能打开但不敢用”的封装比没有库还可怕。Cadence 17.4 的封装学习曲线确实比大多数 EDA 陡但只要你理解了.pad、.dra、.psm这三者关系再亲手做个 SOIC-8 封装后面再画 QFN、BGA、连接器都只是同一套逻辑的延伸。希望这篇教程能帮你少走点弯路。