Knowledge / FPGA 扫盲

FPGA 开发手册扫盲

面向新手的 FPGA、PCIe、DMA 基础概念,看懂芯片资源与工作原理。

ℹ️

学这些有用吗?如果你只是想用现成的 DMA 板玩游戏,不需要学 FPGA。但如果你想自己改固件、定制功能、或者想搞懂原理,这些基础概念是必须的。花一小时扫盲,后面少走很多弯路。

一、DMA 是什么

DMA(Direct Memory Access,直接内存访问)是一种由专用硬件控制器执行的数据传输机制,用于在内存与外设之间或内存与内存之间直接搬运数据,无需 CPU 干预。CPU 仅负责发起请求,数据搬运完全由 DMA 控制器完成,大幅降低 CPU 负载。

二、FPGA 是什么

FPGA 是一种"可以自己设计硬件电路的芯片"。它不像 CPU 那样靠执行软件指令工作,而是通过编写代码(Verilog 或 VHDL)来定义电路结构,就像亲手搭建一个微型硬件系统。

对比项CPUFPGA
工作方式执行软件指令硬件电路可编程
灵活性通用处理器内部结构可自定义
并行性串行执行并行计算
延迟不确定确定性低延迟

FPGA 核心特性:可编程性强、并行计算能力强、确定性强低延迟,支持 PCIe、SPI、I2C、Ethernet 等各种外设控制器。

三、为什么 DMA 使用 FPGA

  1. 自定义 PCIe 协议栈,模拟合法外设
  2. 实现 DMA 读写控制器,旁路系统访问物理内存
  3. 无驱动运行,主机感知不到
  4. 硬件级总线操控,远高于软件 Hook 权限
  5. 易于加密/混淆逻辑,反检测能力强

四、PCIe 与 DMA

PCIe 是现代主板与外设之间最常用的高速串行通信总线,点对点通信,带宽从 x1 到 x16。

💡

简单理解:PCIe 是传输通道(马路),DMA 是数据搬运方式(货车),两者组合使用——PCIe 提供通路,DMA 负责发起数据传输请求。

五、DMA 常用芯片选型

DMA 板卡一般选择 Xilinx Artix-7(A7)系列芯片,包含 35T / 75T / 100T 等版本。

型号逻辑单元DSP适用场景
XC7A35T 入门33,28090工程简单,降低成本
XC7A75T 主流推荐75,520180工程中等,资源够用,性价比高
XC7A100T 高端101,440240工程复杂,资源充足,支持更多功能

"T" 表示 Targeted,通用可编程用途。逻辑单元越多 = 越复杂的设计;BRAM 越多 = 更多缓存/FIFO;DSP 越多 = 更复杂数学计算。

💡

想从零开发自己的 DMA 固件?参考 零基础 FPGA 开发 DMA 固件系列 →