十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

Allegro 172 背钻全流程:从叠层配置到 NC 输出与仿真验证

Allegro 172 背钻全流程:从叠层配置到 NC 输出与仿真验证 简介这份《Allegro 17.2 背钻设置指导书》面向使用 Cadence Allegro 进行 PCB 设计的工程师与初学者聚焦 17.2 版本中背钻Backdrill功能的配置流程与参数设置帮助读者理解背钻在高速多层板设计中的作用与操作要点。资源包内共 1 个 PDF 文件约 391KB内容以图文步骤形式呈现涵盖从属性编辑、网络筛选、背钻参数设定到钻孔表输出的完整链路并附带对 Allegro Design and Analysis、Design Authoring、Design Publisher 等模块的功能说明便于读者建立对 Allegro 设计体系的整体认知。目前已有 516 人学习适合需要快速上手背钻设置或查漏补缺的 PCB 设计人员参考可作为日常操作时的速查手册使用。1. 背钻不是“多钻一刀”而是把过孔 stub 从寄生电感变成可控参数很多硬件工程师第一次在 Allegro 172 里做背钻会把它当成一个后处理动作板子照常布线最后在钻孔表里加一道深度就完事。真正上手才发现背钻改的是叠层、钻孔对、约束管理器和制造输出的联动关系任何一处没对齐轻则 stub 长度失控重则把内层走线钻断。背钻Back Drilling要解决的是通孔压接或过孔在信号换层后残留的那段“无用铜”。这段 stub 在低速时无所谓到了 10Gbps 以上会形成明显的阻抗不连续和谐振点眼图直接塌。Allegro 172 把背钻拆成三层配置叠层里的背钻对、Constraint Manager 里的背钻规则、以及钻孔图例和 NC 输出。这篇按“先建对、再定规则、后出图”的顺序把每一步的命令、参数和常见报错讲清楚适合已经能独立跑完一次 PCB 设计、但还没系统做过背钻的工程师。2. Allegro 172 里背钻对的建立与叠层参数怎么定2.1 先分清通孔、盲埋孔和背钻在叠层里的表示差异在 Allegro 172 的 Cross Section 编辑器里普通通孔是贯穿所有层的钻孔对盲埋孔只跨指定层而背钻不是一种新的孔它是在已有通孔上追加一次“反向钻削”。所以叠层里你看到的仍然是原来的通孔对背钻信息挂在钻孔符号和 NC 参数上。常见做法是先确认信号过孔用的是哪一组钻孔对比如VIA_12从 Top 贯穿到 Bottom。背钻要做的就是把这个孔在 Bottom 侧多余的那段铜去掉保留从 Top 到目标内层的有效连接。目标内层通常是你换层后的参考层或信号层比如第 3 层。这里有个容易踩的坑如果过孔在叠层里被定义成盲孔背钻就无从谈起因为盲孔本身已经不贯穿。所以背钻只对通孔有意义做之前先用Tools - Padstack - Modify Design Padstack确认过孔的钻孔对类型。2.2 用 Padstack Editor 给过孔加上背钻属性Allegro 172 的背钻属性不在 Constraint Manager 里直接加而是先在 Padstack Editor 中给过孔定义背钻层。打开Padstack Editor选中目标过孔切到Drill标签页在Backdrill区域勾选Enable Backdrill然后指定背钻的起始层和结束层。# 在 Allegro 命令行中批量检查当前设计里哪些过孔已启用背钻 set vias [dbget top.padstacks] foreach v $vias { set bd [dbget $v.backdrill] if {$bd ! nil} { puts Padstack: [dbget $v.name] Backdrill: $bd } }这段 Tcl 的逻辑是遍历设计里所有 padstack用dbget读取backdrill属性只打印已启用背钻的过孔。参数说明top.padstacks是当前设计的焊盘栈集合backdrill返回的是背钻层信息如果没启用会返回nil。跑完你能快速知道哪些孔已经配了背钻避免漏配或重复配。提示Padstack Editor 里改完背钻属性后必须回到 PCB Editor 执行Tools - Padstack - Refresh否则约束管理器读到的还是旧属性。2.3 叠层里背钻深度与 stub 长度的换算关系背钻深度不是随便填的它由叠层厚度和你要保留的 stub 长度共同决定。假设从 Bottom 到目标内层第 3 层的介质总厚度是 1.2mm你希望 stub 控制在 0.3mm 以内那么背钻深度至少要钻到 1.2 - 0.3 0.9mm 的位置。参数含义典型取值目标内层信号换层后实际连接的层第 3 层介质总厚度Bottom 到目标内层的厚度1.2mm允许 stub工艺能接受的最大残桩0.2~0.3mm背钻深度从 Bottom 钻入的深度0.9~1.0mm钻头直径背钻钻头直径比原孔大 0.2mm这张表是给叠层设计用的实际填进 Allegro 的是背钻层对和深度值。注意钻头直径一般比原过孔大 0.2mm 左右太小会钻不干净太大会伤到相邻走线。Allegro 172 在Cross Section里可以给背钻单独设Drill Diameter不要直接沿用原孔直径。3. Constraint Manager 里背钻规则的设置与验证3.1 在 Constraint Manager 中定位背钻规则入口Allegro 172 的背钻规则不在常规的Physical或Spacing里而是在Constraint Manager - Electrical - Backdrill分支下。打开方式Setup - Constraints - Constraint Manager左侧展开Electrical找到Backdrill。如果这里为空说明叠层里还没有背钻对需要先回到第 2 章把 padstack 配好。进入后你会看到按网络或按过孔分组的规则列表。常见做法是按差分对和高速信号分组给它们单独设 stub 上限低速信号可以放宽甚至不设。这样做的理由是背钻会增加制造成本没必要全板一刀切。3.2 用规则集给差分对设 stub 上限在Backdrill分支下右键Create - Rule Set命名比如BD_HIGHSPEED然后在Stub Length里填0.3mmBackdrill Layer选Bottom到目标层。接着把这个规则集赋给对应的差分对。# 给指定差分对批量赋背钻规则集 set diff_pairs [dbget top.nets -e {net_type DIFFERENTIAL}] foreach dp $diff_pairs { set name [dbget $dp.name] # 只处理高速差分对按命名前缀过滤 if {[string match PCIE* $name] || [string match USB* $name]} { setNetProp $name backdrill_rule_set BD_HIGHSPEED puts Applied BD_HIGHSPEED to $name } }逻辑说明先取出所有差分网络再按命名前缀过滤出 PCIE 和 USB 这类高速信号用setNetProp把背钻规则集挂上去。参数说明net_type DIFFERENTIAL是差分网络的属性过滤条件backdrill_rule_set是 Allegro 172 里背钻规则集的属性名。跑完后在 Constraint Manager 里刷新就能看到这些网络已经关联到BD_HIGHSPEED。注意规则集赋完后一定要跑一次 DRC背钻的 stub 超限会在 DRC 里报Backdrill Stub Violation不要等到出 Gerber 才发现。3.3 背钻 DRC 报错怎么读和怎么改背钻最常见的 DRC 有三类stub 超限、背钻层对不匹配、背钻钻头与相邻孔冲突。stub 超限说明你设的深度不够或目标层选错层对不匹配通常是 padstack 里的背钻层和 Constraint Manager 里选的不一致钻头冲突则是背钻直径太大碰到了旁边的孔或走线。处理顺序建议先看Backdrill Stub Violation用Zoom - Violation定位到具体过孔检查它的 padstack 背钻层和规则集里的层是否一致。如果一致但还报错就回到叠层算一遍深度确认介质厚度没填错。钻头冲突的话在 Padstack Editor 里把背钻直径调小 0.05mm 再试直到 DRC 干净。4. 背钻钻孔图例与 NC 输出从设计到制造的最后一公里4.1 生成背钻钻孔图例的步骤设计规则清干净后下一步是出钻孔图例。Allegro 172 里走Manufacture - NC - Drill Legend在弹出的对话框里勾选Backdrill然后选择要输出的背钻层对。生成的图例会单独列出背钻孔的符号、直径和深度。# 用 Allegro 批处理模式导出背钻钻孔文件 allegro -batch -nographic -execute nc_drill_backdrill.scr # nc_drill_backdrill.scr 内容示例 # set nc_mode backdrill # set output_dir ./nc_output # set drill_legend true # run nc_drill这段脚本的逻辑是用批处理模式跑一个预存的 script把背钻 NC 数据导到指定目录。参数说明-batch表示无界面运行-nographic关闭图形输出-execute指定要跑的脚本文件。脚本里的nc_mode backdrill是关键它告诉 Allegro 只导出背钻相关的钻孔数据不和普通通孔混在一起。4.2 NC 输出里背钻与普通钻孔的区分方式导出的 NC 文件里背钻孔和普通通孔是分开的。普通通孔在nc_tools里是一组背钻在nc_backdrill里是另一组。制造厂拿到后会用不同的钻头程序处理。你要做的是确认背钻文件里的孔数和设计里启用了背钻的过孔数一致。输出项普通通孔背钻文件名前缀nc_toolsnc_backdrill钻头直径原孔直径原孔 0.2mm深度信息贯穿指定深度图例符号圆形带斜线圆形这张表是给 CAM 工程师核对用的。如果你发现背钻文件里孔数偏少多半是有些过孔没启用背钻属性回到第 2 章的 Tcl 脚本再扫一遍。4.3 出图前必须检查的三个参数出 Gerber 和 NC 之前有三个参数必须确认背钻深度是否和叠层一致、背钻钻头直径是否更新到最新、背钻层对是否覆盖了所有需要背钻的信号。常见做法是跑一次Tools - Reports - Backdrill Report它会列出所有背钻过孔的层对、深度和 stub 长度。如果报告里出现 stub 长度为负值说明背钻深度超过了目标层这是严重错误必须回去改叠层或 padstack。如果 stub 长度普遍偏大检查是不是规则集没赋上或者 Constraint Manager 里的层选错了。这三个参数确认完再出制造文件能省掉一轮返工。5. 背钻 stub 的仿真验证与叠层迭代技巧背钻做完不是终点还得验证 stub 是否真的压到了目标值。Allegro 172 自带 Sigrity 接口可以把背钻后的过孔模型导到 Sigrity 里跑 TDR 或 S 参数。常见做法是在 PCB Editor 里选中背钻过孔走Tools - Sigrity - Extract Via Model导出.sp文件后在 Sigrity Topology Explorer 里看阻抗曲线。# 用 Python 快速对比背钻前后 stub 的谐振频率偏移 import numpy as np def stub_resonance(stub_mm, er4.2): # stub 谐振频率估算f c / (4 * stub * sqrt(er)) c 299792458 # 光速 m/s stub_m stub_mm * 1e-3 f c / (4 * stub_m * np.sqrt(er)) return f / 1e9 # 转 GHz before stub_resonance(1.2) after stub_resonance(0.3) print(f背钻前 stub 谐振: {before:.2f} GHz) print(f背钻后 stub 谐振: {after:.2f} GHz)这段代码用四分之一波长公式估算 stub 的谐振频率参数stub_mm是残桩长度er是介质常数。背钻前 1.2mm 的 stub 谐振在 30GHz 左右背钻到 0.3mm 后谐振推到 120GHz 以上已经远离你的信号频段。实际仿真会比这个公式复杂但用它做快速估算足够判断背钻深度是否合理。叠层迭代时有个技巧先把背钻深度按理论值设好跑一次仿真看 TDR 曲线如果阻抗不连续点还在就把深度再加 0.1mm 再跑。每次只调一个参数记录 stub 长度和阻抗的对应关系两三轮就能收敛。不要一次改多个参数否则出了问题不知道是哪个引起的。提示Sigrity 提取的过孔模型要包含背钻后的实际铜形如果模型里还是原始通孔仿真结果没有参考价值。提取前确认Backdrill选项已勾选。最后一步是把验证过的背钻参数回写到 Constraint Manager 和 Padstack 里确保设计和仿真用的是同一套数据。很多团队仿真和设计脱节仿真说 stub 0.3mm 没问题设计里还是 0.5mm板子回来眼图照样塌。回写之后重新跑一次 DRC 和 Backdrill Report两个都干净了再出制造文件。本文还有配套的精品资源点击获取
返回列表