FPGA设计技巧与案例开发详解
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 Altera FPGA介绍及其发展、应用

1.2.1 Altera公司介绍

Altera公司成立于1983年,总部位于美国硅谷的圣何塞,至今已有30多年的历史。自30多年前发明世界上第一个可编程逻辑器件(PLD)开始,Altera公司秉承了创新的传统,是世界上“可编程芯片系统”(SOPC)解决方案的倡导者。Altera公司的网址为www.altera.com,其网站主页如图1.8所示。

图1.8 Altera公司的网站主页

Altera公司帮助各种系统和半导体公司快速高效地实现创新,突出产品优势,赢得了市场竞争。Altera公司的FPGA、SoC FPGA、CPLD和HardCopy ASIC结合软件工具、知识产权、嵌入式处理器和客户支持,为全世界数万名用户提供了非常有价值的可编程解决方案。

面向电子设计的未来发展,Altera公司的可编程解决方案促进了产品的及时面市,相对于高成本、高风险的ASIC开发,以及不灵活的ASSP和数字信号处理器而言具有明显的优势。与以前的可编程逻辑产品相比,Altera公司的产品为更广阔的市场带来了更大的价值。

通过与其代工合作伙伴TSMC公司、Intel公司等业界一流的技术供应商保持长期稳固的合作关系,Altera公司确保了向用户及时交付高质量产品。采用来自业界最好的EDA供应商的工具,Altera公司进一步增强了自己的布局布线设计软件。在世界级分销网络的帮助下,Altera公司为全球用户提供服务。采用这一非常成功的商业模式,Altera公司能够将精力集中在核心能力上,开发并实现前沿的可编程技术,为用户提供最大价值。Altera公司的新产品系列将可编程逻辑的内在优势(灵活性、产品及时面市)和更高级性能及集成化结合在一起,专为满足当今大范围的系统需求而进行开发设计。Altera公司的可编程解决方案包括:

① 业内最先进的FPGA、CPLD和结构化ASIC技术;

② 全面内嵌的软件开发工具;

③ 最佳的IP内核;

④ 可定制嵌入式处理器;

⑤ 现成的开发包;

⑥ 专家设计服务。

从130nm到14nm工艺的革新,从CPLD到FPGA、ASIC的发展,从FPGA到SoC系统的集成,30多年间,Altera公司的FPGA在中低端领域与高端领域一直立于不败之地。Altera公司的产品以友好的可视化界面、灵活的电路设计、强大的IP定制等优势赢得了市场,是各国高校与亚洲地区大部分公司的首选。

1.2.2 Altera公司产品介绍

Altera公司以丰富的背景和雄厚的资历,给用户提供了多种解决方案,加快了产品的开发。Altera公司的产品主要有CPLD、FPGA、ASIC及SoC处理器等,另外还有相关的设计软件及电源方案。下面主要给出Altera公司在FPGA/CPLD方面的产品介绍。Altera公司FPGA产品电路如图1.9所示。

图1.9 Altera FPGA产品电路

1.MAX系列CPLD介绍

对于胶合逻辑及任何控制功能,Altera公司的非易失MAX系列提供市场上成本最低的CPLD—单芯片解决方案,非常适合接口桥接、电平转换、I/O扩展和模拟I/O管理。

自从Altera公司在1993年推出MAX系列CPLD产品以来,该系列产品广受赞誉,给用户提供了有史以来功耗最低、成本最低的CPLD。Altera MAX系列CPLD产品的发展历程如表1.3所示。Altera MAX II系列CPLD如图1.10所示。

表1.3 Altera MAX系列CPLD产品的发展历程

图1.10 Altera MAX II系列CPLD产品

1993—2010年,Altera公司先后发布了MAX7000、MAX3000、MAX II、MAX IIZ、MAX V CPLD,制造工艺从0.5μm提升到0.18μm的集成度,在成本、I/O数量、功耗上不断地突破。目前,MAX II CPLD仍然为最常用的CPLD,而MAX V CPLD是目前最新系列,也是市场上最有价值的器件。MAX V CPLD具有独特的非易失体系结构,是业界密度最大的CPLD,并且进一步降低了总功耗。该系列非常适合各类市场领域,包括固网、无线、工业、消费类、计算机和存储、汽车及广播和军事等中的通用和便携式设计。(MAX 10 FPGA不能算作一个CPLD,因此本书没有介绍。)

2.FPGA介绍

Altera FPGA主要有Stratix、Arria及Cyclone三个系列产品,如图1.11所示。其中,Stratix系列为高端FPGA,具有最大带宽和最高密度,同时集成收发器,可在片上设计整个系统;Arria系列为中端FPGA,均衡成本、功耗和性能,集成收发器和处理器;Cyclone系列为成本与功耗最低的FPGA,集成收发器与处理器,同时具有最短的上市周期。

图1.11 Altera FPGA的三个系列产品

1)Stratix系列FPGA

Stratix系列FPGA结合了高密度、高性能及丰富的特性,能使用户集成更多的功能,提高系统带宽,从而以更低的风险和更高的效能尽快推出最先进的高性能产品。作为FPGA系列的高端器件,Stratix已经经历了数代产品的更新,如表1.4所示。

表1.4 Stratix系列FPGA的发展历程

Stratix系列FPGA主要应用在对成本不敏感、对性能要求高的高端领域,因此在民用市场中应用得不多。市场上性能最高的FPGA为Stratix V系列,支持高达12.5Gbps收发器的高性能、高带宽应用,同时是首个支持可变精度DSP模块的高性能数字信号处理(DSP)应用。

Stratix 10系列FPGA是目前发布的最新一代Stratix FPGA(如图1.12所示),它采用Intel公司革命性的14nm三栅极晶体管技术(其他几代产品由TSMC代工),实现了性能和功效的突破,是业界第一款兆级的FPGA和SoC,号称“地球上最快的FPGA”。Stratix 10系列FPGA以超出想象的高速接口速率突破了带宽壁垒,减少了用户的投入资金与运营开支,缩短了产品的上市周期。该系列主要产品型号和说明如表1.5所示。

图1.12 Altera公司最新Stratix 10系列FPGA

表1.5 Stratix系列FPGA的说明

2)Arria系列FPGA

Altera公司的Arria系列FPGA设计用于对成本和功耗不敏感的收发器及嵌入式应用。Arria系列FPGA提供丰富的存储器、逻辑和数字信号处理(DSP)模块资源,结合28.05Gbps收发器优异的信号完整性,帮助用户集成了更多的功能,并提高了系统带宽。另外,Arria V器件系列的SoC FPGA还具有基于ARM的硬核处理器系统(HPS),从而进一步提高了集成度,并降低了功耗。Arria系列FPGA的发展历程如表1.6所示。

表1.6 Arria系列FPGA的发展历程

Arria 10系列FPGA是Altera公司在2013年发布的最新一代FPGA,在性能上超越了前一代高端FPGA,而功耗低于前一代中端FPGA,重塑了中端器件。Arria 10系列FPGA的很多功能都是突破性的,包括采用了最新的20nm工艺技术的高性能体系结构,性能高达28.05Gbps的高级串行接口技术,全面的低功耗选择,以及扩展SoC产品等。Altera公司最新Arria 10系列FPGA宣传页面如图1.13所示。

图1.13 Altera公司最新Arria 10系列FPGA宣传页面

Arria 10系列FPGA和SoC比前一代中端器件的性能提高了60%,功耗降低了40%,集成了更多功能,节省了电路板空间,同时减少了资金投入,是终端FPGA应用的最佳选择。该系列FPGA主要型号及说明如表1.7所示。

表1.7 Arria 10系列FPGA主要型号及说明

3)Cyclone系列FPGA

Cyclone系列FPGA主要应用在对成本、资源不苛刻的低成本领域,正因为如此,Cyclone系列FPGA大量被应用在民用产品中。从Altera公司在2002年发布第一代130nm工艺技术的Cyclone FPGA开始,到目前为止,已有130nm到28nm的5个工艺技术等级的子系列FPGA,提高了集成度和性能,降低了功耗,缩短了产品的上市周期,同时满足了用户的低成本要求。Cyclone系列FPGA的发展历程如表1.8所示。

表1.8 Cyclone系列FPGA的发展历程

Cyclone系列FPGA在民用行业,即低端FPGA领域有很大的市场,目前应用最多的为60nm工艺技术的Cyclone IV系列FPGA。Cyclone V系列异构FPGA与Zynq-7000系列具有竞争市场,具有较大的潜力,而Cyclone 10系列FPGA目前在市场上的应用并不常见。貌似LP系列和Cyclone IV是同样的Die(封装前单个芯片的裸片),也许换为Intel公司的工艺技术,有更好的性价比与功耗,但器件的市场推广的力度还不够。

由于Cyclone 10 FPGA目前应用得并不广泛,用户认为它是Cyclone IV的替代品,因此这里主要介绍一下相对最新的28nm工艺技术的Cyclone V系列FPGA,如图1.14所示。Cyclone V系列FPGA为工业、无线、固网、广播和消费类应用提供市场上系统成本最低、功耗最低的FPGA解决方案。该系列集成了丰富的硬核知识产权(IP)模块,帮助客户以更低的系统总成本和更短的设计时间完成更多的工作。Cyclone V系列中的SoC FPGA实现了独特的创新技术,如以硬核处理器系统(HPS)为中心,采用了双核ARM Cortex-A9处理器及丰富的硬件外设,从而降低了系统功耗和成本,减小了电路板面积。

图1.14 Altera公司最新Cyclone V系列FPGA

Cyclone V系列FPGA主要有如表1.9中所示的几个类型,该表中还列出了FPGA与SoC FPGA的相关特性。

表1.9 FPGA与SoC FPGA的特性参数

由于Cyclone V系列FPGA集成了丰富的硬核IP模块,所以用户能够以更低的系统总成本和功耗,以及更短的设计时间完成更多的工作,从而突出了产品的优势。Cyclone V系列FPGA主要的硬核IP模块包括:

(1)支持400MHz DDR3 SDRAM的增强存储器控制器,提供可选纠错码(ECC)支持;

(2)提供多功能支持的PCI Express(PCIe)Gen2;

(3)精度可调数字信号处理(DSP)模块;

(4)硬核处理器系统(HPS)双核ARM Cortex-A9 MPCore处理器。

Cyclone V系列FPGA与前4代Cyclone系列FPGA的最大区别是集成了双核ARM Cortex-A9处理器,即基于ARM的可定制SoC。SoC FPGA使用宽带互连总线连接,在FPGA架构中集成了HPS(包括处理器、外设和存储器控制器),帮助用户降低了系统功耗和成本,减小了电路板面积。HPS与Altera的28nm低功耗FPGA架构相结合,在实现了ARM处理器的性能的同时,还可利用这类处理器的辅助系统,并且具备了Cyclone V系列FPGA灵活的低成本和低功耗特性。嵌入双核28nm Cortex-A9 ARM处理器的FPGA架构如图1.15所示。

图1.15 嵌入双核28nm Cortex-A9 ARM处理器的FPGA架构

Cyclone V系列FPGA以软/硬结合的模式,并行实现硬件加速与软件处理。从硬件资源分析,Cyclone V系列FPGA与Cyclone IV系列FPGA相比,主要有以下特点:

(1)总功耗比Cyclone IV系列FPGA低40%;

(2)功耗最低的串行收发器,每个通道在5Gbps时最大功耗为88mW;

(3)处理性能超过4000MIPS(Dhrystones 2.1基准测试),功耗不到1.8W(对于SoC FPGA);

(4)较多地使用了硬核知识产权(IP)模块,降低了功耗。

ARM+FPGA的架构是嵌入式系统集成的完美结合。这种架构既能发挥硬件固有的特性,又能通过软核处理实现,涵盖了ARM所具有的特性,将是未来ARM+ DSP+FPGA集成的一个基本模型。Cyclone V系列FPGA产品为目前Altera主推的产品。Terasic推出的基于Cyclone V系列FPGA的开发套件—SocKit平台如图1.16所示。

更多关于Altera产品介绍的内容,可参照Altera官网提供的产品手册,网址为www.altera.com.cn/literature/sg/product-catalog.pdf

图1.16 SocKit平台

1.2.3 Altera FPGA的开发平台

随着Altera公司不断地推出Cyclone 10、MAX 10、Arria 10、Stratix 10等产品系列,以及对软件的优化设计,Quartus II以每年1个版本及多个补丁的节奏更新着(Quartus II 16.0以后版本因被收购改名为Quartus Prime,考虑到版本的一致性及业界称呼的习惯,本书继续沿用“Quartus II”)。

对于软件平台的优化,Altera公司一直致力于实现业界最短的编译时间,譬如13.0版本与前一版本相比,通过优化编译算法,以及计算机多核处理性能的方式,编译效率提高30%~50%。图1.17分别给出了Quartus II自身的编译优化改进,以及与其竞争产品在高端器件编译效率上的对比(抱歉笔者没有找到Quartus II 18.0相关数据,因此图1.17未更新)。

图1.17 Quartus II编译效率的改进及Altera高端器件编译时间及与其竞争产品对比数据

同时,Altera公司的可编程片上系统,也是FPGA开发的一大亮点。最初的工具为SOPC Builder,随后在Altera公司全面采用Qsys替代原来的工具,Qsys系统集成工具自动生成互连逻辑,连接知识产权(IP)功能和子系统,从而显著地节省了时间,减少了FPGA的开发工作量。另外,在FPGA优化芯片网络(NoC)新技术的支持下,与SOPC Builder相比,Qsys提高了性能,增强了设计重用功能,可以更迅速地进行功能验证。自Altera公司被Intel公司收归旗下后,Qsys更名为Platform Designer。Platform Designer的层次框架如图1.18所示。

图1.18 Platform Designer层次框架

由Platform Designer构建互联总线系统,继而进行FPGA顶层设计或ARM、OpenCL的开发等,极大地缩减了构建硬件的耗时,让FPGA软/硬件开发变得更加智能。在开发方面,Platform Designer帮助用户缩短了开发周期,它主要有以下优势:

(1)具有使用方便的GUI界面,支持IP功能和子系统的快速集成;

(2)自动生成互连逻辑(地址/数据总线连接、总线宽度匹配逻辑、地址解码逻辑及仲裁逻辑等);

(3)Altera公司及其IP合作伙伴提供即插即用兼容IP;

(4)支持包括Avalon®、ARM®、AMBA®、AXITM接口的不同工业标准接口的混合;

(5)系统HDL自动生成;

(6)分层设计流程,实现了灵活的设计,支持基于团队的设计,提高了设计重用能力。

随着Altera公司发布内嵌ARM的FPGA器件,支持FPGA for ARM的工具—Soc EDS应运而生。SoC EDS提供独特的Altera版ARM Development Studio 5(DS-5™)工具包,其高级多核调试功能与FPGA自适应功能相结合,无缝连接至Altera SignalTap II逻辑分析器,这一工具包帮助嵌入式软件开发人员获得了前所未有的全芯片可视化和控制能力。

SoC EDS是在Altera SoC器件上进行嵌入式软件开发的全套工具,通过与FPGA硬件总线通信,完成从硬件到软件,软/硬件协同开发的架构。从FPGA的硬件到SoC的软件开发流程图如图1.19所示。嵌入式ARM的FPGA出现,使得FPGA工程师与软件工程师,通过FPGA将设计紧密联系到了一起。SoC EDS包括开发工具、实用工具程序、运行时软件,以及应用实例,可帮助用户迅速开始硬件和应用软件的开发。采用Altera公司的SoC EDS,能够让用户获得高效工作需要的所有工具,从而进一步提高软件质量,并最终使产品更迅速地面市。

图1.19 从FPGA的硬件到SoC的软件开发流程图

随着FPGA、Platfrom Designer、Soc EDS工具链的成熟,FPGA这个异构系统成为非常适合软件工程师进行OpenCLOpenCL(Open Computing Language,开放运算语言)是第一个面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境,便于软件开发人员为高性能计算服务器、桌面计算系统、手持设备编写高效轻便的代码,而且可以广泛适用于多核心处理器(CPU)、图形处理器(GPU)、数字信号处理器(DSP),以及异构FPGA等处理器。编程,并采用FPGA进行加速的发展方向。Altera公司随即推出了能让软件开发人员在异构FPGA上完成加速应用的工具—Intel SDK for OpenCL。如图1.20所示为在Altera异构FPGA上进行OpenCL开发的架构图。

图1.20 在Altera异构FPGA上进行OpenCL开发的架构图

1.2.4 Altera FPGA的动态与应用

1.Altera芯片代工

2013年2月26日,Altera公司和英特尔(Intel)公司宣布双方已经达成协议,未来将采用Intel公司的14nm三栅极电晶体技术制造Altera FPGA。Altera公司总裁、董事会主席、兼CEO John Daane评论说:“Altera FPGA使用Intel 14nm工艺技术,帮助用户设计业界最先进、性能最好的FPGA。而且,Altera公司是唯一使用这一技术的FPGA公司,获得了极大的竞争优势。”Intel公司首席运营官Brian Krzanich评论说:“我们期望与Altera公司合作,采用Intel公司最先进的工艺技术制造最前沿的FPGA。Altera公司的下一代产品要求采用性能最好、功效最高的技术,Intel公司非常适合为其提供最先进的解决方案。”

与此同时,Altera公司也强调将与晶圆代工伙伴台积电(TSMC)公司继续保持长期合作,为FPGA创新设立新里程碑。

Altera公司产品的工艺技术选择是公司可定制系列产品策略的关键。Altera公司选择的工艺技术定义了每一个新产品系列的功能,使Altera公司能够针对特殊应用需求优化器件。考虑到FPGA服务的不同应用范围,不可能期望基于一种工艺技术的系列产品既能有效满足当今工业自动化系统低功耗、低成本的需求,同时还能满足高端网络设备严格的性能要求。因此,从目前的局势来看,Altera公司结合Intel公司、TSMC公司(Logo如图1.21所示)两家的代工线的多种工业技术/节点,大幅度扩展了其可定制系列产品范围。

图1.21 Intel公司的Logo与TSMC公司的Logo

Altera公司在开发超高性能FPGA时采用了Intel公司的14nm三栅极晶体管技术(通常称为FinFET),该产品系列主要面向固网、云计算、雷达信号处理和其他超高带宽等应用,为这些应用提供“无可匹敌的高性能和低能耗”。

同时,Altera公司还将采用TSMC公司的20nm芯片系统(20SoC)工艺技术,开发其他器件系列产品,定制满足多种应用需求。Altera公司开发了业界最有特点的产品,可帮助用户在最终应用中提高其竞争优势。

包括原先的28nm工艺技术在内的产品,目前Altera公司推出的产品为Cyclone V、Arria V、Arria 10、Stratix 10这几个系列的FPGA,其中28nm、20nm工艺技术由TSMC公司代工,而14nm工艺技术由Intel公司代工,其产品性能、集成度和工艺特性如图1.22所示。

图1.22 Altera公司产品性能、集成度和工艺特性

2.FPGA电源解决方案

2013年5月14号,Altera公司宣布签署了收购Enpirion公司的最终合并协议(如图1.23所示)。Enpirion公司是业界领先的高效集成电能转换产品(电源单芯片系统(PowerSoC))供应商。Altera公司的FPGA(现场可编程门阵列)与Enpirion公司的电源单芯片系统相结合,将有助于用户增强产品性能、降低系统功耗、提高可靠性、减小产品体积及加快产品上市。

图1.23 Altera公司收购Enpirion公司

此举是FPGA发展史上的又一个重大突破。FPGA方案不再纯粹局限于IP,而是一个生态系统,包括完善的电源管理方案,用户可通过系统功耗选择方案,不再需要额外的时间来设计电源,可以更加专注于开发自己的核心IP,再一次缩短了FPGA设计周期,降低了成本,因此用户可以更快地定型产品。

Enpirion公司是电源界的创新者,其直流-直流转换器电源单芯片系统系列带有集成电感器,能够打造出业界最小尺寸的解决方案,并因为其高效率、低噪声、热性能卓越、高可靠性且易于使用的特性而获得用户广泛认可。Enpirion公司产品覆盖通信、工业、测试测量设备、固态硬盘等领域,与Altera公司产品的主流领域相吻合,并且其产品具有高效率、低噪声、高系统可靠性等优势,这些均是Altera公司看重Enpirion公司的原因。Altera公司国际市场部总监李俭总结了收购Enpirion公司的三点主要原因。

(1)FPGA资源越来越多,设计越来越复杂,与电源管理的融合势在必行。

(2)电源管理将成为Altera公司的一个重要的与竞争对手产生差异化的功能。

(3)Altera公司如果具备了电源的解决方案,便可以为用户提供更加优化的FPGA方案。

Enpirion公司有其独到的PowerSoC技术,优化程度可以非常高。Enpirion公司于2004年推出全球第一个PowerSoC,该产品在单个IC套件中集成了完整的直流-直流转换器,包括控制器、栅极驱动器、MOSFET开关、高频去耦,以及最重要的电感器。大多数PowerSoC只需要输入和输出滤波电容即可,因此整个解决方案既简单又轻巧。由图1.24可以看到,Enpirion PowerSoC与同类产品的体积对比,尺寸只有1/7,极大地提高了系统的集成度。

通过Altera公司的这一举措,足见电源管理在FPGA和SoC FPGA产品功能中的战略地位。短期内,Enpirion公司经验证的PowerSoC方案将会与Altera公司的FPGA、SoC FPGA结合使用,让用户能用最小的印制电路板(PCB)完成设计;中长期的产品策略仍在规划中,未来将利用PowerSoC技术,与FPGA、SoC FPGA整合为单一封装可能是产品发展方向。也许在未来的FPGA中,集成PowerSoC使我们回归到“MAX CPLD时代”,只需要单电源供电,在信号处理器电源方案领域将再一次突破。

图1.24 Enpirion PowerSoC与同类产品的体积对比

1.2.5 Altera FPGA的应用

十多年前,在数字电路的设计中需要使用大量的集成电路芯片来实现逻辑功能。那时需要了解大量集成电路芯片的电气、时序、机械、温度等特性,设计出的数字电路不仅体积大、集成程度低,而且设计时需要阅读大量的芯片手册,调试时间长。每一款相关产品的问世,其背后都有设计人员的大量心血。很难想象,若现在的H.264解码芯片使用集成电路芯片来搭建,是何等巨大的工程,就如同用1.8万个电子管设计世界上第一台计算机一样。

FPGA的出现使数字电路的集成度大大提高,将原本分散式的电路有机地统一到同一FPGA系统中。在该芯片中,使用硬件语言设计的模块之间无须考虑电平特性、机械特性,且具有类似的时序特性、温度特性等,简化了板级设计、布局设计和同步设计,使得硬件工程师能实实在在地享受集成化、成本低、设计灵活、开发周期短等优点。

同时,FPGA具有大量逻辑资源和部分专用结构,开发人员可以随心所欲地在其中设计硬件结构。例如,可以设计具有数十兆波特率的串行通信接口或使用自带的IP以数Gbps的速度进行板间通信;可以在FPGA上并行设计十几个SATA硬盘接口,以便存储一部10GB的高清电影;可以用10万帧每秒的速度传输128像素×128像素分辨率的图像并存储在缓存中,以便在后期查看子弹击碎玻璃瞬间的画面;若FPGA资源足够多,则可以将多核的酷睿CPU设计在其中,并加入32级流水线来提升其性能。

若觉得高速的应用过于复杂,且对智能家居感兴趣,则可以将MP3里的数据在D/A转换前输入FPGA,复制成多路并行输出,加上外围电路,就可在每个居室、客厅、厨房、浴室享受音乐。若觉得用投影仪看电影时场面不够宏大,则可以通过FPGA解码存储器中编码后的高分辨率片源,分别输出到4个、8个乃至16个投影仪,调整投影仪的位置,将多个投影仪的输出拼接成一幅画面再输出。

作为硬件工程师,我们应注意到,FPGA和CPLD还具有以下优点。

1.完成不同接口的数据格式转换,同时实现传输速度的匹配

例如,假设系统中的输入/输出的接口不同,一种是高速RS-232接口,另一种是IDE的硬盘接口,我们可以在FPGA中按照相应的接口协议进行设计,相当于在FPGA中完成数据的串并转换,并使用乒乓结构的缓存解决时序不匹配的问题。由于硬盘接口的速度比高速RS-232接口速度高几倍,因此我们甚至可以将多路高速RS-232接口的数据同时写入硬盘。

2.进行不同电平之间的转换

随着现代芯片集成化程度的提高,芯片功耗受到越来越多的关注。计算机中的多核CPU、显卡芯片等的功耗甚至突破百瓦大关。解决这一问题的有效手段之一就是降低内核电压。随着科技的发展,不同处理芯片的内核电压和存储器的工作电压变得越来越低,从1.4V、1.2V降到1V、0.8V甚至0.4V,这导致在数字系统设计中涉及较多的电平匹配和转换问题。尤其是在不同处理器之间的并行通信中,有高达70多个I/O的接口电平转换,即使采用8路的电平转换芯片,也需要近10片该芯片,因此占用了大量的布局空间,并且增加了成本,但只需1片支持多电平标准的CPLD即可完成同样的设计。同时,通过加入寄存器采样,还可解决部分高速信号线过长导致的时序问题。同时,FPGA还支持LVDS等差分信号,以满足部分高速通信中的应用要求。

3.引脚扩展功能

受到驱动能力的限制,当一个输出引脚同时驱动多个输入引脚时,不可避免地会出现上升沿变缓的现象,从而影响数据的建立时间和保持时间,不利于高速数字信号的传输。此时,通过FPGA可以进行引脚或接口的复制,在信号进行一对多的驱动时,可以保证多个输出具有相同的驱动能力。当FPGA的I/O应用在不同的电平标准时,具有不同的最大电流,这部分内容可在相应的芯片手册中查阅。

4.无可比拟的并行处理优势

FPGA/CPLD的并行能力并不局限在接口并行的层次上。资源允许的情况下,在FPGA中可以设计任意数量的执行模块,以便在同一时间执行多项任务,如在FPGA中构架数十个Nios II软核。同时,在一个模块中,可以设计任意数量的流水线,在每个时钟周期都输出一个处理结果。相比之下,为了那么一点点有限的运行效率提升,在具有固定结构的处理器中编写烦琐的汇编代码毫无乐趣可言。灵活的设计加上天马行空的构架,利用FPGA设计出的算法结构即使在多核CPU面前也毫不逊色。尤其是近几年,随着FPGA资源逐渐丰富,使用FPGA处理高速数据成为算法应用研究的热点之一,基于并行处理算法和硬件平台的大量相关论文在国内外期刊上发表。Altera DE3开发板支持多板级联以满足处理高速数据的需求。Terasic设计的DE3开发板级联结构如图1.25所示。

图1.25 Terasic设计的DE3开发板级联结构

通过上述描述,我们了解到,FPGA不但可以完成串行结构处理器(如单片机、ARM、DSP)所不能完成的任务,如高速处理、算法实现、自定义接口、多任务并行处理与调度等,而且在设计过程中还具有极大的灵活性。

目前,FPGA的应用越来越广,FPGA逐渐从辅助加速转向系统核心,在数字领域发挥了越来越重要的作用。Altera FPGA的应用如图1.26所示。目前,FPGA主要有以下应用。

图1.26 Altera FPGA的应用

(1)高速并行数据传输:FPGA可以轻松实现以太网协议、PCI-E接口和LVDS接口等的信号传输。

(2)高速存储器读取:FPGA提供了丰富的IP内核,可通过定制实现SDRAM、DDR、DDR II、DDR III等外部存储器的控制。

(3)高速视频图像处理:FPGA内部嵌入了大量的乘法器或DSP Block,同时以其高速、并行处理的特性,在视频图像处理领域具有独特的优势。

(4)高速扫描:在大型LED屏幕和高、超分辨率LCD屏中,通常需要通过高速扫描来实现驱动,这也决定了FPGA在这一领域的应用地位。

(5)协处理器:在大型系统中,通常会使用大密度的FPGA,此时只需使用一小部分逻辑单元,就可以轻松地实现Nios II软核,以协同硬件完成系统处理,从而大大减轻单板的布线压力。

(6)嵌入式系统应用:通过开发最新一代嵌入双核28nm Cortex-A9 ARM的FPGA, Altera公司的产品开始进军嵌入式领域,以全新的架构、软件处理与硬件加速,突破了传统的设计及运行极限。

FPGA广泛地应用在数字产品中,如Altera FPGA在汽车电子设备、广播、计算和存储、消费类产品、医疗电子、军事、测试和测量、无线、固网等领域都有广泛的应用。

过去认为FPGA存在高成本、高功耗的缺陷,而FPGA现在已经具备全新的面貌,并越来越贴近人们的生活,最典型的案例是,2008年北京奥运会开幕式的画卷显示屏中使用的就是Altera Cyclone II FPGA。

随着工艺的革新及半导体行业日新月异的需求,FPGA已经从传统的现场可编程器件发展成Soc-FPGA(异构FPGA),这将最大限度地发挥FPGA加速的作用,且能更好地在片内实现整体解决方案(ARM)。FPGA的发展必将成为系统集成的方向,可重构计算的这一天俨然已经到来。

1.2.6 对比ARM与DSP,认清FPGA

FPGA并不是万能的,相对于串行结构处理器,其设计的灵活性是以工作量的增加为代价的。FPGA与ARM、DSP(如图1.27所示)的外形如下。

图1.27 FPGA与ARM、DSP的外形

第一,从语言本身的差异来看,基于Verilog HDL和VHDL的硬件语言与C/C++相比,在代码灵活性、开发效率等方面还有较大差距。通常,一段十几行的C语言代码使用硬件语言实现,代码量会增加到几十行之多。同时,在进行硬件语言描述时,一个合格的FPGA工程师不仅要实现相应的逻辑功能,还要预先设计编写的代码时需要的逻辑结构,并要考虑门延时对系统时序的影响,这样才能设计出稳定、高效的逻辑结构,以减少后期对时序的调整。

第二,从资源配置来看,ARM、DSP等处理器集成了运算单元、存储单元及大量的总线接口,开发者通过正确配置各个寄存器参数即可使总线接口在相应的模式下工作。而FPGA内部为大量逻辑资源,总线接口需根据需要自行设计,其内部仅有部分专用模块,如PLL、DSP单元等。由于在一个由FPGA搭建的系统中,众多接口需要自行设计,因此会占用开发者大量的时间。

第三,从工作频率来看,ARM、DSP等处理器采用的是成熟的内核结构,具有较好的时序特性,其最高频率通常为600MHz~1.25GHz。为提高处理能力,TI公司等芯片厂商采用多核的设计方式,设计了具有8核DSP、8核ARM的处理器,每个核心的最大工作频率均可达1.25GHz,通过设置可以开启和关闭其中的内核,来灵活地协调功耗与处理能力之间的矛盾。目前,TI公司正在设计具有8核ARM+8核DSP的处理器,来满足高速系统中集中运算的需求。而在FPGA的设计中,不同的系统具有不同的最高工作频率,该频率可以在编译报告中获得。对于Altera公司的FPGA,通过TimeQuest工具调整时序,可以提升设计工程的最高频率。一个具有良好设计的FPGA工程的最高频率可达150MHz以上。

第四,从执行方式来看,基于嵌入式平台的C/C++语言在已有的硬件结构中执行,只需正确配置相关寄存器即可。而使用硬件语言的设计则需自行设计硬件结构,在生成结构前还要经过前仿真、综合、布局布线、后仿真等步骤,开发周期较长。这一情况在较为复杂的FPGA工程设计中尤为严重。例如,一个添加了4个DDR2的IP的工程在i5处理器、4GB内存的计算机上的编译时间甚至在20min以上。

第五,从算法应用来看,ARM、DSP等处理器中集成了加法器、乘法器等运算单元,尤其是在DSP中,可以在一个周期内进行8位×8位甚至16位×16位的乘法运算。同时,这些处理器还支持浮点运算。而FPGA对这部分运算并不擅长,即使在较为简单的加法运算中,若进行加法的两个数据具有较高的位宽,由于传统的加法中的进位方式是串行结构,所以在其生成的结构中会产生较长的门延时,从而会降低时序的余量,甚至会降低系统编译后的最高工作频率。

第六,从算法设计来看,在ARM、DSP等处理器中设计算法时,需要提前构思算法的流程图,然后再进行代码的编写。在FPGA中设计算法时,主要包含面向状态的设计、面向活动的设计和面向结构的设计三种设计方式。

(1)面向状态的设计是以状态机为代表的设计方式,即通过控制信号和时序信号触发状态机进行状态的迁移。状态机的设计是FPGA开发中必不可少的环节,这部分内容将在本书后续章节中详细叙述。

(2)面向活动的设计是以数据流和流程图为代表的设计方式。尤其是在传输系统、实时算法设计中,常使用基于数据流的设计方式。常见的数据流的设计方式包括数据的寄存器同步缓冲、数据传递、数据运算与流水设计、数据的存取等。

(3)面向结构的设计常用于较大的系统设计中,用于描述模块与模块、单元与单元之间的互联关系,主要包括数据信号与控制信号。根据不同的层次描述,主要可以分为系统级结构描述、寄存器级结构描述、门级结构描述等。

为了解决这些硬件工程师所面临的问题,Altera、Xilinx等公司不遗余力地对开发平台进行完善,以下用Altera的解决方案为例进行讲解。

针对第一点提及的设计语言的问题,Altera推出了Platform Designer等片上软核,使开发者在FPGA中同样可以使用更为灵活的C语言进行编程。Platform Designer中包含了片内、片外存储器、定时器及各种接口等IP,使开发者可以按需定制自己的片内处理器。使用这种方式,在一定程度上缓解了硬件描述语言开发周期过长的缺点,也可作为一种对FPGA系统进行前期功能验证的有效手段。

针对第二点提及的通用模块或接口占用开发周期的问题,Altera公司及其供应商设计了大量IP,包括运算类、通信类、数字信号处理类、门类、输入/输出类、接口类、JTAG扩展类、存储类等多种类别。这些IP经过严格测试和优化,其中部分IP免费,如SOPC中应用的大部分IP都是免费的。

值得注意的是,尽管大部分基本功能的IP可以在不同系列的FPGA间通用,但是仍然有一些IP并不支持所有系列的FPGA,因此在使用这些IP在不同系列的FPGA间进行工程移植时需要注意。可以在Quartus II的MegWizard管理器中查阅所使用的IP是否支持当前芯片,也可以在官网查阅。Altera公司产品支持的所有IP及其适用系列可参考以下网址:www.altera.com/products/intellectual-property/overview.html

对于第三点提到的工作频率的问题,不同的处理器具有不同的应用领域。在高速数据处理过程中,ARM、DSP等固然可达到较高的工作频率,然而相对于FPGA,其高速的优势仅体现在串行结构的算法中。在FPGA的设计中,可利用其硬件设计的灵活性,采用并行算法或将串行算法改造为并行算法,然后在FPGA中实现。经测试,在工作频率为1GHz的DSP中(TMS320C6416),对SDRAM中分辨率为2048像素×2048像素的图像进行中值滤波后重新写入SDRAM,耗时为7s;而在FPGA中,完全可以在图像输入时进行实时处理,仅消耗几个时钟周期的处理时间,近似可认为0延时—实时。

对于第四点提及的编译时间过长的问题,Altera公司致力于开发新版本的平台,在提升编译效率的同时,增加了增量编译的功能。配合区域锁定,可以锁定已编译过且在后续修改中没有改动过的模块,对这部分模块不再进行重新编译,从而可减少编译时间。

针对第五点提及的运算能力的问题,Altera FPGA中内嵌了多个DSP块。每个DSP块中都包含加法器和乘法器结构,根据不同系列,具有不同的数据位宽。多个DSP块中的加法器和乘法器可以互相拼接,从而支持更高位宽的运算。结合相关的运算类IP,可以利用流水线的形式完成运算,每个周期输出一次计算结果。如图1.28所示为低端Cyclone IV系列FPGA的资源列表,可以看到,与DSP相比,FPGA的内部乘法器还是相对比较丰富的(Stratix 10系列FPGA最多有近4000个乘法器),并且FPGA的并行性能使其在性能上占有较大的优势。

图1.28 低端Cyclone IV系列FPGA的资源列表

最后,尽管三大处理器各有优势,但FPGA与ARM、DSP的界限正在越来越模糊,异构FPGA成为未来的趋势。例如,Altera公司的28nm Cyclone V系列FPGA,以及Xilinx公司的Zynq-7000系列FPGA,均集成了双核ARM Cortex-A9硬核。同样,Altera公司的14nm Stratix 10系列FPGA(如图1.29所示为Cyclone V系列FPGA的异构示意图),以及Xilinx公司的16 nm Zynq Ultrascale+系列FPGA,都集成了2~4核的ARM Cortex-A53硬核。随着工艺的革新,这将成为一种新的趋势,FPGA的开发也逐渐变成了异构系统开发,我们担负着PL(可编程逻辑)侧作为加速引擎的责任,将以最大限度地提升异构FPGA的性能。

图1.29 Cyclone V系列FPGA示意图