FPGA 硬件架构详解

FPGA的基本部件

  • 可编程逻辑块
  • 可编程互连
  • 可编程 I/O

结构如下图所示,这是一个典型的传统同构 FPGA。橘色代表逻辑块,蓝色表示相互连接的选择器(开官)。逻辑块通过布线资源进行连接。
FPGA 硬件架构详解

三个重要器件(基于SRAM的FPGA为例):

  • 查找表,由 SRAM 的存储位构建得到
  • 传输晶体管:由 SRAM 的存储位控制通断
  • 多路复用选择器:由 SRAM 的存储位控制数据的输入,从而选择输入或输出。可以构建任意一个门电路
    FPGA 硬件架构详解

下图为一个三输入的 LUT:一个 k 输入的查找表可以配置实现任意 k 输入1输出的组合逻辑。

  • 2k2^k 个SRAM bits
  • 逻辑函数的延时是独立的
    FPGA 硬件架构详解

逻辑单元——Logic Element

一个逻辑单元由查找表(组合逻辑)、触发器(时序逻辑)、Mux组成,触发器可以被旁路。有了组合逻辑和时序逻辑,我们就可以构建出任意的数字电路。
FPGA 硬件架构详解

逻辑块——Logic Block

有了上面逻辑单元的概念,就可以得到逻辑块的定义。如下图所示:

  • 一个逻辑块包含多个逻辑单元

在Xilinx 7 系列 FPGA 中,一个逻辑块(CLB)包含 2 个 slice

  • 每个 Slice 都有独立的进位和输出
  • 每个 Slice 包含4个LUT
    FPGA 硬件架构详解

现代异构FPGA架构

大多采取岛式可配置互连方式:

  • 大量的定制化硬件模块
  • 存储/乘法器,I/O,处理器
  • 定制化导致高性能和低功耗

FPGA 硬件架构详解

专用 DSP

为优化 DSP 应用嵌入的高速算术操作的单元

  • 至少包含一个乘累加单元(MAC)

  • 固定的逻辑和连接,可在运行时配置功能

  • 比基于LUT的实现有更快的执行速度(ASIC v.s. LUT)

所以说,怎么充分的使用DSP资源是一个很重要的问题,不能什么运算都通过 LUT 综合得到。