做电路板这些年,最让我头疼的不是布线,而是改规则。早年间用EDA画板子,几百个网络摆在面前,电源网络要加粗走线,模拟地要单独约束,高压区域要拉大间距,每一次调整都是对着网络名一条一条手工改。新加一路电源,就要回规则列表里再补一条;换一个方案,又得从头翻一遍。后来我在嘉立创EDA专业版里把“网络类”这个功能彻底玩明白了,才发现以前大量时间都浪费在低效的规则维护上。这篇文章就把网络类的创建、规则分配、以及星型接地和PCB罗氏线圈这类具体场景怎么用网络类落地,完整过一遍。如果你是刚接触PCB设计,或者画了几块板子但一直靠“人肉”维护规则,这篇应该能帮你省下大量时间。
1. 先从一次改版说起:为什么网络类能省掉大半规则工作量
1.1 没有网络类时,规则是怎么“手搓”的
我最早用EDA工具画一块电源板时,板子上有3路DC-DC、1路LDO,还有几组传感器信号,总共200多个网络。当时不懂网络类,所有规则全靠在规则管理器里一条一条添加网络。比如12V输入网络要走粗线,就先建一条线宽规则,把“VIN_12V”这个网络手动加进去;后来发现LDO输入端也是从12V过来的,网络名叫“12V_LDO”,又得新建一条规则。
这还只是开头。更痛苦的是,原理图稍有调整,网络名一变,规则就失效了。有一次我整理原理图,把所有的“+12V”统一规范成“VIN_12V”,结果PCB里好几条规则全部失效,还得重新对着网络列表逐个核对。那一次我花了整整半天去清理规则,真正布线的进度反而没怎么动。
说到底,问题出在规则管理的粒度上。设计者的意图通常是“这组网络要特殊对待”,而规则系统却要求你“一个一个网络去指定”。两者不匹配,自然就累。
1.2 网络类的本质:把网络变成可管理的集合
网络类(Net Class)做了一件非常简单但是关键的事情:它给网络提供了一个分组维度。你可以把一批网络装进一个类里,然后让规则直接作用于整个类。
嘉立创EDA专业版里默认有一个“Default/默认类”,所有没有被手动归类的网络都待在默认类里。你可以新建若干自定义类,把网络按照设计意图分组,比如电源类、地类、高速信号类、敏感模拟类。分组之后,线宽规则、间距规则、过孔规则等都可以直接指定“网络类:PWR_12V”,而不是罗列十几个网络名。
打个比方,如果网络是快递件,网络类就是快递柜的格口。规则设置的是“这个格口怎么处理”,而不是“这一件快递怎么处理”。快递件再多,只要放进格口就自动遵守格口规则。
1.3 哪些设计场景离不开网络类
从实际项目来看,以下几类场景几乎是网络类的刚需:
- 多电源域电路:核心电压、外设电压、模拟电压各自的线宽和过孔要求不一样,分开归类才能高效管理。
- 模拟地/数字地分离:混合信号板上的AGND和DGND经常要分隔布线,单点连接,网络类可以分别约束两类地网络的走线规则。
- 高速信号组:DDR数据线、USB差分线、以太网差分线等需要统一的线宽、间距,甚至等长约束,归入同一网络类后可以整体设置。
- 高压与低压分区:高压网络要设置较大的安全间距,把高压网络归为一类,一条规则就能与全板其他网络拉开距离。
- 批量过孔约束:电源网络的过孔需要更大尺寸来承载电流,信号网络用小过孔,也可以通过网络类分别指定过孔规则。
2. 创建网络类与成员管理的完整操作
2.1 面板入口与类的基础结构
在嘉立创EDA专业版里打开一个PCB文件,先找到网络类的管理面板。通常右侧面板区域有一个“网络类”的切换图标,如果找不到,可以试着在顶部菜单的“视图”或“面板”入口里打开“网络类”面板。一个技巧:EDA这类软件的面板一般都可以通过“面板管理/更多面板”这一类的入口调出来,嘉立创专业版也不例外,面板被误关后不用重开文件,去面板管理器里重新勾选即可。
打开网络类面板后,你会看到当前PCB文件里已有的类。初次使用的时候,一般只有默认类,里面装着所有未分类的网络。后续新建的类会排列在默认类旁边,每个类后面通常会显示成员网络数量。
有一点需要先说清楚:网络类是在PCB设计阶段创建和使用的,它不改变原理图的电气连接关系。原理图里的网络标签负责“电路的连通性”,PCB里的网络类负责“规则管理的归属性”,两者不是一回事。很多新手以为网络类能把两个独立的网络连起来,这是误解。
2.2 新建一个网络类并规划命名
在“网络类”面板的空白处右键,选择“新建网络类”,输入类名即可。类名建议用英文大写加下划线的风格,不要用中文和特殊符号,以免在后面规则下拉列表、脚本或导出环节出现兼容问题。
我自己常用的命名规则是这样的:
| 类名示例 | 用途 |
|---|---|
| PWR_12V0 | 12V电源网络 |
| PWR_5V0 | 5V电源网络 |
| PWR_3V3 | 3.3V电源网络 |
| AGND | 模拟地网络 |
| DGND | 数字地网络 |
| PGND | 功率地网络 |
| DDR_GROUP | DDR信号组 |
| HIGHPIN_SAFE | 高压安全间距网络 |
类名控制在20个字符以内比较好,因为在规则管理器里,类名会直接出现在下拉列表或规则对象里,名字太长会影响查看效率。另外,建类之前最好先在原理图里统一网络命名规范,因为网络类成员的来源就是网络名。网络命名越规律,后续批量分配越省事。
2.3 三种添加网络成员的方式
创建好空类之后,接下来就是把网络装进去。我在实际使用中通常用三种方式,大家可以根据情况选择。
方式一:在“网络”面板里选中多个网络,右键分配。这是最直观的方式。打开网络面板,用Ctrl多选或者Shift连选,选中若干目标网络,然后右键找到“添加到网络类/分配到网络类”之类的选项,选择目标类即可。如果网络数量较多,可以配合网络面板上方的过滤框,输入“VIN”之类的关键字,等列表过滤出相关网络后再全选分配。
方式二:在“网络类”面板里,双击某个类打开成员编辑窗口,手动勾选。这种方式适合在一个类里逐个核对网络。窗口一般会分成两侧,一侧是当前类已有的成员网络,另一侧是尚未分到该类的可用网络,通过勾选完成添加或移除。优势是看得清楚,缺点是网络多的时候操作偏慢。
方式三:利用网络名的规律,用过滤加批量分配。例如所有USB相关网络都叫“USB_*”,可以先在过滤框输入“USB_”,把过滤结果全选后批量分配。但我必须提醒一点:过滤结果里很可能混入“USB_PWR”“USB_SHIELD”这类不想归类进去的网络,批量分配后一定要再复查一遍。
无论用哪种方式,最后我都建议在网络类面板里点开类,把成员列表扫一遍,确认没有混入异常网络。
2.4 类成员的检查与后期维护
网络类建好以后不是一劳永逸的。原理图一旦改动,重新导入PCB后网络列表会变化,旧网络类里可能会残留已经不存在的网络,新网络则可能还留在默认类中。
我一般会在以下时间点重新检查类成员:
- 原理图完成大改并重新导入PCB后:重点检查新增网络是否进对了类。
- 打样前做DRC之前:逐类核对成员,避免规则“漏管”。
- 规则分配不生效时:优先怀疑网络根本没有进到类里。
如果要移除某个网络,在网络面板里选中它,右键选择“从网络类移除”即可;如果要把整个类清空重新分配,可以打开成员管理窗口,把右侧成员全部取消勾选。重命名类时,右键类名选择重命名即可,规则管理器里的引用通常会跟随更新;如果发现规则里的类名没有同步,删掉规则重新选一次最稳妥。
不再需要的类可以直接右键删除,但这里有个坑:删除类的操作,不会自动清除设计规则里对“这个类”的引用。这是很多人在使用中踩到的问题,后面我在踩坑章节详细讲。
3. 设计规则分配:把约束精准落到网络类上
3.1 规则管理器的基本结构
网络类建好之后,真正的核心操作来了:规则分配。在嘉立创EDA专业版里,打开PCB编辑器后,通过顶部菜单进入“设计规则”面板。规则管理器一般按规则类型分类,左侧是规则类型树,比如间距规则、线宽规则、过孔规则、铜箔连接规则、长度规则等;右侧是这个类型下的规则列表。
注意一个关键结构:每种规则类型下通常都有一条默认的“All”规则(或者说全局规则),它的适用对象是全部网络,所有网络都受它约束。默认规则不能删除,只能修改,它相当于兜底条款。你新建的特定规则会排列在规则列表中,系统按顺序匹配,所以规则顺序就是优先级顺序,越靠前的规则越先被匹配。
3.2 线宽规则:电源类走粗线、信号类走细线
线宽规则是最常见也最容易体现网络类价值的规则。规则里通常会设置三个参数:最小线宽、首选线宽、最大线宽。布线时,默认使用首选线宽;需要手动调线宽时,也只能在最小和最大之间调整。
我举一个实际的配置例子。假设有一块同时包含12V电源和普通信号的板子:
- 默认线宽规则(All):最小6mil,首选10mil,最大20mil。
- 新建线宽规则,适用对象选择“网络类:PWR_12V0”,设置最小15mil,首选30mil,最大80mil。
- 把这条新规则拖到列表更靠前的位置,保证它在默认规则之前被匹配。
这样12V电源网络在布线时就会自动向30mil靠拢。电流大小和线宽的经验关系,一般参考值如下(按1盎司铜厚、常规温升估算):
| 电流 | 建议最小线宽 |
|---|---|
| 0.5A | 12mil左右 |
| 1A | 20mil左右 |
| 2A | 40mil左右 |
| 3A | 60mil左右 |
这只是经验参考,不是绝对标准,实际还要结合铜厚、允许温升和走线长度。但有一个原则可以通用:电源网络别用和信号网络一样的默认线宽。
3.3 间距规则:高压区和敏感信号的安全距离
线宽规则管的是“走得多粗”,间距规则管的是“离得多远”。间距规则通常有两个作用对象:一个是规则本身适用的网络或网络类,另一个是“需要与之保持距离”的网络或网络类。这个模型特别适合网络类的使用。
举个例子,做一块带有220V高压输入和低压控制信号的板子时,我会新建网络类“HV_SET”,把所有高压网络放进去。然后在间距规则里新建一条规则:
- 适用对象A:网络类 HV_SET
- 适用对象B:全部(All)
- 最小间距:按安规要求设置,常见要求下至少6mm或以上
这样一条规则,就把所有高压网络与板子上所有其他网络的安全间距都管住了。如果没有网络类,你得把所有高压网络名逐个填进去,还要考虑新增高压网络时回补规则,非常容易遗漏。
再比如模拟信号容易被开关节点干扰的场景。把模拟小信号网络放到“ANA_SIG”类,把DC-DC的开关节点网络放到“SW_NODE”类,然后设置“ANA_SIG”与“SW_NODE”之间的最小间距为20mil或更大。这就是集合与集合之间的间距约束,手工按网络名添加基本做不到。
3.4 过孔规则与铜箔连接规则:容易被忽略的分配对象
很多人用网络类只管线宽和间距,其实过孔规则和铜箔连接规则同样可以按网络类分配,这两个功能在实际项目中非常实用。
过孔规则按类分配,主要是解决电源网络电流密度的问题。信号网络可以用小过孔,比如24mil/40mil的孔盘组合;电源网络则需要更大的过孔来降低阻值和温升,比如40mil/60mil甚至更大。新建过孔规则,适用对象选择电源网络类,设置对应的孔尺寸参数后,在电源网络上放置过孔时就会自动采用这个规格,不需要每次手动改过孔参数。
铜箔连接规则按类分配,主要是为了兼顾电气性能和焊接工艺。铺铜时,网络与铜皮的连接方式有实心连接和十字/花焊盘连接两种。实心连接阻抗低、散热快,但手工焊接时不容易上锡;十字连接散热慢、便于焊接,但阻抗稍高。我通常的做法是:
- 信号地类:用十字连接,方便手工焊接和返修。
- 电源类:用实心连接,降低阻抗,减少电压跌落。
这项细节在批量贴片和手工焊接时的体验差异很明显,建议在打样前就设置好。
3.5 规则优先级:先命中,先生效
规则优先级的坑,我见过不少人踩。现象是:明明给某个类设置了20mil的间距,也确认网络已经归入类中,但DRC报错依然显示6mil的默认间距。问题往往出在规则顺序上。
在规则管理器里,规则是按列表顺序从上到下匹配的。当一条网络命中多条同类规则时,系统会采用第一条匹配到的规则,后面的规则即使设置了也暂时不生效。因此,默认规则作为兜底通常放在最底部,而特定网络类的规则要放在它上面。更具体地说,规则列表的优先级可以手动拖动调整。我每次新建规则后,都会确认它的位置是否靠前,避免新规则被旧规则“盖住”。
如果你是第一次用网络类,我建议把特殊规则和默认规则分开理解:默认规则解决“没有特殊要求时该怎么办”,网络类规则解决“这类网络该怎么办”。两条都启用,但特殊规则必须排在前面。
3.6 删除分配规则的干净做法
热搜词里有“如何删除分配规则”,这说明这是一个高频问题。删除分配规则要分几种情况,操作方法不一样。
情况一:规则条目本身不需要了。打开设计规则面板,找到对应的规则条目,选中后右键删除。比如之前为“PWR_12V0”建了一条线宽规则,现在电源改方案了,不再需要专门约束,那就在线宽规则列表中把这条规则删除。删除后,相关网络自动回到默认规则管辖,不影响网络类本身。
情况二:网络不想待在某个类里,但规则还要留着。这种不需要删除规则,只要在网络面板或类成员管理里把网络从类中移除。网络回到默认类后,那条网络类规则就暂时没有对象,等以后有同类的网络再加入即可。
情况三:网络类整个不要了。这是最需要注意的。删除网络类之前,先到规则管理器里搜索这个类名,把引用它的规则全部清理掉。否则类被删了,规则里还会残留一个指向已删除类的引用,DRC可能出现异常,规则管理器里也会留下一个看起来很怪的无效规则条目。
情况四:误删规则想恢复。如果还在当前操作步骤内,马上按Ctrl+Z撤销一般能恢复;如果已经关闭了工程,基本没有简便的后悔路径。所以重要规则做完后,我会主动导出一份规则配置文件备份,再继续下一步操作。
4. 两个高频场景的完整落地:星型接地与PCB罗氏线圈
4.1 星型接地:为什么AGND和DGND必须分成两个网络类
星型接地是混合信号电路里非常经典的一种接地策略。核心思想是让模拟电路的地电流和数字电路的地电流只在某一个固定点汇合,避免数字地噪声通过地环路串入模拟区域。
很多新手问“怎么在嘉立创EDA里布星型接地”,但问题的第一步根本不在布线,而在原理图阶段。如果原理图里所有地都叫同一个网络名“GND”,在EDA里它们是全局连通的,星型点在PCB上根本无法通过规则控制。想要实现星型接地,原理图里必须把地分成不同名字的网络,比如AGND、DGND、PGND,然后在设定位置通过0欧电阻、磁珠或LC网络把它们单点连接起来。
网络类在这里的作用非常直接:
- 创建AGND和DGND两个网络类。
- 在网络面板里,把模拟部分的参考地网络全部分配到AGND类,把数字部分的参考地网络分配到DGND类。
- 为两个类分别设置线宽规则,例如模拟地和数字地都设置20mil首选线宽,避免地阻抗过高。
- 在间距规则里,可以设置AGND与DGND的间距规则,目的不是阻止它们电气连接,而是确保在PCB上不会意外地大范围平行靠近。实际施工时会通过0欧或磁珠在交界处连接。
- 布局时把模拟器件集中在模拟区域,数字器件集中在数字区域,0欧或磁珠放在两个区域的交界处。
- 铺铜时,模拟区域铺AGND铜皮,数字区域铺DGND铜皮,不要全板铺同一块GND铜皮。如果全板铺一大块GND,星型接地就完全失效了。
这一步做完之后,DRC里如果设置了AGND和DGND的间距规则,任何意外的大范围靠近都会被标出来,方便你回头检查。
4.2 PCB罗氏线圈:用网络类锁死线圈线宽与间距
PCB罗氏线圈(Rogowski Coil)是一种空心电流传感器,把传统漆包线绕制的罗氏线圈用PCB走线实现,常用于大电流测量、断路器保护和电能计量等场景。PCB罗氏线圈的核心工艺要求是“绕组均匀”,也就是每一段线圈的线宽、间距、层间对准尽量一致,否则互感不均匀,测量精度会明显下降。
网络类在这个场景里能帮上大忙。我把线圈的所有走线段网络统一放进一个网络类,比如“COIL_NET”,然后做以下几件事:
- 固定线宽:在线宽规则中,把COIL_NET类的最小线宽和最大线宽都设成同一个值,比如8mil。这样做的好处是,布线时线宽被锁死,不会因为手动推挤或自动布线导致局部线宽变化。对于罗氏线圈这类对一致性要求极高的走线,这一招非常有效。
- 统一间距:在间距规则中,把COIL_NET与其他信号网络的间距设为至少10mil,减少串扰。内部层间走线的间距控制主要靠叠层设计和布线网格实现。
- 统一过孔:线圈跨层连接需要过孔。过孔尺寸不一致会导致寄生电感和电阻不同,直接影响线圈输出的一致性。通过过孔规则,将COIL_NET类的过孔参数固定下来,就能避免这类问题。
- 始末端单独管理:线圈的始末端通常要连接到积分电路或终端电阻,它们其实不属于线圈主体。我会把始末端的少量网络单独放进“COIL_TERM”类,设置常规线宽规则,避免过细的走线增加不必要的串联电阻。
除了网络类,PCB罗氏线圈还要特别注意叠层设置。线圈的螺旋结构在相邻层之间切换时,层间对准精度取决于板厂工艺,设计阶段最好在制造说明里单独标注,并避免把线圈放在极厚介质的相邻层之间。
5. 高频踩坑与排查:规则不生效、类删不掉、工程误删
5.1 规则不生效的六步定位
网络类用久了,我发现十个问题里有八个都表现为“规则不生效”,而且原因高度集中。遇到这种情况,按下面的顺序排查基本都能定位。
第1步:确认网络真的在类里。展开网络类面板,看目标网络是否在对应类中。最常见的坑是原理图改了网络名,重新导入PCB后,新网络没有自动进入原来的类,而你还以为规则在管着它。
第2步:确认网络没有“进错类”。一个网络只能属于一个网络类,有时候你在期望的类里没看到它,但它在另一个类里。尤其是网络名相似的场景,比如“GND_AGND”和“AGND”,批量分配时很容易混。
第3步:确认规则的适用对象选的是“网络类”。有些规则条目是从旧工程复制来的,适用对象可能还是某一个具体网络名,而不是网络类。这种情况下规则只在管理单个网络,类里别的网络自然不受影响。
第4步:确认规则的优先级。把规则管理器打开,看目标网络是否同时被更靠前的通用规则先匹配了。特殊规则要在通用规则前面。
第5步:确认规则处于启用状态。有些规则虽然建好了,但启用栏的勾选状态可能因为复制或模板导入被取消了。
第6步:直接运行DRC,看系统到底按哪组参数在检查。DRC报告里会明确指出违规类型和建议值,从建议值就能反推出系统实际匹配的是哪条规则,再回到规则管理器对应调整。
5.2 删了网络类,规则还阴魂不散
这是我踩得最惨的一个坑,也是很多人的共同问题:删除网络类后,打开规则管理器,发现线宽规则或间距规则里还留着“网络类:XXX”的字样,规则条目变成灰色或者显示无效。
原因前面已经提到了:删除网络类不会自动删除规则中对这个类的引用。处理办法是打开设计规则面板,用搜索功能输入被删除的类名,找到所有引用它的规则,逐一删除。如果规则条目无法删除,我一般先保存并关闭工程,重新打开后再试一次;仍然不行的话,就新建一个同名的类,把它绑定到规则上,再把规则里的适用对象改掉。
这个坑也提醒我,操作顺序很重要:先清理规则,再删除网络类。
5.3 误删规则与误删工程的恢复姿势
误删规则,如果在当前操作步骤内,Ctrl+Z一般可以救回来;如果关了工程再打开,就基本没有后悔药了。所以我现在的习惯是:每完成一轮规则配置,就导出一份规则配置文件存到本地。后续即使误删或者改乱,导入配置文件就能恢复,比手工重建高效得多。
至于误删工程,嘉立创EDA专业版里“关闭工程”和“删除工程”是两个完全不同的操作。关闭工程只是退出当前编辑界面,工程文件还在列表里;删除工程则是把工程移入回收站。删除按钮有时是灰色的,通常是因为工程还处于打开状态,需要先关闭工程再删除。如果回收站里没有,可以到本地工作目录找一下有没有本地副本。
我的建议很简单:任何删除动作之前,先复制一份整个工程目录,或者至少把关键的规则配置和PCB文件另存一份。多用几分钟备份,能省掉后面一整天的痛苦。
网络类说到底就是把“设计意图”显性化。凡是规则管理混乱的板子,原因几乎都是网络命名随意、类规划缺位。我现在每开一个新板子,第一步绝对是先把电源类和地类建好,再把线宽、间距、过孔规则分配到位,之后才开始布局布线。看似多花了半小时,但后续的DRC和改版流程会被极大加速。如果你到现在还没认真用过网络类,下一次画板前花半小时建起来,然后你会回来感谢它。