Freerouting项目中TH焊盘间距问题的分析与解决方案
freerouting Advanced PCB auto-router 项目地址: https://gitcode.com/gh_mirrors/fr/freerouting
问题背景
在PCB设计领域,自动布线工具Freerouting在处理通孔(TH)焊盘时出现了一个关键问题:布线过程中忽略了与TH焊盘之间的安全间距,导致走线直接穿过焊盘中央。这种情况在Freerouting 2.0.1版本及之前的1.9版本中均有出现。
问题现象分析
通过用户提供的设计文件分析,可以观察到以下典型现象:
- 走线穿越焊盘:自动布线生成的走线直接穿过TH焊盘的中央区域,违反了基本的PCB设计规则
- 间距规则失效:设计文件中设置的焊盘间安全间距(pin_pin规则)未被正确识别和应用
- 优化过程报错:日志中显示多次"move via failed"错误,表明优化算法在尝试调整过孔位置时遇到障碍
技术原因探究
经过深入分析,该问题主要由以下几个技术因素导致:
- EDA软件导出限制:当前EasyEDA Pro版本在设计文件导出时未能正确支持pin_pin规则的导出
- 规则定义缺失:生成的.dsn文件中缺少关键的类型间距规则定义,特别是针对焊盘间(pin_pin)的特定间距要求
- 多线程优化缺陷:虽然用户尝试使用单线程模式(-mt 1),但优化过程中的过孔位置调整算法仍存在稳定性问题
解决方案与实践建议
针对这一问题,PCB设计工程师可以采取以下解决方案:
1. 手动添加间距规则
在.dsn文件中手动添加必要的间距规则定义,例如:
(rule(clear 6))
(rule(clear 6 (type default_smd)))
(rule(clear 6 (type smd_smd wire_area via_smd via_pin pin_pin track_pin)))
(rule(clear 6.3 (type via_via)))
2. 单位一致性检查
确保.dsn文件中使用的单位与Freerouting中设置的单位一致(通常为mil),避免因单位不一致导致的规则应用错误。
3. 设计验证步骤
完成布线后应执行以下验证:
- 使用DRC(设计规则检查)功能全面检查间距违规
- 重点关注TH焊盘区域,确认走线保持安全距离
- 检查优化后的过孔位置是否合理
长期改进方向
从工具链完善的角度,建议:
- EDA软件改进:期待EasyEDA Pro未来版本能够完整支持所有间距规则的导出
- Freerouting优化:建议开发团队增强对不完整规则文件的容错处理能力
- 多线程稳定性:需要进一步优化多线程布线算法,减少优化过程中的错误
总结
TH焊盘间距问题是PCB自动布线中常见的设计挑战。通过理解问题本质,采取适当的手动规则补充和验证措施,设计工程师可以有效规避这类问题。同时,我们也期待相关工具链的持续改进,为PCB设计提供更加可靠高效的自动化解决方案。
freerouting Advanced PCB auto-router 项目地址: https://gitcode.com/gh_mirrors/fr/freerouting
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考