2. 硬件平台准备:FPGA芯片选型与关键设计要点
各位同学,咱们今天聊点实在的。做高速收发器上板调试,硬件平台是地基。地基没打好,后面跑多快都白搭。我见过太多项目,代码写得漂漂亮亮,一上板就冒烟,最后查出来是电源纹波太大,或者参考时钟抖得跟筛子似的。
所以这一章,咱们把硬件平台的几个关键点掰开揉碎讲清楚。你想想看,芯片选型、参考时钟、电源轨、PCB布局,这四个东西搞定了,后面调试至少省一半力气。
2.1 FPGA芯片选型:Xilinx还是Altera?
选型这事儿,说白了就是看你的项目需求。我个人习惯先问三个问题:
- 需要多少高速收发器通道? 比如PCIe Gen3 x8,那就至少需要8个收发器。
- 跑多高的线速率? 12.5Gbps还是28Gbps?这直接决定了选哪个系列的芯片。
- 预算和供货周期? 这个嘛,懂的都懂。
我举个例子。Xilinx这边,Kintex-7系列的GTX收发器最高能跑到12.5Gbps,适合做SFP+、PCIe Gen2这类应用。如果你要跑25Gbps以上,那就得上Virtex UltraScale+的GTH或者GTY了。Altera那边,Arria 10的收发器能到17.4Gbps,Stratix 10能到28.3Gbps。
核心建议:别为了省钱选刚好够用的芯片。留20%的余量,相信我,后面你会感谢这个决定的。我在一个项目里吃过亏,选了刚好能跑10.3125Gbps的芯片,结果温度一上来,眼图就闭合了。后来换了高一档的芯片,问题全解决。
2.2 参考时钟设计要点
参考时钟,这是高速收发器的命根子。时钟抖一点,误码率就飙上去。嗯,这里要注意几个关键点:
2.2.1 时钟源选型
我个人强烈推荐使用低抖动晶振,比如SiTime或者IDT的MEMS振荡器。为什么?因为传统石英晶振在高温下抖动会恶化,而MEMS晶振稳定得多。
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 相位抖动(12kHz-20MHz) | < 0.5ps RMS | 抖动越小,眼图越开 |
| 频率精度 | ±25ppm | 满足大多数协议要求 |
| 上升/下降时间 | < 1ns | 保证时钟边沿陡峭 |
2.2.2 时钟分配网络
如果你有多个收发器通道,别用一个时钟扇出给所有通道。我建议用时钟缓冲器,比如TI的LMK系列或者IDT的8T系列。每个通道独立缓冲,避免串扰。
小技巧:参考时钟的走线一定要做阻抗控制,50Ω单端,差分对100Ω。而且要走内层,上下两层铺地,形成带状线结构。我曾经在一个项目里偷懒走了表层,结果时钟被隔壁的DDR信号干扰得一塌糊涂。
2.3 电源轨要求
高速收发器的电源,那是出了名的娇贵。你想想看,收发器内部的PLL和CDR电路对电源噪声极其敏感。稍微有点纹波,输出时钟就跟着抖。
2.3.1 关键电源轨
以Xilinx的7系列为例,收发器相关的电源轨有这几个:
- VMGTAVCC:收发器模拟电源,1.0V。这个最敏感,纹波要求< 10mVpp。
- VMGTAVTT:收发器端接电源,1.2V。纹波要求< 20mVpp。
- VCCINT:FPGA内核电源,1.0V。虽然不直接给收发器供电,但噪声会耦合过去。
警告:VMGTAVCC和VMGTAVTT不能共用同一个LDO!我见过有人为了省成本,用一个LDO同时给模拟和数字供电,结果收发器根本锁不住时钟。这两个电源必须独立供电,而且要用低噪声LDO,比如TI的TPS7A系列或者ADI的LT3045。
2.3.2 电源滤波设计
每个电源引脚旁边都要放去耦电容。我的习惯是:
- 每个引脚放一个0.1μF的陶瓷电容,尽量靠近引脚
- 每4-6个引脚放一个10μF的钽电容
- 在电源入口放一个100μF的电解电容
电容的摆放也有讲究。0.1μF的电容要放在PCB的同一层,用短而粗的走线连接到引脚。别打过孔,过孔的寄生电感会抵消电容的高频滤波效果。
2.4 PCB布局布线注意事项
这部分是硬功夫,也是很多工程师容易忽略的地方。我总结了几条铁律:
2.4.1 收发器通道的布局
高速差分对要走最短路径,尽量减少过孔。每个差分对内部要等长,误差控制在±5mil以内。差分对之间要保持至少3倍线宽的间距,避免串扰。
我画一个简单的示意图,帮你理解收发器通道的布局逻辑:
2.4.2 层叠结构
对于高速设计,我建议至少用12层板。层叠顺序大概是:
- 顶层:高速信号
- GND层
- 高速信号层
- GND层
- 电源层(VMGTAVCC)
- GND层
- 低速信号层
- GND层
- 电源层(VCCINT)
- GND层
- 低速信号层
- 底层:低速信号
为什么要这么多GND层?因为高速信号的回流路径必须连续。你想想看,信号频率高了,电流会沿着最小阻抗路径回流,如果GND层不连续,回流电流就得绕路,产生辐射和串扰。
2.4.3 隔离与分区
模拟区和数字区要物理隔离。收发器的模拟电源、参考时钟、差分对走线,这些都属于模拟区。DDR、PCIe控制器、逻辑电路,这些属于数字区。两个区域之间要有至少50mil的隔离带,而且不能有走线跨过。
避坑指南:我曾经在一个项目里,把收发器的差分对和DDR数据线平行走了2英寸,结果眼图测试完全不过。后来把差分对换到另一层,中间隔了一层GND,问题才解决。记住:高速信号之间,要么垂直走线,要么隔层走线,千万别平行。
2.5 小结
好了,这一章的内容就这些。硬件平台准备,说白了就是四个字:稳、净、短、隔。电源要稳,时钟要净,走线要短,区域要隔。把这四点做到位,你的高速收发器项目就成功了一半。
下一章咱们开始讲上板调试的具体步骤,到时候带上你的示波器和频谱仪,咱们真刀真枪干一场。