【agent辅助pcb routing coding学习】实践2 KiCad PCB 文件格式详解 - kit-dev-coldfire-xilinx_5213 实例分析
KiCad PCB 文件格式详解 - kit-dev-coldfire-xilinx_5213 实例分析
概述
本文使用实际的PCB文件 kit-dev-coldfire-xilinx_5213.kicad_pcb 来讲解KiCad PCB文件的格式和结构。这个文件是一个 ColdFire + Xilinx FPGA 开发板的设计文件。
文件信息:
-
文件名:
kit-dev-coldfire-xilinx_5213.kicad_pcb -
KiCad版本: 20241229 (KiCad 9.0)
-
文件大小: 约 2.2 MB
-
行数: 57,889 行
-
内容统计:
-
160 个封装 (Footprints/组件)
-
0 条走线 (Segments) - 未布线的板子
-
0 个过孔 (Vias)
-
3 个铜皮区域 (Zones)
-
5 个文字标注 (gr_text)
-
1. 文件头部 (Header)
(kicad_pcb
(version 20241229)
(generator "pcbnew")
(generator_version "9.0")
说明:
-
(kicad_pcb ...)- S-expression格式的根节点 -
version- 文件格式版本号(日期格式:YYYYMMDD) -
generator- 生成此文件的程序名称 -
generator_version- 生成器版本号
2. 通用设置 (General Section)
(general
(thickness 1.6)
(legacy_teardrops no)
)
参数说明:
-
thickness- PCB板厚度,单位为毫米- 本例: 1.6mm = 标准厚度
-
legacy_teardrops- 是否使用旧式泪滴
常见PCB厚度:
-
0.8mm - 薄型板(4层板常用)
-
1.0mm - 中等厚度
-
1.6mm - 标准厚度(最常见)
-
2.0mm+ - 厚型板(高功率板)
3. 图纸设置 (Paper & Title Block)
(paper "A4")
(title_block
(title "Demo Kicad")
(date "2015-10-09")
(rev "2")
)
说明:
-
paper- 图纸尺寸 (A4, A3, Letter等) -
title_block- 标题栏信息-
title- 项目标题 -
date- 设计日期 -
rev- 版本号
-
4. 层叠定义 (Layers)
KiCad PCB使用数字ID来标识每一层:
(layers
(0 "F.Cu" signal "Top_layer")
(4 "In1.Cu" signal)
(6 "In2.Cu" signal)
(2 "B.Cu" signal)
(5 "F.SilkS" user "F.Silkscreen")
(7 "B.SilkS" user "B.Silkscreen")
(1 "F.Mask" user)
(3 "B.Mask" user)
(25 "Edge.Cuts" user)
...
)
本例中的层结构(4层板):
| 层ID | 层名 | 类型 | 说明 |
|------|------|------|------|
| 0 | F.Cu | signal | 顶层铜(信号层) |
| 4 | In1.Cu | signal | 内层1(信号层) |
| 6 | In2.Cu | signal | 内层2(信号层) |
| 2 | B.Cu | signal | 底层铜(信号层) |
| 5 | F.SilkS | user | 顶层丝印 |
| 7 | B.SilkS | user | 底层丝印 |
| 1 | F.Mask | user | 顶层阻焊 |
| 3 | B.Mask | user | 底层阻焊 |
| 25 | Edge.Cuts | user | 板边轮廓 |
层类型说明:
-
signal- 信号层(铜层,可布线) -
user- 用户层(非铜层,用于丝印、阻焊等)
注意: 层ID在KiCad内部是固定的,用于程序识别;层名是可配置的显示名称。
5. 层叠参数 (Setup - Stackup)
(setup
(stackup
(layer "F.SilkS"
(type "Top Silk Screen")
(color "White")
(material "Liquid Photo")
)
(layer "F.Mask"
(type "Top Solder Mask")
(color "Green")
(thickness 0.01)
(material "Dry Film")
(epsilon_r 3.3)
(loss_tangent 0)
)
(layer "F.Cu"
(type "copper")
(thickness 0.035)
)
(layer "dielectric 1"
(type "prepreg")
(thickness 0.48)
(material "FR4")
(epsilon_r 4.5)
(loss_tangent 0.02)
)
(layer "In1.Cu"
(type "copper")
(thickness 0.035)
)
...
(copper_finish "ENIG")
(dielectric_constraints no)
)
(pad_to_mask_clearance 0)
(allow_soldermask_bridges_in_footprints no)
(tenting front back)
(aux_axis_origin 65.151 148.4122)
...
)
层叠参数详解:
铜层
-
thickness- 铜厚(单位:mm)-
0.035mm = 1oz 铜(标准)
-
0.070mm = 2oz 铜(厚铜)
-
介质层 (Dielectric)
-
type- 介质类型-
prepreg- 半固化片(PP片) -
core- 芯板
-
-
thickness- 介质厚度 -
material- 材料类型(FR4, Rogers等) -
epsilon_r(εr) - 介电常数-
FR4: 4.0-4.8
-
高频材料: 2.2-3.5
-
-
loss_tangent- 介质损耗角正切
阻焊层 (Solder Mask)
-
type- 阻焊类型 -
color- 颜色(Green, Red, Blue, Black, White等) -
epsilon_r- 介电常数(用于阻抗计算)
其他设置
-
copper_finish- 铜面处理工艺-
ENIG- 化学镍金 -
HASL- 热风整平 -
OSP- 有机保焊剂
-
-
pad_to_mask_clearance- 焊盘到阻焊的间距 -
tenting- 是否盖过孔 -
aux_axis_origin- 辅助坐标原点
本例的4层板结构:
Top Silk Screen (白色)
Top Solder Mask (绿色, 0.01mm)
F.Cu (铜, 0.035mm) ← 顶层
Dielectric 1 (FR4, 0.48mm, εr=4.5)
In1.Cu (铜, 0.035mm) ← 内层1
Dielectric 2 (FR4, 0.48mm, εr=4.5)
In2.Cu (铜, 0.035mm) ← 内层2
Dielectric 3 (FR4, 0.48mm, εr=4.5)
B.Cu (铜, 0.035mm) ← 底层
Bottom Solder Mask (绿色, 0.01mm)
Bottom Silk Screen (白色)
总厚度计算:
0.01 + 0.035 + 0.48 + 0.035 + 0.48 + 0.035 + 0.48 + 0.035 + 0.01 = 1.6mm ✓
6. 网络定义 (Nets)
网络定义了PCB上所有电气连接的名称:
(net 0 "")
(net 1 "/ALLPST")
(net 2 "/AN2")
(net 3 "/AN3")
(net 4 "/AN4")
(net 5 "/AN6")
(net 6 "/BKPT-")
...
(net 91 "GND")
(net 92 "GNDA")
(net 104 "+3.3V")
...
(net 278 "unconnected-(UARTCAN203-P9-Pad9)")
格式: (net <net_id> "<net_name>")
示例网络:
-
net 0- 无网络(空网络) -
net 91 "GND"- 地网络 -
net 104 "+3.3V"- 3.3V电源网络 -
net 1 "/ALLPST"- 信号网络 -
net 278 "unconnected-(UARTCAN203-P9-Pad9)"- 未连接的引脚
网络命名规则:
-
电源网络:
+3.3V,+5V,GND,VCC -
信号网络:
/信号名(以/开头) -
差分对:
/信号_P,/信号_N -
未连接引脚:
unconnected-(<元件>-<引脚>)
网络ID的作用:
-
网络ID是数字,用于在文件内部引用网络
-
同一网络ID的所有焊盘和走线在电气上是连接的
-
路由工具使用网络ID来确定哪些引脚需要连接
7. 封装 (Footprints)
封装是PCB上的物理元件实例,包含焊盘、丝印、装配信息等。
7.1 封装基本结构
(footprint "kit-dev-coldfire:SW_PUSH_SMALL"
(layer "F.Cu")
(uuid "00000000-0000-0000-0000-000053d8dc13")
(at 172.339 100.33)
(property "Reference" "ABRT_SW101"
(at 7.62 0.127 0)
(layer "F.SilkS")
(uuid "8dcd0e7d-5b6e-4311-985b-02c40fb0fffe")
(effects
(font
(size 0.6 0.6)
(thickness 0.15)
)
)
)
(property "Value" "SW_PUSH"
(at 0 1.016 0)
(layer "F.Fab")
...
)
(path "/00000000-0000-0000-0000-000046237f50")
(sheetname "Racine")
(sheetfile "kit-dev-coldfire-xilinx_5213.kicad_sch")
(attr through_hole)
...
(pad "1" thru_hole circle
(at -3.81 -2.54)
(size 1.397 1.397)
(drill 0.8128)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(net 136 "Net-(ABRT_SW101-Pad1)")
(pinfunction "1")
(pintype "passive")
(uuid "2a65fd96-2e4f-49f2-af18-275374f91772")
)
...
)
封装属性:
| 属性 | 说明 | 示例值 |
|------|------|--------|
| footprint | 封装库路径 | "kit-dev-coldfire:SW_PUSH_SMALL" |
| layer | 放置层 | "F.Cu" (顶层) 或 "B.Cu" (底层) |
| uuid | 唯一标识符 | "00000000-0000-0000-0000-..." |
| at | 位置坐标 | (x y rotation) |
| path | 原理图路径 | "/00000000-0000-0000-0000-..." |
| sheetname | 原理图纸名 | "Racine" |
属性 (Property):
-
Reference- 元件位号(如 R1, C1, U1) -
Value- 元件值(如 10k, 100nF) -
Datasheet- 数据手册链接
属性 (Attr):
-
through_hole- 通孔元件 -
smd- 表贴元件 -
virtual- 虚拟元件(不生产)
7.2 焊盘 (Pad)
焊盘是封装上用于电气连接的点:
(pad "1" thru_hole circle
(at -3.81 -2.54)
(size 1.397 1.397)
(drill 0.8128)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(net 136 "Net-(ABRT_SW101-Pad1)")
(pinfunction "1")
(pintype "passive")
(uuid "2a65fd96-2e4f-49f2-af18-275374f91772")
)
焊盘参数:
| 参数 | 说明 | 示例 |
|------|------|------|
| pad | 焊盘编号 | "1", "A1", "H2" |
| at | 相对位置 | (x y rotation) |
| size | 焊盘尺寸 | (width height) 单位mm |
| drill | 钻孔直径 | 0表示无孔(SMD) |
焊盘类型:
| 类型 | 说明 | 例子 |
|------|------|------|
| thru_hole | 通孔焊盘 | DIP封装,连接器 |
| smd | 表贴焊盘 | 芯片,阻容元件 |
| np_thru_hole | 非电镀通孔 | 安装孔,定位孔 |
焊盘形状:
| 形状 | 说明 |
|------|------|
| circle | 圆形 |
| rect | 矩形(方形) |
| oval | 椭圆形 |
| roundrect | 圆角矩形 |
| trapezoid | 梯形 |
焊盘网络属性:
-
net- 网络ID和名称 -
pinfunction- 引脚功能名(来自原理图) -
pintype- 引脚类型-
passive- 被动引脚 -
input- 输入引脚 -
output- 输出引脚 -
power_in- 电源输入 -
power_out- 电源输出 -
bidirectional- 双向引脚
-
7.3 SMD焊盘示例
(pad "1" smd roundrect
(at -0.95 0 270)
(size 1 1.45)
(layers "B.Cu" "B.Mask" "B.Paste")
(roundrect_rratio 0.25)
(net 104 "+3.3V")
(pintype "passive")
(uuid "18307add-f83e-4a45-b1b1-20c388dc6ef0")
)
SMD焊盘特点:
-
没有
drill参数 -
指定具体层:
"B.Cu","B.Mask","B.Paste" -
可能包含
roundrect_rratio(圆角比例)
7.4 封装图形
每个封装包含图形元素用于显示和制造:
丝印线条 (fp_line):
(fp_line
(start -3.81 -3.81)
(end 3.81 -3.81)
(stroke
(width 0.127)
(type solid)
)
(layer "F.SilkS")
(uuid "6bf3909f-be9e-4e21-8edd-285a4cd4c085")
)
参数:
-
start,end- 起点、终点坐标 -
stroke- 线宽和样式 -
layer- 所在层
丝印圆/弧 (fp_circle, fp_arc):
(fp_circle
(center 0 0)
(end 0 -2.54)
(stroke
(width 0.127)
(type solid)
)
(fill no)
(layer "F.SilkS")
(uuid "46701c17-abf0-44a8-8186-beb2837809bc")
)
装配层图形 (F.Fab, B.Fab):
-
用于定义元件的3D模型边界
-
通常比丝印略小
8. 图形对象 (Graphic Objects)
PCB文件中的独立图形对象,不属于任何封装。
8.1 文字 (gr_text)
(gr_text "MOD0"
(at 108.9 98.5 0)
(layer "F.SilkS")
(uuid "e0a31601-c55c-4fd3-8ee0-5d848f875b65")
(effects
(font
(size 1 1)
(thickness 0.2)
)
)
)
用途:
-
板子标识文字
-
版本号
-
生产信息
-
警告标识
其他图形对象(本例中未使用):
-
gr_line- 直线 -
gr_circle- 圆 -
gr_arc- 圆弧 -
gr_rect- 矩形 -
gr_poly- 多边形
9. 区域 (Zones)
区域(铜皮)用于创建大面积铜箔,常用于地平面或电源平面:
(zone
(net 91)
(net_name "GND")
(layer "B.Cu")
(uuid "00000000-0000-0000-0000-00005aeebe1a")
(hatch edge 0.508)
(connect_pads
(clearance 0.3)
)
(min_thickness 0.25)
(filled_areas_thickness no)
(fill yes
(thermal_gap 0.381)
(thermal_bridge_width 0.381)
)
(polygon
(pts
(xy 71.7 56.3)
(xy 228.2 56.3)
(xy 228.2 146.7)
(xy 71.7 146.7)
(xy 71.7 146.4)
)
)
(filled_polygon
(layer "B.Cu")
(pts
(xy 107.534601 111.826185)
(xy 107.555243 111.842819)
...
)
)
)
区域参数:
| 参数 | 说明 | 示例 |
|------|------|------|
| net | 网络ID | 91 (GND) |
| net_name | 网络名称 | "GND" |
| layer | 所在层 | "B.Cu" |
| hatch | 填充样式 | edge 0.508 |
| connect_pads | 焊盘连接 | (clearance 0.3) |
| min_thickness | 最小铜箔宽度 | 0.25mm |
| thermal_gap | 热风焊盘间隙 | 0.381mm |
| thermal_bridge_width | 热风焊盘连筋宽度 | 0.381mm |
区域结构:
-
polygon - 定义区域边界的多边形轮廓
-
filled_polygon - KiCad计算出的实际填充结果
-
考虑了所有障碍物(焊盘、走线)
-
生成热风焊盘
-
避免其他网络的铜箔
-
本例的3个区域:
-
底层GND平面
-
顶层某个网络平面(可能是电源)
-
另一个平面区域
热风焊盘(Thermal Relief):
-
用于防止焊接时散热过快
-
通过
thermal_gap和thermal_bridge_width控制 -
常见连筋数:2或4条
10. 未布线的PCB
重要发现: 此PCB文件 没有任何走线(segments)或过孔(vias)!
这意味着:
-
✅ 这是一个放置好元件但未布线的PCB
-
✅ 它是自动布线工具的完美输入
-
✅ 所有网络连接都由网络定义指定
-
✅ 网络通过焊盘的
net属性关联
对于路由工具的意义:
-
输入: 160个封装,每个封装的焊盘都有网络ID
-
任务: 根据网络ID,在同一网络的焊盘之间生成走线
-
输出: 添加
(segment ...)和(via ...)条目
11. 完整文件结构总结
(kicad_pcb ; 根节点
(version ...) ; 文件格式版本
(generator ...) ; 生成程序
(general ; 通用设置
(thickness ...) ; 板厚
)
(paper ...) ; 图纸尺寸
(title_block ...) ; 标题栏
(layers ...) ; 层定义
(setup ; 设置
(stackup ...) ; 层叠参数
(pad_to_mask_clearance ...) ; 设计规则
(pcbplotparams ...) ; 输出参数
)
; 278个网络定义
(net 0 "") ; 无网络
(net 1 "/ALLPST") ; 信号网络
(net 91 "GND") ; 地
(net 104 "+3.3V") ; 电源
...
; 160个封装
(footprint "..." ; 封装1
(at ...) ; 位置
(property "Reference" ...) ; 位号
(property "Value" ...) ; 值
(pad "1" ...) ; 焊盘1
(pad "2" ...) ; 焊盘2
...
(fp_line ...) ; 丝印
(fp_circle ...) ; 丝印圆
)
(footprint "..." ...) ; 封装2
...
; 图形对象
(gr_text "MOD0" ...) ; 文字
(gr_line ...) ; 线条
; 3个区域(铜皮)
(zone ...) ; GND平面
(zone ...) ; 其他平面
(embedded_fonts no) ; 嵌入字体
) ; 文件结束
12. 坐标系统
KiCad使用毫米作为基本单位:
(at 172.339 100.33) ; X=172.339mm, Y=100.33mm
(at 108.9 98.5 0) ; X=108.9mm, Y=98.5mm, 旋转=0度
特点:
-
原点(0,0)通常在左下角
-
X轴向右为正
-
Y轴向上为正
-
旋转角度:逆时针为正
内部单位:
-
KiCad内部使用纳米(nm)作为计算单位
-
文件中显示毫米(mm)是为了可读性
-
1 mm = 1,000,000 nm
13. UUID (通用唯一标识符)
每个对象都有UUID:
(uuid "00000000-0000-0000-0000-000053d8dc13")
作用:
-
唯一标识每个对象
-
用于版本控制和同步
-
格式: 8-4-4-4-12 (标准UUID格式)
本例中的UUID:
-
每个封装有UUID
-
每个焊盘有UUID
-
每个图形对象有UUID
-
每个区域有UUID
14. 文件大小分析
为什么这个PCB文件这么大(2.2 MB)?
主要原因:filled_polygon 数据
(filled_polygon
(layer "B.Cu")
(pts
(xy 107.534601 111.826185)
(xy 107.555243 111.842819)
(xy 110.173343 114.460919)
...
)
)
原因:
-
KiCad存储了铜皮填充的实际多边形顶点
-
需要避让160个封装的所有焊盘
-
生成了数千个顶点来精确描述填充区域
-
每个顶点有6位小数精度
对比:
-
如果只存储
polygon(边界),文件会很小 -
但每次打开都需要重新计算填充
-
存储填充后的结果可以加快加载速度
15. 与路由工具的关系
15.1 路由工具需要的信息
从本PCB文件,路由工具可以获得:
-
网络信息 - 哪些焊盘需要连接
(net 104 "+3.3V") (pad ... (net 104 "+3.3V") ...) -
焊盘位置 - 起点、终点坐标
(pad "1" ... (at 172.339 100.33) ...) -
障碍物 - 需要避开的对象
-
所有封装的焊盘
-
已有的走线
-
板边 (Edge.Cuts)
-
-
布线层 - 可以使用的层
(0 "F.Cu" signal) (4 "In1.Cu" signal) (2 "B.Cu" signal) -
设计规则 - 约束条件
(pad_to_mask_clearance 0)
15.2 路由工具的输出
运行路由工具后,文件将添加:
(segment
(start 172.339 100.33)
(end 175.5 100.33)
(width 0.25)
(layer "F.Cu")
(net 104)
(tstamp 12345678)
)
(via
(at 175.5 100.33)
(size 0.6)
(drill 0.3)
(layers "F.Cu" "B.Cu")
(net 104)
(remove_unused_layers no)
(tstamp 12345679)
)
(segment
(start 175.5 100.33)
(end 180.2 105.5)
(width 0.25)
(layer "B.Cu")
(net 104)
(tstamp 12345680)
)
segment (走线) 参数:
-
start,end- 起点、终点 -
width- 线宽 -
layer- 所在层 -
net- 网络ID -
tstamp- 时间戳(唯一标识)
via (过孔) 参数:
-
at- 位置 -
size- 外径 -
drill- 钻孔直径 -
layers- 连接的层 -
net- 网络ID
16. 关键概念总结
| 概念 | 文件中的表示 | 用途 |
|------|-------------|------|
| 网络 | (net ID "名称") | 定义电气连接关系 |
| 封装 | (footprint ...) | 物理元件实例 |
| 焊盘 | (pad ...) | 电气连接点 |
| 层 | (layer ID "名称" type) | 物理铜层 |
| 走线 | (segment ...) | 电气连接路径 |
| 过孔 | (via ...) | 层间连接 |
| 区域 | (zone ...) | 大面积铜皮 |
| 坐标 | (x y rotation) | 位置和角度 |
| UUID | (uuid "...") | 唯一标识符 |
17. 实用技巧
17.1 读取PCB文件的Python代码
import re
def read_pcb_nets(filename):
"""读取所有网络定义"""
with open(filename, 'r', encoding='utf-8') as f:
content = f.read()
# 匹配 (net ID "name")
pattern = r'\(net\s+(\d+)\s+"([^"]+)"'
nets = {}
for match in re.finditer(pattern, content):
net_id, net_name = match.groups()
nets[int(net_id)] = net_name
return nets
# 使用
nets = read_pcb_nets('kit-dev-coldfire-xilinx_5213.kicad_pcb')
print(f"Total nets: {len(nets)}")
print(f"Net 91 (GND): {nets[91]}")
print(f"Net 104 (+3.3V): {nets[104]}")
17.2 查找特定网络的所有焊盘
def find_pads_by_net(filename, net_id):
"""查找特定网络的所有焊盘"""
with open(filename, 'r', encoding='utf-8') as f:
content = f.read()
# 查找包含指定net的pad
pattern = rf'\(pad\s+"([^"]+)"[^(]*\(net\s+{net_id}\s+"([^"]+)"[^(]*\)'
pads = []
for match in re.finditer(pattern, content, re.MULTILINE | re.DOTALL):
pad_name, net_name = match.groups()
pads.append((pad_name, net_name))
return pads
# 使用
gnd_pads = find_pads_by_net('kit-dev-coldfire-xilinx_5213.kicad_pcb', 91)
print(f"GND pads found: {len(gnd_pads)}")
17.3 提取封装列表
def extract_footprints(filename):
"""提取所有封装信息"""
with open(filename, 'r', encoding='utf-8') as f:
content = f.read()
footprints = []
pattern = r'\(footprint\s+"([^"]+)"\s+\(layer\s+"([^"]+)"\)\s+\(uuid\s+"([^"]+)"\)\s+\(at\s+([\d.]+)\s+([\d.]+)'
for match in re.finditer(pattern, content):
fp_name, layer, uuid, x, y = match.groups()
footprints.append({
'name': fp_name,
'layer': layer,
'uuid': uuid,
'x': float(x),
'y': float(y)
})
return footprints
# 使用
footprints = extract_footprints('kit-dev-coldfire-xilinx_5213.kicad_pcb')
print(f"Total footprints: {len(footprints)}")
for fp in footprints[:5]: # 打印前5个
print(f" {fp['name']} at ({fp['x']}, {fp['y']}) on {fp['layer']}")
18. 常见问题
Q1: 为什么这个PCB没有走线?
A: 这是一个典型的"布局完成但未布线"的PCB。设计者已经:
-
放置了所有元件
-
定义了网络连接关系
-
设置了层叠和设计规则
-
但还没有手动或自动布线
这种状态是自动布线工具的理想输入。
Q2: 网络ID和UUID有什么区别?
| | 网络ID (net) | UUID |
|—|-------------|------|
| 格式 | 数字 (如 91) | 8-4-4-4-12格式 |
| 作用 | 表示电气网络 | 唯一标识对象 |
| 范围 | 同一网络共享 | 全局唯一 |
| 用途 | 布线、连接 | 版本控制、同步 |
Q3: 如何识别差分对?
KiCad PCB文件中,差分对通过命名约定识别:
(net 10 "/USB_P")
(net 11 "/USB_N")
路由工具会查找 _P 和 _N 后缀的网络对。
Q4: 层ID为什么是0, 2, 4, 6而不是0, 1, 2, 3?
KiCad的层ID是历史遗留的:
-
偶数ID: 铜层
-
奇数ID: 配套层(如丝印、阻焊)
| ID | 层 |
|—|—|
| 0 | F.Cu |
| 1 | F.Mask |
| 2 | B.Cu |
| 3 | B.Mask |
19. 总结
通过分析 kit-dev-coldfire-xilinx_5213.kicad_pcb 文件,我们了解了:
-
文件格式 - KiCad使用S-expression(Lisp风格)的文本格式
-
基本结构 - header → general → layers → setup → nets → footprints → zones
-
关键数据 - 网络定义、封装、焊盘、层叠
-
坐标系 - 毫米单位,左下角原点
-
未布线状态 - 本例只有封装放置,无走线和过孔
-
路由输入 - 此文件是自动布线工具的完美输入
对于KiCad Routing Tools项目:
-
✅ 此PCB文件可以立即用于测试路由工具
-
✅ 包含160个封装,提供足够的复杂度
-
✅ 有明确的网络定义
-
✅ 4层板结构,可以测试多层路由
-
✅ 包含3个区域(铜皮),可以测试避让算法
20. 参考资源
更多推荐

所有评论(0)