PCB设计基础回顾:层叠结构、布线规则、网络类设置
做蛇形绕线之前,先把基本功打牢。说白了,绕线不是画两根弯弯的线就完了,它得靠层叠给底子、靠规则定规矩、靠网络类来分组管理。这三样东西没理顺,后面绕出来的线说不定就是废的。我自己踩过这坑,所以这一章咱们好好捋一遍。
层叠结构——绕线的“地基”
层叠就像房子的地基,地基歪了,楼上装修再好看也没用。我做高速板这些年,最怕的就是叠层不对称。
- 对称性原则:六层以上的板子,叠层一定要对称,不然板子容易翘曲,信号层和参考平面之间的回流路径也会乱。
- 参考平面:每一条高速信号线旁边必须紧邻一个完整的参考平面(GND或电源)。我记得有一次客户四层板,顶层走时钟,第二层是电源,没留完整地平面,结果时钟辐射超标。
- 阻抗控制:蛇形绕线常用于等长调节,但线宽线距和参考层的距离决定了阻抗。你不想绕了半天,阻抗却变了。
个人习惯:我一般在铺铜之前先用阻抗计算器算出线宽和介质厚度,然后把叠层结构截个图贴在原理图边上,方便后面调规则。
下面这张图把层叠、规则、网络类之间的关系画清楚了,你一看就明白它们怎么配合。
布线规则——绕线的“尺规”
规则就是PCB设计里的法律。你不设好规则,绕线器根本不知道该怎么画。
- 等长规则(Matched Length):蛇形线专为等长而生。你得指定一组信号的总长度目标值和容差,比如 ±5mil。
- 差分对规则:差分对内等长是基础,但别忘了设置耦合间距和线宽。我刚开始总把差分对规则和普通单端规则混在一起,结果绕出来的线对间串扰很大。
- 规则优先级:多条规则可能覆盖同一个网络,优先级高的生效。我建议你把差分对规则设为更高优先级,避免被全局规则覆盖。
绕线前的规则检查清单
- 是否有针对特定网络类的等长规则?
- 差分对间距是否等于耦合要求?
- 规则优先级是否按设计意图排列?
- 例外规则(如DDR组)是否已单独创建?
我曾经在这里翻过车:我在一个8层板上设置了所有DDR信号等长 ±20mil,但忘了把规则的应用范围限制在“DDR”网络类上,结果全局规则把电源网络也卷了进来,绕线时电源平面被切得乱七八糟。从那以后,我建规则一定先建网络类,再分配规则。
网络类设置——绕线的“分组袋”
网络类就是你给信号分的组。比如 DDR_DQ、DDR_CTRL、HDMI 等。组的好处是你可以一次性把规则应用上去,不用一条一条网络手动选。
- 创建网络类:在 PCB 面板中右键 → “Create Net Class”,或者从原理图里同步过来。
- 添加网络:你可以在 PCB 或者原理图中用通配符(*)批量选中,比如 DQ[0:7]。
- 映射到规则:在规则编辑器的“Where The First Object Matches”里选择“Net Class”,然后选你定义好的类名。
嗯,这里有个小技巧:把同组的时钟、数据、控制信号分开建类,便于分别设定不同的等长容差。我习惯把 DDR 走线分成三个类:CLK、DQ、CTRL,容差依次为 ±5mil、±20mil、±50mil。
| Net Class 名称 | 包含信号 | 等长容差 | 备注 |
|---|---|---|---|
| DDR_CLK | CLK, CLK# | ±5mil | 时钟要求最严 |
| DDR_DQ | DQ[0:7], DQS, DQM | ±20mil | 数据组内部等长 |
| DDR_CTRL | RAS#, CAS#, WE#, CS# | ±50mil | 控制信号相对宽松 |
命名规范很重要:用大写字母 + 下划线,比如“HDMI_TX_N”。我见过有人用中文命名网络类,后来导出生产文件时编码乱掉了,很麻烦。
三者协同:为蛇形绕线铺路
层叠提供物理基础,规则告诉软件怎么绕,网络类把一堆信号打包处理。三者缺一个,绕出来的蛇形线要么阻抗不对,要么等长跑偏,要么规则冲突。
实际操作中,我习惯按这个顺序走:
- 先定层叠,确定哪些层走高速信号,参考平面在哪。
- 再建网络类,把所有需要等长的信号分好组。
- 最后设规则,每个类对应一组等长规则和间距规则。
这样绕线的时候,Altium Designer 会自动识别哪个网络属于哪个类,自动应用对应的约束,你只管拉拉线就行了。记着,规则里“Where The Object Matches”一定要选对类,否则绕线器可能根本不搭理你。
绕线前的最后检查:打开 PCB 规则和约束编辑器(DRC),运行一次“Design Rule Check”,确认没有错误。特别留意“Matched Length”规则列表是否为空——空了说明类没挂上规则。