ARTICLE DETAIL

资讯详情

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

PCB投板前必知:Cadence设计到制造的关键检查与数据转换

PCB投板前必知:Cadence设计到制造的关键检查与数据转换 1. 板厂交付前的那道隐形分水岭胜宏科技和沪电股份这两家名字在PCB圈子里基本等同于高多层、高密度、高可靠性的代名词。你打开任何一份AI服务器、交换机或者汽车电子的BOM表大概率能在PCB那一栏看到它们的身影。但如果你真的把一块板子从原理图推到量产就会发现一个很微妙的事实板厂做的是板而板在交给工厂之前的那一大段工作跟板厂其实没什么关系。这句话听起来像绕口令但它点破了一个行业里长期被模糊处理的边界。胜宏、沪电这类企业解决的是制造问题——蚀刻精度、层间对位、阻抗控制、良率爬坡。而Cadence这类EDA工具解决的是制造之前的问题——你的设计意图能不能被准确表达、能不能被工厂读懂、能不能在投板之前就把该暴露的矛盾全部暴露出来。我见过太多团队在这条分界线上栽跟头。原理图画得漂漂亮亮PCB也布得整整齐齐结果工厂回过来的工程问询EQ堆了十几条或者更惨——板子回来发现某个封装焊盘间距不对整批报废。问题不出在板厂也不出在布线本身而是出在设计数据到制造数据这个转换环节上。Cadence Allegro、OrCAD这一套工具链本质上就是在管这个环节。这篇文章想聊的不是Cadence的安装教程也不是某个具体版本的下载方式而是把板交给工厂之前这件事拆开来看到底有哪些坑、哪些检查、哪些数据转换动作是决定一块板能不能顺利投产的关键。适合已经能画原理图和PCB、但对投板前流程还没有系统认知的工程师也适合那些被EQ问询折磨过、想搞清楚根因的人。2. 从原理图到网表设计意图的第一道翻译2.1 网表不是导出一下那么简单很多人对网表的理解停留在点一下导出生成一个文件的层面。但在Cadence的流程里网表Netlist是原理图世界和PCB世界之间唯一的契约。原理图里你画的每一根连线、每一个网络标号、每一个电源符号最终都要被翻译成PCB工具能读懂的连接关系。这个翻译过程一旦有歧义后面全是连锁反应。我遇到过最典型的一种情况原理图里用了大量的网络标号Net Label来简化连线结果有两个不同页面的网络标号拼写差了一个字母比如VCC_1V8和VCC1V8。原理图ERC电气规则检查不一定报错因为它们是两个独立的网络各自都有驱动源。但到了PCB里这两个网络就是断开的你以为是同一个电源实际上是两个孤岛。板子回来一测一半的芯片没供电。Cadence的OrCAD Capture在做网表导出时有一个容易被忽略的选项网表格式。Allegro支持的网表格式有好几种不同格式对网络名大小写、特殊字符的处理规则不一样。如果你用的是第三方工具或者工厂那边的CAM软件格式不匹配会导致网络名被截断或者替换。我的习惯是导出网表之前先把所有网络名过一遍确保没有空格、没有中文、没有特殊符号大小写统一。这个动作花不了十分钟但能省掉后面几天的排查。2.2 器件位号与封装的绑定关系网表里另一个高频出问题的地方是位号RefDes和封装Footprint的绑定。原理图里每个器件都有一个位号比如R1、C1、U1同时要指定一个PCB封装。这个绑定关系如果错了PCB里就会出现器件存在但找不到封装或者封装对了但引脚映射错了的情况。Cadence的做法是在原理图器件属性里填PCB Footprint字段。这个字段的值必须和PCB库里的封装名完全一致包括大小写。我见过有人写SOIC-8库里建的是SOIC8中间那个横杠就是找不到。Allegro在导入网表时会报错但报错信息有时候不够直观新手容易懵。更隐蔽的是**引脚映射Pin Mapping**问题。比如一个SOT-23封装的MOS管原理图符号的引脚编号是1、2、3但PCB封装的焊盘编号可能是按实际物理位置排的。如果符号和封装的引脚编号没有对应上网表导入后连接关系就是错的。这种错误在原理图上完全看不出来只有到了PCB里或者板子做出来才会暴露。提示在OrCAD里做原理图库的时候器件符号的引脚编号一定要和Datasheet里的Pin Number一致不要自己发明编号。PCB封装库的焊盘编号也要和Datasheet一致。两边都对齐Datasheet是最稳妥的做法。2.3 差分对与总线网表里的高级语法高速设计里差分对和总线是家常便饭。Cadence在原理图层面支持差分对的定义通常是通过网络名后缀或者特定的属性来标记。比如CLK_P和CLK_N或者用DIFF_PAIR属性来显式声明。这些信息会跟着网表一起传到PCB里Allegro的约束管理器Constraint Manager会据此自动识别差分对。但这里有个坑差分对的命名规则必须在整个项目里统一。如果有的地方用_P/_N有的地方用/-Allegro的自动识别就会漏掉一部分。漏掉的差分对不会报错只是不会被当成差分对来处理等长、间距这些规则就不会自动生效。你布完线以为没问题实际上差分对根本没被约束。总线Bus也是类似。原理图里的总线是一组信号的集合到了PCB里需要被展开成独立的网络。Cadence支持总线展开但前提是总线的命名和成员信号的命名要符合规则。比如DATA[0..7]展开成DATA0到DATA7这个规则要在原理图里定义清楚。如果中间有信号名不匹配展开就会失败或者部分失败。3. 封装库板厂看不懂你的设计往往是从这里开始的3.1 焊盘尺寸的经验值与计算值封装库是连接设计和制造的物理接口。你的设计意图再完美如果封装焊盘尺寸不对工厂做出来的板子就是废的。焊盘尺寸这件事很多人靠经验值——比如0402电阻用0.5mm x 0.6mm的焊盘0603用0.8mm x 0.9mm。这些经验值在大多数情况下能用但到了高密度或者特殊工艺比如HDI、厚铜就不一定了。更靠谱的做法是根据IPC-7351标准来计算。IPC-7351给出了不同密度等级Least、Nominal、Most下的焊盘尺寸计算公式考虑了器件公差、贴片精度、焊锡量等因素。Cadence的PCB Editor里其实有IPC-7351的封装生成向导但很多人不用觉得手动建更快。手动建不是不行但你得知道自己在做什么。我个人的习惯是通用器件用IPC-7351的Nominal等级生成特殊器件比如QFN、BGA手动建但严格对照Datasheet的Recommended Land Pattern。Datasheet里的推荐焊盘图形是器件厂商根据大量实验得出的比任何经验值都可靠。如果Datasheet没有推荐图形再退回到IPC标准。3.2 阻焊层与钢网层的隐形规则焊盘尺寸只是封装的一部分。阻焊层Solder Mask和钢网层Paste Mask的开口尺寸同样关键。阻焊开窗一般比焊盘单边大0.05mm到0.1mm这个叫**阻焊桥Solder Mask Dam**的预留。如果阻焊开窗太大相邻焊盘之间的阻焊桥就没了回流焊的时候容易连锡。如果太小焊盘边缘被阻焊盖住影响焊接面积。钢网开口则关系到锡膏量。对于细间距器件比如0.4mm pitch的QFN钢网开口通常要做成网格状或者缩小面积防止锡膏过多导致短路。这些规则在Cadence里是通过焊盘的Mask层来定义的。很多人建封装的时候只画了焊盘阻焊和钢网层直接用默认值结果工厂那边根据你的数据做钢网锡膏量不对良率就下来了。注意阻焊层和钢网层的开口尺寸不是随便设设的。如果你不确定最安全的做法是让焊盘和阻焊开窗保持默认的0.1mm单边差钢网开口和焊盘1:1。对于特殊器件查Datasheet或者问工厂的工艺工程师。3.3 封装命名与版本管理封装库的命名混乱是另一个重灾区。同一个封装有人叫R0402有人叫RES_0402有人叫0402_R。项目一多库就乱了。Cadence的库管理支持Part Number和Footprint Name的分离但很多人不用直接一个名字到底。我的做法是封装名只描述物理形态不描述电气属性。比如R0402就是0402电阻的焊盘图形不管它是10k还是1k。电气属性在原理图的器件属性里体现。这样封装库可以复用不会因为阻值不同就建一堆重复的封装。版本管理也很重要。封装改了一版旧项目还在用旧版新项目用新版。如果没有版本记录出了问题根本查不到是哪个版本。Cadence的库可以加Revision属性或者在文件名里带版本号。我倾向于在文件名里带日期比如R0402_20240315简单直接。4. 约束管理器把设计规则变成可执行检查4.1 线宽、间距、过孔规则不是拍脑袋定的PCB设计里最常被问到的问题之一是线宽走多少。很多人回答信号线6mil电源线20mil但这个数字是怎么来的6mil的线宽在1oz铜厚下温升10度时的载流能力大约是1A左右。如果你的信号线只走几百毫安6mil绰绰有余。但如果走2A6mil就不够了。Cadence的约束管理器Constraint Manager允许你把线宽、间距、过孔这些规则按网络、按区域、按层来设置。比如你可以给所有电源网络设一个最小线宽给差分对设一个间距规则给BGA区域设一个更细的线宽规则。这些规则在布线的时候会实时检查违反了就报DRC。但规则设得太严布线根本走不通设得太松板子做出来有问题。我的经验是先设一个物理极限规则再设一个设计目标规则。物理极限是工厂能做到的最小值比如线宽/间距4/4mil这是底线不能违反。设计目标是你在当前项目里希望达到的值比如6/6mil尽量满足但允许局部放宽。这样既保证了可制造性又给了布线灵活性。4.2 差分对与等长高速信号的时间账差分对的约束包括差分阻抗、线宽、间距、等长。差分阻抗由线宽、间距和介质厚度共同决定通常用阻抗计算工具比如Polar SI9000算出来然后在约束管理器里设好。等长则是为了保证差分信号的正负两端同时到达接收端避免共模噪声。等长的计算方式有两种绝对等长和相对等长。绝对等长是要求所有差分对的长度都在一个范围内比如1000mil ± 50mil。相对等长是要求同一对差分对的两根线长度差不超过某个值比如5mil。高速接口比如PCIe、USB通常用相对等长因为不同差分对之间的长度差异可以通过协议层的弹性缓冲来吸收。Cadence的约束管理器里可以设Relative Propagation Delay规则指定目标线和参考线之间的长度差。布线的时候Allegro会实时显示长度差超了会变红。这个功能很实用但前提是你的差分对在原理图里已经被正确识别否则约束根本不会生效。4.3 区域规则与例外情况实际项目里总有一些区域需要特殊处理。比如BGA下面的过孔需要用到更小的孔径电源模块周围的间距需要加大以防短路射频区域需要控制阻抗。Cadence支持区域规则Region Constraint你可以在PCB上画一个区域然后给这个区域单独设规则。这个功能很强大但也很容易出错。区域规则和全局规则的优先级关系要搞清楚。Allegro的规则优先级是区域规则 网络规则 全局规则。如果你在某个区域设了一个宽松的规则但全局规则更严最终生效的是区域规则。这个逻辑要记清楚否则会出现明明设了规则但DRC不报的情况。5. 投板前的数据打包工厂到底需要什么5.1 Gerber不是唯一答案很多人以为投板就是导出Gerber文件发给工厂。Gerber确实是PCB制造的标准格式但它只描述了每一层的图形不包含网络信息、器件信息、钻孔属性等。工厂拿到Gerber只能照着做遇到问题只能靠猜或者发EQ。更完整的投板数据包应该包括Gerber文件每层一个、钻孔文件NC Drill、钻孔表、叠层结构图、阻抗控制说明、拼板图如果需要、工艺说明。Cadence的Allegro可以导出这些数据但每个文件的导出选项都要仔细检查。比如钻孔文件有Excellon和Gerber Drill两种格式。Excellon是主流但不同版本的Excellon对单位、坐标格式的处理不一样。如果工厂的CAM软件读不了你的钻孔文件钻孔就会偏或者漏。我的习惯是导出钻孔文件时同时生成钻孔表Drill Chart把孔径、数量、镀铜要求都列清楚工厂一看就明白。5.2 ODB与IPC-2581更聪明的数据格式Gerber的局限性催生了更先进的数据格式比如ODB和IPC-2581。这两种格式不仅包含图形信息还包含网络、器件、层叠等结构化数据。工厂用这些格式可以直接做DFM分析不需要人工重建网络关系。Cadence支持导出ODB和IPC-2581。如果你的工厂支持这两种格式强烈建议用。我实测下来用ODB投板工厂的EQ问询能减少一半以上。因为网络关系是明确的工厂的CAM软件可以自动检查短路、开路、间距违规不需要靠人工比对。但要注意不是所有工厂都支持ODB。投板前先问清楚工厂的CAM系统支持什么格式。如果只支持Gerber那就老老实实把Gerber的每一层都检查一遍确保没有遗漏。5.3 叠层结构与阻抗说明叠层结构是PCB的骨架。几层板、每层多厚、铜厚多少、介质材料是什么这些参数直接决定了阻抗和信号完整性。Cadence的叠层编辑器Cross Section可以定义叠层但导出的数据里不一定包含完整的叠层信息。我的做法是单独做一份叠层结构图用表格列出每一层的名称、厚度、铜厚、介质材料、阻抗要求。这份图跟着Gerber一起发给工厂工厂的工艺工程师会根据这份图来安排生产。如果板子有阻抗要求还要注明哪些网络需要控制阻抗、目标阻抗值是多少、允许的误差范围。提示阻抗控制不是设了就能做到的。工厂的蚀刻精度、介质厚度公差都会影响实际阻抗。如果你的阻抗要求很严比如±5%投板前一定要和工厂的工艺工程师确认他们能不能做到。做不到就要放宽要求或者换材料。6. 那些工厂不会告诉你、但你必须知道的事6.1 EQ问询背后的真实原因工厂发EQ问询表面上是你的设计有问题但背后的原因可能有很多种。有时候是你的设计确实有歧义有时候是工厂的CAM软件读不了你的数据有时候是工厂的工艺能力做不到你的要求。我统计过自己经手的EQ问询大概分这么几类焊盘间距太小工厂蚀刻做不到、阻焊开窗重叠工厂没法做阻焊桥、钻孔太密工厂钻头会断、阻抗要求不明确工厂不知道怎么控、拼板方式没说明工厂不知道怎么拼。这些问题里真正属于设计错误的其实不多大部分是信息缺失或者沟通不畅。减少EQ问询的关键不是把设计做得更完美而是把信息传递得更完整。该说明的地方说明白该标注的地方标注清楚。工厂的工程师也是人你给的信息越明确他们越不容易误解。6.2 DFM检查投板前的最后一道防线DFMDesign for Manufacturing检查是投板前的最后一道防线。Cadence的Allegro自带一些DFM检查功能但不够全面。很多公司会用第三方的DFM工具比如Valor、CAM350来做更详细的检查。DFM检查的核心是确认设计符合工厂的工艺能力。比如工厂的最小线宽是4mil你的设计里有3.5mil的线DFM就会报出来。工厂的最小孔径是0.2mm你的过孔是0.15mm也会报出来。这些检查在投板前做比板子回来发现做不了要好得多。我个人的习惯是投板前至少做一次完整的DFM检查重点看线宽、间距、孔径、阻焊开窗、钻孔到铜的距离。这些是工厂最容易出问题的地方。检查报告里的每一项都要过一遍确认是可以接受还是必须修改。6.3 拼板与工艺边容易被忽略的非电气问题拼板Panelization和工艺边Process Edge是投板前容易被忽略的环节。拼板是把多块小板拼成一块大板方便工厂生产。工艺边是板子边缘留出的区域用于工厂的传送和定位。拼板方式直接影响工厂的生产效率和成本。无间隙拼板省材料但分板困难有间隙拼板好分板但浪费材料。V-Cut适合直线分板邮票孔适合异形分板。这些选择没有绝对的好坏要看板子的形状、厚度、器件布局。工艺边一般留5mm到10mm上面不能放器件。如果板子边缘有器件工艺边就要加宽或者用其他方式处理。这些细节在Cadence里可以通过拼板工具或者手动复制来实现。但拼板后的数据要重新导出Gerber和钻孔文件不能直接用单板的文件。7. 把板交给工厂之前这件事做成流程7.1 投板检查清单把经验变成可复用的动作每次投板都靠记忆去检查迟早会漏。我的做法是维护一份投板检查清单每次投板前逐项过一遍。清单的内容包括网表导出检查、封装库检查、约束管理器检查、DRC检查、DFM检查、Gerber导出检查、钻孔文件检查、叠层结构确认、阻抗说明确认、拼板确认、工艺边确认。这份清单不是一成不变的。每次遇到新的问题就把对应的检查项加进去。比如有一次因为阻焊开窗重叠被工厂退回来之后清单里就多了一项阻焊开窗间距检查。清单越长说明踩过的坑越多但也说明流程越完善。7.2 与工厂的沟通节奏投板不是发个文件就完事。从投板到确认生产中间有好几次沟通。投板前要确认工厂的工艺能力、数据格式要求、拼板方式。投板后要跟进EQ问询、确认叠层和阻抗、确认交期。生产前要确认首件、确认测试方式。这些沟通看起来琐碎但每一次都是在降低风险。我见过太多因为沟通不到位导致的问题工厂以为你要的是A你以为工厂做的是B最后做出来是C。保持沟通节奏把关键信息书面确认比事后扯皮有用得多。7.3 从能投板到投好板的进阶能投板是基本要求投好板是进阶目标。好板的标准是什么一次通过、没有EQ、良率高、交期准。要达到这个标准光靠工具不够还要靠对工艺的理解和对细节的把控。我的经验是多和工厂的工艺工程师聊天。他们每天处理各种板子知道哪些设计容易出问题、哪些参数容易超差。这些信息在Datasheet和标准里找不到但对你优化设计非常有价值。比如工厂的蚀刻补偿系数是多少、阻焊桥的最小宽度是多少、钻孔的偏位公差是多少这些工厂参数知道了设计的时候就能提前规避。Cadence的工具再强大也只是工具。真正决定一块板能不能顺利投产的是使用工具的人对设计到制造这个链条的理解深度。胜宏、沪电做的是板Cadence解决的是板交给工厂之前的问题。把这个问题解决好板厂才能把你的设计变成现实。
返回列表