第07章-设计规则检查与验证
第七章:设计规则检查与验证
7.1 设计规则检查概述
7.1.1 什么是DRC
设计规则检查(Design Rules Check,DRC)是PCB设计中的关键验证步骤,用于确保设计符合制造工艺要求和电气规范。
DRC的重要性:
- 确保PCB可制造
- 避免电气短路和开路
- 提高产品质量和可靠性
- 减少设计迭代和返工
7.1.2 KiCad DRC功能
KiCad提供全面的DRC功能:
物理规则检查:
├── 间距检查(Clearance)
├── 线宽检查(Track Width)
├── 过孔检查(Via Size)
├── 孔径检查(Hole Size)
├── 环宽检查(Annular Ring)
└── 丝印检查(Silkscreen)
电气规则检查:
├── 未连接检查(Unconnected)
├── 短路检查(Short Circuit)
├── 网络完整性(Net Integrity)
└── 差分对检查(Differential Pairs)
机械检查:
├── 板框完整性(Board Outline)
├── 元器件碰撞(Collision)
└── 禁止区域(Keep-out)
7.2 配置设计规则
7.2.1 板子设置
菜单:File → Board Setup
或快捷键:Ctrl+Shift+S
7.2.2 约束规则(Constraints)
基本约束设置:
Board Setup → Design Rules → Constraints
最小间距(Minimum Clearance):
定义不同网络之间的最小距离
推荐值:0.15mm ~ 0.2mm
最小线宽(Minimum Track Width):
走线的最小宽度
推荐值:0.15mm ~ 0.2mm
最小过孔(Minimum Via Size):
过孔外径/钻孔最小值
推荐值:0.8mm/0.4mm 或 0.6mm/0.3mm
最小环宽(Minimum Annular Ring):
过孔环宽最小值
推荐值:0.15mm
铜到板边距离(Copper to Edge):
铜箔到板边的最小距离
推荐值:0.25mm ~ 0.5mm
丝印到焊盘距离(Silkscreen to Pad):
丝印与焊盘的最小间距
推荐值:0.1mm
7.2.3 网络类(Net Classes)
网络类允许为不同类型的网络设置不同的规则。
创建网络类:
Board Setup → Design Rules → Net Classes
步骤:
1. 点击"+"添加新网络类
2. 输入类名称(如"Power"、"Signal"、"HighSpeed")
3. 设置该类的规则参数:
- 间距
- 线宽
- 过孔尺寸
- 差分对间距
常用网络类配置:
Default(默认信号):
Clearance: 0.2mm
Track Width: 0.25mm
Via Size: 0.8mm / 0.4mm
Power(电源):
Clearance: 0.3mm
Track Width: 0.5mm
Via Size: 1.0mm / 0.5mm
GND(地线):
Clearance: 0.3mm
Track Width: 0.5mm
Via Size: 1.0mm / 0.5mm
HighSpeed(高速信号):
Clearance: 0.15mm
Track Width: 0.2mm
Via Size: 0.6mm / 0.3mm
DiffPair(差分对):
Clearance: 0.15mm
Track Width: 0.18mm
Differential Pair Gap: 0.15mm
分配网络到类:
Board Setup → Design Rules → Net Classes
方法1:手动分配
在网络列表中选择网络
指定所属网络类
方法2:使用模式匹配
输入通配符模式
如"VCC*"匹配所有VCC开头的网络
7.2.4 自定义规则
KiCad支持使用自定义规则文件进行更精细的控制。
规则文件位置:
Board Setup → Design Rules → Custom Rules
或编辑文件:
<project>.kicad_dru
规则语法:
# 规则版本声明
(version 1)
# 基本规则示例
(rule "电源线最小线宽"
(condition "A.NetClass == 'Power'")
(constraint track_width (min 0.5mm))
)
# 间距规则
(rule "高压区域间距"
(condition "A.Zone == 'HighVoltage'")
(constraint clearance (min 1mm))
)
# 禁止特定层的规则
(rule "禁止底层信号"
(layer "B.Cu")
(condition "A.NetClass == 'Sensitive'")
(constraint disallow track)
)
# 差分对规则
(rule "USB差分对"
(condition "A.inDiffPair('USB_*')")
(constraint diff_pair_gap (opt 0.15mm))
(constraint diff_pair_uncoupled (max 3mm))
)
常用规则条件:
A.NetClass == 'ClassName' : 网络类匹配
A.NetName == 'NetName' : 网络名匹配
A.Type == 'Track' : 类型匹配
A.inDiffPair('pattern') : 差分对匹配
A.Layer == 'F.Cu' : 层匹配
A.NetClass != B.NetClass : 不同网络类
A.isPlated() : 是电镀孔
常用约束类型:
clearance : 间距
track_width : 线宽
via_diameter : 过孔外径
via_drill : 过孔钻孔
hole_diameter : 孔径
annular_width : 环宽
diff_pair_gap : 差分对间距
diff_pair_uncoupled : 差分对最大非耦合长度
length : 走线长度
skew : 差分对偏斜
7.3 运行DRC检查
7.3.1 启动DRC
菜单:Inspect → Design Rules Checker
或快捷键:Ctrl+Shift+D
7.3.2 DRC选项
DRC对话框选项:
测试选项:
□ Refill all zones before DRC
运行DRC前重新填充所有覆铜区域
□ Test for parity between PCB and schematic
检查PCB与原理图的一致性
□ Report all errors for tracks
报告走线的所有错误
严重级别过滤:
□ Errors : 显示错误
□ Warnings : 显示警告
□ Exclusions: 显示已排除项
7.3.3 理解DRC结果
错误类型:
Clearance Violation(间距违规):
原因:两个元素之间距离过近
图标:红色圆圈
修复:增加间距或修改设计规则
Track Width Violation(线宽违规):
原因:走线宽度小于最小值
修复:增加线宽或修改规则
Via Violation(过孔违规):
原因:过孔尺寸不符合规则
修复:修改过孔尺寸
Unconnected Items(未连接项):
原因:网络中存在未连接的焊盘
修复:完成布线
Short Circuit(短路):
原因:不同网络意外连接
修复:移除错误连接
Hole near Hole(孔距过近):
原因:两个钻孔距离过近
修复:调整元器件位置或过孔位置
7.3.4 定位和修复问题
定位错误:
1. 在DRC结果列表中双击条目
2. 视图自动跳转到问题位置
3. 问题区域会高亮显示
修复错误:
间距错误:
- 移动走线或元器件
- 调整走线路径
- 减小线宽(如果允许)
未连接错误:
- 完成布线
- 检查网表是否正确
短路错误:
- 检查覆铜区域
- 检查走线连接
- 删除错误连接
7.3.5 排除特定违规
对于已确认可接受的违规,可以选择排除:
1. 在DRC结果中选择条目
2. 右键 → Exclude this violation
3. 或点击"排除"按钮
4. 排除的项目会标记但不再报错
7.4 电气规则检查(ERC)
7.4.1 ERC概述
电气规则检查在原理图编辑器中进行,验证电气连接的正确性。
7.4.2 运行ERC
在Eeschema中:
菜单:Inspect → Electrical Rules Checker
或快捷键:Ctrl+Shift+E
7.4.3 ERC规则配置
File → Schematic Setup → Electrical Rules
引脚类型矩阵:
定义不同引脚类型连接时的处理方式
选项:
- OK : 允许连接
- Warning: 警告
- Error : 错误
示例:
输出-输出连接 → Error
输入-输入连接 → Warning
输入-无驱动 → Error
7.4.4 常见ERC问题
Pin not connected:
引脚未连接
解决:连接导线或添加无连接标志
Input pin not driven:
输入引脚无驱动
解决:连接到输出或电源
Conflicting outputs:
输出冲突
解决:检查电路设计
Duplicate reference designator:
重复参考标号
解决:重新注释
7.5 网表一致性检查
7.5.1 原理图-PCB同步
确保PCB与原理图同步:
方法1:更新PCB
在Eeschema: Tools → Update PCB from Schematic
方法2:更新原理图
在Pcbnew: Tools → Update Schematic from PCB
方法3:交叉对比
运行DRC时选择"Test for parity"
7.5.2 常见不一致问题
Missing footprint:
原理图符号缺少对应的PCB封装
Extra footprint:
PCB中有原理图中不存在的封装
Net mismatch:
网络连接不一致
Value mismatch:
元器件值不匹配
7.6 3D检查
7.6.1 使用3D查看器验证
打开3D查看器:
View → 3D Viewer 或 Alt+3
检查内容:
- 元器件高度冲突
- 连接器对接空间
- 散热片高度
- 机械外壳配合
7.6.2 碰撞检测
3D查看器中检查:
- 元器件是否相互碰撞
- 高度元器件是否超出限制
- 连接器是否有足够空间
7.7 制造性检查
7.7.1 常见制造要求
PCB制造商典型要求:
最小线宽/间距:
标准工艺:0.15mm / 0.15mm
高精度工艺:0.1mm / 0.1mm
最小钻孔:
标准工艺:0.3mm
高精度工艺:0.2mm
最小环宽:
标准:0.15mm
推荐:0.2mm
阻焊桥:
最小:0.1mm
铜到板边:
最小:0.25mm
7.7.2 面向制造的设计检查清单
□ 线宽符合制造商要求
□ 间距符合制造商要求
□ 钻孔尺寸符合要求
□ 板框封闭且没有自交叉
□ 没有孤立的铜皮
□ 丝印不覆盖焊盘
□ 阻焊开窗正确
□ V-Cut/邮票孔位置合理
□ 定位孔位置正确
□ 所有元器件有封装
7.8 设计审查最佳实践
7.8.1 审查流程
第一阶段:原理图审查
1. 检查电气连接逻辑
2. 验证元器件参数
3. 运行ERC
4. 检查封装分配
第二阶段:布局审查
1. 检查元器件布局
2. 验证关键信号路径
3. 检查热管理
4. 运行DRC
第三阶段:制造审查
1. 检查制造规则
2. 验证丝印可读性
3. 检查装配考虑
4. 审核BOM
第四阶段:最终检查
1. 3D检查
2. 生成Gerber
3. 在Gerber查看器验证
4. 文档完整性检查
7.8.2 常见设计错误
原理图错误:
- 未连接的引脚
- 错误的电源连接
- 缺少去耦电容
- 引脚类型配置错误
布局错误:
- 元器件间距不足
- 走线过细
- 过孔放置不当
- 覆铜连接不良
制造错误:
- 丝印覆盖焊盘
- 阻焊桥过窄
- 板框不完整
- 钻孔过密
7.9 命令行DRC
7.9.1 使用kicad-cli运行DRC
# 运行PCB DRC
kicad-cli pcb drc \
--output report.json \
--format json \
--severity-all \
myproject.kicad_pcb
# 运行原理图ERC
kicad-cli sch erc \
--output erc_report.json \
--format json \
myproject.kicad_sch
7.9.2 CI/CD集成
# GitLab CI示例
drc-check:
stage: verify
script:
- kicad-cli pcb drc --output drc.json --format json board.kicad_pcb
- python check_drc.py drc.json
artifacts:
reports:
junit: drc-report.xml
7.10 本章小结
本章详细介绍了KiCad的设计规则检查和验证功能:
-
DRC概述:了解了设计规则检查的重要性和KiCad的DRC功能。
-
规则配置:学会了配置约束规则、网络类和自定义规则。
-
运行DRC:掌握了运行DRC检查和理解结果的方法。
-
ERC检查:了解了电气规则检查的配置和使用。
-
一致性检查:学会了保持原理图和PCB同步的方法。
-
3D检查:了解了使用3D查看器进行可视化验证。
-
制造性检查:掌握了面向制造的设计检查要点。
-
最佳实践:了解了设计审查的流程和常见错误。
-
命令行工具:学会了使用命令行运行DRC检查。
通过本章的学习,读者应该能够全面验证PCB设计,确保设计的正确性和可制造性。在下一章中,我们将学习KiCad的电路仿真功能。

浙公网安备 33010602011771号