3、原理图设计阶段常见错误(二):电源与地处理不当、ERC检查错误、层级设计问题
好,咱们接着聊原理图设计阶段的那些坑。上一章讲了器件属性和网络连接的问题,这一章我重点说说电源与地、ERC检查,还有层级设计。这三个地方,说实话,是新手翻车的高发区,也是老手偶尔会疏忽的地方。
3.1 电源与地处理不当
电源和地,说白了就是电路的“血管”和“骨架”。处理不好,整个板子就别想正常工作。我个人习惯,在画原理图之前,先把电源树理清楚,再动手。
3.1.1 电源网络命名混乱
很多工程师喜欢用VCC、VDD、VSS这种通用名字。嗯,这里要注意,在Cadence中,同名网络是物理连通的。你想想看,如果3.3V和1.8V都叫VCC,那不就短路了吗?
正确的做法:
- 使用具体电压值命名:
+3.3V、+1.8V、VCC_5V - 区分模拟和数字电源:
AVDD_3.3V、DVDD_1.2V - 电源地也要区分:
GND、AGND、PGND
关键点:在Cadence中,VCC和VDD是系统保留字,默认连接到全局电源网络。如果你不小心用了,可能会产生意想不到的连通性。
3.1.2 电源符号使用错误
我在项目中遇到过,有人把电源符号(Power Symbol)和端口(Port)搞混了。电源符号是给网络“供电”的,而端口是用来做层级连接的。用错了,ERC检查会报一堆错。
常见错误:
- 用
Port代替Power Symbol给芯片供电 - 多个不同电压的电源网络共用一个电源符号
- 电源符号没有正确关联到对应的网络别名(Alias)
我的建议:在原理图库中,为每个电压等级单独创建电源符号。比如VCC_3V3、VCC_1V8,这样一目了然,不容易出错。
3.1.3 电源网络未正确连接
这个错误很隐蔽。有时候你看着原理图上画了线,但实际网络并没有连通。为什么会这样?
典型场景:
- 芯片的电源引脚使用了
NC(Not Connected)属性,但实际上需要供电 - 电源引脚和去耦电容之间用了
No Connect标记 - 多层原理图中,电源网络在某一页断了
注意:在Cadence中,如果电源引脚悬空,DRC检查会报UNCONNECTED PIN错误。但如果你手动加了No Connect标记,系统就认为你是故意的,不会报错。所以,加No Connect标记前,一定要确认。
3.2 ERC检查错误
ERC(Electrical Rule Check)是原理图设计的“体检报告”。我刚开始做设计时,总觉得ERC报错是小事,后来吃过亏才明白——ERC错误往往预示着严重的逻辑问题。
3.2.1 常见ERC错误类型
| 错误代码 | 含义 | 常见原因 |
|---|---|---|
| WARNING(ORCAP-1589) | 网络名不匹配 | 同名网络在不同页中使用了不同的别名 |
| ERROR(ORCAP-1600) | 输出引脚短路 | 两个输出类型的引脚直接连在一起 |
| ERROR(ORCAP-1608) | 电源引脚悬空 | 芯片的电源引脚没有连接 |
| WARNING(ORCAP-1611) | 未使用的引脚 | 芯片的某个功能引脚没有连接 |
3.2.2 如何高效排查ERC错误
我个人习惯,每次修改完原理图,都会跑一次ERC。不要等到画完PCB再回头改,那代价太大了。
排查步骤:
- 打开
Tools → Design Rules Check - 勾选
Check all pins和Check off-page connections - 点击
Run,查看输出窗口 - 双击错误信息,自动跳转到问题位置
避坑指南:我曾经遇到过一个案例,ERC报ORCAP-1589,找了半天没找到问题。后来发现,是两页原理图中,同一个网络用了不同的文本大小写——VCC_3.3V和vcc_3.3v。Cadence默认是区分大小写的,这点要记住。
3.2.3 设置合理的ERC规则
ERC规则不是越严格越好。太严格了,一堆假错误,反而掩盖了真问题。我一般这样设置:
- 全局规则:所有引脚必须连接,除非明确标记为NC
- 电源规则:不同电压的电源网络不能直接连接
- 输出规则:两个输出引脚不能直接相连(除非是开漏输出)
- 总线规则:总线中的信号必须匹配
小技巧:对于开漏输出的引脚,可以在引脚属性中设置为Passive类型,这样ERC就不会报输出短路了。
3.3 层级设计问题
层级设计是Cadence的一大特色,用好了能大幅提高效率。但用不好,那就是给自己挖坑。我记得刚学层级设计时,被“Hierarchical Port”和“Off-Page Connector”搞晕过。
3.3.1 层级端口与页间连接器混淆
这两个东西长得有点像,但用途完全不同:
| 类型 | 用途 | 连接范围 |
|---|---|---|
| Hierarchical Port | 在层级原理图中,连接上层和下层模块 | 跨层级 |
| Off-Page Connector | 在同一层级中,连接不同页的网络 | 同层级跨页 |
常见错误:
- 在顶层原理图中使用Off-Page Connector连接子模块
- 在子模块中使用Off-Page Connector代替Hierarchical Port
- 层级端口名称与子模块内部网络名不匹配
注意:如果你在子模块中用了Off-Page Connector,Cadence会认为这是一个独立的网络,不会自动连接到上层模块。结果就是,你的信号“断”了。
3.3.2 层级深度不合理
层级不是越深越好。我见过有人把原理图分了七八层,结果自己都搞不清信号走到哪了。一般来说,我建议:
- 层级深度不超过3层
- 每个子模块的功能要单一、清晰
- 顶层原理图只放模块框和主要连接
3.3.3 重复的模块实例化
这个功能很实用。比如一个电源模块,在板子上用了三次。你只需要画一次,然后实例化三次就行。但要注意:
- 每个实例的
Instance Name必须唯一 - 如果修改了模块的原理图,所有实例都会同步更新
- 实例化时,注意检查每个实例的配置参数是否一致
关键点:在Cadence中,重复模块的实例化是通过Place → Hierarchical → Block实现的。选择对应的原理图文件,系统会自动生成一个模块框。记得给每个框起不同的名字,比如U1、U2、U3。
3.3.4 层级设计的最佳实践
嗯,这里我总结几条经验,供你参考:
- 先画顶层,再画底层。先确定模块之间的接口,再细化内部电路。
- 接口信号要规范。所有进出模块的信号,都要通过Hierarchical Port,不要偷偷从模块内部拉线出来。
- 做好文档。每个模块的功能、输入输出、注意事项,都写在原理图的注释里。
- 定期检查。每次修改后,跑一次
Design Rules Check,确保层级连接正确。
我的习惯:在顶层原理图中,我会用不同颜色的框来区分不同类型的模块——电源模块用红色框,数字模块用蓝色框,模拟模块用绿色框。这样一眼就能看出板子的布局。
好了,这一章的内容就到这里。电源与地、ERC检查、层级设计,这三个问题看似独立,其实环环相扣。电源处理不好,ERC会报错;层级设计乱了,电源网络也容易出问题。你想想看,是不是这个道理?下一章,我们聊聊PCB布局阶段的常见错误,到时候见。