抛开FPGA不提,大家一定都很熟悉ASIC与ASSP。所谓ASIC,即专用集成电路(Application Specific Integrated Circuit)的简称;而ASSP,即专用标准产品(Application Specific Standard Parts)。电子产品中,它们无所不在,还真是比FPGA普及得多得多。但是ASIC以及ASSP的功能相对固定,它是为了专一功能或专一应用领域而生,希望对它进行任何的功能和性能的改善往往是无济于事的。打个浅显的比喻,如图1.3所示,如果说ASIC或ASSP是布满铅字的印刷品,那么FPGA就是可以自由发挥的白纸一张。
使用了FPGA器件的电子产品,在产品发布后仍然可以对产品设计作出修改,大大方便了产品的更新以及针对新的协议标准作出的相应改进,从而可以加速产品的上市时间,并降低产品的失败风险和维护成本。相对于无法对售后产品设计进行修改的ASIC和ASSP来说,这是FPGA特有的一个优势。由于FPGA可编程的灵活性以及近年来电子技术领域的快速发展,FPGA也正在向高集成、高性能、低功耗、低价格的方向发展,并且逐渐具备了与ASIC和ASSP相当的性能,使其被广泛地应用在各行各业的电子及通信设备中。
FPGA、ARM和DSP 与ASIC相比,FPGA、ARM和DSP都具备与生俱来的可编程特性。或许身处开发第一线的底层工程师要说No了,很多ASIC不是也开放了一些可配置选项,实现“可编程”特性吗?是的,但与FPGA、ARM、DSP能够“为所欲为”的任意操控一整个系统而言,ASIC的那点“可编程”性的确摆不上台面。当然,换个角度来看,FPGA、ARM和DSP都或多或少集成了一些ASIC功能,正是这些ASIC功能,加上“可编程”特性,使得它们相互区别开了,并且各自独霸一方。
ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。由ARM公司设计的处理器风靡全球,大有嵌入式系统无处不ARM的趋势。因此,我们通常所说的ARM,更多的是指ARM公司的处理器,即ARM处理器。ARM通常包含一颗强大的处理器内核,并且为这颗处理器量身配套了很多成熟的软件工具以及高级编程语言,这也是它倍受青睐的原因之一。当然了,ARM不只是一颗处理器而已,因为在ARM内核处理器周边,各种各样精于控制的外设比比皆是,什么GPIO、PWM、AD/DA、UART、SPI、IIC……一列一箩筐。ARM的长处在控制和管理,在很多工业自动化中大有用武之地。
DSP(digital singnal processor),即数字信号处理器,是一种独特的微处理器,有自己的完整指令系统,能够进行高速、高吞吐量的数字信号处理。它不像ARM那么“胡里花俏”,它更“专”。它只专注一件事,就是对各种语音、数据和视频做运算处理;或者也可以这么说,DSP是为各种数学运算量身打造的。
相比之下,套用近些年一句业内很火的广告词“All Programmable”来形容FPGA再合适不过了。ARM虽然有很多外设,DSP虽然具备强大的信号运算能力,但是FPGA眼里,这些都不过是“小菜一碟”。或许说得有些过了,但是,毫不夸张的讲,ARM能做的,DSP能做的,FPGA一定也都能做;而FPGA可以做的,ARM不一定行,DSP也不一定行。这就是很多原型产品设计过程中,时不时的有人会提出给于FPGA的方案了。在一些灵活性要求高、定制化程度高、性能要求也特别高的场合,FPGA再合适不过了,甚至有时会是设计者别无选择的选择;当然了,客观的来看,FPGA固然强大,它高高在上的成本、功耗和开发复杂性还是会让很多潜在的目标产品望而却步,而在这些方面,ARM和DSP正好弥补了FPGA所带来的缺憾。
总而言之,在嵌入式系统设计领域,FPGA、ARM和DSP互有优劣,各有所长。很多时候它们所实现的功能无法简单的相互替代,否则我们就不会见到如TI的达芬奇系列ARM中有DSP、Xilinx的Zynq或Altera的Soc FPGA中有ARM的共生现象了。
FPGA、ARM和DSP,它们将在未来很长的一段时间内呈现三足鼎立的局面。
|