原理图设计基础:符号、标号、电源、电容
咱们做高速数字设计,尤其是涉及GTY这种高速收发器,原理图就是整个项目的骨架。骨架歪了,后面布线、仿真、调试都会出大问题。今天我带你过一遍原理图设计最核心的几个要素:符号、网络标号、电源树和去耦电容。这些看着基础,但恰恰是很多新手,甚至老手翻车的地方。
原理图符号:不只是画个框
原理图符号,说白了就是芯片在图纸上的“身份证照片”。很多人觉得这个简单,从库里拖出来就行了。我一开始也这么想,直到有一次项目里,我把FPGA的电源管脚和地管脚在符号上放反了,板子回来一上电,芯片直接冒烟……
我个人习惯,做原理图符号时遵循三条铁律:
- 管脚分组要按功能:BANK区分开,电源和地集中放在顶部或底部。
- 信号流向要明确:输入在左,输出在右,这是基本规矩。
- NC管脚一定要处理:不用的管脚要么接地,要么悬空并做好标注,别让菜鸟接手时一脸懵。
举个例子,GTY收发器的原理图符号,我一般会把这几个关键分组标清楚:
<?-- 原理图符号示例(非完整VHDL/Verilog) -->
GTY_X0Y0 : entity work.gty_channel
port map (
-- 时钟域
gt_refclk => refclk_p, -- 输入
gt_txp => tx_p, -- 输出
gt_txn => tx_n, -- 输出
gt_rxp => rx_p, -- 输入
gt_rxn => rx_n, -- 输入
-- 电源域
avcc_vcc => vcc_1v0, -- 模拟电源
avcc_gnd => gnd, -- 模拟地
-- 控制
tx_rstn => rst_n, -- 复位
rx_ready => rx_done -- 状态指示
);
网络标号:信号的名字就是他的身份
网络标号(Net Name),就是给连线起名字。你想想看,一张复杂的原理图,密密麻麻全是线,没有名字哪行?命名规范极其重要。
我踩过这个坑。之前手下的一个工程师,给差分信号命名,正端叫“C1”,负端叫“D1”。结果布线的人根本不知道这是差分对,愣是走了两条相差500mil的路径,信号完全没法用。
| 信号类型 | 推荐命名方式 | 错误命名 |
|---|---|---|
| 差分对(P/N) | TX0_P / TX0_N | TXP / TXN(混淆索引) |
| 时钟 | CLK_125M | CLK1(靠猜频率) |
| 复位 | RST_N(低有效) | RESET(不明确电平) |
| 电源 | VCC_1V0 | VCC1(不知道电压) |
| 全局信号 | GLB_xxx | xxx(容易本地冲突) |
电源树:你的芯片需要喝什么样的水?
电源树(Power Tree),说白了就是把板子上所有电压轨画成树形结构,搞清楚每一路电从哪来、去哪了、电流多大。高速设计里,电源是噪声的放大器,一点马虎不得。
我记得做一个GTX项目时,GTY收发器要求1.0V模拟供电,纹波要小于10mV。我们用了普通的LDO,结果眼图测试总通不过。后来换成超低噪声的LDO再加一级π型滤波,才勉强过关。教训就是:电源树设计时,不光看电压和电流,还要看噪声指标。
一个典型的电源树包含这些要素:
- 源端:板级输入(12V、5V等)
- 转换级:DCDC或LDO,注意效率vs噪声的权衡
- 分配级:磁珠、π型滤波、电源分割
- 负载端:各芯片和模块,注意去耦
我一般会在原理图里附一张电源树表格,标清楚每路电源的功耗估计,方便做热仿真和电流密度检查。
| 电源轨 | 电压(V) | 最大电流(A) | 噪声要求(mVpp) | 供电方式 |
|---|---|---|---|---|
| VCC_1V0_GTY | 1.0 | 6.0 | < 10 | LDO + 滤波 |
| VCC_1V8 | 1.8 | 2.5 | < 30 | DCDC (同步降压) |
| VCC_3V3 | 3.3 | 1.0 | < 50 | DCDC |
| VCC_0V75 | 0.75 | 0.5 | < 20 | LDO |
去耦电容:给信号一个干净的家
去耦电容(Decoupling Capacitor),又叫退耦电容。它的作用,是为芯片瞬间的大电流需求提供一个低阻抗的本地电荷池。
你想想看,芯片在每个时钟沿都会抽取大量电流,如果依赖远端的电源,走线上的电感和电阻会导致电压塌陷。电压一塌,时序就乱,高速信号更是直接罢工。
我个人习惯,去耦电容选型有几点:
- 容值搭配:大电容(10~100µF)应对低频波动,小电容(0.1µF~10nF)应对高频噪声。这叫多级去耦。
- 封装越小越好:0402甚至0201,因为寄生电感小。
- 靠近管脚放置:距离不超过50mil,越近越有效。
我曾经在项目中为了图省事,把所有去耦电容都放在芯片同一侧,离管脚远的有200mil。结果信号抖动大得很,后来换到背面靠近电源管脚的位置,问题才解决。这个坑让我记忆犹新。
为什么需要不同容值?你看这个阻抗曲线就明白了:
阻抗 (Ω)
|
| 10µF 0.1µF 10nF
| \ \ \
| \ \ \
| \ \--------\ <-- 并联后,宽频带低阻抗
| \--------\--------\
+--------------------------> 频率 (Hz)
1k 100k 10M 1G
本章知识体系
下面这张图,把本章四个核心部分的关系串起来了:
这四个部分不是孤立的。符号画不好,后续布局就乱;标号不规范,团队协作就乱;电源树不做仔细规划,供电就是隐患;去耦电容放不对,再好的电源也白搭。所以做原理图时,四个环节要一起考虑,反复迭代。