一、FPGA技术实现所能够带来的潜在优势
(1)灵活性
可重编程,可定制;易于维护,方便移植、升级或扩展;降低NRE(即一次性工程费用)成本,加速产品上市时间;支持丰富的外设接口,可根据需要配置;
(2)并行性
更快的速度、更高的带宽,满足实时处理的要求;
(3)集成性
更多的接口和协议支持;可将各种端接匹配元件整合到器件内部,有效降低BOM成本;
单片解决方案,可以替代很多数字芯片减少板级走线,有效降低布局布线难度。
二、FPGA技术的局限性
(1)绝对性能受限:在某些性能上,FPGA可能比不上专用芯片;或者至少在稳定性方面,FPGA可能要逊色一些;
(2)灵活性是否适用:如果设计不需要太多的灵活性,FPGA的灵活性反而是一种浪费,会潜在的增加产品的成本;
(3)功耗相对较高:相比特定功能、应用集中的ASIC,使用FPGA实现相同功能可能产生更高的功耗(相比GPU,则单位性能功耗低很多);
(4)设计复杂性高:在FPGA中除了实现ASIC所具有的复杂功能,还得添加一些额外的功能,实属一大挑战。FPGA的设计复杂性和难度可能会给产品的开发带来一场恶梦。
三、是否适用FPGA技术来实现目标产品?
可升级性、开发周期、产品性能、实现成本、可用性、其他限制因素。
四、FPGA应用
(1)逻辑粘合
如一些嵌入式处理常常需要地址或外设扩展,CPLD器件尤其适合。今天已经少有项目会选择一颗FPGA器件专门用于逻辑粘合的应用,但是在已经使用的FPGA器件中顺便做些逻辑粘合的工作倒是非常普遍的。
(2)实时控制
如液晶屏或电机等设备的驱动控制(不停的送数据,实时的刷新),此类应用也以CPLD或低端FPGA为主;
(3)高速信号采集和处理
如高端AD前端或图像前端的采集和预处理;近年来持续升温的机器视觉应用也几乎是无一例外的都使用了FPGA器件。
(4)协议实现
如更新较快的各种有线和无线通信标准、广播视频及其编解码算法、各种加密算法等;诸如此类小批量、定制化、更新换代频繁的应用使用FPGA比ASIC更有竞争力。
(5)各种原型系统验证
FPGA支持丰富的接口协议标准,可定制性强;芯片原厂使用FPGA搭建芯片的验证系统。
(6)并行计算(算法实现)
传统的CPU计算受限于其串行顺序处理的架构,已经很难适应今天的云计算和数据中心对大数据运算的需求;而FPGA与生俱来的并行性与灵活可编程特性是其进入高速运算领域的一大优势;
GPU虽然一直是并行处理的主流方案,但也受限于极高的成本和功耗代价;相比之下,单位功耗性能是GPU的3-4倍的FPGA则大有取代之势。
(7)片上系统
单芯片,集成度高,布板面积最小化;既有成熟的ARM硬核处理器,又有丰富的FPGA资源(IO资源、RAM资源、乘法器资源等),内部灵活和高吞吐量的高速互联。如Intel-Altera公司的Soc FPGA和Xilinx公司的Zynq。