一、FPGA 基本结构:三个关键组成 + 若干结构参数
1. 可编程技术:为什么几乎都用 SRAM
书中先从最底层的'可编程技术'讲起,主要有三类:
- SRAM 控制的可编程开关(主流)
- 用 SRAM 单元控制传输管、多路选择器、三态缓冲器。
- 传输管用 nMOS 而不是互补传输门,原因是电子迁移率更高,速度更快。
- Xilinx、Altera、大部分 Actel 新器件、Lucent、Vantis 等几乎都走这条路线。
- 反熔丝
- Actel 传统 FPGA 的路线,一次性可编程,抗篡改设计等场景常见。
- 浮栅器件(EPROM、EEPROM、Flash)
- 常用于 CPLD 等复杂可编程逻辑器件。
对结构研究来说,SRAM 技术最重要,因为它直接决定:
- 每个可编程开关的等效电阻、电容
- 可编程开关的分类:pass transistor、mux、tri-state buffer
- 进一步影响布线延时和面积模型
2. 逻辑单元块:4 输入 LUT 为何成为主流
接着,书里讲了逻辑单元块(Logic Block)——也就是 FPGA 里真正'干活'的逻辑模块。
核心要点:
- LUT(查找表)是主角
- k 输入 LUT 需要 2^k 个 SRAM 单元 + 一个 2^k 选 1 的多路选择器;
- 只要在 SRAM 中写入真值表,就能实现任意 k 输入布尔函数。
- 4 输入 LUT 的结论
- 过往大量研究表明:4 输入 LUT 的面积利用率最优(综合考虑所需逻辑块数 + 每个块内部 SRAM 开销)。
- 因此主流 FPGA 都选 4-LUT 作为基本单元。
但现代 FPGA 并不是'一个 LUT 就一个逻辑块'这么简单,而是:
用若干个 LUT + 寄存器 + 局部互连,组成一个更大的逻辑单元块(可以理解成'逻辑簇'雏形)。
书里还引用了几类研究来说明这一点:
- 混合 LUT 尺寸(例如一部分是 4-LUT,一部分是 2-LUT),可以减少 SRAM 数目和引脚数量,从而提升面积效率;
- 多个 LUT 通过固定连接构成更大逻辑单元块,有时可以在逻辑上加快 20% 左右,但面积模型要小心:如果没考虑互连晶体管尺寸增加,结论会偏乐观。
对后面第 6 章的'簇化逻辑块结构'研究,这里等于打了一个基础:合理的 LUT 组合与簇内互连,对性能和面积都有很大影响。
3. 布线结构:岛形 FPGA、Fc、Fs 和线段长度分布
书中把商用 FPGA 布线结构分成三类:
- 岛形结构(Xilinx、Lucent、Vantis)
- 基于行的结构(Actel)
- 层次化结构(Altera)
本书接下来的研究几乎全部围绕'岛形结构'展开。
岛形结构的直观图像:
- 逻辑单元块像'岛',四周被预先布好的水平/垂直布线通道环绕;
- 逻辑块通过连接盒(Connection Box)连到通道里的线段;
- 水平和垂直通道交叉处有开关盒(Switch Box),负责线段之间的互连。
一些重要参数和结论:
- W:通道宽度(每个通道内的线段数)
- Fc:连接盒连接度,即每个逻辑块引脚能接入通道里多少条线
- Fs:开关盒连接度,即每条线在开关盒里能连到多少其他线
早期工作主要研究'只跨一个逻辑块的线段'的结构(所有线段长度都为 1),用布线资源中可编程开关个数来衡量面积利用率。结论大致是:
- Fs 取 3 或 4,Fc 约为 0.7W~0.9W 时,面积利用率最好;
- 若 Fs=2,虽然开关盒功能相对较弱,但如果 CAD 工具针对性优化,也能用得还行,不过 Fs=3 的结构面积上仍有约 25% 优势。

