1. 为什么封装迁移这件事值得单独拿出来讲画过板子的人都有一个共识原理图可以自己画网络表可以自己连唯独封装这件事能直接决定一块板子是顺利投产还是反复打样。尤其是现在很多中小团队和独立开发者选元器件的起点往往是立创商城——型号全、现货多、价格透明还能直接拿到现成的封装库。但问题也随之而来立创商城提供的封装格式主流是Altium Designer下称AD的集成库或者PcbLib而不少公司、不少项目实际用的却是Cadence Allegro。这两套工具之间的封装迁移看起来只是导一下真上手才知道坑有多深。我自己前后做过不下几十次从立创商城到Cadence的封装迁移从早期的Cadence 16.6到现在的17.4从简单的0603电阻到几百个引脚BGA各种情况基本都踩过一遍。这篇内容就是把这套流程完整拆开讲清楚每一步为什么这么做、哪里最容易出错、怎么验证迁移结果是否可靠。适合三类人看一是刚从AD转到Allegro、手里攒了一堆立创封装要搬家的工程师二是团队里负责建库、需要批量处理封装的管理者三是对封装格式本身感兴趣、想搞明白焊盘和符号底层结构的技术爱好者。哪怕你之前没碰过Allegro跟着走一遍也能把这件事做扎实。需要先明确一个前提封装迁移不是简单的文件格式转换它本质上是几何数据、层定义、焊盘栈、文本属性四套信息的重新映射。AD和Allegro对同一个物理焊盘的组织方式完全不同所以任何一键转换工具都只能解决一部分问题剩下的必须靠人工核对和参数重建。想清楚这一点后面的操作才不会走偏。2. 迁移前的整体思路与方案选型2.1 三条主流路线各自适合什么场景从立创商城拿到封装最终落到Cadence Allegro里实际可走的路线有三条我按使用频率和可靠性排个序。第一条是AD中转法立创商城下载AD格式封装在AD里整理规范再通过Allegro的导入接口转成Allegro封装。这条路线最通用适合绝大多数场景尤其是封装数量多、需要批量处理的时候。缺点是中间多了一道AD处理如果AD里的封装本身不规范问题会被带进Allegro。第二条是纯手工重建法把立创商城的封装当成参考直接在Allegro的Pad Designer和Package Designer里从零建。适合引脚少、结构简单的封装比如SOP、SOT、0603这类。优点是干净可控缺点是费时间一个0402电阻重建加验证大概要十分钟几百个器件就是几十小时。第三条是第三方转换工具法市面上有一些库转换工具能直接读AD的PcbLib输出Allegro的dra。我实测下来这类工具对简单封装的转换成功率还行但遇到异形焊盘、多焊盘组合、特殊层定义就容易丢数据而且转换后的焊盘栈经常需要手动修。所以我的建议是简单封装可以试试工具复杂封装老老实实走AD中转或者手工重建。提示不管走哪条路线迁移前一定要先确认目标Allegro版本的焊盘栈命名规则和单位制。16.x和17.x在焊盘命名上有差异单位制mil还是mm也要和项目统一否则后面导入PCB时会报一堆找不到焊盘的错。2.2 为什么优先推荐AD中转而不是直接转换很多人第一反应是找个工具直接转省事。但我更推荐AD中转原因有三个。第一立创商城的AD封装本身质量参差。有些是原厂提供的规范有些是用户上传的焊盘尺寸、丝印位置、原点设置都可能有问题。在AD里过一遍正好是检查和修正的机会。如果直接转这些问题会原封不动进到Allegro而且因为Allegro的编辑逻辑和AD不同改起来更麻烦。第二AD的封装编辑能力对新手更友好。AD里看焊盘、量尺寸、调丝印都很直观网格吸附、对齐工具也顺手。在AD里把封装整理干净再转Allegro等于把最脏的活放在最顺手的工具里干。第三AD到Allegro的导入接口相对成熟。Allegro自带从AD导入的转换器虽然不完美但对标准焊盘、标准层的识别率很高。配合手工修正效率比纯重建高得多。2.3 迁移工作的整体流程把整个迁移拆成六个阶段后面每个阶段都会展开讲从立创商城下载并筛选AD封装确认版本和单位制在AD里做封装规范化处理统一原点、层、丝印、焊盘命名用Allegro的转换接口把AD封装导入生成dra和pad在Allegro里核对焊盘栈、层映射、文本修正转换误差建立封装与原理图符号的对应关系验证引脚映射导入测试PCB做DRC和实际尺寸核对确认可用。这六步里第三步和第四步是技术难点第五步是最容易被忽略但后果最严重的环节。下面逐个拆。3. 从立创商城到AD封装下载与规范化处理3.1 立创商城封装下载的正确姿势立创商城的元件页面一般会提供多种格式的封装下载常见的有AD、PADS、Allegro、KiCad等。这里有个细节优先下载AD格式而不是Allegro格式。原因在于立创提供的Allegro封装往往是早期版本导出的焊盘栈命名和层定义经常和当前Allegro版本对不上导入时报错概率高。而AD格式相对稳定且方便二次编辑。下载下来通常是一个压缩包里面包含PcbLib封装库、SchLib原理图符号库有时还有3D模型step文件。解压后先别急着打开用AD的库查看器或者直接双击PcbLib确认里面封装的命名和你要的型号一致。立创的封装命名一般是型号封装类型比如STM32F103C8T6-LQFP48核对清楚再往下走。注意有些元件页面提供的封装是通用封装比如LQFP48-0.5mm这种封装不一定和你的具体型号引脚定义完全匹配尤其是散热焊盘的位置和尺寸。遇到这种情况要么找原厂datasheet核对要么在AD里手动调整。3.2 AD里必须做的五项规范化处理封装下载下来直接转Allegro十有八九会出问题。在AD里必须做五件事我按重要性排序。第一统一原点位置。AD封装的原点默认可能在封装中心也可能在某个焊盘上甚至在第一脚。Allegro对原点很敏感导入后如果原点不对器件在PCB上的放置位置会偏。我的习惯是把原点设在封装几何中心或者第一脚焊盘中心具体看项目规范。在AD里用Edit Set Reference Center或者Pin1来设置。第二检查焊盘尺寸和间距。立创的封装焊盘尺寸有时偏小尤其是手工焊接场景。用AD的测量工具量一下焊盘长宽、相邻焊盘间距和datasheet对比。如果偏小在AD里直接改焊盘属性。这一步在AD里做比在Allegro里做快得多因为AD的焊盘编辑是所见即所得。第三清理多余的层和元素。立创的封装里经常有多余的机械层线条、注释文本、甚至隐藏的3D体。这些在AD里不影响使用但转到Allegro后会变成一堆莫名其妙的元素。用AD的PCB Filter或者直接框选把不需要的层元素删掉只保留Top Layer、Top Overlay、Top Paste、Top Solder、Mechanical这几层的关键内容。第四规范丝印。丝印线宽建议统一到0.15mm或0.2mm丝印不能压在焊盘上器件外形轮廓要清晰。立创的丝印有时线宽不一或者有缺口在AD里用Find Similar Objects批量改线宽用对齐工具调整位置。第五确认焊盘命名。AD的焊盘命名默认是Pad1、Pad2...Allegro导入后会沿用。如果封装里有多个相同功能的焊盘比如散热焊盘命名要区分开否则Allegro里会合并或者报错。3.3 单位制和精度的统一这一步单独拎出来讲因为它是最容易被忽略、后果又最严重的环节。AD默认单位可能是mil也可能是mm取决于封装来源。Allegro项目通常有统一的单位制比如很多公司用mil有些用mm。迁移前必须确认两边单位制一致否则焊盘尺寸会差25.4倍直接报废。在AD里用View Toggle Units切换单位然后在Preferences里确认默认单位。如果封装是mil制的而项目是mm制建议在AD里先转成mm再导出避免转换过程中的精度损失。AD的转换精度是够的但要注意小数位数一般保留4位小数0.0001mm就足够。精度方面Allegro对焊盘坐标的精度要求比AD高。AD里焊盘坐标可能是0.01mm精度Allegro里如果精度不够会出现焊盘重叠或者间隙。建议在AD里把所有焊盘坐标和尺寸都设成至少0.001mm精度导出时就不会丢数据。4. AD到Allegro的转换实操与核心参数4.1 Allegro的AD导入接口怎么用Allegro从17.x开始自带了从AD导入的转换器入口在File Import CAD Translators Altium。16.6版本没有这个菜单需要用第三方工具或者手工重建所以如果你还在用16.6建议先升级到17.2以上转换效率会高很多。导入流程大致是这样打开Allegro PCB Editor新建一个空的brd文件然后走File Import CAD Translators Altium选择AD的PcbLib文件或者整个PrjPcb工程。转换器会弹出一个对话框让你选要转换的封装、目标库路径、单位制等。这里有几个关键选项Source选PcbLib还是PrjPcb。如果只是转封装选PcbLib就行如果要连原理图符号一起转选PrjPcb。Output指定输出目录转换后会生成dra封装文件和pad焊盘文件。Units选mil还是mm必须和AD里的单位制一致。Layers映射AD的层到Allegro的层。默认映射一般够用但Top Overlay到Silkscreen_Top、Top Solder到Soldermask_Top这些要确认。点OK后转换器会跑一段时间封装越多越慢。跑完后去输出目录看dra和pad文件应该都在。如果某个封装没转出来转换器会生成一个log文件里面会写原因常见的是unsupported pad shape或者layer not mapped。4.2 焊盘栈的核对与重建转换出来的pad文件不能直接用必须逐个核对。Allegro的Pad Designer是专门编辑焊盘栈的工具打开一个pad文件你会看到几个关键参数Units单位制确认和项目一致。Padstack焊盘类型有Through、Blind/Buried、Single等。表贴器件一般是Single。Layers每一层的焊盘形状和尺寸。Top层是实际焊盘Soldermask层是阻焊开窗Paste层是钢网开孔。核对的重点是尺寸和形状。AD里的焊盘可能是圆形、矩形、圆角矩形、异形Allegro导入后有时会把异形焊盘简化成矩形或者把圆角矩形变成直角矩形。遇到这种情况在Pad Designer里手动改回正确形状。Allegro支持Circle、Square、Oblong、Rectangle、Octagon等标准形状异形焊盘需要用Shape符号或者多边形绘制。阻焊开窗和钢网开孔也要核对。一般阻焊开窗比焊盘大0.05-0.1mm每边钢网开孔和焊盘一样大或者略小。立创的封装有时阻焊开窗偏大导入后要调回来。提示Allegro的焊盘栈命名有规范一般是形状尺寸类型比如R0603_1608表示矩形0603焊盘。转换出来的pad命名可能很乱建议批量重命名方便后续管理和复用。4.3 层映射的常见问题AD和Allegro的层定义不是一一对应的转换时容易出现层错位。最常见的几个问题丝印层错位AD的Top Overlay对应Allegro的Silkscreen_Top但有时会映射到Assembly_Top或者Package_Geometry。丝印跑到装配层PCB上就看不到丝印了。阻焊层丢失AD的Top Solder对应Allegro的Soldermask_Top如果映射没做对阻焊开窗会丢失焊盘被绿油盖住。机械层混乱AD的Mechanical层在Allegro里没有直接对应一般映射到Package_Geometry或者Board_Geometry。如果封装里有多个机械层要确认哪个是器件外形、哪个是装配轮廓。解决方法是转换后在Allegro里打开dra用Display Color/Visibility打开层显示逐层检查。丝印应该在Silkscreen_Top阻焊在Soldermask_Top钢网在Pastemask_Top器件外形在Package_Geometry。发现错位用Edit Change或者直接改元素的层属性。4.4 文本和丝印的修正转换后的丝印文本经常出现字体不对、大小不对、位置偏移的问题。Allegro的文本编辑在Edit Text或者直接双击文本。要检查的几点字体Allegro默认用Vector字体AD的TrueType字体转换后可能变成乱码或者方块。建议统一改成Vector字体。大小丝印文本高度一般0.8-1.0mm线宽0.15mm。转换后可能偏大或偏小批量改。位置位号RefDes一般放在器件轮廓外靠近第一脚。转换后位置可能乱手动调。内容确认位号文本是RefDes占位符而不是具体的R1、C2。封装里的位号应该是占位符实际位号在PCB里由Allegro自动分配。5. 封装与原理图符号的对应与验证5.1 引脚映射的核对封装转好了不代表就能用。封装和原理图符号的引脚映射必须一致否则PCB里网络会连错。这一步是最容易被跳过、后果最严重的。核对方法打开Allegro的dra数一下焊盘数量和编号打开原理图符号在Cadence Capture或者OrCAD里数一下引脚数量和编号。两边必须一一对应。比如一个SOP-8的芯片封装有8个焊盘编号1-8原理图符号有8个引脚编号1-8。如果封装里焊盘编号是A1-A8原理图引脚是1-8就对不上。立创商城的封装焊盘编号一般和datasheet一致但原理图符号的引脚编号有时会简化或者重排。遇到不一致要么改封装焊盘编号要么改原理图引脚编号以datasheet为准。注意有些封装的散热焊盘EPAD在原理图符号里可能没有对应引脚或者对应到一个单独的引脚比如Pin9。这种情况要在原理图符号里补上或者在Allegro里把散热焊盘设成和某个引脚同网络。5.2 在Allegro里建立封装库和符号库的关联Allegro的封装库.dra和原理图符号库.olb是分开管理的需要在项目里建立关联。具体做法在Allegro里Setup User Preferences Paths Library把封装库路径加进去。在Capture里Options Preferences Design Template把符号库路径加进去。在Capture的元件属性里指定PCB Footprint为Allegro里的封装名。这样导入网表时Allegro才能根据封装名找到对应的dra文件。如果找不到会报footprint not found。5.3 导入测试PCB做DRC验证封装迁移的最后一步是导入一个测试PCB做DRC和实际尺寸核对。具体做法在Capture里建一个简单的测试原理图放几个待验证的器件连上网络。导出网表导入Allegro。在Allegro里放置器件检查封装是否正确加载、焊盘是否对齐、丝印是否清晰。跑DRC看有没有焊盘间距违规、丝印压焊盘、阻焊开窗异常等问题。用Allegro的测量工具量一下关键尺寸和datasheet对比。这一步能发现前面所有环节的遗留问题。我自己的习惯是每迁移一批封装都建一个测试板跑一遍确认没问题再放进正式库。6. 常见问题与排查技巧实录6.1 转换报错速查表报错信息常见原因解决方法unsupported pad shape异形焊盘无法识别在AD里改成标准形状或在Allegro里手工重建layer not mapped层映射缺失在转换器里手动指定层映射footprint not found封装库路径不对检查Allegro的Library路径设置padstack not found焊盘栈缺失确认pad文件在封装库路径下duplicate pin number焊盘编号重复在AD里改焊盘编号确保唯一text overflow丝印文本超出封装范围调整文本大小或位置6.2 几个我踩过的坑坑一单位制混用。有一次从立创下载的封装是mil制项目是mm制转换时忘了改结果焊盘尺寸差了25.4倍0603电阻的焊盘变成了1.6mm×0.8mm的巨无霸。后来养成习惯转换前先看单位制转换后再量一次尺寸。坑二散热焊盘丢失。QFN封装的散热焊盘在AD里是一个大的矩形焊盘转到Allegro后有时会变成几个小焊盘或者直接丢失。原因是AD里的散热焊盘可能是用多个焊盘拼的转换器识别不了。解决方法是在AD里把散热焊盘合并成一个或者在Allegro里手工重建。坑三丝印压焊盘。立创的丝印有时会压在焊盘上AD里看不出来转到Allegro后DRC报错。解决方法是在AD里用Design Rules Manufacturing Silkscreen Over Component Pads检查提前修掉。坑四原点偏移。AD封装的原点如果在第一脚转到Allegro后原点可能跑到封装外导致器件放置时位置偏移。解决方法是在AD里统一原点或者在Allegro里用Edit Move调整。坑五焊盘编号和原理图引脚不匹配。这个最隐蔽PCB画完了才发现网络连错。解决方法是迁移后立刻核对引脚映射别等到画完板子再查。6.3 批量迁移的效率技巧如果封装数量多逐个处理太慢可以用几个技巧提速批量转换Allegro的转换器支持一次选多个封装前提是它们在同一个PcbLib里。脚本处理Allegro支持Skill脚本可以批量改焊盘命名、层属性、文本大小。网上有现成的脚本也可以自己写。模板复用把常用的焊盘栈比如0603、0805、SOP-8做成模板新封装直接套用不用每次重建。库管理建一个统一的封装库按器件类型分类比如Resistor、Capacitor、IC、Connector。迁移好的封装直接归档下次用直接调。7. 迁移后的库管理与长期维护封装迁移不是一次性工作建好的库需要长期维护。几个经验命名规范封装名要能看出器件类型、引脚数、间距。比如R0603、C0805、SOP-8_1.27mm、QFN-32_0.5mm。别用新建封装1这种名字过两个月自己都不认识。版本管理封装库要版本化每次修改记录变更内容。可以用Git或者SVN管理也可以简单点用日期命名文件夹。定期核对立创商城的封装有时会更新如果项目里用了旧版封装要定期核对datasheet确认焊盘尺寸没变。尤其是批量生产前一定要再核对一遍。文档记录每个封装的来源、修改记录、验证结果都记在一个表格里。下次有人问这个封装哪来的、改过什么直接查表。我个人在实际操作中的体会是封装迁移这件事快就是慢慢就是快。花时间在AD里把封装整理干净比转到Allegro后反复修要省事得多。尤其是批量迁移的时候前期规范化做得好后期几乎不用改前期偷懒后期每个封装都要返工。另外别迷信一键转换工具复杂封装该手工重建就手工重建省下的那点时间不够后面排查问题的。最后再分享一个小技巧迁移完一批封装后建一个测试板把所有封装放上去跑一遍DRC量一遍关键尺寸确认没问题再归档。这个习惯帮我挡掉了至少三次批量性的封装错误。
