FPGA简介
FPGA(Field Programmable Gate Array)于1985年由xilinx创始人之一Ross Freeman发明,虽然有其他公司宣称自己最先发明可编程逻辑器件PLD,但是真正意义上的第一颗FPGA芯片XC2064为xilinx所发明,这个时间差不多比摩尔老先生提出著名的摩尔定律晚20年左右,但是FPGA一经发明,后续的发展速度之快,超出大多数人的想象,近些年的FPGA,始终引领先进的工艺。
可编程的“万能芯片” FPGA——现场可编程门阵列,是指一切通过软件手段更改、配置器件内部连接结构和逻辑单元,完成既定设计功能的数字集成电路。
FPGA可以实现怎样的能力,主要取决于它所提供的门电路的规模。如果门电路的规模足够大,FPGA通过编程可以实现任意芯片的逻辑功能,例如ASIC、DSP甚至PC处理器等。这就是FPGA为什么被称之为“万能芯片”的原因。
FPGA 内部结构
FPGA可随意定制内部逻辑的阵列,并且可以在用户现场进行即时编程,以修改内部的硬件逻辑,从而实现任意逻辑功能。这一点是ASIC和和DSP都无法做到的。形象点来说,传统的ASIC和DSP等于一张出厂时就写有数据且不可擦除的CD,用户只需要放到CD播放器就可以看到起数据或听到音乐;而FPGA是一张出厂时的空白的CD,需要用户自己使用刻录机烧写数据内容到盘里,并且还可以擦除上面的数据,反复刻录。
可编程灵活性高、开发周期短、并行计算效率高
FPGA的核心优点:可编程灵活性高、开发周期短、并行计算可编程灵活性高。
与ASIC的全定制电路不同,FPGA属于半定制电路。理论上,如果FPGA提供的门电路规模足够大,通过编程可以实现任意ASIC和DSP的逻辑功能。另外,编程可以反复,不像ASIC设计后固化不能修改。所以,FPGA的灵活性也较高。实际应用中,FPGA的现场可重复编程性使开发人员能够用软件升级包通过在片上运行程序来修改芯片,而不是替换和设计芯片(设计和)时间成本巨大),甚至FPGA可通过因特网进行远程升级。
开发周期短。ASIC制造流程包括逻辑实现、布线处理和流片等多个步骤,而FPGA无需布线、掩模和定制流片等,芯片开发流程简化。传统的ASIC和SoC设计周期平均是14个月到24个月,用FPGA进行开发时间可以平均降低55%。全球FPGA第一大厂商Xilinx认为,更快比更便宜重要,产品晚上市六个月5年内将少33%的利润,每晚四周等于损失14%的市场份额。
FPGA比ASIC的设计流程大幅减小
并行计算效率高。FPGA属于并行计算,一次可执行多个指令的算法,而传统的ASIC、DSP甚至CPU都是串行计算,一次只能处理一个指令集,如果ASIC和CPU需要提速,更多的方法是增加频率,所以ASIC、CPU的主频一般较高。FPGA虽然普遍主频较低,但对部分特殊的任务,大量相对低速并行的单元比起少量高效单元而言效率更高。另外,从某种角度上说,FPGA内部其实并没有所谓的“计算”,最终结果几乎是类似于ASIC“电路直给”,因此执行效率就大幅提高。
FPGA限制因素:成本、功耗和编程设计
未来,如果FPGA价格到低一定程度,将替代大多数的ASIC芯片。但是,目前制约FPGA发展的三大因素主要有:成本、功耗和编程设计。
成本。如果ASIC流片量大,实现同样逻辑的FPGA成本将是ASIC的10倍以上。按照上面的初步测算,以5万片流片为零界点,低于5万片的小批量多批次的专用控制设别(如雷达、航天飞机、汽车电子、路由器,这些高价值、批量相对较小、多通道计算的专用设备)采用FPGA更加经济划算。
功耗。FPGA中的芯片的面积比ASIC更大,这是因为FPGA厂商并不知道下游的具体需求应用,故在芯片中装入规模巨大的门电路(其实很多没有使用到),行业深度报告:FPGA—大数据和物联网时代大有可为国防、汽车等,这些领域对低功耗要求不高。
编程设计。FPGA的发展中,软件将占据60%的重要程度。例如Xilinx公司60%~70%的研发人员从事软件工作。除了考虑芯片架构,编程设计时还要考虑应用场景多样性、复杂性和效率。FPGA编程需要采用的专用工具进行HDL编译,再烧录至FPGA中,其技术门槛非常高。