docs: add fixed-layout IPC routing lessons for v1.3.0

This commit is contained in:
xufeng committed 2026-10-09 09:35:58 +08:00
1 parent fcbde2e9cf
commit 7ec66f26a4
4 files changed
+89 -6

No files matched your search

+55
View File
@@ -0,0 +1,55 @@
# 固定布局 IPC 布线:经验与适用边界
用于已有布局反复走不通、授权复用高速通道、修复过孔连接及丝印收尾。通用验收方法见 [布线与电气验收](routing-validation.md),工程来源和授权见 [工程基准与交付](project-workflow.md)。以下是已完成工程的经验记录,不是下一项目的默认数值或修改许可。
## 来源、成功范围和限制
案例为 EP_IPC_MB_V1.0 四层摄像机板,2026-10-08 过孔与丝印优化保存版,原布局及叠层固定。用户后续明确要求 USB、PHY、MIPI 高速主通道参照人工设计,并允许保留主通道/孔位的局部短路、等长及蛇形修正。其余网络依授权重布,本轮过孔铜连接通过明确路径编辑实施,未调用自动路由入口。
因此成功经验是“授权复用成熟高速通道,完成其余网络及局部优化”,不能写成从零独立布线已成功,不能在用户禁止参考现有设计的任务中照搬该通道。
已保存结果的证据摘要:
| 检查 | 已有报告结果 | 能证明什么 |
| --- | --- | --- |
| KiCad 10.0.3 原生填铜保存及只读 DRC | 0 错误、0 警告、0 未连接 | 该版本在适用项目规则下的原生检查结果 |
| KRT 0.22.1 连通性 | 210 个已布网络全部连通 | 该板铜路径连通;不代替原理图一致性或硬件功能 |
| KRT 几何 DRC | 0 违规;仍有 17 条提示 | 12 处同网铜重叠/自交和 5 处极小端点差未被说成已清除 |
| 不变量比较 | 356 个封装位姿及全部焊盘属性/网络、叠层、板框、原有主走线保持 | 本轮优化没有改变受保护对象;允许删除的三个支路孔单列 |
对应文件:`EP_IPC_MB_V1.0_vias_silk.kicad_pcb`、`13_最终填铜DRC.json`、`14_最终只读DRC.json`、`15_KRT连通.log`、`16_KRT几何.json`、`最终不变量与逐孔连接.json`。最终 PCB SHA-256:`638bf0318a40496d60757a21bb18c01e0c46901a35d32acedbf969f04534eb60`。这是历史报告的证据索引,Skill 发布未重新运行 EDA 检查,Skill 包不携带 PCB 或原报告;使用者无法取得该版本时不得宣称已独立复核。
全板阻抗、差分全程耦合/参考面、供电载流裕量及功能仍需专项验证。工具仍提示 16 个带网络的导入铜图形段;原生和 KRT 当前连通结论不证明所有图形的制造表达已审完。中间检查曾复现既有板框自相交报告,最终未复现且板框未变;不能当作根因已修复。
## 哪些改变使工作推进
| 受阻点 | 有效处理 | 不应推广的结论 |
| --- | --- | --- |
| 普通信号挤占高速及密集引脚出口 | 先规划扇出、差分主通道/换层/调长空间,再分配普通网络 | 不是所有板都必须按固定网络顺序布线 |
| U16 出口净空不足 | 采用已授权的局部线宽/间距,核查真实焊盘与孔几何,并确认出口接得上外部通道 | 不能靠外围无限绕行解决局部堵塞,也不能全板降规则 |
| 高速参考文件已有缺陷 | 保护允许复用的主通道与孔位,在授权范围修复局部短路和等长 | 人工设计也需验证;复用不等于独立生成 |
| 探针认为孔铜相切,原生仍判单层 | 增加短同网实线并在填铜后复查 | 铜环边缘接触、近邻容差不等于可靠载流连接 |
| RX_D− 铜环及支路孔触发告警 | 查明铜图形与主线关系,按用户确认删除冗余圆环和三个孔,保留主线 | 不能盲目补线扩大高速支路,也不能自动删除未知用途结构 |
| 修改后旧铜区间距报错 | 重新填铜、保存、回读,再查连通与几何 | 填铜前预检不是交付检查,也不能假定所有错误都会随填铜消失 |
| 大量丝印告警且报告可能截断 | 调整文字、正确镜像、裁剪冲突轮廓,反复查看新显露的剩余项 | DRC 合法不保证位号靠近器件或接口标识不会误读 |
## 参数只属于本项目
| 对象 | 案例要求/实施 | 使用边界 |
| --- | --- | --- |
| 普通铜间距 | 至少 0.1 mm | 用户更新后的本项目要求,不改写摄像机模板默认值 |
| U16 局部 | 0.09/0.09 mm 线宽/间距 | 仅授权区域;钻孔不压焊盘,同网边缘铜环接触与异网间距分别检查 |
| 普通过孔 | 外径/钻孔 0.4/0.2 mm;差分孔中心间距 0.6 mm | 不是所有板厂/阻抗叠层的通用选型 |
| 孔到铜 | 0.2 mm | 与孔到孔、铜间距、板边独立记录 |
| MIPI 匹配 | 对内 5 mil;指定组间不超过 20 mil | 分组和端点需按该项目确认,不替代模板或芯片时序预算 |
| 无铜孔及板边例外 | J2 两个原无铜孔按 NPTH;J6.6/J7.7/J14.6 的指定 GND 焊盘板边豁免 | 只针对已确认对象;保留孔径/位置,不全局忽略板边 |
| 散热孔 | 保留原 1.5 mm 孔 | 不以初始 3 mm 要求或误猜的 0.3 mm 阵列覆盖用户后续确认 |
| 丝印 | 字高至少 0.8 mm、笔画 0.1 mm,个别字宽 0.7 mm | 制造和可读性要求取新项目依据 |
## 过孔及丝印收尾的实际结果
10 条过孔告警中,7 个电源孔增加真实同网铜路:6 个连接 F.Cu / In2.Cu / B.Cu,3.3 V 孔连接 F.Cu / In2.Cu。In1.Cu 保留 GND 参考面。新增 13 条局部路径、27 个线段,未新增过孔;这不是所有电源换层至少三孔或电流裕量已通过的证明。另三个孔随已确认冗余 RX_D− 铜环一起删除。
原报告显示 822 条丝印告警,其中四类各为 199 条,可能达到单类上限;这个数是初始报告条数,不是全部独立缺陷数。最终该类原生告警为零,356 个位号和 58 个板级文字保留,板名仅换行。未用隐藏文字、修改盖油或全局忽略规则清零。密集处文字位置仍需结合器件归属、接口引脚顺序及极性进行可读性审核,不能只看剩余告警数。
新任务优先复用决策方法:确认参考授权和基准 → 解决密集出口与关键通道 → 分配其它网络 → 局部修改并验证真实铜连接 → 填铜收尾 → 丝印及独立检查。每次只继承明确有效的参数和授权,保留未验证项目及副作用。
+7 -4
View File
@@ -2,6 +2,8 @@
用户指定 PCB 设计过程中使用这两个工具。本文件规定分工和工程交接;路由参数的完整说明按需读取本机 [kicad-routing-tools 技能](D:/AI软件/codex-skills/kicad-routing-tools/SKILL.md)。路径或版本变更时核实实际安装,不从旧记录推断能力。
遵守当前会话及适用 AGENTS.md 的工具执行约定:整个工作流无界面运行。只调用不会启动、附着或聚焦 KiCad GUI 的 MCP 方法;不能确认无界面时,改走 KiCad CLI、文件接口、脚本或 API。不得启动 GUI 来确认当前打开的工程、预览结果或执行检查;没有无界面替代方案时报告限制。
## 分工与入口
| 工具 | 用途 | 本机入口 |
@@ -12,19 +14,20 @@
2026-09-14 实测 MCP 3.34.3、KiCad CLI/IPC 10.0.3,服务当时为只读模式;这是环境快照,不能作为以后写操作已启用的依据。调用 `kicad_get_version`、必要时 `kicad_get_server_info` 核查能力/模式;用 `kicad_set_project` 绑定已确认的 PCB/原理图路径,再取工程信息及 `project_get_next_action`。工具建议不能覆盖用户限定的阶段。发现的工具元数据、调用参数和运行时能力优先于静态工具清单。
KiCadRoutingTools 本机版本 0.22.0,根目录 `D:\AI软件\KiCadRoutingTools-0.22.0`,Python 为 `D:\AI软件\kicad-routing-env\Scripts\python.exe`。通过 `krt.ps1` 使用 KiCad Python 3.11 和正确路径;不要混用 MCP 的 Python 3.13 环境。命令使用绝对路径并对路径、网络通配符加引号;先读相应命令帮助。
2026-10-08 工程实测 KiCadRoutingTools 0.22.1,根目录 `D:\AI软件\KiCadRoutingTools-0.22.1`,专用 Python 为 `D:\AI软件\kicad-routing-env\Scripts\pythonw.exe`。这是本机快照,执行时仍检查实际路径、版本和 CLI 帮助;Windows 使用已验证的无窗口启动器及无窗口子进程配置,不只凭脚本名判断。运行时采用 KiCad Python 3.11 和正确路径,不混用不能加载 pcbnew 的 MCP Python 环境。命令使用绝对路径并对路径、网络通配符加引号;先读相应命令帮助。
## 同一工程的交接
1. 对齐 MCP 活动工程、GUI 实际打开的 PCB、磁盘输入和同名 `.kicad_pro`/`.kicad_dru`。已打开一块板不证明它就是请求对象;识别未保存状态,不覆盖用户编辑。
1. 对齐 MCP 绑定工程、磁盘 PCB 输入和同名 `.kicad_pro`/`.kicad_dru`;仅以明确确认的磁盘路径为准,不依赖或检查 GUI 当前打开的工程状态。
2. 用 `copy_board.py` 成套复制到独立候选路径,并确认自定义规则和库依赖齐全。修改限定于授权对象;固定布局任务禁止调用布局优化器移动器件。
3. 对同一工程可能写入的 GUI/MCP、CLI 布线、填铜、DRC 和保存串行执行。外部文件更新后重新加载/绑定并读回确认,再做下一次编辑;禁止用 GUI 旧内存板覆盖磁盘新结果。
3. 对同一工程可能写入的 headless MCP、CLI 布线、填铜、DRC 和保存串行执行。外部文件更新后通过文件接口重新加载/绑定并读回确认,再做下一次编辑;禁止用进程内旧内存板覆盖磁盘新结果。
4. 原生工具缺少某类操作时,可在独立副本用版本匹配的 API 或经验证的文件变换完成必要几何工作。保留两工具的工程核查和独立验收,不以自编脚本全面替代它们。
5. 某工具或能力不可用时报告具体原因和未执行项,继续无依赖且获授权的工作;不能假称调用成功,也不能将缺失验收记为通过。
## 路由约束与最终验证
- 指定线宽、线距、过孔时使用适当的 `--escalation off`。不采用默认降级来获得表面连通,不擅自启用 `--clearance-ceiling` 或 `--relax-drc-severities`。即使用 `--no-fix-drc-settings`,仍比较前后工程规则,0.22.0 可能写入输出工程下限。
- 使用 KRT 不等于获得自动布线授权。项目禁止自动布线时,只使用获准的检查、复制、文字整理或明确路径局部编辑;不调用自动路由入口。丝印工具也应先确认只改变文字/图形,核对封装位姿和铜几何没有被移动。
- 指定线宽、线距、过孔时使用适当的 `--escalation off`。不采用默认降级来获得表面连通,不擅自启用 `--clearance-ceiling` 或 `--relax-drc-severities`。即使用 `--no-fix-drc-settings`,仍比较前后工程规则,部分版本可能写入输出工程下限。
- 路由结束核查失败、开路、多端网络和实际铜连接,不以 routed 数量表示成功。
- 对最终保存版本执行 KiCadRoutingTools `check_connected.py`、按实际项目规则配置的 `check_drc.py`,以及原生 KiCad 填铜后的 DRC。检查独立工具默认跳过的项目,例如焊盘到板边;由原生或其它适用检查覆盖并披露范围。
- MCP 重新绑定最终结果,核对工程、叠层、规则和适用的原理图/PCB 一致性检查。MCP 若调用同一原生 CLI DRC,不算额外一次独立算法验证;不为凑次数重复同一检查。
+20 -2
View File
@@ -8,6 +8,12 @@
按真实功能建立网络分类:供电、静态控制、PWM、时钟、总线、模拟参考与敏感信号。名称含 LED 不能直接认定为灯板大电流,GPIO 也可能承载 PWM;VREF 等未查明的网络不能自动获得普通 IO 的交叉豁免。记录用户/原理图/器件依据;最新项目参数覆盖模板时,只更新明确对象,不把同名电压的所有支路或其它项目一并改掉。
## 参考复用与通道安排
区分允许参考思路、允许保留指定高速几何、以及必须独立重布。只有当前授权允许时才复用人工或旧版通道,并记录复用范围及来源;复用后的整板连通不证明已完成从零独立布线。参考线路也需验证,保留主通道/孔位与修复局部短路、调长的范围分别记录,已有授权可直接执行。
先确认密集引脚能离开焊盘区并进入可用外部通道,再延伸长距离走线。优先为高速差分安排主通道、成对换层点、参考地与调长空间,避免普通网络先占满出口;拥塞区按实际依赖调整顺序,不将这一顺序当作所有板的固定流水线。局部放宽必须同时容纳走线及两侧间距,并留出后续网络通道,不能靠外围反复绕行弥补被堵死的芯片出口。
## 候选与失败处理
优先解决关键引脚扇出、高速通道、电源主干及回流,再组织普通信号;顺序按实际拥塞调整。记录实际运行参数,不采用会暗中降低已指定线宽/间距的默认降级方式。前后比较 `.kicad_pro`/`.kicad_dru`,路由完成不等于规则未改。
@@ -67,10 +73,14 @@
## 过孔与并联电源连接
核查所有过孔的实际外径、钻孔、跨层和网络,不只检查项目默认值。禁止焊盘过孔的项目检查铜环与真实焊盘多边形重叠,孔中心落在焊盘外仍可能违规;孔孔、孔铜、板边距离按实际工艺分别核查。固定元件任务保留焊盘尺寸和位置,不能缩焊盘来腾放孔空间。
核查所有过孔的实际外径、钻孔、跨层和网络,不只检查项目默认值。禁止焊盘过孔时,分别核查钻孔投影、铜环与真实焊盘多边形的关系,不能仅看孔中心;记录当前项目禁止的是钻孔压盘、铜环搭接,还是两者。明确允许同网焊盘边缘铜环接触时仍核查钻孔不压盘及异网间距,不能扩大为焊盘内打孔许可。孔孔、孔铜、板边距离按实际工艺分别核查。固定元件任务保留焊盘尺寸和位置,不能缩焊盘来腾放孔空间。
电源并联过孔按每个换层位置验收:逐孔在两侧接入目标电源的实际连通铜区/走线,且确实连接换层前后载流路径。局部实心铜可连接孔组,但填铜后复核网络归属,防止无锚定孔被错误归网;临时连接若被删除,须在最终文件上重新验证,不能留下悬空线头或以未连接孔凑数。核查有效并联路径、电流余量及细颈,孔数量不替代载流依据。
逐孔连接检查同时读取走线、圆弧、焊盘、最终填铜和带网络的铜图形,标明工具未计入的铜类型。铜环边缘相切或容差内近邻不等于可靠连接;几何探针与原生结果冲突时核对接触宽度和实际连通分量,适用时用短同网铜路建立明确连接。单层电源孔优先接入附近可用的同网层,保留完整参考地;“条件允许尽量多层连接”不要求切开参考平面,也不靠孤立铜片制造连接层数。
悬空孔或带网络的导入铜图形先查用途和拓扑:主通道换层、并联载流、测试结构与多余支路分别处理。图形碰到高速主线时不能只补线清告警;确定冗余且删除已获授权后再清理,并复核主路径、长度和参考地。用途未明,或涉及现有授权未覆盖的测试/机械功能时提出具体问题,继续无依赖工作。不要把所有铜图形或未连接孔自动当成垃圾删除。确认本来无铜的机械孔时修正 NPTH 属性并保留尺寸/位置;板边例外只作用到已确认对象,不全局忽略。
## 电源和 DRC
按真实载流路径检查主干、分支、焊盘接入细颈、过孔与铜面。分别列出目标宽度、实测最小宽度、低于目标的区段长度及位置;短收窄段结合电流、铜厚、温升/压降和制造规则判断,不能全网普遍收窄或以平均宽度代替。自动加宽/亚微米几何修正后重检间距及差分参数,不只统计修改段数。
@@ -85,4 +95,12 @@
开路说明使用 `网络 | 位号.焊盘 | 主铜/孤岛关系 | 真实原因与证据 | 修复动作 | 状态`。先核实用户所称“两个网络”等计数是否仍适用;未路由、被围困的孤岛、源明确 NC 与缺失数据分别说明,不把布线失败解释为有意留空。报告所有剩余地连接及电源/信号问题,不能以非 GND 全通称整板连通。
输出通过项、失败项及尚未验证的内容并关联报告;制造交付规则见 [工程基准与交付](project-workflow.md)。
达到单类报告上限时,原始条数只是已输出的违规数,不能写成全部独立缺陷数;修复后复查是否显露更多条目。区分原生错误/警告、独立检查器违规/提示以及工具范围缺口。旧板框等问题若只是在最后一次未复现,保留先前记录,不反复运行选取最好结果,也不宣称已定位或修复根因。
## 丝印收尾
铜路和填铜稳定后集中调整位号、接口标识、极性及器件轮廓。根据本项目工艺下限调整字高/笔画、位置、方向和底面镜像;密集处可在允许范围调整字宽,但不通过隐藏有效标识或关闭规则来清零。避让实际阻焊开口、散热开窗及板边;过孔按本次盖油/开窗状态处理,不把所有孔都当成开窗,也不擅改盖油来迁就文字。
裁剪冲突的轮廓时保留辨识和装配信息。文字合法位置还需靠近对应器件、保持接口引脚顺序;远移后即使 DRC 通过也可能误导装配,应回调、增加清楚的对应标识或说明待审核区域。板名换行与内容更改分别记录。输出静态审核图时标明板面和底视镜像,不自动打开预览;原生 DRC 清零与人工可读性审核分开报告。
输出通过项、失败项及尚未验证的内容并关联报告;制造交付规则见 [工程基准与交付](project-workflow.md)。固定布局与参考复用案例见 [IPC 布线经验](ipc-routing-lessons.md)。