尽管FPGA、CPLD和其他类型PLD的结构各有其特点和长处,但概括起来,它们是由三大部分组成的:①可编程输入/输出模块I/OB(Input/Output Block)。位于芯片内部四周,主要由逻辑门、触发器和控制单元组成。在内部逻辑阵列与外部芯片封装引脚之间提供一个可编程接口。②可配置逻辑模块CLB(Configurable Logic Block)。FPGA的核心阵列,用于构造用户指定的逻辑功能,每个CLB主要由查找表LUT(Look Up Table)、触发器、数据选择器和控制单元组成。③可编程内部连线PI(Programmable Interconnect)。位于CLB之间,用于传递信息,编程后形成连线网络,提供CLB之间、CLB与I/OB之间的连线。FPGA结构框图如图1-3所示。
图1-3 典型的FPGA框图
由表1-2可知,FPGA中组合逻辑的实现方法是基于查找表LUT构成的,即CLB中的查找表主要完成组合逻辑的功能。LUT本质上就是一个RAM。一个 n 输入查找表可以实现 n 个输入变量的任何组合逻辑功能,如 n 输入“与”、 n 输入“异或”等。一个 n 输入的组合逻辑函数,其值有2 n 个可能的结果,把这些可能的结果计算出来,并存放在2 n 个SRAM单元中,而 n 个输入线作为SRAM的地址线,所以按地址可以输出对应单元的结果。输入大于 n 的组合逻辑必须分开用几个LUT实现。FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16×1的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,FPGA开发软件会自动计算逻辑电路所有可能的输出,并把输出结果事先写入RAM,这样,输入信号进行逻辑运算就等于输入地址进行查表,找出地址对应的内容,然后输出即可。
下面以一个4输入与门为例介绍其对应的4输入LUT,如图1-4所示。由于四输入与门只有在四个输入信号a、b、c、d均为1的情况下,其输出才为1,其余情况输出均为0。因此其对应的4输入LUT内部的RAM中,只有地址为1111的单元的存储值1,其余地址单元:0000~1110的存储内容均为0。
图1-4 4输入与门与4输入LUT
以原Altera的FLEX/ACEX芯片为例,结构如图1-5所示。其中四周为可编程的输入输出单元IOE,灰色为可编程行/列连线,中间为可编程的逻辑阵列块LAB(Logic Array Block),以及RAM块(图中未表示出)。在FLEX/ACEX中,一个LAB包括8个逻辑单元(LE,Logic Element),每个LE包括一个LUT、一个触发器和相关逻辑。LE是Altera FPGA实现逻辑的最基本结构,如图1-6所示,具体性能请参阅数据手册。
图1-5 FLEX/ACEX芯片的内部结构
图1-6 Cyclone IV逻辑单元(LE)内部结构
后期生产的高性能的FPGA芯片都是在此结构的基础上添加了其他的功能模块构成的,如图1-7所示,Cyclone IV系列中添加了嵌入式乘法器、锁相环等。
图1-7 Altera Cyclone IV结构框图
图1-8 高性能Stratix IV GX芯片架构图
图1-8为高性能的Stratix IV GX系列芯片的部分架构图,其LAB结构有所变化,包含8个自适应模块ALM(Adaptive Logic Module)、进位链、共享运算链、LAB控制信号、本地互连以及寄存器链接。本地互连在同一个LAB内部的ALM间传输信号,寄存器链接可以将一个ALM寄存器的输出传输到LAB内部的相邻ALM寄存器上。ALM提高了性能和逻辑利用率,缩短了编译时间。ALM完全集成在Quartus ® Prime软件中,能够轻松实现最好的性能、最高的逻辑利用率以及最短的编译时间。图1-9所示为Stratix IV GX系列芯片的ALM逻辑框图,其中自适应查找表ALUT(Adaptive LUT)为8输入分段式LUT。
图1-9 Stratix IV GX ALM逻辑构图
由于LUT主要适合SRAM工艺生产,所以大部分FPGA都是基于SRAM工艺的,而SRAM工艺的芯片在掉电后信息就会丢失,因此需要外加一片专用配置芯片。在上电的时候,由这个专用配置芯片把数据加载到FPGA中,FPGA才可正常工作,由于配置时间很短,不会影响系统正常工作。随着技术的发展,FPGA的工艺也在不断地改进,一些厂家推出了一些新的采用反熔丝或Flash工艺的FPGA,也有一些FPGA,在其内部集成了配置芯片,而不需要外加专用的配置芯片。
Intel公司于2015年收购了当时全球第二大PLD生产厂商Altera,其FPGA生产总部仍设在美国硅谷圣候赛。英特尔FPGA提供了广泛的可配置嵌入式SRAM、高速收发器、高速I/O、逻辑模块和路由,嵌入式知识产权(IP)与出色的软件工具相结合,减少了FPGA开发时间、功耗和成本。其目前的FPGA产品主要有适用于接口设计的MAX系列,适用于低成本、大批量设计的Cyclone系列,适用于中端设计的Arria系列,适用于高端设计的Stratix系列,具有高性能、高集成度和高性价比等优点。
Cyclone系列是一款简化版的FPGA,具有低功耗、低成本和相对高的集成度的特点,非常适宜小系统设计使用。Cyclone器件内嵌了M4K RAM存储器,最多提供294Kbit存储容量,能够支持多种存储器的操作模式,如RAM、ROM、FIFO及单口和双口等模式。Cyclone器件支持各种单端I/O接口标准,如3.3-V、2.5-V、1.8-V、LVTTL、LVCMOS、SSTL和PCI标准。具有两个可编程锁相环PLL,实现频率合成、可编程相移、可编程延迟和外部时钟输出等时钟管理功能。Cyclone器件具有片内热插拔特性,这一特性在上电前和上电期间起到了保护器件的作用。Intel的Cyclone系列产品如表1-3所示。
表1-3 Cyclone系列产品
其中,Cyclone(飓风)是2002年推出的中等规模FPGA,130nm工艺,1.5V内核供电,与Stratix结构类似,是一种低成本FPGA系列。Cyclone Ⅱ是Cyclone的下一代产品,2004年推出,90nm工艺,1.2V内核供电,性能和Cyclone相当,提供了硬件乘法器单元。Cyclone Ⅲ FPGA系列2007年推出,采用台积电(TSMC)65nm低功耗工艺技术制造,以相当于ASIC的价格,实现了低功耗。Cyclone Ⅳ FPGA系列2009年推出,60nm工艺,面向低成本的大批量应用。Cyclone Ⅴ FPGA系列2011年推出,28nm工艺,集成了丰富的硬核知识产权(IP)模块,便于以更低的系统总成本和更短的设计时间完成更多的工作。2013年推出的Cyclone10系列FPGA与前几代Cyclone FPGA相比,成本和功耗更低,且具有10.3Gb/s的高速收发功能模块、1.4Gb/s LVDS以及1.8Mb/s的DDR3接口。
我们以Cyclone Ⅴ FPGA系列为例进行介绍。Cyclone Ⅴ FPGA包括了6个子系列型号的产品:Cyclone Ⅴ E、Cyclone Ⅴ GX、Cyclone Ⅴ GT、Cyclone Ⅴ SE、Cyclone Ⅴ SX、Cyclone Ⅴ ST,每个子系列又包括多个不同型号的产品。其中后3种子系列属于SoC FPGA,其内部嵌入了基于ARM ® 的硬核处理器系统HPS,其余与E、GX、GT三个子系列的区别相同。而E、GX、GT三个子系列的区别在于E系列只提供逻辑,GX额外提供3.125-Gb/s收发器,GT额外提供6.144Gb/s收发器。图1-10所示为Cyclone Ⅴ系列FPGA的结构框图。表1-4所示为Cyclone V SE SoC FPGA系列简介。
图1-10 Cyclone Ⅴ系列结构框图
表1-4 Cyclone V SE SoC FPGA系列简介
注:①DSP模块包括3个9×9、2个18×19和1个27×27乘法器。
Stratix FPGA属于Intel的高端FPGA,适于功能丰富的宽带系统解决方案,具有高集成度和高性能的特点,Stratix系列产品如表1-5所示。Stratix系列产品除具有Altera FPGA芯片的一般特性外,还提供了专用功能用于时钟管理和数字信号处理(DSP)应用。采用全新的布线结构,在保证延时可预测的同时增加布线的灵活性;增加片内终端匹配电阻,提高信号完整性,具有增强时钟管理和锁相环能力。Stratix器件还具有True-LVDS电路,支持LVDS、LVPECL、PCML和HyperTransportTM差分I/O电气标准及高速通信接口,包括10G以太网XSBI、SFI-4、POS-PHY Level 4(SPI-4 Phase 2)、HyperTransport、RapidIOTM和UTOPIA IV标准。此外,Stratix器件还具有片内匹配和远程系统更新能力。
表1-5 Stratix系列产品
其中,Stratix和Stratix GX是Stratix FPGA系列中最早的型号产品,在这一系列中引入了DSP硬核IP模块以及Intel应用广泛的TriMatrix片内存储器和灵活的I/O结构,如图1-11所示。Stratix Ⅱ和Stratix Ⅱ GX型FPGA引入了自适应逻辑模块(ALM)体系结构,采用了高性能8输入分段式查找表LUT来替代4输入LUT,这也是Intel目前最新的高端FPGA所采用的结构。Stratix Ⅲ FPGA是业界功耗最低的高性能65nm FPGA。用户可以借助逻辑型(L)、存储器增强型(E)和数字信号处理型(DSP)来综合考虑自身的设计资源要求,而不必采用资源比实际需求大得多的器件进行设计,从而节省电路板,缩短编译时间,降低成本。Stratix Ⅲ FPGA面向大量应用的高端内核系统处理设计。Stratix Ⅳ FPGA在所有40nm FPGA中,具有最大的密度、最好的性能和最低的功耗。Stratix Ⅳ FPGA系列提供增强型(E)和带有收发器(GX和GT)的增强型器件,满足了无线和固网通信、军事、广播等众多市场和应用的需求。Stratix Ⅳ FPGA系列包含了同类最佳的11.3Gb/s收发器。Stratix Ⅴ FPGA采用28nm工艺,100万逻辑单元(LE),以及3926个精度可调数字信号处理(DSP)模块,芯片至芯片和芯片至模块的14.1Gb/s(GS和GX)以及支持芯片至芯片和芯片至模块的28Gb/s(GT)收发器。Stratix 10系列于2013年初发布,采用Intel的14nm三栅极技术,内核处理速度达到了前代的2倍,串行收发器带宽达到了前代的4倍,单芯片超过400万逻辑单元。
图1-11 Stratix FPGA结构框图
所有Stratix FPGA系列都有等价的HardCopy ASIC器件,设计人员能够很容易将其Stratix FPGA设计移植到HardCopy Stratix器件中,为ASIC设计提供了低风险、低成本的量产途径。
我们以Stratix V系列为例进行介绍。Stratix V包括了4个子系列型号的产品:Stratix V GT、Stratix V GX、Stratix V GS、Stratix V E,每个子系列又包括多个不同型号的产品。其中Stratix V GT提供28.05Gb/s收发器,适用于需要超宽带和超高性能的应用,例如,40G/100G/400G应用。Stratix V GX集成14.1Gb/s收发器,支持此速度下的背板、芯片至芯片和芯片至模块操作,适用于高性能、宽带应用。Stratix V GS集成14.1Gb/s收发器,支持此速度下的背板、芯片至芯片和芯片至模块操作,适用于高性能精度可调数字信号处理(DSP)应用。Stratix V E在高性能逻辑架构上提供952K逻辑单元,适用于ASIC原型开发。表1-6所示为Stratix V GX FPGA系列简介。
表1-6 Stratix V GX FPGA系列简介
Arria系列FPGA拥有丰富的内存和逻辑模块、数字信号处理(DSP)模块,能够提供高达25.78Gb/s的收发器功能和卓越的信号完整性,可提供中端市场所需的最佳性能和能效。Arria产品系列如表1-7所示。
表1-7 Arria系列产品
下面以Arria 10系列为例进行介绍。Arria 10系列采用了20nm的制造工艺与OpenCores设计,与其他同类型产品相比,可以提供速度等级更快的内核性能,时钟频率 f MAX 提高20%,功耗降低40%,并且具有业内唯一的硬核浮点数字信号处理模块,速度高达1.5tera次浮点运算每秒(TFLOPS)。其结构框图如图1-12所示。
图1-12 Arria FPGA结构框图
Arria 10 FPGA系列包括GX160/SX160、GX220/SX220、GX270/SX270、GX320/SX320、GX480/SX480、GX570/SX570、GX660/SX660、GX900、GX1150、GT900、GT1150,以GX480、GX570、GX900、GX1150为例,其逻辑资源如表1-8所示。
表1-8 Arria10系列逻辑资源简介
由于FPGA是基于SRAM生产工艺的,所以配置数据在掉电后将丢失,因此FPGA在产品中使用时,必须考虑其在系统上电时的配置问题,而采用专用配置芯片是一种常用的解决方案。Intel的FPGA配置芯片都是基于EEPROM生产工艺的,具有在系统可编程(ISP)和重新编程能力,且生命周期比商用串行闪存产品更长。表1-9所示为Intel提供的FPGA串行配置芯片。
表1-9 Intel FPGA配置芯片