ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Allegro 17.4 PCB设计全流程实战:从原理图到Gerber避坑指南

Allegro 17.4 PCB设计全流程实战:从原理图到Gerber避坑指南 1. 为什么我劝新手从Allegro 17.4开始学PCB设计很多人第一次打开Cadence Allegro的时候表情都是懵的。满屏的图标、菜单、工具栏跟Altium Designer那种“点两下就能画完”的画风完全不一样。但如果你打算在消费电子、通信设备、工控主板这些行业里长期做硬件Allegro基本是绕不过去的坎。我见过太多人装了软件之后卡在第一步——原理图建好了网表导不进去网表导进去了封装又对不上封装搞定了铺铜又出问题最后好不容易画完了Gerber导出被板厂打回来三次。这篇内容就是写给这些人的。我会把从原理图到Gerber的完整链路拆开每一步告诉你为什么这么做、坑在哪里、怎么绕过去。不是官方文档的复读机是我自己踩过的坑和带新人时反复验证过的路径。适合零基础想入门Allegro的在校生、从AD转过来的工程师、以及被公司要求用Allegro但没人带的新人。你不需要先学Cadence Virtuoso也不需要懂仿真只要会基本的电路常识和Windows操作跟着走就能跑通全流程。2. 开工前的环境准备与工程管理思路2.1 安装与版本选择为什么锁定17.4Cadence的安装一直是新手的第一个噩梦。网上流传的各种安装包和补丁版本鱼龙混杂我建议直接锁定17.4这个版本。原因很简单它足够稳定业界保有量大绝大多数教程和Skill脚本都是基于17.2/17.4写的遇到问题能搜到答案。16.6虽然经典但界面和17.x差异较大学了之后换版本又要重新适应。24.x太新很多公司的库和流程还没跟上。安装路径绝对不要带中文和空格这是铁律。我见过有人装在D:\我的项目\Cadence下面结果OrCAD Capture打开就报错查了半天是路径编码问题。推荐D:\Cadence\SPB_17.4这种纯英文短路径。安装完成后先别急着建工程打开Capture CIS看看能不能正常启动再打开Allegro PCB Editor确认License正常。如果启动时报“无法连接License Server”大概率是环境变量CDS_LIC_FILE没配好指向license.dat的完整路径即可。注意安装过程中关闭杀毒软件和Windows Defender的实时保护Cadence的某些组件会被误杀导致后续功能缺失。2.2 工程目录结构一开始就规范后面少遭罪新手最容易犯的错是把所有文件扔在一个文件夹里原理图、PCB、Gerber、BOM混在一起。等到要改版或者归档的时候根本分不清哪个是最终版。我建议在项目根目录下建这几个子文件夹Schematic存放.dsn原理图文件和.opj工程文件PCB存放.brdPCB文件Library存放自建的原理图符号库.olb和PCB封装库.dra/.psmOutput存放Gerber、钻孔文件、贴片坐标等生产文件Doc存放设计说明、叠层要求、阻抗要求等文档这样做的好处是当你要把项目发给同事或者归档时整个文件夹打包即可不会漏文件。而且Allegro的库路径设置可以指向Library文件夹换电脑后重新指定路径就行不用一个个改。2.3 库管理别用自带库自己建Cadence自带的库质量参差不齐而且很多封装不符合国内板厂的工艺能力。我的习惯是所有器件都自建符号和封装哪怕是最普通的0402电阻。听起来麻烦但一次建好之后后面所有项目都能复用。原理图符号库用Capture CIS的Library Manager建.olb文件PCB封装库用PCB Editor的Padstack Designer建焊盘再用Package Symbol建封装。建库的时候有个细节焊盘命名要规范。比如一个0402电阻的焊盘命名成R0402_0R6X0R7表示焊盘尺寸0.6mm×0.7mm。这样看到名字就知道尺寸不用打开文件查。封装的命名同理R0402、C0603、SOP-8_3R9X4R9P1R27把关键尺寸编码进去。这个习惯在器件多了之后能救命。3. 原理图设计从建库到网表输出的完整链路3.1 原理图符号创建管脚多的器件怎么搞新手最怕建那种一百多个管脚的符号比如STM32F103C8T6或者DDR4的颗粒。一个个手动画管脚画到一半就眼花。我的做法是用Excel辅助先在Excel里整理好管脚号、管脚名、电气类型Input/Output/Power/Ground/Bidirectional/Passive然后存成CSV。Capture CIS支持导入管脚列表在Symbol Editor里选Place Pin Array把CSV内容粘贴进去一次性生成所有管脚。然后按功能分区摆放比如电源区、时钟区、通信区用矩形框隔开。电气类型不能乱设。Power类型的管脚必须接电源网络否则ERC检查会报错。Passive类型用于电阻电容这类无源器件。Bidirectional用于数据总线。如果设错了网表导入PCB时会出现“器件未定义”或者“网络冲突”的报错。我见过有人把VCC管脚设成Passive结果PCB里电源网络连不上查了一下午。实操心得建符号时把管脚号字体设成Fixed管脚名设成Variable这样改管脚名的时候不会影响管脚号的位置。另外Pin Group功能可以把相关管脚编组比如把DDR的DQ0-DQ7编成一组布线时方便整体操作。3.2 原理图绘制与ERC检查画原理图的核心原则是信号流向清晰。从左到右输入在左输出在右电源在上地在下的传统布局依然适用。网络标签Net Alias要统一命名规范比如VCC_3V3、GND、SPI1_MOSI、UART1_TX。不要用N12345这种自动生成的网络名否则PCB里根本分不清哪根线是什么。ERCElectrical Rule Check必须跑而且必须清零。常见的ERC报错有报错类型原因解决方法电源管脚未连接Power类型的管脚悬空检查是否漏接电源网络输出管脚短接两个Output管脚接在一起确认是否应该用Bidirectional网络只有一个节点某个网络只连了一个管脚检查是否漏画连线器件位号重复两个器件用了同一个位号重新编号AnnotateERC通过后执行Create Netlist输出格式选Allegro生成.tel网表文件。这个文件是原理图和PCB之间的桥梁后面导入PCB就靠它。3.3 网表导入PCB第一次导入必看的报错处理打开Allegro PCB Editor新建.brd文件然后File Import Logic选择刚才生成的网表。第一次导入大概率会报错常见的有“Device not found”PCB库里没有对应的封装。解决方法是在Setup User Preferences Paths Library里把封装库路径加进去确保.dra和.psm文件都在。“Pin number mismatch”原理图符号的管脚号和PCB封装的焊盘号对不上。比如原理图里管脚叫1,2,3PCB封装里焊盘叫A,B,C。回去改封装或者改符号保持一致。“Net has no driver”某个网络没有驱动源。检查原理图里是不是漏了上拉电阻或者电源标志。导入成功后所有器件会堆在PCB画布外面用Place Manually一个个摆进来。别急着摆先做布局规划。4. PCB布局布线从叠层到铺铜的实战细节4.1 叠层设置与阻抗计算叠层是PCB的地基定错了后面全白搭。四层板是入门标配Top-GND-Power-Bottom。六层板一般是Top-GND-Signal-Power-GND-Bottom。层数越多成本越高但信号完整性越好。叠层设置里最关键的是介质厚度和铜厚。板厂默认的芯板厚度是0.5mm或0.8mmPP片半固化片有0.1mm、0.2mm等规格。你要根据板厂的工艺能力来填。比如嘉立创的JLC04161H-3313叠层Top到GND的介质厚度是0.2mm铜厚1oz35um。这些参数在板厂的官网都能查到。阻抗计算用Allegro自带的Cross Section工具或者用板厂的在线计算器。比如USB差分线要求90Ω差分阻抗线宽和间距要根据叠层反推。我一般先用板厂的计算器算出线宽间距再填到Allegro的约束管理器里。注意叠层设置好后不要随意改层数或者介质厚度否则所有阻抗和线宽都要重算。改版时如果只是改电路不改叠层直接复用原来的.brd文件另存即可。4.2 布局先大后小先难后易布局的顺序是先放结构件连接器、螺丝孔、按键再放核心器件MCU、DDR、电源芯片最后放阻容感。结构件的位置由外壳决定不能动。核心器件的位置影响布线难度要优先考虑。DDR的布局尤其讲究。DDR颗粒要尽量靠近MCU走线长度越短越好。数据线DQ和地址线ADDR要分组同组内走线长度差控制在±50mil以内。时钟线要包地处理远离其他信号。电源引脚旁边必须放去耦电容0.1uF和10uF搭配越靠近引脚越好。电源模块的布局要考虑散热。DC-DC芯片的电感、二极管、电容要紧凑排列减少环路面积。反馈线FB要远离电感否则会被干扰导致输出电压不稳。我见过一个反激式开关电源的板子FB线从电感底下穿过结果输出电压跳变查了两天才发现是布局问题。4.3 布线规则与约束管理器Allegro的约束管理器Constraint Manager是核心工具但新手往往不知道怎么用。基本流程是先设物理规则线宽、过孔再设间距规则线到线、线到焊盘、线到铜皮最后设电气规则阻抗、等长、差分。线宽设置电源线要粗一般1A电流对应1mm线宽1oz铜厚。信号线默认6milBGA区域可以降到4mil。过孔默认0.3mm孔径/0.6mm盘径电源过孔可以加大到0.5mm/1.0mm。间距规则默认间距6milBGA区域可以降到4mil。高压区域要加大间距比如220V交流电部分间距至少2mm。铜皮到板边的距离至少0.5mm否则铣板时铜皮会翘起。差分对设置在约束管理器里定义差分对设好线宽、间距、阻抗。Allegro会自动检查差分对的等长和间距。USB、HDMI、PCIe这些高速信号必须做差分。4.4 铺铜优先级和避让的坑铺铜Copper Pour是Allegro里最容易出问题的地方。铜皮优先级决定了哪块铜皮先铺、哪块后铺。优先级高的铜皮会覆盖优先级低的。比如GND铜皮优先级设1电源铜皮设2那么电源铜皮会避开GND铜皮。铺铜的避让规则在Shape Global Dynamic Params里设置。Thermal Relief热焊盘用于连接焊盘和铜皮Anti-pad用于隔离过孔和铜皮。新手常犯的错是热焊盘的开口太小导致焊接时散热太快虚焊。一般开口宽度设0.3mm连接桥宽度设0.3mm。实操心得铺铜后一定要跑Shape Verify检查有没有孤岛铜皮Isolated Copper。孤岛铜皮没有电气连接会产生天线效应干扰信号。发现孤岛铜皮要么删掉要么加过孔连接到主地平面。5. Gerber导出与生产文件准备5.1 Gerber导出参数设置与常见报错Gerber是板厂能看懂的唯一语言。Allegro导出Gerber的路径是Manufacture Artwork。需要导出的层包括Top顶层线路Bottom底层线路Soldermask_Top/Bottom阻焊层Silkscreen_Top/Bottom丝印层Pastemask_Top/Bottom钢网层Drill钻孔层Outline板框层每层的参数在Film Control里设置。Format选Gerber RS274X这是最通用的格式。Units选Inch精度选2:50.01mil分辨率。Suppress选Leading Zero。这些参数板厂都认。常见报错“Photoplot has no outline”说明板框层没加进去。“Undefined aperture”说明有焊盘没有对应的D码。检查Padstack是否完整。“Film size too small”说明画布尺寸小于实际板框在Setup Drawing Size里加大。5.2 钻孔文件与贴片坐标钻孔文件用Manufacture NC Drill Tape导出格式选Excellon。钻孔文件要和Gerber的钻孔层一致否则板厂会搞混。贴片坐标用Manufacture Report导出选Placement格式选ASCII。坐标文件里包含位号、X坐标、Y坐标、旋转角度贴片厂直接导入机器就能用。注意贴片坐标的原点要设成板框左下角不要用默认的绝对原点。否则贴片厂要自己算偏移容易出错。在Setup Change Drawing Origin里点板框左下角即可。5.3 打包发给板厂检查清单发板厂之前对照这个清单检查一遍检查项要求Gerber层数与叠层一致不多不少钻孔文件与Gerber钻孔层一致板框闭合无缺口阻抗要求单独文档说明叠层要求单独文档说明表面处理喷锡/沉金/OSP明确最小线宽/间距与板厂工艺匹配过孔盖油/开窗明确我一般会把Gerber、钻孔文件、叠层说明、阻抗说明打包成一个ZIP命名成项目名_版本号_日期发给板厂。板厂会做DFM检查如果有问题会反馈按反馈改就行。6. 新手高频问题与排查技巧实录6.1 网表导入失败从报错到解决网表导入失败是最常见的问题没有之一。我整理了一个速查表报错信息根本原因解决步骤Device not found封装库路径不对或封装缺失检查Library路径确认.dra/.psm存在Pin number mismatch符号管脚号与焊盘号不一致对比符号和封装的管脚号改一致Net has no driver网络无驱动源检查原理图电源标志和上拉电阻Duplicate reference位号重复重新AnnotateProperty missing器件缺少必要属性检查Device文件是否完整排查思路是从源头查起先确认原理图ERC通过再确认网表生成成功再确认PCB库路径正确最后确认封装与符号匹配。不要跳步跳步只会浪费时间。6.2 铺铜问题优先级、孤岛、热焊盘铺铜的问题集中在三个方面优先级冲突两块铜皮重叠时优先级高的覆盖优先级低的。如果发现电源铜皮被GND铜皮覆盖了检查优先级设置。在Shape Select Shape or Void里选中铜皮右键Parameters改Priority值。孤岛铜皮铺铜后跑Shape Verify如果有孤岛要么删掉要么加过孔连接到主地。孤岛铜皮在EMC测试时会产生辐射必须处理。热焊盘连接不良热焊盘的连接桥太窄焊接时散热太快。在Global Dynamic Params Thermal Relief里把连接桥宽度从0.2mm加大到0.3mm开口从0.2mm加大到0.3mm。6.3 快捷键与Skill脚本效率提升的野路子Allegro的默认快捷键很少但可以自定义。在Setup User Preferences Ui Input里可以改快捷键。我常用的几个F2Zoom FitF3Zoom InF4Zoom OutF5Slide推挤布线F6Add ConnectF7DeleteF8MoveSkill脚本是Allegro的杀手锏。网上有很多开源脚本比如自动加泪滴、自动检查丝印压焊盘、自动导出Gerber。我常用的一个脚本是quick_gerber.il一键导出所有Gerber层省去每次手动设置的麻烦。脚本放在$CDSROOT\share\pcb\skill目录下在allegro.ilinit里加载即可。实操心得Skill脚本不要贪多装多了会拖慢启动速度。常用的三五个就够了。另外脚本要从可信来源下载有些脚本会改你的设计规则导致DRC报错。6.4 从Allegro转PADS文件转换的注意事项有些公司用PADS需要把Allegro的文件转过去。转换路径是Allegro导出.asc文件PADS导入.asc。但转换过程中会丢失一些信息比如铜皮优先级、差分对、约束规则。转换后必须重新检查铜皮是否完整差分对是否还在约束规则是否生效焊盘是否变形我一般建议不要直接转而是把原理图网表和封装库重新导入PADS重新布局布线。虽然费时间但能保证设计质量。直接转的文件往往需要大量修复反而更费时间。7. 一些没人告诉你但很重要的经验7.1 版本兼容降版本的正确姿势Allegro 17.4的文件在16.6里打不开这是版本兼容问题。降版本的方法是在17.4里File Export Downrev Design选16.6格式生成一个.brd文件。但降版本会丢失17.4的新功能比如某些铜皮类型、约束规则。降版本后必须重新跑DRC确认没有报错。7.2 库的备份与迁移库是硬件工程师的命根子。我建议每季度备份一次库存到网盘或者移动硬盘。备份内容包括.olb符号库、.dra/.psm封装库、.pad焊盘库、allegro.ilinit配置文件。换电脑时把这些文件拷过去重新指定路径即可。7.3 设计复用改版时的偷懒技巧改版时不要从头画。把旧版的.brd文件另存为新版本然后File Import Logic导入新的网表。Allegro会自动匹配相同的器件保留布局和布线。新增的器件会堆在画布外面手动摆进来即可。改完后跑DRC确认没有冲突。7.4 与板厂沟通的话术和板厂沟通时不要说“随便”“你看着办”。要明确说叠层要求、阻抗要求、表面处理、最小线宽间距、过孔工艺。比如“四层板Top-GND-Power-BottomJLC04161H-3313叠层USB差分90Ω表面处理沉金最小线宽4mil最小间距4mil过孔0.3/0.6mm。”板厂一听就知道你是老手不会糊弄你。7.5 常见DRC报错的处理优先级DRC报错不要慌按优先级处理短路Short最高优先级必须改。间距Clearance次高看是否影响生产。线宽Line Width影响载流能力必须改。过孔Via影响工艺看板厂能力。丝印Silkscreen最低压焊盘才改。我一般先跑DRC把短路和间距改完再跑一次再看线宽和过孔。丝印问题最后处理因为不影响电气性能。7.6 关于仿真新手要不要学Cadence的仿真工具Sigrity、PSpice很强大但新手不要一上来就学。先把原理图、PCB、Gerber这条链路跑通再学仿真。仿真是锦上添花不是雪中送炭。我见过有人连封装都没建对就去跑DDR仿真结果仿真结果全是错的浪费时间。7.7 一个真实的踩坑案例去年带一个新人做STM32F103C8T6的最小系统板。原理图画完ERC通过网表导入PCB一切正常。布局布线花了三天DRC也过了。导出Gerber发给板厂板厂反馈说“钻孔文件与Gerber钻孔层不一致”。查了半天发现是导出钻孔文件时选错了单位Gerber用的是Inch钻孔文件用的是mm。改过来重新导出板厂确认没问题。板子回来焊接发现复位按键按下去没反应。查原理图发现复位按键的一端接GND另一端接NRST但NRST上拉电阻忘了放。补焊一个10K电阻问题解决。这个案例说明细节决定成败。单位、上拉电阻、去耦电容这些看起来不起眼的东西往往是最容易出问题的地方。7.8 关于Allegro Skill的进阶玩法如果你已经能熟练跑通全流程可以试试Skill脚本自动化。比如写一个脚本自动检查所有器件的位号是否重复、自动在丝印层加版本号、自动导出BOM。Skill的语法类似C语言网上有大量示例。我常用的一个脚本是自动加泪滴Teardrop在焊盘和走线连接处加泪滴防止加工时断线。脚本代码不长但能省很多手动操作的时间。7.9 关于铜皮优先级的深入理解铜皮优先级是Allegro里比较绕的概念。简单说优先级高的铜皮先铺优先级低的铜皮避让优先级高的。比如GND铜皮优先级1VCC铜皮优先级2那么VCC铜皮会避开GND铜皮。如果反过来GND铜皮会避开VCC铜皮。实际项目中一般GND铜皮优先级最高因为地平面要完整。电源铜皮优先级次之信号铜皮优先级最低。注意铜皮优先级不要设太多层一般三层就够了。设多了容易乱而且影响铺铜速度。7.10 关于Allegro转PADS的补充前面提到Allegro转PADS会丢失信息这里补充一个技巧转换前先把所有铜皮删掉转过去之后再重新铺铜。因为铜皮的转换最容易出问题删掉重铺反而更干净。另外转换后的PADS文件要重新跑DRC确认没有短路和间距问题。8. 从入门到熟练的进阶路线跑通一遍全流程之后你算是入门了。接下来要提升的是设计质量和效率。我的建议是第一周熟悉快捷键和约束管理器把常用操作练成肌肉记忆。第一个月做三块板子从简单的双层板到四层板再到六层板。每块板子都跑完整流程包括Gerber导出和板厂沟通。第三个月学Skill脚本把重复性操作自动化。学仿真基础用PSpice跑简单的电源仿真。半年后挑战高速信号设计比如DDR3/DDR4、USB3.0、HDMI。学信号完整性基础理解阻抗匹配、串扰、反射。这个过程没有捷径但每一步都有明确的路径。我见过太多人卡在第一步装完软件就放弃了。其实只要跑通一次全流程后面的路就顺了。Allegro的陡峭学习曲线是事实但一旦跨过去你会发现它比任何PCB工具都强大。最后分享一个我自己的习惯每做完一块板子写一份设计总结。记录用了什么叠层、什么规则、遇到什么问题、怎么解决的。下次做类似项目时直接翻总结不用重新踩坑。这个习惯坚持了五年现在我的总结文档已经成了团队的新人培训材料。
返回列表