第三章:FPGA开发板选型核心参数
选开发板这事儿,我见过太多人一上来就盯着价格看。结果呢?项目做到一半发现资源不够,或者接口不对,只能换板子重来。今天我就把选型时最关键的几个参数掰开揉碎了讲清楚。
3.1 逻辑单元、查找表与触发器
这三个东西,说白了就是FPGA的"肌肉"。逻辑单元(LE或LC)是基本单位,一个LE通常包含一个查找表(LUT)加一个触发器(FF)。
LUT负责实现组合逻辑,比如与或非运算。FF负责存储状态,比如计数器、状态机。我习惯这么看:LUT管"算",FF管"记"。
避坑指南:我曾经选过一块号称10万LE的板子,结果发现其中一半是"等效逻辑单元"。实际可用的LUT+FF只有5万对。做复杂状态机时直接爆了。所以一定要看具体LUT和FF数量,别被"等效"忽悠了。
| 参数 | 典型范围 | 我的建议 |
|---|---|---|
| LUT数量 | 5K - 2M | 简单控制用5K-20K,图像处理至少50K |
| FF数量 | 10K - 4M | 一般跟LUT比例1:1到2:1 |
| 逻辑单元 | 10K - 3M | 别只看这个,拆开看LUT和FF |
3.2 块RAM与URAM
BRAM是FPGA的"内存条"。做缓存、FIFO、查找表都靠它。URAM是Xilinx高端芯片才有的,容量更大但数量少。
我个人习惯:先算一下项目需要多少缓存。比如做1080p视频处理,一行数据1920像素,每个像素24bit,那至少需要1920×24=46Kbit的BRAM。再加上几帧的缓存,嗯,10Mbit起步。
小技巧:BRAM可以配置成不同位宽和深度。比如一个18Kb的BRAM,可以配成512×36bit,也可以配成1024×18bit。灵活用能省不少资源。
3.3 DSP Slice
做数字信号处理,DSP Slice就是你的"计算加速器"。一个DSP Slice可以完成一次乘加运算(MAC)。
举个例子:做FIR滤波器,抽头数是N,那至少需要N个DSP Slice。我做过一个256阶的滤波器,直接吃掉256个DSP。选板子时一定要算清楚。
注意:有些低端板子DSP Slice只有几十个,做FFT或者卷积神经网络基本没戏。别想着用LUT拼乘法器,那效率低得吓人。
3.4 高速收发器
GTP、GTX、GTH、GTY,这些名字看着晕?其实就一个区别:速率。
- GTP:最高6.6Gbps,够用但别指望跑太高
- GTX:最高12.5Gbps,主流选择
- GTH:最高16.3Gbps,适合高速通信
- GTY:最高32.75Gbps,旗舰级
我建议:做千兆以太网,GTP就够了。做PCIe Gen3,至少GTX。做100G光通信,得上GTH或GTY。
3.5 IO Bank与电平标准
FPGA的IO是分Bank的,每个Bank可以独立设置电平标准。比如Bank 35设成3.3V,Bank 36设成1.8V。
这里有个坑:不同Bank之间不能直接连,除非用电平转换芯片。我曾经把两个不同Bank的IO直接连在一起,结果烧了一个Bank。嗯,从那以后我再也不敢乱接了。
关键点:选板子时看IO Bank数量。做多接口项目,比如同时接DDR、HDMI、以太网,至少需要3-4个独立Bank。
3.6 封装与引脚数
封装决定了你能用多少IO。BGA封装引脚多,但焊接难。QFP封装好焊,但引脚少。
我个人习惯:原型验证用BGA,方便接扩展板。小批量生产用QFP,好焊接、成本低。
3.7 板载外设
板载外设决定了你拿到板子能直接做什么。
| 外设 | 用途 | 我的建议 |
|---|---|---|
| DDR | 大容量缓存 | 至少512MB,做图像处理要2GB以上 |
| Flash | 存储配置 | QSPI Flash够用,想快就上SD卡 |
| 以太网 | 网络通信 | 千兆起步,百兆太慢 |
| USB | 调试/数据传输 | USB 3.0最好,2.0也行 |
| HDMI | 视频输出 | 做视频处理必备 |
| PCIe | 高速互联 | 做加速卡必须 |
经验之谈:别贪多。板载外设越多,板子越贵,而且很多你可能根本用不上。先列清楚项目需求,再对着需求选外设。
知识体系总览
下面这张图,把选型核心参数串起来了。你想想看,从逻辑资源到高速接口,每一步都影响最终性能。
选型这事儿,说白了就是平衡。资源多了浪费钱,少了干不了活。我建议你先列清楚项目需求,再对着这张图一个个参数去对。嗯,这样选出来的板子,基本不会翻车。