用Cadence 16.6做PCB设计,很多人第一次接触就会被“焊盘”和“封装”这两件事搞蒙。明明在别的EDA工具里,画一个封装就是画一个图形的事,到了Cadence这里,焊盘得先用Pad Designer单独建,封装再进PCB Editor里画,两个编辑器各管一段,数据靠文件串联。这个流程刚上手确实绕,但一旦搞懂,后面的PCB设计会非常顺畅。这篇文章就围绕这个流程,把Pad Designer建焊盘、PCB Editor画封装的完整步骤讲清楚,顺便把我这些年踩过的坑、总结的参数经验一起写出来,适合刚开始接触Allegro、正在自学建库的硬件工程师参考。
1. 开工前先理清两件事:焊盘和封装到底是什么关系
1.1 为什么Cadence要把焊盘单独做成一个文件
很多从其他工具转过来的人会问一个问题:为什么在Cadence里面,焊盘不能跟着封装一起画?这其实是Cadence的一个设计特点,也是它灵活的地方。焊盘在Cadence里是一个独立的数据文件,后缀通常是.pad,它只描述“这个金属连接区域长什么样”:是通孔还是贴片、有多大、内层怎么连接、钻孔多大。而封装文件是另一层概念,它把若干个焊盘按一定的几何位置摆放好,再加上丝印、位号、装配层、3D体等要素,最终形成一个完整的元件外形,后缀通常是.dra和.psm。
这个拆分的意义在于,同一个焊盘可以被不同封装复用。比如你做一个0805电阻的封装,做一个0805电容的封装,它们的焊盘尺寸基本是一样的,那就可以共用同一个.pad文件,不需要重复建。再比如一个芯片的电源引脚和地引脚,如果焊盘尺寸相同,也只是同一个.pad文件在不同位置摆放而已。这种“单一数据源”的思路,和现代软件工程里的“封装继承多态”有点像——公共属性下沉,差异化属性上浮。理解了这一层,你就会明白Pad Designer和PCB Editor的职责边界了:Pad Designer管“单个焊盘长什么样”,PCB Editor管“多个焊盘怎么排布成元件”。
1.2 建库前的目录规划、单位选择与文件命名
建库这件事,我最开始的时候吃过亏。那时候不重视文件命名,建了一批焊盘叫pad1、pad2,封装叫a、b、c,等到画板子的时候,库里面一堆文件根本分不清谁是谁,最后只能一个个打开看。后来我总结了一套比较实用的做法,建议你在开工前先把目录和命名规则定下来。
目录结构我一般这样建,在某个工程库根目录下分几个子文件夹:pad放焊盘文件,symbol放封装文件,project放设计文件。这样PCB Editor在查找库文件时路径清晰,后期备份也方便。命名规则方面,通孔焊盘我会用“焊盘直径+孔径”的方式,比如PAD150D100.pad,表示焊盘直径1.5mm、钻孔直径1.0mm;贴片焊盘用“类型+尺寸”的方式,比如SMD0805_60x90.pad,表示0805封装用的矩形焊盘,宽0.6mm、长0.9mm。封装文件则直接用元件型号,比如R0805.dra、LQFP48.dra,和原理图库里的名字保持一致,这样在ORCAD中调用时就不会对不上。
单位选择上,我强烈建议你统一用毫米。虽然很多数据手册里用的是mil,Cadence也支持在两种单位间切换,但建库过程中一旦混用,很容易出现小数点错位。如果不习惯读mil,建议还是以毫米为主,看数据手册时把mil换算成毫米再填入。你也可以在Pad Designer和PCB Editor的Setup菜单里统一设定单位,后续所有操作都用这个单位,尽量不要频繁切换。
2. Pad Designer建通孔焊盘:参数其实就这几项
2.1 通孔焊盘各层参数怎么填
打开Pad Designer,界面左边是一排层列表,右边是参数设置区。很多新手一看到这么多层就晕,其实对通孔焊盘来说,真正需要关心的就是几个地方。
首先确定Type,也就是焊盘类型。通孔焊盘选Through,贴片焊盘选Single。如果是用于接插件、排针这一类需要从顶层穿到底层的器件,就选Through。选Through之后,层列表里会出现多个层:Begin Layer(顶层)、Default Internal(内层)、End Layer(底层)等。对于多层板,Begin Layer和End Layer的焊盘尺寸通常一致,内层可以设置为相同尺寸。External和Internal的区别在于,外部焊盘要承载焊接,面积可以适当大一些;内层主要做连接,尺寸可以略小。不过为了简化操作,很多经验丰富的人会直接让三者尺寸一致,除非是高速信号或有电源载流要求,才会单独调整内层。
然后看Drill/Slot(钻孔)参数。这里要注意,钻孔尺寸指的是成品孔径,不是你要让板厂钻多大。如果焊盘需要插入元件引脚,钻孔直径至少要大于引脚直径0.2mm左右,方便插入和焊接。还有一个容易忽略的地方是下面的Drill symbol,这个参数用于在钻孔图上显示,一般选一个圆形符号即可,不影响电气连接,但影响制造文件的美观和可读性。
2.2 钻孔和焊盘尺寸的估算方法
关于尺寸估算,我提供一个经验公式,不敢说100%符合每一家板厂的工艺,但作为前期设计足够用了。假设你有个元件引脚直径是0.6mm,那么钻孔直径D1 = 引脚直径 + 0.2mm = 0.8mm左右。如果引脚是方形或扁平状,测量对角线作为参考。然后焊盘直径D2 = 钻孔直径 + 0.4mm到0.6mm。为什么是0.4到0.6?因为焊盘单边要比钻孔大0.2到0.3mm,这个量是保证孔壁与焊盘之间有可靠的金属环宽,避免钻偏后出现开焊。以0.8mm钻孔为例,焊盘直径做到1.3mm左右比较稳妥。如果是多层板,内层焊盘直径可以做到D2+0.2mm,保证内层连接面积充足。
还有一种更细的考虑方式,需要结合载流能力。比如电源模块的输入输出引脚,如果电流大,焊盘不要一味的按最小环宽做,适当加大焊盘直径可以降低电阻、利于散热。但也不能太大,否则相邻焊盘之间间距过小,焊接时容易连锡。所以焊盘直径一般控制在两倍孔径到三倍孔径之间,超过这个范围就要考虑是否影响密间距布线。
2.3 隔热焊盘的设计逻辑与参数参考
说到SMD焊盘隔热设计,这个在Cadence里叫Thermal Relief,也就是热焊盘。很多人画板的时候没注意,结果板子打样回来,一焊接就发现问题:芯片的地引脚连接的是大面积铜皮,烙铁一放上去,热量全部从引脚散到铜皮里了,焊料完全润湿不了,焊盘温度怎么也上不去。这就是所谓的“散热过快”,也就是“吸热”问题。解决的办法是不要直接让引脚焊盘整圈连接大铜皮,而是让连接处开几个“窗口”,也就是热焊盘。
在Pad Designer里,你可以选择Thermal Relief作为内层的连接方式,并设置热焊盘的开口宽度。对于内层负片来说,热焊盘有外径、内径、开口宽度这几个参数。外径一般比焊盘直径大0.1到0.2mm,内径比钻孔直径大0.3mm左右,开口宽度在0.4到0.6mm之间取一个值,开口数量通常是4个,呈十字形分布在四个方向。这里要注意,开口太大会削弱载流能力,太小又起不到隔热作用,所以需要平衡。如果你只是普通两层板,一般不会遇到严重的散热问题,但如果是电源板、电机驱动板这些有大面积铜皮的板子,热焊盘的设计就非常重要了。
3. Pad Designer建SMD贴片焊盘:一个Begin层就够了
3.1 SMD焊盘参数与常见封装尺寸参考
SMD贴片焊盘在Pad Designer里比通孔简单得多。Type选择Single之后,层列表里主要就是Begin Layer一个层需要设置。尺寸参数很简单,就是一个矩形或椭圆形的长和宽。很多数据手册会给出元件的焊端尺寸,比如0805电阻的焊端长0.5mm左右、宽1.25mm左右,但我们做焊盘时不能直接用元件焊端尺寸,需要在此基础上加一些余量,保证焊料润湿和形成良好的焊点。
焊盘宽度一般比元件焊端宽0.1mm左右,焊盘长度一般比焊端向外延伸0.3到0.5mm。比如一个0805元件焊端宽1.25mm、长0.5mm,那我做的焊盘宽度可以取1.4mm,长度取1.0到1.2mm。还有一个经验是:焊盘内侧之间的距离,要小于元件端间距或等于元件端间距,这样元件放上去后两端焊盘才能准确落在焊端上。不过这个说法有些笼统,实际操作时更可靠的办法是查数据手册里的Recommended Land Pattern,那是元器件厂商推荐的值,直接按那个尺寸建焊盘基本不会出问题。
如果你手头没有具体的手册,可以参考下面这张常见的贴片封装焊盘尺寸速查表。要注意的是,不同厂家、不同工艺环境下推荐值略有差异,表中给出的范围是常规值,生产前最好和PCB代工厂确认一下。
| 封装型号 | 焊盘宽(mm) | 焊盘长(mm) | 焊盘间距参考(mm) |
|---|---|---|---|
| 0402 | 0.55~0.65 | 0.60~0.80 | 0.4~0.5 |
| 0603 | 0.80~0.95 | 0.90~1.10 | 0.6~0.7 |
| 0805 | 1.20~1.40 | 1.00~1.30 | 0.9~1.2 |
| 1206 | 1.50~1.80 | 1.30~1.60 | 1.2~1.5 |
| SOT-23 | 0.60~0.75 | 0.90~1.10 | 1.9~2.0 |
3.2 1206、0603、0805这些常用电阻电容怎么快速建
以1206封装为例,我在Pad Designer里操作时,Type选Single,单位设为毫米,Begin Layer的Geometry选Rectangle或者OBRound都行,宽度填1.6mm,长度填1.5mm。这里Geometry选择矩形还是圆角矩形,会影响到PCB上的铜箔形状和焊接时的锡膏铺展,通常电阻电容这类无源器件用圆角矩形更稳妥,焊接时不容易产生应力点。填完之后,给文件命名时一定要体现出规格,比如SMD1206_16x15.pad,保存即可。
0603和0805的操作完全一样,只是数值不同。这几个常用封装建好之后,后续用起来就非常省事。我建议把常用封装都建好备份,然后归纳到一个库里,以后新项目直接复用。警惕一点:不同厂家的元件实际尺寸可能存在偏差,尤其是阻容件,来自村田、三星、国巨的同一封装,焊端尺寸会有细微差异。如果你的产品焊接密度高,或者要走回流焊,建议按实际采购元件的规格书推荐焊盘来微调。
3.3 引脚多、引脚密的器件焊盘怎么处理
像QFN、LQFP、BGA这类引脚数量多又密集的器件,焊盘设计和普通阻容件不一样,不能简单的按“加宽加长”的思路来。QFN封装有底部散热焊盘,散热焊盘中间往往会打很多过孔,把热量导到内层或底层铜皮。在Pad Designer里,QFN的底部焊盘一般建一个大矩形焊盘,尺寸略小于芯片底部裸露焊盘,通常比它小0.1到0.2mm,避免焊接时焊料溢出到引脚周围造成短路。QFN引脚焊盘长度也比普通SMD略长,一般是0.6到0.9mm,宽度取决于引脚间距,比如0.5mm间距的QFN,引脚焊盘宽度做0.25mm左右。
对于BGA封装,焊盘就是一个圆形,直径取决于球径和间距。比如0.8mm pitch的BGA,焊盘直径可以做0.4mm左右;0.5mm pitch的BGA,焊盘直径做0.25到0.3mm。这类焊盘在Pad Designer中Type选Single,Geometry选Circle,只需要填直径即可。焊盘之间的中心间距就是BGA的pitch,不需要额外设置,因为间距在封装摆放时体现,焊盘本身不包含位置信息。
4. PCB Editor画封装:从空白文件到完整Symbol
4.1 新建Package Symbol与栅格设置
焊盘文件准备好之后,才开始真正画封装。打开PCB Editor,从Start菜单里选Allegro PCB Design GXL或者XL,打开后在File菜单中选择New,把Drawing Type设为Package symbol,文件后缀自动变成.dra。这里一定要选对类型,如果选了Board或者Module,后面封装规则就不对了,会导致很大麻烦。
进入编辑界面,第一件事不是急着放焊盘,而是调整环境参数。点击Setup > Design Parameter Editor或者在英文环境中按Setup > Grids,把栅格设为一个合理的值。对于封装设计,我习惯把Non-Etch层的栅格设为0.1mm,Etch层栅格设为0.025mm。为什么Etch层要设得更细?因为在布线时焊盘、引脚、走线之间的位置精度要求较高,0.025mm能保证焊盘中心点的定位更准确。如果栅格太大,想微调位置时鼠标一动就是0.254mm,差之毫厘谬以千里。同时器件中心点的坐标原点最好放在封装中心,这样在电路板上放置元件时,以原点为基准定位会更直观。你可以用Setup > Change Drawing Origin手动设置绘制原点。
4.2 放置焊盘、调整坐标与封装精度
放置焊盘的操作路径是Layout > Pins,然后在右边的Options面板里找到PAD stack,选择我们已经建好的焊盘文件。OrCAD的Cadence 16.6里,这里需要点击后面的浏览按钮,载入.pad文件。载入后,Options面板里会显示这个焊盘的形状和尺寸预览,确认无误后再设置数量、间距和旋转角度。
举个例子,我要画一个4位的排针封装,引脚间距是2.54mm,焊盘用前面建好的PAD150D100.pad。在Options面板里,X Direction数量填4,间距填2.54mm,Y Direction数量填1,间距可以先不管。然后设计原点放在第一个焊盘的位置或者封装中心,依次点击放置,4个焊盘就会以2.54mm的间距排开。如果你想先放一个焊盘,后面用copy功能来复制,也可以,但效率会低一点。放置完成后,用Show Element命令点一下任何一个焊盘,检查焊盘中心坐标是否符合期望值。
这里要多说一句:焊盘精度非常重要。封装的每一个引脚位置必须和实际元件引脚位置一致,不能靠肉眼对齐。最好的办法是先查数据手册里的Package Drawing,把每个引脚的坐标算出来,再在放置时输入精确坐标。比如LQFP48芯片,引脚间距0.5mm,每边12脚,第一脚在左下角,那我们可以算出各个脚相对于中心的坐标是(±0.25, ±2.75)这类值,按这个坐标放置焊盘,封装才不会有偏差。实际上,Candence也支持用命令窗口输入坐标来精确放置,这是我用得最多的方式。
4.3 丝印、位号、装配层和3D体
焊盘放完后,封装还没有完成,因为还缺三个核心内容:丝印、位号、装配层。
丝印画在Silkscreen Top层,用Add > Lines来绘制元件外形。注意丝印线不能画到焊盘上,否则PCB板厂做丝印时会把油墨印到焊盘上,影响焊接。一般丝印离焊盘边缘至少保留0.2mm的间距。对于极性元件,还要在丝印上标出极性方向,比如二极管画一条竖线,电解电容画一个半圆弧。丝印线的线宽我习惯用0.15mm或0.2mm,太细板厂做不出来,太粗又会显得非常臃肿。
位号也就是Reference Designator,用Add > Text添加,层选Silkscreen Top,内容通常是R1、C1、U1这样的通配符。在封装里不需要写具体数字,因为每个元件在原理图中的位号是在PCB布局时自动显示和更新的。另外还要在Assembly Drawing层添加装配信息,一般是元件位号和元件外形,用于后期的装配文档。最后在Place Bound Top层画一个外形区域,这个区域是元件占用的体积范围,会影响自动布局和DRC检查中的间距检测。对于LQFP这类有高度的器件,还可以在Setup > Areas > 3D Body里创建3D体,高度按数据手册填写。如果你有STEP模型,也可以在File菜单中导入,这样3D视图下就能看到真实的元件外形。
5. 封装生成与入库:为什么画完了PCB还是找不到
5.1 Create Symbol生成PSM文件
封装画好之后,保存.dra文件只是把“源文件”存了下来,PCB Editor在真正调用封装时用的是.psm文件。这一步很多人会忘记。操作方法是:封装绘制完成后,执行File > Create Symbol,系统会在当前目录下生成一个与封装同名、后缀为.psm的文件。生成PSM时,系统会报告一些警告,比如某个图形在非“Package Geometry”层上,或者某个Text在不可用层,这时要留意看警告内容,以免封装在后续使用中出现异常。
这里有个经验:如果封装修改过焊盘位置,或者改了焊盘文件本身,重新生成PSM时,最好把之前的.psm文件先手动删除,或者重命名备份一下,避免旧文件覆盖不彻底。其实Cadence在Create Symbol时通常会覆盖同名文件,但如果封装名和焊盘名存在大小写差异,可能产生不一致的结果。稳妥的做法是:重新打开.dra文件,确认无误后,优先用File > Create Symbol,然后再到文件管理器里检查.psm文件的修改时间,确认已经更新成功。
5.2 库路径设置和Allegro封装导入PCB
有了.psm文件,还需要让PCB Editor能找到它。在PCB Editor中,Setup > User Preferences > Design Paths > Library,这里需要把封装所在目录添加到搜索路径中。常见的问题是:建好了封装,也生成了PSM文件,但Place > Manually时就是找不到封装,或者加载出来是空白的。绝大多数原因是Library路径没设置,或者路径中包含了中文目录名。Cadence对中文路径的支持很差,我建议整个工程路径都使用英文,包括电脑用户名和桌面路径。
路径设置好之后,就可以在PCB设计中放置封装了。在PCB Editor中打开布局界面,执行Place > Manually,在弹出的对话框里会列出所有能被搜索到的封装。点击你需要的封装,移动鼠标放到合适位置即可。如果你修改了封装,需要更新电路板中已经放置的元件,使用Tools > Utilities > Update Symbols,或者Update Symbols菜单,勾选Package symbol,选择对应的封装名,再点Refresh即可。这个操作会把电路板上所有同名封装替换成最新版本,注意如果电路板中某个元件的封装被手工改动过,会被一起刷新覆盖。
5.3 后期封装更新与替换单个封装的技巧
在实际项目中,经常会遇到只替换某一个器件的封装,而其他同封装器件不动的情况。比如所有贴片电阻都用R0805封装,但有一个电阻因为布局空间限制要换成R0603。这种情况下,不要用Update Symbols,因为会选择性地替换所有对应封装。正确做法是在OrCAD原理图里,把该电阻的Footprint属性改成R0603,再重新生成网表,进入PCB Editor后执行File > Import > Logic或Directives同步,这个元件的封装会被单独替换,其他元件不受影响。
还有一种情况是,电路板中某个元件的焊盘被误删或者想要单独替换。可以直接在PCB Editor中执行Edit > Replace,选择要替换的目标元件,然后在Options面板里选择新的封装或焊盘。Replace操作会保留元件的位号、网络等属性,只是改变几何形态。这里要提醒一个坑:如果用Replace来把DIP封装换成SOP封装,网络连接和引脚编号不匹配时,DRC会报错,这种情况最好回到原理图改Footprint再同步,而不是强行替换。
6. 常见问题与排查心得:我被这些坑卡过不止一次
6.1 引脚与焊盘未对应、焊盘无法去除怎么排查
在Allegro里,焊盘和引脚是两个概念。很多新手在删除焊盘时,总是删不掉,或者选出的是“Dangling Pins”之类的警告。原因在于Allegro中焊盘是以Pin的形式存在的,必须通过Edit > Delete,然后在右侧Find面板里只勾选Pins,才能删除引脚焊盘。如果Find面板同时勾选了Symbols或Shapes,点选焊盘时可能会选中整个封装,或者选不中任何东西。这个问题网上经常有人问“Allegro无用焊盘不能去除为什么”,基本都是Filter没有设置对。
引脚与焊盘未对应,这个问题也特别典型。你在原理图库中画了一个芯片的原理图符号,引脚编号是A1、A2、A3……,但封装编号是从1、2、3开始的,到了导入PCB时,连线对不上。解决的方法是:在制作原理图库符号时,引脚编号必须和封装引脚编号保持一致。对于BGA这种有字母数字编号的封装,尤其要注意大小写,比如a1和A1在Cadence中是不同字符串。设计之前,最好把BGA的引脚编号规则统一成大写的A1、B1这类格式,避免后面的麻烦。
6.2 Allegro更新封装和替换封装的操作误区
更新封装这个操作,很多人会在Update Symbols界面里把所有类型全选上,然后点Refresh,结果发现有些器件封装没变,有些器件位置动了。这其实是正常的,因为Update Symbols不仅会更新封装,还会刷新符号、焊盘、机械符号等,如果某个库文件路径有问题,就会局部失效。建议在更新前先确认库路径,再根据自己的改动范围,只勾选Package symbol或Symbols,不要全选。更细一点说,如果你只改了焊盘文件,那么只需要更新对应的.pad文件,可以在Update Symbols里勾选Pad stack,并选择对应焊盘。
替换单个封装时,还有一个常见误区。用Edit > Replace替换后,封装看起来已经变了,但复位后元件的器件类型还是旧封装,比如替换后底下的丝印名称没有更新,位号仍然显示旧型号。这是因为Replace本身并不会修改原理图Footprint属性,只是单纯的几何替换。如果希望PCB和原理图保持一致,建议还是回到原理图改属性,重新同步。
6.3 几个常用封装尺寸速查与小技巧补充
最后把我经常用到的几个封装参数整理一下,方便大家参考。这不代表所有情况,具体器件还是以数据手册推荐焊盘为准。
| 封装类型 | 焊盘/尺寸参考 | 备注 |
|---|---|---|
| 0805电阻电容 | 焊盘宽1.2~1.4mm,长1.0~1.3mm | 间距约1.0~1.2mm |
| 1206电阻电容 | 焊盘宽1.5~1.8mm,长1.3~1.6mm | 载流能力更强 |
| SOT-23三极管 | 焊盘宽0.6~0.75mm,长0.9~1.1mm | 间距1.9mm |
| QFN48(0.5mm pitch) | 引脚焊盘宽0.25mm,长0.75mm | 底部散热焊盘4.5mm见方左右 |
| LQFP48(0.5mm pitch) | 引脚焊盘宽0.3mm,长1.0mm | 引脚间距0.5mm |
| SOD-123二极管 | 焊盘宽0.9~1.1mm,长1.0~1.2mm | 参考数据手册 |
一个小技巧:在画封装时,可以先把丝印层的外框画出来,再根据外框尺寸去放焊盘,这样能直观看到封装整体大小和引脚位置是否合理。不过更推荐的方式是先根据引脚坐标放焊盘,再根据焊盘外形画丝印,因为焊盘的位置才是硬约束,丝印只是提示作用。
另外,关于Cadence封装库的管理,我建议每隔一段时间就整理一次,删除那些已经废弃的测试版本。因为一旦库文件多了,PCB Editor的加载速度会变慢,而且封装搜索时会出现很多“长得像”的选项,选错一个就是改版的代价。
我个人在实际操作中的体会是,Cadence的建库流程虽然比一般EDA工具繁琐,但是它的严谨性也体现在这里。先把焊盘设计规范了,封装库才能稳定,PCB设计后期的问题才会少。如果觉得这个流程太长,可以先把电阻电容这些常用元件建好,之后做项目时逐步丰富自己的封装库。真正上手建几次,你就会发现Pad Designer和PCB Editor的配合其实很有逻辑,一点也不难。