FPGA中文全称为现场可编程门阵列(FieldProgrammableGateArray),是逻辑芯片的一种。FPGA自问世以来,经过了几个不同的发展阶段,在工艺技术和应用需求等因素的驱动下,FPGA的特性和工具都发生了明显变化,并在灵活性、性能、功耗、成本之间具有较好的平衡性。基于上述特点,FPGA芯片早期作为ASIC(专用集成电路)芯片的半定制化电路替代品应用于部分场景中,近年来,FPGA芯片在工业领域的应用范围也不断拓宽。
集成电路芯片包括数字芯片和模拟芯片两大类,数字芯片可以分为存储器芯片和逻辑芯片,我们熟知的逻辑芯片一般包括CPU、GPU、DSP等通用处理器芯片,以及专用集成电路芯片ASIC。FPGA(现场可编程门阵列,FieldProgrammableGateArray)也是逻辑芯片的一种。
数字芯片的分类
FPGA是在PAL(可编程逻辑阵列)、GAL(通用阵列逻辑)、CPLD(复杂可编程逻辑器件)等传统逻辑电路和门阵列的基础上进一步发展的产物。它利用计算机辅助设计,绘制出实现用户要求的原理图、编辑布尔方程或用硬件描述语言等方式作为设计输入;然后经一系列转换程序、自动布局布线、模拟仿真的过程;最后生成FPGA的数据文件,对FPGA器件初始化。这样就实现了满足用户要求的专用集成电路,真正达到了用户自行设计、自行研制和自行生产集成电路的目的。
FPGA与CPU、GPU、ASIC等芯片的核心区别是:其底层逻辑运算单元的连线和逻辑布局未固化。用户可通过EDA软件对逻辑单元和开关阵列编程,进行功能配置,从而去实现特定功能的集成电路芯片。而其他类别逻辑芯片,像ASIC、CPU和GPU等,物理底层逻辑单元的运算关系均已固定且不可变。简单地说,如果CPU、GPU、ASIC等是像建好的楼房,楼房中房间、走廊及楼梯等格局是已经固定了;而FPGA的内部类似霍格沃兹中的魔法楼梯,可以随时改变房间到房间的路线关系。
FPGA由可编程逻辑块(CLB)、输入/输出模块(IOB)、可编程互连资源(PIR)等三种可编程电路和用于存放编程数据的静态存储器SRAM组成。CLB是实现逻辑功能的基本单元,它们通常规则排列成一个阵列,散布于整个芯片中。IOB主要完成芯片上的逻辑与外部引脚的接口,通常排列在芯片的四周。PIR提供了丰富的连线资源,包括纵横网状连线、可编程开关矩阵和可编程连接点等,它们将各个CLB之间、CLB与IOB之间以及IOB之间连接起来,构成特定功能的电路。静态存储器SRAM用于存放内部IOB、CLB和PIR的编程数据,并形成对IOB、CLB及PIR的控制,从而完成系统逻辑功能。
FPGA的基本结构
由于FPGA需要被反复烧写,它实现的组合逻辑基本结构无法通过固定的与非门来完成,而只能采用一种易于反复配置的结构。查找表(Look-Up-Table,简称为LUT)可以很好地满足这一要求。
LUT实质上是一个RAM,当用户描述了一个逻辑电路后,软件会计算所有可能的结果,并写入RAM。每一个信号进行逻辑运算,就等于输入一个地址进行查表,找出地址对应的内容,输出结果。这样也大大加快了FPGA的运算速度。目前主流FPGA都采用了基于SRAM工艺的查找表结构,也有一些FPGA采用Flash或反熔丝工艺的查找表结构。
自问世以来,FPGA经过了几个不同的发展阶段。赛灵思于1984年发明了世界首款FPGA,接下来的几十年里,这种名为FPGA的器件,在容量和速度上都有大幅度提升,成本和能耗也大大降低。这些进步主要由工艺技术所驱动,而且人们很容易认为FPGA的发展只是随着工艺的发展简单地增大了容量。其实并没有这么简单,真正的FPGA发展之路要精彩得多。
发明时代:1984-1992年
首款FPGA,即赛灵思XC2064,只包含64个逻辑模块,每个模块含有两个3输入查找表和一个寄存器。尽管容量很小,XC2064晶片的尺寸却非常大,比当时的微处理器还要大,因此,其成本高达数百美元。在成本压力下,FPGA架构师寻求通过架构和工艺创新来尽可能提高FPGA设计效率。由于基于SRAM的FPGA面积比较大,而基于反熔丝的FPGA可以避免SRAM存储系统片上占位面积过大问题。于是1990年出现的最大容量的FPGA是基于反熔丝的Actel1280。
扩展时代:1992-1999年
FPGA初创公司都是无晶圆厂的公司,难以获得领先的芯片技术。因此FPGA开启了扩展时代。90年代后期,基于SRAM的FPGA体现出明显的产品优势,因为基于SRAM的器件可立即使用密度更高的新工艺,而反熔丝则额外需要大量时间。IC代工厂意识到只要能用新工艺产出晶体管和电线,就能制造基于SRAM的FPGA,每一代新工艺的出现都会将晶体管数量增加一倍,使成本减半,并将FPGA的尺寸增大一倍。此时,更大的FPGA设计需要具有自动布局布线功能的综合工具。到90年代末,自动综合、布局和布线已经成为设计流程的必要步骤,FPGA公司对EDA工具依赖程度大大增加。
积累时代:2000-2007年
新千年伊始,FPGA已成为数字系统中的通用组件。容量和设计尺寸快速增加,使得FPGA在数据通信领域开辟了巨大市场。然而,单纯提高容量不足以保证市场增长,FPGA厂商通过如下两种方式解决了这一挑战。针对低端市场,厂商更关注效率问题,并生产低容量、低性能的FPGA系列。针对高端市场,FPGA厂商开发了针对重要功能的软逻辑(IP)库,以获取更高性能的FPGA。此外,FPGA的设计特点在2000年代发生了改变。FPGA用户不再只是实现逻辑,他们需要使FPGA设计符合系统标准要求,这些标准主要是指信号和协议方面的通信标准,可用来连接外部组件或者实现内部模块通信。积累时代末期,FPGA已发展为集成有可编程逻辑的复杂功能集,俨然变成了一个系统。
系统时代:2008年至今
为解决系统设计问题,FPGA越来越多地整合系统模块:高速收发器、存储器、DSP处理单元和完整处理器。同时还进一步集成了重要控制功能:比特流加密与验证、混合信号处理、电源与温度监控以及电源管理等。
近年来,FPGA的开发工具也在不断发展。虽然FPGA可使用Verilog或VHDL等低层次硬件描述语言来编程,但系统FPGA需要高效的系统编程语言,目前已有多种高层次综合(HLS)工具,采用以C/C++等更高层次的语言编写算法,并将其转换为Verilog或VHDL等低层次的硬件描述语言,以便对FPGA器件进行快速编程。
经过多年发展,FPGA在灵活性、性能、功耗、成本之间具有较好的平衡性。其优势体现在以下几个方面:
设计灵活:属于硬件可重构的芯片结构,内部设置数量丰富的输入输出单元引脚及触发器。
兼容性强:FPGA芯片可与CMOS、TTL等大规模集成电路兼容,协同完成计算任务。
并行计算:FPGA内部结构可按数据包步骤多少搭建相应数量流水线,不同流水线处理不同数据包,实现流水线并行、数据并行功能。
适用性强:是专用电路中开发周期最短、应用风险最低的器件之一。
相较于CPU,FPGA并行计算能力可提升运算速率并降低时延。CPU的本质是利用大规模存储器在时间维度内复用处理单元,并在强大逻辑数据库支持下实现更多应用逻辑,但同时也会失去处理单元的并行处理能力。
相较于GPU,FPGA在功耗和灵活性等方面具备优势。一方面,由于GPU采用大量的处理单元并且大量访问片外存储SDRAM,其计算峰值更高,同时功耗也较高,FPGA的平均功耗(10W)远低于GPU的平均功耗(200W),可有效改善散热问题;另一方面,GPU在设计完成后无法改动硬件资源,而FPGA根据特定应用对硬件进行编程,更具灵活性。
相较于ASIC芯片,FPGA具备短周期、高性价比的优势。ASIC需从标准单元进行设计,当芯片的功能及性能需求发生变化时或者工艺进步时,ASIC需重新投片,由此带来较高的沉没成本以及较长的开发周期;而FPGA包括预制门和触发器,具有编程、除错、再编程和重复操作等优点,可实现芯片功能重新配置。因此早期FPGA常作为定制化ASIC领域的半定制电路出现,被业内认为是构建原型和开发设计的较快推进的路径之一。
表:四类主流芯片对比
当前,随着AI、大数据、物联网、无人驾驶等新兴技术的发展,FPGA凭借灵活性、可重构性赢得了更多增量市场。由于FPGA芯片通过专用EDA软件现场对硬件进行变成即可实现具体功能,这样的高灵活性使得其下游应用领域丰富,包括汽车电子、工业控制、军事、医疗、消费电子、人工智能等。这些领域增长明确,发展空间广阔,是FPGA芯片需求增长核心源动力。
例如,FPGA通常被应用在汽车电子领域中的网关控制器、车用PC机、远程信息处理系统;军事领域中的安全通信、雷达、声纳;消费产品领域中的显示器、投影仪、数字电视和机顶盒、家庭网络;医疗领域中的大型医疗成像设备、临床设备等方面。
在加速转型的工业领域,企业对于数据处理能力的要求越来越高。此外,随着制造业智能工厂的建设需求越来越盛,设备的高度灵活性和多功能性显得尤为重要,新设备需要具有可重新编程的能力,以应对不断变化的市场标准和多样化性能需求。FPGA的可重复编程、并行计算能力强、灵活性强等特点能很好地满足上述需求。特别是FPGA在电机控制、机器视觉、工业机器人等场景的应用成为了制造业构建智能工厂的新选择。
当前,电机控制的发展越来越趋于多样化、复杂化,FPGA芯片固有的可编程性和并行处理能力十分适合高端产品的电机控制,尤其是工业领域。FPGA以硬件方式进行并行处理,并不占用CPU资源,可以促使系统性能达到最大化。目前很多厂商会将一些优化算法整合到FPGA中,可以基于FPGA器件,通过一个平台实现多个电机控制,极大程度的提高了能源的利用效率。例如,GEMBO公司与英特尔及贝加莱(B&R)三方合作,联合开发了基于FPGA的端到端的电机控制和监控解决方案,实现电机的电流、转速和温度采集及电机进行实时控制。
在机器视觉方面,目前主流的工业相机解决方案,由于CPU的计算性能有限,对于计算复杂度很高的视觉算法,其处理速度难以满足系统实时性的需求。随着FPGA集成度越来越高,基于FPGA的嵌入式视觉系统成为机器视觉发展的重要方向。例如,英特尔®FPGA解决方案在单个FPGA上集成多种功能,如图像采集、摄像头接口、预处理和通信功能。随着摄像头传感器不断进行技术升级,智能互联网协议摄像头逐渐取代模拟摄像头,基于人工智能和深度学习的视频分析取得进展,FPGA出色的低延迟、确定性、灵活性都超出了基于视觉的系统所需的许多关键要求。
当前,工业机器人产业市场增长强劲。由于劳动力供应的短缺和成本的上升,提高流程效率和自动化程度更加迫切。因此,在制造业,能够执行各种操作和运输任务的多轴机器人的使用范围正在迅速扩大。FPGA内部丰富的布线资源、嵌入式专用IP、基本可编程逻辑单元等使其可以同时处理不同种类的任务,实现更加灵活的同时,满足一些高速接口的时序要求,这些都是工业机器人实现控制功能必备的条件。例如,工业机器人制造商安川电机为了获得更高的性能和精度,选择采用多款英特尔®FPGA,用于机器人控制和伺服控制。
可以看到,FPGA所提供的灵活性、优秀的并行计算性能可以帮助制造企业在实现数字化、智能化的条件下,极大程度地降低成本、功耗。据研究机构MarketResearchFuture(MRFR)统计,预计到2025年,全球FPGA在工业市场应用占比将从2019年的12%增长至19%,市场前景广阔。
工业数字化转型升级为FPGA的应用开辟了新的处女地,带来了良好的发展契机。但在技术壁垒极高的FPGA领域,不论是芯片架构、关键IP、高速接口等芯片硬件设计,还是设计工具和生态系统建设,都需要在正确的发展路径上不断积累和加速,才能针对不同的应用场景、市场环境,灵活应对,突破重围。
没有回复内容