1. 为什么原理图连线这件“小事”值得单独写一篇避坑指南
画原理图这件事,刚上手的时候总觉得没什么技术含量——不就是拿根线把引脚连起来吗?但真正在 Cadence OrCAD Capture CIS 里做过几个稍具规模的项目之后,你会发现,连线方式的选择直接决定了后期改板、查错、出网表的效率,甚至能决定一个项目是顺利投板还是反复返工。
我见过太多新手(包括当年的我自己)在 Capture CIS 里画图时,习惯性地用“一根线拉到底”的方式连接所有网络,单页里看着挺整齐,一旦项目扩展到十几页、几十页,问题就全冒出来了:网络名重复、跨页信号找不到、DRC 报出一堆莫名其妙的错误、导网表时提示节点冲突。这些问题的根源,往往不是电路设计本身有错,而是连线策略从一开始就没规划好。
这篇内容就是围绕这个痛点展开的。我会从单页网络的连线规范讲起,一路延伸到跨页连接的正确做法,把 OrCAD Capture CIS 里那些容易踩坑的细节一个个拆开说清楚。不管你是刚接触 Cadence 的在校学生,还是从 Altium Designer 转过来的工程师,只要你在用 Capture CIS 画原理图,这些经验都能直接拿去用。
核心关键词先摆出来:Cadence、OrCAD Capture CIS、原理图、跨页连接、DRC。这几个词贯穿全文,后面每个章节都会围绕它们展开实操层面的讨论。
2. 单页网络连线:看似简单,坑最多
2.1 连线与网络标签的本质区别
很多人画原理图时有个误区,觉得“线连上了就行”。在 Capture CIS 里,电气连接有两种基本方式:物理连线(Wire)和网络标签(Net Alias / Off-Page Connector)。这两者的区别,直接决定了你后期维护的难度。
物理连线就是在画布上实实在在地拉一根线,把两个引脚连起来。这种方式直观,适合短距离、同页面内的连接。但它有个致命问题:一旦页面变大、器件变多,线会变得像蜘蛛网一样,改起来极其痛苦。你挪动一个器件,可能牵扯到十几根线的重新走位。
网络标签则是给某一段线或某个引脚赋予一个名字,Capture CIS 会自动把同名网络视为电气连接。这种方式的好处是不需要物理连线就能实现连接,特别适合信号在不同区域、不同页面之间传递的场景。
我的建议是:单页内短距离连接用物理连线,超过一定距离或者需要跨区域传递的信号,一律用网络标签。这个“一定距离”没有硬性标准,我的经验是,如果两个引脚之间的连线需要绕过三个以上的器件,就该考虑用网络标签了。
注意:网络标签必须放在导线上或者引脚端点,悬空的标签是不起作用的。很多新手把标签放在导线旁边,看着像是连上了,实际上 DRC 一跑就报“网络未连接”。
2.2 网络标签的命名规范与常见错误
网络标签的命名看起来是小事,但在 Capture CIS 里,命名不规范会直接导致 DRC 报错和网表错误。我总结了几条实战中总结出来的命名规则:
- 避免使用特殊字符:像
+、-、/、*、#这些字符在 Capture CIS 的网络名里有特殊含义。比如+和-在某些版本里会被解析为电源网络的极性标记,/可能被当作层次分隔符。我一般只用字母、数字和下划线。 - 不要用纯数字开头:虽然 Capture CIS 不一定会报错,但纯数字开头的网络名在导网表时容易和其他工具产生兼容性问题。
- 大小写要统一:Capture CIS 默认是大小写不敏感的,也就是说
VCC_3V3和vcc_3v3会被当成同一个网络。但如果你在同一个项目里混用大小写,后期查网络的时候会非常混乱。我的习惯是全部用大写,清晰明了。 - 电源网络用统一前缀:比如
VCC_、VDD_、GND_这样的前缀,方便后期在 PCB 里做电源平面分割。
还有一个特别容易踩的坑:网络标签和电源符号的冲突。Capture CIS 里有专门的电源符号(Power Symbol),比如VCC、GND、VDD等。如果你手动给一个网络命名为VCC,同时又放了一个VCC的电源符号,这两个会被自动合并成同一个网络。如果你本意是让它们分开,就会出大问题。
2.3 单页内 DRC 检查的重点项
画完一页原理图,跑一次 DRC(Design Rule Check)是必须的。Capture CIS 的 DRC 检查项很多,但新手最需要关注的是这几项:
| DRC 检查项 | 含义 | 常见触发原因 |
|---|---|---|
| Unconnected Pin | 引脚未连接 | 引脚悬空、连线未到位 |
| Duplicate Net Name | 网络名重复 | 同一网络被命名了两次不同的名字 |
| Bus Conflict | 总线冲突 | 总线成员定义错误 |
| Power Pin Not Connected | 电源引脚未连接 | 电源符号漏放或放错位置 |
| Off-Page Connector Mismatch | 跨页连接器不匹配 | 跨页连接器名称不一致 |
这里重点说Duplicate Net Name。这个错误在新手里特别常见,原因是同一个网络在不同位置被赋予了不同的网络标签。比如你在 A 区域标了CLK_50M,在 B 区域标了CLK50M,Capture CIS 会认为这是两个不同的网络,但你的本意是同一个。DRC 跑出来会提示网络名冲突,或者更隐蔽的情况——导网表时两个网络被合并,导致 PCB 里出现意外的短路。
实操心得:跑 DRC 之前,先用 Capture CIS 的“Browse Nets”功能把所有网络名列出来看一遍,肉眼检查有没有命名不一致的情况。这个习惯帮我省过至少三次返板。
3. 跨页连接:从 Off-Page Connector 到层次化设计
3.1 跨页连接的三种方式及其适用场景
当项目从单页扩展到多页时,跨页连接就成了必须面对的问题。Capture CIS 提供了三种主要的跨页连接方式:
第一种:Off-Page Connector(跨页连接器)
这是最基础的方式。在每一页需要跨页连接的信号上放一个 Off-Page Connector,Capture CIS 会自动把同名连接器视为同一个网络。这种方式适合扁平式设计(Flat Design),也就是所有页面在同一层级,没有父子关系。
第二种:Hierarchical Block(层次块)
这种方式把电路分成多个层次,每个层次块有自己的输入输出端口(Hierarchical Port)。层次块内部的信号通过端口和外部连接。这种方式适合复杂项目,比如一个主控板加多个子模块的设计。
第三种:Global Net(全局网络)
全局网络不需要任何连接器,只要网络名相同,Capture CIS 就会自动连接。这种方式适合电源和地这种全局信号,但不适合普通信号,因为全局网络太多会导致网表混乱。
我的经验是:小项目(5 页以内)用 Off-Page Connector,中等项目(5-20 页)用层次块,大项目(20 页以上)必须用层次化设计。全局网络只用于电源和地。
3.2 Off-Page Connector 的正确用法与常见错误
Off-Page Connector 用起来简单,但坑也不少。最常见的错误是连接器名称不一致。比如你在第一页放了SPI_MOSI,在第二页放了SPI_MOSI_1,Capture CIS 会认为这是两个不同的网络,跨页连接就断了。
另一个常见错误是连接器方向搞反。Off-Page Connector 有输入、输出、双向三种方向。虽然 Capture CIS 不会因为方向错误而阻止连接,但在后期做设计规则检查时,方向错误会导致 ERC(Electrical Rule Check)报错。我的习惯是:输入信号用 Input,输出信号用 Output,双向信号用 Bidirectional,不要偷懒全用 Passive。
还有一个隐蔽的坑:Off-Page Connector 和网络标签混用。如果你在一个信号上既放了 Off-Page Connector 又放了网络标签,Capture CIS 会优先使用 Off-Page Connector 的名称。如果两者名称不一致,就会出现网络名冲突。我的做法是:跨页信号只用 Off-Page Connector,不再额外加网络标签。
3.3 层次化设计中的端口与连线规则
层次化设计是 Capture CIS 最强大的功能之一,但也是新手最容易搞混的地方。层次化设计的核心概念是:父页面(Parent Page)放层次块,子页面(Child Page)放具体电路。父页面和子页面之间通过层次端口(Hierarchical Port)和层次引脚(Hierarchical Pin)连接。
这里的关键规则是:
- 层次块上的引脚(Hierarchical Pin)必须和子页面里的层次端口(Hierarchical Port)名称完全一致,包括大小写。
- 层次端口的类型(Input/Output/Bidirectional)必须和层次块引脚的类型匹配。
- 子页面里的信号如果要传到父页面,必须通过层次端口,不能直接用 Off-Page Connector。
我见过最典型的错误是:在子页面里用了 Off-Page Connector 而不是层次端口,结果信号传不到父页面,DRC 报了一堆“未连接”的错误。这个坑我当年踩过,排查了两个小时才发现问题所在。
注意:层次化设计里,子页面的网络名是独立的,不同子页面里的同名网络不会自动连接。这一点和扁平式设计完全不同,一定要记清楚。
4. DRC 报错排查:从 RTSTAT 错误到网络冲突
4.1 DRC 报错信息的解读方法
Capture CIS 的 DRC 报错信息有时候确实不太友好,尤其是那些带代码的错误,比如[DRC RTSTAT-6] partial route conflicts。这种错误信息看起来吓人,但拆开看其实不难理解。
RTSTAT是 Runtime Status 的缩写,是 Capture CIS 在运行 DRC 时产生的状态码。RTSTAT-6通常表示部分路由冲突,意思是某些网络在连接过程中出现了冲突,导致网络无法正确合并。常见的原因包括:
- 同一个网络被多个 Off-Page Connector 以不同名称引用
- 网络标签和电源符号冲突
- 总线成员定义错误
排查这类错误的思路是:先看错误信息里提到的网络名,然后在原理图里搜索这个网络名,检查所有出现的位置。Capture CIS 的“Find”功能可以快速定位网络,比手动翻页快得多。
4.2 常见 DRC 错误速查表
我把实际项目中遇到的高频 DRC 错误整理成了一张表,方便大家快速对照排查:
| 错误代码/提示 | 可能原因 | 解决方法 |
|---|---|---|
| Unconnected Pin | 引脚悬空 | 检查连线是否到位,或添加 No-Connect 标记 |
| Duplicate Net Name | 同一网络多个名称 | 统一网络命名 |
| Bus Conflict | 总线成员不匹配 | 检查总线定义和成员名称 |
| Off-Page Connector Mismatch | 跨页连接器名称不一致 | 统一连接器名称 |
| Power Pin Not Connected | 电源引脚未连接 | 检查电源符号是否放置正确 |
| RTSTAT-6 Partial Route Conflicts | 网络部分冲突 | 检查网络名重复和连接器冲突 |
| Hierarchical Port Mismatch | 层次端口不匹配 | 检查端口名称和类型 |
这张表里的每一项我都实际遇到过,其中RTSTAT-6是最让人头疼的,因为它不会直接告诉你哪个网络出了问题,只给一个笼统的提示。我的做法是:先跑一次完整的 DRC,把所有错误导出到文本文件,然后用搜索工具按网络名分组,逐个排查。
4.3 网络冲突的定位与修复技巧
网络冲突是 DRC 报错里最复杂的一类问题。定位网络冲突的核心思路是:找到所有引用同一网络名但连接方式不同的位置。
具体操作步骤:
- 在 Capture CIS 里打开“Project Manager”,展开“Design”节点。
- 右键点击设计文件,选择“Browse Nets”。
- 在弹出的网络列表里,找到报错的网络名,双击进入。
- Capture CIS 会高亮显示所有属于该网络的对象,包括导线、标签、连接器。
- 逐个检查这些对象的连接方式,找出不一致的地方。
修复网络冲突的原则是:统一命名、统一连接方式。如果同一个信号在不同页面用了不同的连接器名称,就把它们改成一样的。如果同一个网络既有 Off-Page Connector 又有网络标签,就删掉其中一个。
实操心得:修复网络冲突后,不要只跑一次 DRC 就完事。我的习惯是跑三次:第一次修复后跑,确认错误减少;第二次修改相关页面后跑,确认没有引入新错误;第三次导网表前跑,确认网表干净。这个习惯帮我避免过好几次“以为修好了结果还有隐藏错误”的情况。
5. 从原理图到网表:连线质量对后续环节的影响
5.1 网表生成前的连线检查清单
原理图画完、DRC 跑完,下一步就是导网表(Netlist)。但在导网表之前,我建议做一次系统的连线检查。这个检查清单是我多年积累下来的,每次项目投板前都会过一遍:
- 所有电源和地网络是否已连接:用 Capture CIS 的“Browse Nets”功能,检查
VCC、GND等电源网络是否覆盖了所有需要供电的器件。 - 所有跨页信号是否已正确连接:检查 Off-Page Connector 和层次端口是否名称一致、方向正确。
- 是否有悬空的引脚:除了故意悬空的测试点,其他引脚都应该有连接或 No-Connect 标记。
- 网络命名是否统一:检查是否有同一网络多个名称的情况。
- 总线定义是否正确:检查总线成员是否和实际信号匹配。
这个清单看起来简单,但每一条都对应着实际项目中踩过的坑。尤其是电源网络,我见过太多因为电源符号漏放导致 PCB 里某个器件没供电的案例。
5.2 连线错误对 PCB 设计的影响
原理图连线错误对 PCB 设计的影响是连锁性的。一个小的连线错误,可能在原理图阶段只是 DRC 报个警告,但到了 PCB 阶段就会变成:
- 网络短路:两个本不该连接的信号被合并,导致 PCB 走线短路。
- 网络断路:本应连接的信号没有连上,导致 PCB 里缺少走线。
- 电源平面分割错误:电源网络命名不一致,导致 PCB 里电源平面无法正确分割。
- 器件封装引脚映射错误:原理图符号引脚和 PCB 封装引脚不匹配,导致走线错误。
这些问题在 PCB 阶段修复的成本远高于原理图阶段。原理图改一根线可能只需要几秒钟,PCB 改一根线可能要重新布线、重新铺铜、重新跑 DRC,时间成本是原理图的几十倍。
5.3 提高连线质量的长期习惯
最后分享几个我长期坚持的习惯,这些习惯看起来不起眼,但能显著提高原理图连线质量:
第一,画图前先规划网络命名。在动手画之前,先列一个网络命名表,把所有关键信号的名称定下来。这个表可以是一个简单的文本文件,画图时对照着用。
第二,每画完一页就跑一次 DRC。不要等所有页面画完再跑,那样错误会堆积在一起,排查起来很痛苦。每页画完就跑,错误及时修复。
第三,用颜色区分不同功能的网络。Capture CIS 支持给网络设置颜色,我一般把电源网络设成红色,地网络设成黑色,时钟信号设成蓝色,其他信号用默认颜色。这样一眼就能看出网络类型,排查问题时效率高很多。
第四,定期备份原理图文件。Capture CIS 偶尔会出现崩溃的情况,如果没有备份,可能几个小时的成果就没了。我的做法是每天下班前把整个项目文件夹压缩备份一次,命名带上日期。
第五,导网表前用第三方工具交叉检查。除了 Capture CIS 自带的 DRC,我还会用一些第三方工具(比如免费的网表检查脚本)做一次交叉检查。不同工具的检查规则不一样,能发现一些 Capture CIS 漏掉的错误。
这些习惯坚持下来,原理图连线出错的概率会大幅降低。说到底,原理图连线不是什么高深的技术,但它需要的是细心和规范。把规范养成习惯,后面的事情就顺了。