1.1 FPGA技术的发展历史和动向
1.1.1 FPGA技术的发展历史
纵观数字集成电路的发展历史,经历了从电子管、晶体管、小规模集成电路到大规模以及超大规模集成电路等不同的阶段。发展到现在,主要有3类电子器件:存储器、处理器和逻辑器件。
存储器保存随机信息(电子数据表或数据库的内容);处理器执行软件指令,以便完成各种任务(运行数据处理程序或视频游戏);而逻辑器件可以提供特殊功能(器件之间的通信和系统必须执行的其他所有功能)。
逻辑器件分成两类:
固定的或定制的。
可编程的或可变的。
其中,固定的或定制的逻辑器件通常称为专用芯片(ASIC)。ASIC是为了满足特定的用途而设计的芯片,例如MP3解码芯片等。其优点是通过固化的逻辑功能和大规模的工业化生产,降低了芯片的成本,同时提高了产品的可靠性。随着集成度的提高,ASIC的物理尺寸也在不断的缩小。
但是,ASIC设计的周期很长,而且投资大,风险高。一旦设计结束后,功能就固化了,以后的升级改版困难比较大。电子产品的市场正在逐渐细分,为了满足快速产品开发,产生了现场可编程逻辑器件(FPGA)。
自1984年Xilinx公司推出了第一片现场可编程逻辑器件(FPGA)至今,FPGA已经历了20几年的快速发展历程。特别是近几年来,更是发展迅速。FPGA的逻辑规模已经从最初的1000个可用门发展到现在的1000万个可用门。
FPGA技术之所以具有巨大的市场吸引力,其根本原因在于:FPGA不仅可以解决电子系统小型化、低功耗、高可靠性等问题,而且其开发周期短、投入少,芯片价格不断下降。FPGA正在越来越多地取代传统上ASIC,特别是在小批量、个性化的产品市场方面。
1.1.2 FPGA技术的发展动向
随着芯片设计工艺水平的不断提高,FPGA技术呈现出了以下4个主要的发展动向。
1.基于FPGA的嵌入式系统(SoPC)技术正在成熟
System on Chip(SoC)技术在芯片设计领域被越来越广泛地采用,而SoPC技术是SoC技术在可编程器件领域的应用。这种技术的核心是在FPGA芯片内部构建处理器。Xilinx公司主要提供基于Power PC的硬核解决方案,而Altera提供的是基于NIOSII的软核解决方案。
Altera公司为NIOSII软核处理器提供了完整的软硬件解决方案,可以让客户短时间完成SoPC系统的构建和调试工作。
如图1.1所示,是Altera Stratix III FPGA基于NIOS II解决方案的内部结构图。
图1.1 NIOS II解决方案
2.FPGA芯片向高性能、高密度、低压和低功耗的方向发展
随着芯片生产工艺不断提高,FPGA芯片的性能和密度都在不断提高。早期的FPGA主要是完成接口逻辑设计,比如AD/DA和DSP的粘合逻辑。现在的FPGA正在成为电路的核心部件,完成关键功能。
在高性能计算和高吞吐量I/O应用方面,FPGA已经取代了专用的DSP芯片,成为最佳的实现方案。因此,高性能和高密度也成为衡量FPGA芯片厂家设计能力的重要指标。
随着FPGA性能和密度的提高,功耗也逐渐成为了FPGA应用的瓶颈。虽然FPGA比DSP等处理器的功耗低,但是要明显高于专用芯片(ASIC)的功耗。FPGA的厂家也在采用各种新工艺和技术来降低FPGA的功耗,并且已经取得了明显的效果。
例如,Altera公司的StratixIII系列FPGA的功耗比上一代产品StratixII系列降低了50%以上。
3.基于IP库的设计方法
未来的FPGA芯片密度不断提高,传统的基于HDL的代码设计方法很难满足超大规模FPGA的设计需要。随着专业的IP库设计公司不断增多,商业化的IP库种类会越来越全面,支持的FPGA器件也会越来广泛。
作为FPGA的设计者,主要的工作是找到适合项目需要的IP库资源,然后将这些IP整合起来,完成顶层模块设计。由于商业的IP库都是通过验证的,因此整个项目的仿真和验证工作主要就是验证IP库的接口逻辑设计的正确性。
目前,由于国内的知识产权保护的相关法律法规还不尽完善,基于IP库的设计方法还没有得到广泛应用。但是随着FPGA密度不断提高和IP库的价格逐渐趋于合理化,这种设计方法将会成为主流的FPGA设计技术。
4.FPGA的动态可重构技术
FPGA动态重构技术主要是指对于特定结构的FPGA芯片,在一定的控制逻辑的驱动下,对芯片的全部或部分逻辑资源实现高速的功能变换,从而实现硬件的时分复用,节省逻辑资源。
由于密度不断提高,FPGA能实现的功能也越来越复杂。FPGA全部逻辑配置一次的需要的时间也变长了,降低了系统的实时性。局部逻辑的配置功能可以实现“按需动态重构”,大大提高了配置的效率。
动态可重构的FPGA可以在系统运行中对电路功能进行动态配置,实现硬件的时分复用,节省了资源,主要适用于以下两个系统设计:
最新通信系统。
FPGA的动态重构特性可以适应不同体制和不同标准的通信要求,满足软件无线电技术的发展和第三代(3G)和第四代(4G)移动通信系统的需要。
重构计算机:FPGA具有并行处理能力和动态配置能力,可自动改变硬件来适应正在运行的程序,产生了基于这种软硬件环境的全新概念的计算机。
1.2 FPGA的典型应用领域
1.2.1 数据采集和接口逻辑领域
1.FPGA在数据采集领域的应用
由于自然界的信号大部分是模拟信号,因此一般的信号处理系统中都要包括数据的采集功能。通常的实现方法是利用A/D转换器将模拟信号转换为数字信号后,送给处理器,比如利用单片机(MCU)或者数字信号处理器(DSP)进行运算和处理。
对于低速的A/D和D/A转换器,可以采用标准的SPI接口来与MCU或者DSP通信。但是,高速的A/D和D/A转换芯片,比如视频Decoder或者Encoder,不能与通用的MCU或者DSP直接接口。在这种场合下,FPGA可以完成数据采集的粘合逻辑功能。
2.FPGA在逻辑接口领域的应用
在实际的产品设计中,很多情况下需要与PC机进行数据通信。比如,将采集到的数据送给PC机处理,或者将处理后的结果传给PC机进行显示等。PC机与外部系统通信的接口比较丰富,如ISA、PCI、PCI Express、PS/2、USB等。
传统的设计中往往需要专用的接口芯片,比如PCI接口芯片。如果需要的接口比较多,就需要较多的外围芯片,体积、功耗都比较大。采用FPGA的方案后,接口逻辑都可以在FPGA内部来实现了,大大简化了外围电路的设计。
在现代电子产品设计中,存储器得到了广泛的应用,例如SDRAM、SRAM、Flash等。这些存储器都有各自的特点和用途,合理地选择储存器类型可以实现产品的最佳性价比。由于FPGA的功能可以完全自己设计,因此可以实现各种存储接口的控制器。
3.FPGA在电平接口领域的应用
除了TTL、COMS接口电平之外,LVDS、HSTL、GTL/GTL+、SSTL等新的电平标准逐渐被很多电子产品采用。比如,液晶屏驱动接口一般都是LVDS接口,数字I/O一般是LVTTL电平,DDR SDRAM电平一般是HSTL的。
在这样的混合电平环境里面,如果用传统的电平转换器件实现接口会导致电路复杂性提高。利用FPGA支持多电平共存的特性,可以大大简化设计方案,降低设计风险。
1.2.2 高性能数字信号处理领域
无线通信、软件无线电、高清影像编辑和处理等领域,对信号处理所需要的计算量提出了极高的要求。传统的解决方案一般是采用多片DSP并联构成多处理器系统来满足需求。
但是多处理器系统带来的主要问题是设计复杂度和系统功耗都大幅度提升,系统稳定性受到影响。FPGA支持并行计算,而且密度和性能都在不断提高,已经可以在很多领域替代传统的多DSP解决方案。
例如,实现高清视频编码算法H.264。采用TI公司1GHz主频的DSP芯片需要4颗芯片,而采用Altera的StratixII EP2S130芯片只需要一颗就可以完成相同的任务。FPGA的实现流程和ASIC芯片的前端设计相似,有利于导入芯片的后端设计。
1.2.3 其他应用领域
除了上面一些应用领域外,FPGA在其他领域同样具有广泛的应用。
(1)汽车电子领域,如网关控制器/车用PC机、远程信息处理系统。
(2)军事领域,如安全通信、雷达和声纳、电子战。
(3)测试和测量领域,如通信测试和监测、半导体自动测试设备、通用仪表。
(4)消费产品领域,如显示器、投影仪、数字电视和机顶盒、家庭网络。
(5)医疗领域,如软件无线电、电疗、生命科学。
1.3 FPGA的工艺结构
随着FPGA的生产工艺不断提高,各种新技术被广泛应用到FPGA芯片的设计生产的各个环境。其中,生产工艺结构决定了FPGA芯片的特性和应用场合。
如图1.2所示是FPGA的主要几种生产工艺及典型产品。
图1.2 FPGA生产工艺及典型产品
1.3.1 基于SRAM结构的FPGA
目前最大的两个FPGA厂家Xilinx和Altera的所有FPGA产品都是基于SRAM工艺来实现的。这种工艺的优点是可以用较低的成本来实现较高的密度和较高的性能;缺点是掉电后SRAM会失去所有配置,导致每次上电都需要重新加载。
重新加载需要外部的器件来实现,不仅增加了整个系统的成本,而且引入了不稳定的因素。加载的过程容易受到外界干扰而导致加载失败,也容易受到“监听”而破解加载文件的比特流。
虽然基于SRAM结构的FPGA存在这些缺点,但是由于其实现成本低,还是得到了广泛的应用,特别是民用产品方面。
1.3.2 基于反融丝结构的FPGA
Actel公司擅长出品反融丝结构的FPGA。这种结构的FPGA只能编程一次,编程后和ASIC一样成为了固定逻辑器件。Quick Logic公司也有类似的FPGA器件,主要面向军品级应用市场。
这样的FPGA失去了反复可编程的灵活性,但是大大提高了系统的稳定性。这种结构的FPGA比较适合应用在环境苛刻的场合,比如高振动,强电磁辐射等航空航天领域。同时,系统的保密性也得到了提高。
这类FPGA因为上电后不需要从外部加载配置,所以上电后可以很快进入工作状态,即 “瞬间上电”技术。这个特性可以满足一些对上电时间要求苛刻的系统。由于是固定逻辑,这种器件的功耗和体积也要低于SRAM结构的FPGA。
1.3.3 基于Flash结构的FPGA
Flash具备了反复擦写和掉电后内容非易失特性,因而基于Flash结构的FPGA同时具备了SRAM结构的灵活性和反融丝结构的可靠性。这种技术是最近几年发展起来的新型FPGA实现工艺,目前实现的成本还偏高,没有得到大规模的应用。
系统安全的角度来看,基于Flash的FPGA具有更高的安全性,硬件出错的几率更小,并能够通过公共网络实现安全性远程升级,经过现场处理即可实现产品的升级换代。这种性能减少了现场解决问题所需的昂贵开销。
在Flash器件中集成小型的NVM(Non Volatile Memory,非易失性存储器)模块可以在某些消费电子和汽车电子应用中实现授权技术。这种NVM可以存储安全通信所需的密钥,或者针对基于广播的系统实现机顶盒设备的串行化。
可重编程的NVM在编程时需要一定的电压,因此SRAM用户必须从外部提供这种电压。基于Flash的FPGA采用内部电荷泵进行编程,不需要集成NVM模块,而基于SRAM的FPGA通常缺乏这种功能。
Flash器件的工作频率可达350MHz,利用率超过95%,而SRAM FPGA一般能够达到的利用率仅为70~75%。Flash FPGA在加电时没有像SRAM FPGA那样大的瞬间高峰电流,并且SRAM FPGA通常具有较高的静态功耗和动态功耗。
例如,一块40万门的基于Flash的FPGA需要20mA的静态电流,然而同等规模的基于SRAM的FPGA所需的电流达100mA。SRAM FPGA的功耗问题往往迫使系统设计者不得不增大系统供电电流,并使得整个设计变得更加复杂。
1.4 主流的FPGA芯片厂家及其代表产品
目前市场上FPGA芯片主要来自Xilinx公司和Altera公司。这两家公司占据了FPGA 80%以上的市场份额,其他的FPGA厂家产品主要是针对某些特定的应用。比如,Actel公司主要生产反融丝结构的FPGA,以满足应用条件极为苛刻的航空、航天领域产品。
下面介绍Xilinx和Altera两家公司的代表产品。
1.4.1 Xilinx公司的代表产品
1.面向高性能的Virtex-5 FPGA 系列
终极系统集成平台——Virtex-5系列FPGA提供了4种新型平台,每种平台都在高性能逻辑、串行连接功能、信号处理和嵌入式处理性能方面实现了最佳平衡。现有的3款平台如下。
(1)Virtex-5 LX平台:针对高性能逻辑进行了优化。
(2)Virtex-5 LXT平台:针对带有低功耗串行连接功能的高性能逻辑进行了优化。
(3)Virtex-5 SXT平台:针对带有低功耗串行连接功能的 DSP 和存储器密集型应用进行了优化。
2.面向低成本的Spartan-3 系列 FPGA
90nm Spartan-3 系列 FPGA 的发售量已经超过3000万片,是业内首款大容量 FPGA 系列产品,带有多个针对特定领域进行了优化的平台。
(1)面向数字信号处理的Spartan-3A DSP平台。
这个平台对DSP进行了优化,适于那些需要集成式 DSP MAC 和扩展存储器的应用。特别适于那些需要低成本FPGA来实现信号处理(如军用无线电、监视照相机、医学成像等)的应用设计。
(2)面向非易失性应用的Spartan-3AN 平台。
这个平台主要针对需要非易失性、系统集成、安全、大型用户Flash的应用。特别适于空间敏感型或安全应用,以及低成本嵌入式控制器。
(3)面向主流应用的Spartan-3平台。
① Spartan-3A平台:针对 I/O 进行了优化。
这个平台是针对那些I/O数和性能比逻辑密度更重要的应用,特别适于桥接、差分信号和存储器接口这些需要宽接口或者多个接口以及一定处理能力的应用。
② Spartan-3E平台:针对逻辑进行了优化。
这个平台是针对那些逻辑密度比I/O数更重要的应用,特别适于逻辑集成、DSP协处理和嵌入式控制,这些需要进行大量处理和窄接口或者少量接口的应用。
③ Spartan-3平台:针对密度最高和管脚数较多的应用。
这个平台是针对那些高逻辑密度和高 I/O 数都很重要的应用,特别适于高度集成的数据处理应用。
1.4.2 Altera公司的代表产品
1.面向高性能的StraitixIII系列FPGA
和Xilinx的Virtex-4系列对应,Altera公司也推出了StratixIII系列FPGA体系结构。StratixIII系列不仅性能比上一代提高很多,更重要的是静态和动态功耗比前代FPGA低了50%。
Stratix III器件经过设计,支持高速内核以及高速I/O,并且具有非常好的信号完整性。例如,它能够实现400MHz DDR3的FPGA。这种性能的提高源于以下几点。
增强DSP模块,方便实现了信号处理算法。
经过优化的内部存储器,改进了信号完整性存储器接口。
高性能外部存储器接口。
改进了布线体系结构。
灵活的I/O支持最新的外部存储器标准。
为了给客户的设计应用提供最好的性价比解决方案,Altera Stratix III FPGA提供3种型号,分别针对逻辑、DSP和存储器以及收发器进行了优化。
2.面向低成本的Cyclone III系列FPGA
低成本Cyclone III FPGA是Altera Cyclone系列的第三代产品。Cyclone III FPGA系列前所未有地同时实现了低功耗、低成本和高性能,进一步扩展了FPGA在成本敏感、大批量领域中的应用。
Cyclone III FPGA采用TSMC公司的65-nm低功耗(LP)工艺技术。Cyclone III 器件对芯片和软件采取了更多的优化措施,在所有65-nm FPGA中是功耗最低的,在对成本和功耗敏感的大量应用中,提供丰富的特性推动宽带并行处理的发展。
Cyclone III 系列包括8个型号,具有5k~120k个逻辑单元(LE),最多有534个用户I/O引脚。Cyclone III器件具有4MB嵌入式存储器、288个嵌入式18×18乘法器、专用外部存储器接口电路、锁相环(PLL)以及高速差分I/O等。
1.5 工程项目中FPGA芯片选择策略和原则
由于FPGA具备设计灵活、可以重复编程的优点,因此在电子产品设计领域得到了越来越广泛的应用。在工程项目或者产品设计中,选择FPGA芯片可以参考以下的几点策略和原则。
1.5.1 尽量选择成熟的产品系列
FPGA芯片的工艺一直走在芯片设计领域的前列,产品更新换代速度非常快。稳定性和可靠性是产品设计需要考虑的关键因素。厂家最新推出的FPGA系列产品一般都没有经过大批量应用的验证。选择这样的芯片会增加设计的风险。
而且,最新推出的FPGA芯片因为产量比较小,一般供货情况都不会很理想,价格也会偏高一些。如果成熟的产品能满足设计指标要求,那么最好选这样的芯片来完成设计。
例如,要用FPGA设计一块数据采集卡。采用Altera公司的Cyclone、CyloneII和CycloneIII等3个系列的芯片都可以完成这个功能。考虑到Cyclone和CyloneII是成熟产品,同时CyloneII又是Cyclone的升级产品,因此选择CyloneII是比较理想的方案。
1.5.2 尽量选择兼容性好的封装
FPGA系统设计一般采用硬件描述语言(HDL)来完成设计。这与基于CPU的软件开发又有很大不同。特别是算法实现的时候,在设计之前,很难估算这个算法需要占多少FPGA的逻辑资源。
作为代码设计者,希望算法实现之后再选择FPGA的型号。但是,现在的设计流程一般都是软件和硬件并行开始设计。也就是说,在HDL代码设计之前,就开始硬件板卡的设计。这就要求硬件板卡具备一定的兼容性,可以兼容不同规模的FPGA芯片。
幸运的是,FPGA芯片厂家考虑到了这一点。目前,同系列的FPGA芯片一般可以做到相同物理封装兼容不同规模的器件。例如,Xilinx的Spartan3系列FPGA,在BGA456封装下,可以选择3S200、2S400、3S1000、3S1500这4种型号的FPGA。
正是因为这一点,将来的产品就具备非常好的扩展性,可以不断地增加新的功能或者提高性能,而不需要修改电路板的设计文件。
1.5.3 尽量选择一个公司的产品
如果在整个电子系统中需要多个FPGA器件,那么尽量选择一个公司的产品。这样的好处不仅可以降低采购成本,而且降低开发难度。因为开发环境和工具是一致的,芯片接口电平和特性也一致,便于互联互通。
很多第一次接触FPGA的设计师在芯片选型的时候都有过这个疑问。其实这两个最大的FPGA厂家位于美国的同一座城市,人员和技术交流都很频繁,因此产品各有的优势和特色,很难说清楚谁好谁坏。
在全球不同的地区,这两家公司的FPGA芯片产品的市场表现会有所差别。在中国市场,两家公司可以说是平分秋色,在高校里面Altera的客户会略多一些。针对特定的应用,两个厂家的产品目录里面都可以找到适合的系列或者型号。
比如,针对低成本应用,Altera公司的Cyclone系列和Xilinx公司的Spartan3系列是对应的。针对高性能应用,Altera公司的Stratix系列和Xilinx公司的Virtex系列是对应的。所以,最终选择那个公司的产品还是看开发者的使用习惯。