嵌入式开发必读 | 关于FPGA,你了解多少?

2019-05-24 17:38 浏览 1813人

在嵌入式开发中,我们可能会遇到DSPASICFPGA等概念,面试、考试过程中也会问到他们之间的区别、各自特点是什么?FPGA在如今的信号处理和控制应用中已经成功取代了自定制专用集成电路(ASIC)和处理器,那么,关于FPGA,你了解多少呢?


 

 

FPGA是什么

 

FPGA,即现场可编程门阵列,是在PALGALCPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

 

在最高层面上,FPGA是可重新编程的硅芯片。 使用预建的逻辑块和可重新编程布线资源,用户无需再使用电路试验板或烙铁,就能配置这些芯片来实现自定义硬件功能。 用户在软件中开发数字计算任务,并将它们编译成配置文件或比特流,其中包含元器件相互连接的信息。

 

此外,FPGA可完全可重配置,当用户在重新编译不同的电路配置时,能够当即呈现全新的特性。 过去,只有熟知数字硬件设计的工程师懂得使用FPGA技术。 然而,高层次设计工具的兴起正在改变FPGA编程的方式,其中的新兴技术能够将图形化程序框图、甚至是C代码转换成数字硬件电路。

 

各行各业纷纷采用FPGA芯片是源于FPGA融合了ASIC和基于处理器的系统的最大优势。 FPGA能够提供硬件定时的速度和稳定性,且无需类似自定制ASIC设计的巨额前期费用的大规模投入。


 

FPGA的优势

 

性能

 

利用硬件并行的优势,FPGA打破了顺序执行的模式,在每个时钟周期内完成更多的处理任务,超越了数字信号处理器(DSP)的运算能力。在硬件层面控制输入和输出(I/ O)为满足应用需求提供了更快速的响应时间和专业化的功能。

 

上市时间

 

尽管上市的限制条件越来越多,FPGA技术仍提供了灵活性和快速原型的能力。 用户可以测试一个想法或概念,并在硬件中完成验证,而无需经过自定制ASIC设计漫长的制造过程。由此用户就可在数小时内完成逐步的修改并进行FPGA设计迭代,省去了几周的时间。

 

成本

 

自定制ASIC设计的非经常性工程(NRE)费用远远超过基于FPGA的硬件解决方案所产生的费用。 ASIC设计初期的巨大投资表明了原始设备制造商每年需要运输数千种芯片,但更多的最终用户需要的是自定义硬件功能,从而实现数十至数百种系统的开发。可编程芯片的特性意味着用户可以节省制造成本以及漫长的交货组装时间。 系统的需求时时都会发生改变,但改变FPGA设计所产生的成本相对ASCI的巨额费用来说是微不足道的。

 

稳定性

 

软件工具提供了编程环境,FPGA电路是真正的编程执行过程。 基于处理器的系统往往包含了多个抽象层,可在多个进程之间计划任务、共享资源。 驱动层控制着硬件资源,而操作系统管理内存和处理器的带宽。

 

对于任何给定的处理器内核,一次只能执行一个指令,且基于处理器的系统时刻面临着严格限时的任务相互取占的风险。 FPGA不使用操作系统,拥有真正的并行执行和专注于每一项任务的确定性硬件,可减少稳定性方面出现问题的可能。

 

长期维护

 

FPGA芯片是现场可升级的,无需重新设计ASIC所涉及的时间与费用投入。 举例来说,数字通信协议包含了可随时间改变的规范,而基于ASIC的接口可能会造成维护和向前兼容方面的困难。可重新配置的FPGA芯片能够适应未来需要作出的修改。 随着产品或系统成熟起来,用户无需花费时间重新设计硬件或修改电路板布局就能增强功能。

 

结语:随着物联网大潮的来临,市场需求在很大程度上刺激FPGA技术的应用。再加上较高级别的工具不断改进,为不同规模项目的需求和不用水平的工程师带来可重新编程的硅芯片,小编相信:FPGA技术在未来的应用前景会越来越广阔!