FPGA(Field Programmable Gate Array)是「可程式化的硬體」。 速度與彈性兼備,是高效能即時系統的最佳選擇之一。


一、FPGA 概念

什麼是 FPGA?

現場可程式化邏輯閘陣列」: - 數百萬個邏輯單元 - 可被使用者自由組合 - 開機後從 Flash 載入「bitstream」決定邏輯

FPGA vs ASIC vs MCU

特性 MCU FPGA ASIC
性能 最高
功耗
彈性 軟體可改 硬體可改 固定
並行 序列為主 大量並行 並行
量產成本 中-高 量產極低
NRE 成本 極高(百萬美元+)
開發時間 長(年)

適合 FPGA 的應用

  • 高速資料處理(影像、雷達、通訊)
  • 即時控制(馬達、電源)
  • 客製化介面
  • 演算法加速(AI、加密)
  • 原型驗證(pre-silicon)
  • 小量產的 ASIC 替代

二、FPGA 內部結構

主要元件

1. CLB / LB / Slice

邏輯區塊,含: - LUT(Look-Up Table):實現任意組合邏輯 - FF(Flip-Flop):時序邏輯 - 進位鏈(Carry Chain):加法器加速

2. BRAM(Block RAM)

數十到數千 kbit 的 SRAM。

3. DSP Slice

硬體乘法加法器,AI / DSP 加速。

4. Clock Manager

PLL/MMCM/DCM 產生多個時鐘。

5. SerDes Transceiver

高速 GTH/GTY/GTM:6.6/16.3/58 Gbps。

6. IO 模組

LVCMOS、LVDS、HSTL、SSTL 等多種電平。

7. Hard CPU(部分 FPGA)

ARM Cortex-A、RISC-V 嵌入。


三、主要 FPGA 廠商

AMD(前 Xilinx)

  • Spartan-7:低成本
  • Artix-7:通用
  • Kintex-7 / UltraScale:中高階
  • Virtex / UltraScale+:高階
  • Zynq-7000 / UltraScale+ MPSoC:FPGA + ARM
  • Versal:ACAP(FPGA + AI Engine + ARM)

Intel(前 Altera)

  • Cyclone:低成本
  • MAX 10:含 Flash
  • Arria:中階
  • Stratix:高階
  • Agilex:頂級

Lattice

  • iCE40:超低功耗,開源工具支援好
  • MachXO3:低成本控制
  • CrossLink:MIPI 介面
  • ECP5:中階高速

Microchip(前 Microsemi / Actel)

  • SmartFusion / PolarFire:加固抗輻射

其他

  • Efinix:新興,FPGA + RISC-V
  • GOWIN:中國,低成本
  • QuickLogic:超低功耗

四、FPGA 開發流程

   設計輸入(Verilog/VHDL)
          │
   ┌──────▼──────┐
   │  模擬驗證   │
   └──────┬──────┘
          │
   ┌──────▼──────┐
   │   合成      │ → Netlist
   └──────┬──────┘
          │
   ┌──────▼──────┐
   │ 實作(P&R) │ → Place & Route
   └──────┬──────┘
          │
   ┌──────▼──────┐
   │ 時序分析    │
   └──────┬──────┘
          │
   ┌──────▼──────┐
   │ Bitstream   │
   └──────┬──────┘
          │
   ┌──────▼──────┐
   │  下載到FPGA │
   └─────────────┘

五、HDL 設計

Verilog / SystemVerilog

主流,C-like 語法。

VHDL

Pascal 風格,嚴謹但冗長。

高階綜合(HLS)

C/C++ → 硬體: - Vitis HLS(AMD) - Catapult(Siemens) - Intel HLS Compiler - 適合:演算法 prototyping、AI inference

範例:簡單計數器(Verilog)

module counter (
    input clk,
    input rst_n,
    output reg [7:0] count
);
    always @(posedge clk or negedge rst_n) begin
        if (!rst_n)
            count <= 8'h00;
        else
            count <= count + 1;
    end
endmodule

範例:UART 接收器(簡化)

module uart_rx #(
    parameter CLK_FREQ = 50_000_000,
    parameter BAUD = 115200
)(
    input clk,
    input rx,
    output reg [7:0] data,
    output reg ready
);
    localparam DIV = CLK_FREQ / BAUD;
    // ... 實際實現包含 start bit 偵測、移位、stop bit 確認
endmodule

六、設計開發工具

AMD

  • Vivado(中高階 FPGA)
  • Vitis IDE(軟硬整合)
  • Vivado HLS / Vitis HLS

Intel

  • Quartus Prime(Pro / Standard / Lite)
  • ModelSim / Questa

Lattice

  • Diamond
  • Radiant
  • iCEcube2

開源工具鏈

  • Yosys(合成)
  • nextpnr(P&R)
  • icestorm / ECP5 toolchain(Lattice 部分系列)
  • SymbiFlow / F4PGA

iCE40 系列已有完整開源工具鏈,FPGA 學習最友善。

模擬

  • ModelSim / Questa
  • Verilator(開源,極快)
  • Icarus Verilog(開源)
  • GTKWave(波形檢視)

七、FPGA IP 與 SoC 整合

IP(Intellectual Property)

可重用的硬體模組: - AMD:MicroBlaze、AXI 系列、PCIe Hard IP - Intel:Nios II、Avalon - 開源:OpenCores、LiteX、PicoRV32、VexRiscv

軟核處理器

在 FPGA 內實現的 CPU: - MicroBlaze(AMD) - Nios II(Intel) - RISC-V(開源)

硬核處理器

實體 CPU 整合在 FPGA 中: - Zynq 的 ARM Cortex-A9 / A53 - Versal 的 ARM Cortex-A72 / R5


八、典型應用

1. 高速通訊

  • 100/400G 乙太網
  • PCIe Gen4/5 介面
  • HFT(高頻交易)

2. 影像處理

  • 4K/8K 視訊
  • 機器視覺
  • 醫學影像

3. 馬達控制

  • 多軸 servo
  • 矩陣換流器

4. AI Inference

  • 邊緣 AI(Versal AI Edge、Agilex AI)
  • 量化模型加速

5. 雷達 / 聲納 / 軟體無線電(SDR)

6. 加密與安全

7. ASIC 原型驗證


九、本章總結

✅ 您應該掌握:

  • [x] FPGA 與 MCU/ASIC 的差別
  • [x] FPGA 內部結構(LUT、FF、BRAM、DSP)
  • [x] 主要廠商與型號定位
  • [x] FPGA 開發流程
  • [x] HDL(Verilog/VHDL)入門概念
  • [x] 工具鏈
  • [x] IP 與 SoC FPGA
  • [x] 典型應用領域

下一章

09-SoC設計.md — SoC 系統單晶片。