第1章 FPGA概述
随着数字电路应用越来越广泛,传统通用的数字集成芯片已经难以满足系统的功能要求,而且随着系统复杂程度的提高,所需通用集成电路的数量呈爆炸性增长,使得电路的体积膨大,可靠性难以保证。此外,现代产品的生命周期都很短,一个电路可能需要在很短的周期内做改动以满足新的功能需求,对于采用通用的数字集成电路设计的电路系统来说即意味着重新设计和重新布线。因此,系统设计师们希望自己设计专用集成电路芯片(ASIC,Application Specific IC),而且希望ASIC芯片的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FPLD,Field Programmable Logic Device),其中应用最广泛的当属现场可编程门阵列(FPGA,Field Programmable Gate Array)和复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)。
早期的可编程逻辑器件只有可编程只读存储器(PROM)、紫外线可擦除只读存储器(EPROM)和电可擦除只读存储器(EEPROM)三种。由于结构的限制,它们只能完成简单的数字逻辑功能。
随后,出现了一类结构上稍复杂的可编程芯片,即可编程逻辑器件(PLD,Programmable Logic Device),它能够完成各种数字逻辑功能。典型的PLD由一个“与”门和一个“或”门阵列组成,而任意一个组合逻辑都可以用“与-或”表达式来描述,所以,PLD能以乘积和的形式完成大量的组合逻辑功能。
这一阶段的产品主要有PAL(Programmable Array Logic,可编程阵列逻辑)和GAL(Generic Array Logic,通用阵列逻辑)。PAL由一个可编程的“与”平面和一个固定的“或”平面构成,或门的输出可以通过触发器有选择地被置为寄存状态。PAL 器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM技术和EEPROM技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(PLA,Programmable Logic Array),它也由一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。PLA 器件既有现场可编程的,也有掩模可编程的。 在PAL的基础上,又发展了一种通用阵列逻辑(GAL),如GAL16V8,GAL22V10等。它采用了EEPROM工艺,实现了电可擦除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性,至今仍有许多人使用。这些早期的PLD器件的一个共同特点是可以实现速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现规模较小的电路。
为了弥补这一缺陷,20世纪80年代中期。Altera和Xilinx分别推出了类似于PAL结构的扩展型可编程逻辑器件(CPLD)和与标准门阵列类似的现场可编程门阵列(FPGA),它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。这两种器件兼容了PLD和通用门阵列的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其他ASIC相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和小批量(一般在10 000件 以下)产品生产之中。几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可应用FPGA和CPLD器件。
Xilinx 的 FPGA 产品主要分为两大类:一类是侧重于低成本应用、容量中等、性能可以满足一般逻辑设计要求的Spartan系列;另一类是侧重于高性能应用、容量大、性能可满足各类高端应用的 Virtex 系列,用户可以根据自己的实际应用需要进行选择。目前高端的 Virtex系列已经从最初的220 nm的Virtex发展到了最近的65 nm的Virtex5。