什么是FPGA?
FPGA全称:Field Programmable Gate Array;现场可编程门阵列:
官方说法:FPGA是一种可以重构电路的芯片,是一种硬件可重构的体系结构。通过编程,用户可以随时改变它的应用场景,它可以模拟CPU、GPU等硬件的各种并行计算。通过与目标硬件的高速接口互联,FPGA可以完成目标硬件运行效率比较低的部分,从而在系统层面实现加速。
简单来说呢,FPGA就是一个可以自定义的数字芯片,只要你够NB,加上FPGA本身性能允许,它就可以变成什么样,打个比方,如果说我们自己用的电子设备的芯片是写好了的书的话,那FPGA就是一张白纸,等着你去创作,随你怎么写。写出来怎么样就靠你自己了。
FPGA、ASIC和ASSP:
ASIC即专用集成电路(Application Specific Integrated Circuit)的简称,ASSP即专用标准产品(Application Specific Standard Parts)。各种电子产品中都有他们的身影,但是这两个呢,只能针对专一功能或专一应用领域滴,打个比方,ASIC和ASSP就像专一且深情的男子,但是直男,不会改啊,FPGA和他们比较起来呢,就比较百搭,但是又不得不说,FPGA很会搭,你想让它变成什么样,就能变成什么样,你说气不气(比方有点不恰当,当个玩笑看就好了,哈哈哈哈)。
那我们为啥不都用FPGA呢,这是因为它的功耗较高、集成度和性能较低,且价格还高。但高集成、低功耗、高性能、低价格也是FPGA的发展方向,并且逐渐具备了与ASIC、ASSP相当的性能,从而可以较为广泛的使用在电子及通信设备中。
FPGA、ARM和DSP:
这三者呢,都具有与生俱来的可编程特性,ARM(Advanced RISC Machines)公司就不用说了吧,微处理器一霸,软件、技术、硬件,他们都有,ARM芯片呢,主要有一颗强大的内核,比如Cortex内核家族,再加上一些GPIO、PWM、AD/DA、UART、SPI、I2C、CAN等外设,就组成一颗ARM芯片了,ARM强在控制和管理,工业自动化应用领域较为广泛。DSP(Digital Singnal Processor),就是数字信号处理器(我没用过哈,只了解过),它呢,强就强在运算方面,能够高速、高吞吐量的进行数字信号处理,可以这么说,DSP是为各种数学运算量身打造的。
但是ARM和DSP呢,他们能做的事呢,FPGA都能做;巴特,FPGA能做的事,ARM和DSP就不一定行了,比如一些灵活性要求高、定制化程度高、性能要求也特别高的场合,FPGA再合适不过,但是确实是成本、功耗和开发难度,会让很多人望而却步。
总之,在嵌入式系统设计领域,这三者各有优劣。
FPGA两大巨无霸及小霸主
这三者呢就是Xilinx、Altera以及Lattice,半导体行业是一个看底蕴的行业,Xilinx和Altera(现已被Intel收购)是老供应商了,他们在这个行业也一直是处于统治地位的,也反映出了,FPGA技术也确实是门槛高。在漫长历史长河中,这两大巨头的斗争从未停歇哈,也是由于这样,这两家一直“彼此促进、互相激励”,但是巨头相争,总有些新人会冒头且慢慢变得强大(突然想到一句话:你要悄悄努力,然后惊艳所有人,大有这种感觉哈),Lattice就是其中佼佼者,但是,高端市场还是巨头的,其他公司也只能抢占低端市场了。