根据 FPGA 基本结构,可将其分为基于乘积项(Product-Term)技术的 FPGA 和基于查找表(Look-Up-Table)技术的 FPGA 两种。
(1)基于乘积项技术的 FPGA 主要由 3 个模块组成:逻辑单元阵列(Logic Cell Array)、可编程连线(PIA)和 I/O 控制块。
逻辑单元阵列:是 FPGA 的基本结构,由它来实现基本的逻辑功能。
可编程连线: 负责信号传递,连接所有的宏单元。
I/O 控制块: 负责输入/输出的电气特性控制。
(2)查找表简称为 LUT,其本质就是一个RAM。目前 FPGA 中多使用 4 输入的 LUT,所以每一个 LUT 可以看成一个有 4 位地址线的 16×1的 RAM。
LUT抽象描述:当用户通过原理图或 HDL 语言描述了一个逻辑电路以后,FPGA 开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入 RAM,这样每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。
LUT缺陷:由于 SRAM 工艺的特点,掉电后数据会消失,因此调试期间可以通过电缆配置 FPGA 器件,调试完成后,需要将数据固化在一个专用的 EEPROM 中(用通用编程器烧写),上电时由这片 EEPROM 对 FPGA 加载数据,十几个毫秒后 FPGA 即可正常工作(亦可由 CPU 配置 FPGA)。此类型的 FPGA 一般不可以进行程序加密。