1 FPGA的内部结构
主要包括以下5个方面:
- 可编程逻辑门阵列:由最小的逻辑单元LE组成;
- 可编程输入输出单元 IOE:input output element;
- 嵌入式SRAM块:为M4K块,每个SRAM大小为4k,掉电丢失;
- 布线网络;
- PLL锁相环:最大可倍频至250Mhz
基于查找表的FPGA
逻辑单元是FPGA的重要组成部分。一个逻辑单元(LE,Logic Element )包含一个4输入的查找表,同时加上一个寄存器。
那么它们是如何工作的呢?
基于LUT(Look Up Table)和SRAM工艺的FPGA,由于SRAM掉电数据就会丢失的特点,因此需要一个临时存储器来存储数据。因此一般在调试期间就可以通过JTAG线来配置FPGA,调试完成后,将数据固化在一个临时的存储器里,一般是EEPROM。这样下次上电后,EEPROM就可以自动完成对FPGA的配置工作,几十毫秒后就可以工作。
查找表实际上可以等同于一个多维数组,本质上是一个RAM。目前FPGA多使用4输入LUT。当用户在逻辑单元编程后,FPGA会自动计算逻辑电路的所有可能结果,并把结果事先写入RAM。这样每一个输入信号进行逻辑运算相当于输入一个地址进行查表,然后输出地址中的内容。所以速度可以做到很快,时间复杂度为O(1)。
因此可以说FPGA是基于SRAM结构的,对FPGA编程就相当于对SRAM编程。
2 FPGA的配置模式
FPGA的工作状态是由存放在片内的RAM来设置的,因此需要对片内RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。FPGA有以下几种配置模式:
- 并行模式:并行PROM、FLASH配置FPGA
- 主从模式:一片PROM配置多片FPGA
- 串行模式:一片PROM配置一片FPGA
- 外设模式:将FPGA作为微处理器的外设,由微处理器对其编程