什么是 FPGA?
FPGA 是「出厂后仍可反复编程」的数字集成电路:由海量可配置逻辑块(CLB)、互连资源与专用硬核组成,用硬件描述语言(HDL)描述电路,编译后直接生成并行工作的真实硬件——而不是逐条执行的指令流。
真并行
成千上万个逻辑单元同拍工作,流水线与数据通路天然并行,吞吐远超顺序执行的 CPU。
可重构
上电加载比特流即成为不同电路;一次投片、无限改版,省去 ASIC 高昂的流片成本与周期。
低时延确定性
硬件级流水线,纳秒~微秒固定时延。高频交易、雷达信号处理、通信基带的核心选型。
| 维度 | MCU / CPU | FPGA | ASIC |
|---|---|---|---|
| 执行方式 | 指令流顺序/多线程 | 电路并行 | 电路并行 |
| 开发语言 | C / C++ / Rust | Verilog / VHDL / 高层次综合 | Verilog / VHDL |
| 修改成本 | 重新编译 | 重新综合、上电即换 | 重新流片(百万美元级) |
| 单位性能功耗 | 灵活但低 | 高 | 最高 |
| 适合场景 | 控制、通用计算 | 原型验证、小批量、低时延流式计算 | 超大批量(手机 SoC) |
芯片内部长什么样?
现代 FPGA = 可编程逻辑资源 + 片上互连 + 专用硬核。理解每种资源的结构,是写出好 RTL、做时序收敛的基础。
CLB / LE:基本逻辑单元
Xilinx 称 CLB(内含 LUT6 + 触发器对),Intel/Altera 称 LE。一个 10 万门设计 ≈ 数千个 LUT。资源占用率在 Vivado 综合报告中一目了然。
互连与布线
逻辑资源之间的可编程开关矩阵决定信号路径。跨时钟域、长走线、高扇出都会在实现后暴露为时序违例——好的 RTL 结构能让布线器“走得顺”。
时序收敛
建立时间 / 保持时间 / 时钟偏斜是 FPGA 设计的终极 Boss。流水线切分、关键路径复制、约束驱动实现(XDC / SDC)是三大常用武器。
硬核 SoC
Zynq(ARM A53 + PL)、Intel SoC FPGA(双核 A76 级处理器)让“处理器 + 可编程逻辑”片内协同:软件管控制、硬件管吞吐。
厂商与器件生态
选型即选生态:工具链成熟度、开发板价格、文档质量与供应链同样重要。
AMD Xilinx
7 系列(Artix / Kintex / Virtex)性价比经典,UltraScale+ / Versal 高端霸主。Vivado 工具链 + UG 文档体系最全。
Intel (Altera)
Cyclone V / 10 低功耗主力,Agilex 旗舰。Quartus 工具链,板载硬核(PCIe、EMIF)丰富。
国产三杰
紫光同创 Pango、安路 Ellicore(小金人 EP4/EP5)、高伦 Gowin(GW1N/GW2A,开源 Yosys 支持最好)。
Lattice
iCE40 / ECP5 / CertusPro-NX:小封装低功耗之王,开源生态(nextpnr / Yosys)最早的拥趸。
Microchip
IGLOO / PolarFire:非易失闪存工艺,断电保配置,抗辐照系列用于航天。
开发板速览
Basys3 / Nexys Video(教学)、DE10-Nano(Intel)、 Tang Nano(Gowin,几十元入门)、Alveo(数据中心加速卡)。
工具链全景
从写代码到烧比特流:综合 → 优化映射 → 布局布线 → 静态时序分析 → 下载调试,每一步都有商业与开源两套选择。
| 环节 | 商业工具 | 开源替代 | 说明 |
|---|---|---|---|
| 仿真 | Questa / VCS / Xcelium | Verilator / Icarus / GTKWave | Verilator 编译式仿真速度最快,SV 支持日趋完善 |
| 综合 | Vivado / Quartus / Yosys 商用版 | Yosys | 把 RTL 转成网表;开源流程核心 |
| 布局布线 | Vivado / Quartus / Icestorm | nextpnr | 决定真实物理时延,P&R 质量 = 时钟上限 |
| 比特流 | 随厂商 IDE | trellis / vpr | ECP5 / iCE40 等已有完整文档化开源链路 |
| 嵌入式软件 | Vitis / Platform Designer | buildroot / Zephyr | SoC 上跑 Linux 或裸机固件 |
| 形式验证 | VC Formal / JasperGold / Questa SVA | SymbiYosys | 数学证明断言恒成立,验证“找不到的 bug” |
四阶段学习路径
数字电路 → HDL → 设计方法学 → 系统能力。每个阶段都给出可检验的目标。
数字逻辑与电路基础
布尔代数、组合/时序电路、状态机、时钟与复位概念。目标:手推一位全加器到移位寄存器。
HDL 设计入门(先 Verilog 思想,再 SystemVerilog 写法)
module、always_comb/always_ff、阻塞 vs 非阻塞、参数化。目标:计数器、UART、SPI 自主实现并通过仿真。推荐直接学习本站 SystemVerilog 手册。
设计方法学与验证
跨时钟域(同步器/FIFO/握手)、状态机编码、interface + SVA 断言、testbench 与覆盖率。目标:给自定义 IP 写完整验证环境。
时序收敛与系统级
约束编写(SDC/XDC)、关键路径分析、流水线调优、SoC(AXI / Zynq / PS-PL)、Pynq / 加速卡应用。目标:把设计跑到目标频率并上板稳定工作。
实战项目清单
按难度递进的练手项目,每一个都能在简历上讲出完整故事。
Lv.1 呼吸灯 / PWM
分频、计数器与 IO 约束入门,一块板子一小时跑通。
Lv.1 按键消抖 + 数码管扫描
理解亚稳态与多路复用的第一课。
Lv.2 UART / SPI / I2C 控制器
协议状态机设计 + 自写 testbench 验证闭环。
Lv.2 VGA / HDMI 显示
时序发生器、显存(BRAM)与像素流水线。
Lv.3 异步 FIFO + CDC
格雷码指针、同步器与满空判断——面试必考、工程必用。
Lv.3 FIR / FFT 信号处理
DSP 推断、流水线设计与数据吞吐优化。
Lv.4 RISC-V 软核 SoC
PicoRV32 起步,挂 AXI 外设,跑通 Linux。
Lv.4 万兆网络 / PCIe 加速
GTX 收发器、协议 IP 集成与板级调试。
Lv.5 卷积加速器 / AI 推理
数据流架构设计,与 CPU/GPU 的能效对比。