或HDL语言描述了一个逻辑电路以后,FPGA开发软件会自动计算逻辑电路所有可能的结果,并把结果事先写入RAM,这样每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。也可以把它当作一个4输入的函数发生器,能够实现4变量输入的所有逻辑。图25是Cyclo
eII系列FPGA的一个LE的普通工作模式原理图。FPGA的基本单元一般为一个4输入查找表后接一个寄存器。
f图25Cyclo
eII系列FPGA的LE的普通工作模式
表21为一个4输入与门的例子。A、B、C、D由FPGA芯片的管脚与可编程
连线相连,然后作为地址线连到LUT,LUT中已经事先写入了所有可能的逻辑结
果,通过地址查找到相应的数据然后输出,从而实现了组合逻辑。
表21输入查找表
实际逻辑电路
LUT的实现方式
ABCD输入00000001…1111
如果要用
逻辑输出0001
Cyclo
eII
地址RAM中存储内容
0000
0
0001
0
…
0
1111
1
FPGA实现图23所示的电路,
fACDBCD用查找表实现,则电路中的D触发器可直接利用
LUT后的寄存器来实现。时钟信号CLK由IO脚输入后进入芯片内部的时钟专用通道,直接连接到触发器的时钟端。触发器的输出可以与IO脚相连,把结果输出到芯片管脚,这样FPGA就完成了图23所示电路的功能。
与CPLD样,这些步骤都是由软件自动完成的,不需要人为干预。这个电路是一个很简单的例子,只需要一个LUT加上一个触发器就可以完成。对于一个LUT无法完成的电路,需要通过进位逻辑将多个单元相连,这样FPGA就可以实现复杂的逻辑。由于LUT主要适合采用SRAM工艺生产,因此目前大部分FPGA都是基于SRAM工艺的,而基于SRAM工艺的芯片在掉电后信息就会丢失,必须外加一片专用配置芯片。上电时,由这个专用配置芯片把数据加载到FPGA中,FPGA才可以正常工作,由于配置时间很短,因而不会影响系统的正常工作。也有少数FPGA采用反熔丝或FLASH工艺,这种FPGA不需要外加专用的配置芯片。
f随着技术的发展,在2004年以后,一些厂家推出了一些新的可编程逻辑器件,这些产品模糊了CPLD和FPGA的界线。例如Altera的MAXII系列PLD,就是一种基于FPGA(LUT)结构、集成配置芯片的PLD,本质上它是一种在内部集成了配置芯片的FPGA,但由于配置时间极短,上电后就可以工作,对用户来说,感觉不到配置过程,可以像传统的CPLD一样使用,加上容量和传统的CPLD类似,因此Altera把它归为CPLD。还有像Lattice的XP系列FPGA,也是使用了同样的原理,将外部配置芯片集成到内部,在使用方法上和r