4、PCB设计数据导入:支持的输入格式(ODB++, Gerber, IPC-2581)、导入参数设置、层叠结构映射
好,咱们正式开始动手操作Valor。第一步,就是把PCB设计数据导进去。
这一步看着简单,但坑不少。我见过太多工程师,设计文件导不进去,或者导进去层叠全乱了,最后折腾半天才发现是格式选错了。说白了,数据导入是DFA分析的地基,地基没打好,后面分析得再漂亮也是白搭。
4.1 支持的输入格式:三大主流格式
Valor支持三种主流格式:ODB++、Gerber、IPC-2581。我个人习惯,能用ODB++就别用Gerber。为什么?往下看。
4.1.1 ODB++(最推荐)
ODB++是Valor的“亲儿子”格式。它把PCB设计的所有信息——线路、阻焊、字符、钻孔、层叠结构、网络连接——都打包在一个文件夹里。
我在项目中遇到过,用ODB++导入,层叠映射基本不用手动调,自动就匹配上了。省心。
ODB++的优势:
- 数据完整性高:包含设计原始信息,不丢失网络、元件信息
- 层叠自动识别:Valor能直接读取层叠结构,无需手动映射
- 支持嵌入式元件:如果你设计里用了埋入式电阻电容,ODB++是唯一能完整导入的格式
我的建议:如果设计工具支持(比如Allegro、PADS、Altium Designer),优先输出ODB++格式。输出时选“Valor”或“ODB++(X)”选项,兼容性最好。
4.1.2 Gerber(最通用,但最麻烦)
Gerber是行业老标准,几乎所有PCB厂都认。但说实话,它就是个“光绘文件”,说白了就是一张张黑白图片。它不包含网络信息,也不包含层叠结构。
嗯,这里要注意:用Gerber导入,你得手动告诉Valor“哪一层是顶层线路”、“哪一层是底层阻焊”。我曾经有一次,客户给了28层板的Gerber,我手动映射了整整两个小时……从那以后,我坚决建议客户用ODB++。
避坑指南:Gerber文件命名不规范是最大的坑。比如“TOP.GTL”、“BOT.GBL”这种还好,要是遇到“L1.GKO”、“L2.GTS”这种,你根本分不清哪层是哪层。我建议你在输出Gerber前,先和板厂确认命名规则。
4.1.3 IPC-2581(新兴标准)
IPC-2581是近年来推行的新标准,它比Gerber强,但比ODB++弱一点。它包含网络信息和层叠结构,但有些设计工具输出IPC-2581时,会丢失部分元件信息。
我个人觉得,IPC-2581目前处于“中间状态”——比Gerber好,但不如ODB++成熟。如果你的设计工具不支持ODB++,IPC-2581是个不错的备选。
| 格式 | 数据完整性 | 层叠自动识别 | 网络信息 | 推荐指数 |
|---|---|---|---|---|
| ODB++ | 高 | 是 | 包含 | ★★★★★ |
| Gerber | 低 | 否 | 不包含 | ★★☆☆☆ |
| IPC-2581 | 中 | 部分 | 包含 | ★★★☆☆ |
4.2 导入参数设置
选好格式后,就是导入参数设置了。这里有几个关键点,我踩过坑,你们别踩。
4.2.1 单位与精度
Valor默认单位是毫米(mm),但很多设计工具输出时用的是英寸(inch)或密耳(mil)。导入时一定要核对单位,否则尺寸会差25.4倍。
我记得有一次,客户导入后说“我的板子怎么变成10米长了?”——就是单位没选对。
设置建议:
- 单位:与设计文件一致(mm或inch)
- 精度:至少3位小数(0.001mm或0.01mil)
- 坐标原点:通常选“Design Origin”(设计原点),不要选“Absolute Origin”(绝对原点),否则板子可能跑到屏幕外面去
4.2.2 钻孔文件导入
钻孔文件(.drl或.rou)要单独导入。Valor会问“钻孔文件格式是什么?”——常见的有“Excellon”和“Sieb & Meyer”两种。
我建议选“Excellon 2”格式,这是最通用的。如果选错了,钻孔位置会偏移,或者孔大小全乱套。
小技巧:导入钻孔文件后,先看“钻孔符号表”。如果符号表里显示“T1=0.3mm, T2=0.6mm”,但实际板子上孔看起来大小不对,那就是格式选错了。重新选“Excellon 2”试试。
4.2.3 负片层处理
有些设计(尤其是电源层、地层)会用负片层。负片层在Gerber里看起来是反的——该有铜的地方是空的,该空的地方是铜。
Valor导入时,要勾选“Negative Layer”(负片层)选项。如果不勾,分析结果会完全相反——该有铜的地方没铜,不该有铜的地方全是铜。
警告:负片层是DFA分析中最容易出错的点。我建议你导入后,先打开“层叠管理器”,看看每一层的显示效果。如果某一层看起来“反了”,那就是负片层没设置对。
4.3 层叠结构映射
层叠映射,说白了就是告诉Valor“你的设计文件里,哪一层对应PCB的哪一层”。
比如,你的设计文件里有“TOP”、“GND1”、“SIG1”、“PWR1”、“BOT”五层,但Valor不知道“TOP”是顶层还是底层,你得手动告诉它。
4.3.1 自动映射 vs 手动映射
ODB++格式导入时,Valor会自动识别层叠结构。我一般直接点“Auto Map”,90%的情况都能正确匹配。
但Gerber格式就不行了。你得手动把每一层拖到对应的位置。比如:
- “TOP.GTL” → 顶层线路层(Top Conductor)
- “GND1.GTL” → 内层1(Inner Layer 1)
- “BOT.GTL” → 底层线路层(Bottom Conductor)
- “TOP.GTS” → 顶层阻焊层(Top Solder Mask)
- “BOT.GBS” → 底层阻焊层(Bottom Solder Mask)
映射规则:
- 线路层(Conductor):按顺序从顶层到底层排列
- 阻焊层(Solder Mask):顶层和底层各一个
- 字符层(Silkscreen):顶层和底层各一个
- 钻孔层(Drill):通常只有一个,包含所有孔
4.3.2 层叠顺序检查
映射完成后,一定要检查层叠顺序。我习惯用“Cross Section”视图,它能显示PCB的截面图。
你看一眼截面图:
- 顶层铜厚:通常1oz(35μm)或0.5oz(18μm)
- 介质层厚度:比如0.2mm、0.3mm
- 内层铜厚:通常1oz
- 底层铜厚:与顶层一致
如果截面图显示“顶层铜厚是0.1mm,底层铜厚是0.5mm”,那肯定不对。要么是映射错了,要么是设计文件本身有问题。
我的经验:层叠顺序错了,DFA分析结果会完全不可信。比如“线宽间距检查”,如果层叠顺序反了,顶层和底层的检查结果会互换。所以,导入后花5分钟检查层叠,能省后面2小时的返工时间。
4.3.3 特殊层处理
有些设计会有特殊层,比如:
- 埋孔层(Buried Via):需要单独映射到内层
- 盲孔层(Blind Via):需要映射到相邻层
- 阻抗控制层:需要设置介质厚度和介电常数
嗯,这里要注意:Valor默认不识别埋孔和盲孔。你得在“Layer Mapping”里手动添加“Buried Via”或“Blind Via”层,并指定它们连接的层。
好了,数据导入这一步就讲完了。记住:格式选ODB++,单位核对好,层叠映射检查一遍。这三步做到位,后面的DFA分析就顺了。