FPGA简介
FPGA的可编程逻辑块和布线互连使其具有灵活性和通用性,但同时也使其比ASIC更大、更慢、更耗电。 这些缺点主要是因为FPGA的可编程路由互连,几乎占FPGA总面积的90%。
FPGA通常包括:
•可编程逻辑块,用于实现逻辑功能。
•连接这些逻辑功能的可编程路由。通过重新编程可编程路由,可以根据需要改变逻辑元件之间的连接方式,从而实现新的电路功能或进行性能优化。
•通过路由连接到逻辑块并进行芯片外连接的I/O块。
Programming Technologies(编程技术)
SRAM编程技术
在基于SRAM的FPGA中,SRAM单元主要用于以下目的:
1.对FPGA的路由互连进行编程。
2.对用于实现逻辑功能的可配置逻辑块(CLB)进行编程。
基于SRAM的编程技术由于其可重新编程性和标准CMOS工艺技术的使用,成为FPGA的主要方法
SRAM单元需要6个晶体管,这使得与其他编程技术相比所使用的面积更大。另外SRAM单元本质上是易失性的,需要外部设备来永久存储配置数据。这些外部设备增加了基于SRAM的FPGA的成本和面积开销。
Flash编程技术
基于SRAM的编程技术的一个替代方案是使用基于闪存或EEPROM的编程技术。基于Flash的编程技术提供了几个优点。例如,这种编程技术本质上是非易失性的。基于闪存的编程技术也比基于SRAM的编程技术更具面积效率。基于Flash的编程技术也有其自身的缺点。与基于SRAM的编程技术不同,基于闪存的设备不能无限次地重新配置/重新编程。
此外,基于闪存的技术使用非标准CMOS工艺。
反熔丝编程技术
该技术的导通电阻和寄生电容比其他两种技术低。
该技术没有使用标准CMOS工艺。此外,基于反熔丝编程技术的器件不能被重新编程。
至此
人们希望拥有一种可重新编程、非易失性且使用标准CMOS工艺的编程技术。
基于SRAM的编程技术是应用最广泛的编程技术。主要原因是它使用了标准CMOS工艺。
可配置逻辑模块
可配置逻辑块(CLB)是FPGA的基本组件,其为目标应用程序设计提供基本逻辑和存储功能。
CLB可以由单个基本逻辑元件(BLE)或本地互连的BLE集群组成(如图2.4所示)。图2.4显示了一组4个BLE;每个BLE包含一个LUT-4和一个触发器。
一个简单的BLE由一个LUT和一个触发器组成。具有k个输入的LUT(LUT-k)包含2^k个配置位,并且它可以实现任何k个输入布尔函数。