1.3 FPGA概念及其在信号处理中的应用
1.3.1 基本概念及发展历程
1. 基本概念
随着数字集成电路的发展,越来越多的模拟电路逐渐被数字电路取代,同时数字集成电路本身也在不断地进行更新换代,由早期的电子管、晶体管、中小规模集成电路发展到超大规模集成电路,以及许多具有特定功能的专用集成电路。但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。电子工程师们更愿意自己设计专用集成电路,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC,并且立即投入实际的工程应用之中,因而出现了可编程逻辑器件(Programmable Logic Device,PLD),其中应用最广泛的为现场可编程门阵列(Field Programmable Gate Array,FPGA)和复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)。PLD的主要特点是其功能完全由用户通过特定软件编程控制,并完成相应功能,且可反复擦写。这样,用户在用PLD设计好PCB(Printed Circuit Board,印制电路板)后,只要预先安排好PLD引脚的硬件连接,就可通过软件编程的方式灵活改变PLD的功能,从而达到改变PCB功能的目的。这种方法不需对PCB进行任何更改,从而大大缩短了产品的开发周期和成本。也就是说,由于使用了PLD进行设计,硬件设计已部分实现了软件化。随着生产工艺的不断革新,高密度、超大规模FPGA/CPLD越来越多地在电子信息类产品设计中得到应用,同时由于DSP、ARM(Advanced RISC Machines)与FPGA相互融合,在数字信号处理等领域,已出现了具有较强通用性的硬件平台,核心硬件设计工作正逐渐演变为软件设计。
2. 发展历程
早期的可编程逻辑器件在20世纪70年代初出现,这一时期只有可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)和电可擦除只读存储器(Electrically EPROM,EEPROM)三种。这类器件结构相对简单,只能完成简单的数字逻辑功能,但也足以给数字电路设计带来巨大变化。
20世纪70年代中期出现了结构稍复杂的可编程芯片,即可编程逻辑器件,它能够完成各种数字逻辑功能。典型的PLD由与门和或门阵列组成。由于任意一个组合逻辑都可以用与或表达式来描述,所以PLD能以乘积项的形式完成大量的组合逻辑功能。这一阶段的产品主要有可编程阵列逻辑(Programmable Array Logic,PAL)和通用阵列逻辑(Generic Array Logic,GAL)。PAL由一个可编程的与平面和一个固定的或平面构成,PAL是现场可编程的。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(Programmable Logic Array,PLA),它也由一个与平面和一个或平面构成,但这两个平面的连接关系是可编程的。PLA既有现场可编程的,也有掩膜可编程的。在PAL的基础上又发展了一种通用阵列逻辑,如GAL16V8、GAL22V10等,实现了电可擦除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性,至今仍有许多人使用。这些早期PLD的一个共同特点是,可以实现速度特性较好的逻辑功能,但过于简单的结构也使它们只能实现规模较小的电路。
为了弥补这一缺陷,20世纪80年代中期,Altera和Xilinx两家公司分别推出了类似PAL结构的扩展型CPLD,以及和标准门阵列类似的FPGA。这两种器件都具有体系结构和逻辑单元灵活、集成度高和适用范围宽等特点,兼容了PLD和GAL的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其他ASIC相比,这两种器件具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无须测试、质量稳定和可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产中。几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可使用FPGA和CPLD。
20世纪90年代末以来,随着可编程逻辑器件工艺和开发工具日新月异的发展,尤其是Xilinx公司和Altera公司不断推出新一代超大规模可编程逻辑器件,FPGA与ASIC、DSP及CPU不断融合,已成功地以硬核的形式嵌入ASIC、PowerPC、ARM,以HDL的形式嵌入越来越多的标准数字处理单元,如PCI控制器、以太网控制器、MicroBlaze处理器、NIOS和NIOS-Ⅱ处理器等。新技术的发展不仅实现了软硬件设计的完美结合,也实现了灵活性与速度设计的完美结合,使得可编程逻辑器件超越了传统意义上的FPGA,并以此形成了现在流行的片上系统(System on Chip,SoC)及片上可编程系统(System on a Programmable Chip,SoPC)设计技术,其应用领域扩展到了系统级,涵盖了实时数字信号处理、高速数据收发器、复杂计算和嵌入式系统等设计的全部内容。
Xilinx公司于2003年率先推出了90 nm制造工艺的Spartan-3系列FPGA,于2011年推出28 nm制造工艺的7系列FPGA,并于2013年推出了20 nm制造工艺的UltraScale系列FPGA,且宣称基于最新UltraScale系列FPGA的开发不但可实现从20 nm向16 nm乃至更高级FinFET技术的扩展,而且还可实现从单片向3D IC的扩展。作为可实现ASIC级性能的All Programmable架构,UltraScale系列FPGA不仅可解决总体系统吞吐量及延时限制问题,而且还可直接解决高级节点芯片之间的互连问题。
Altera公司于2004年首次推出90 nm制造工艺的Stratix-II系列FPGA后,紧接着于2006年推出了65 nm制造工艺的Stratix-III系列FPGA,于2008年推出了40 nm制造工艺的Stratix-IV系列FPGA,并于2010年先于Xilinx推出了28 nm制造工艺的Stratix-V系列FPGA。2013年,Altera推出了最新的基于14 nm三栅极制造工艺的Stratix-10系列FPGA。
随着制造工艺技术的不断进步,FPGA正向着低成本、高集成度、低功耗、可扩展性、高性能的目标不断前进。相信FPGA的应用会得到更大的发展!FPGA的演进历程如图1-1所示。
图1-1 FPGA的演进历程