FPGA全称叫做Field-Programmable Gate Array, 中文全称叫做现场可编程门阵列。
FPGA是一种可编程芯片,可以在其上实现数字电路设计。比如,我们设计了一个计数器,我们可以先用Verilog HDL语言对计数器进行描述,然后通过FPGA编译器(比如Intel Quartus, Xilinx Vivado)将计数器转换成配置码流,接着将码流下载到FPGA芯片上,此时,这个FPGA芯片就相当于一个专门用于计数的芯片了。
FPGA,现场可编程门阵列(Field Programmable Logic Device),可编程逻辑器件的一种。它可以由用户来进行编程和配置,进而用来解决各种不同的逻辑设计问题。
可编程器件发展的初期主要是用来解决存储问题,随着后来的发展转向各种逻辑应用。在结构、工艺、集成度、功耗、速度等方面有了很大的提高和改进。
可编程逻辑器件的发展阶段
我们一起来了解一下可编程逻辑器件的发展历史。
可编程逻辑器件的发展主要经历以下几个阶段:
FPGA芯片内部结构
目前大部分的FPGA仍是基于查找表(LUT)技术,但是随着版本的升级,代与代之间的基本功能差别很大,在现在的FPGA内部,整合了很多常用功能(如RAM、时钟管理 和DSP)的硬核(ASIC型)功能模块。
图一 FPGA芯片的内部结构
图一给出一个通用的内部结构模型,实际上不同系列的FPGA,内部的结构都不尽相同。但是从上图我们可以看出,FPGA芯片的主要部分由6大模块,分别为:可编程输入输出单元(IOB)、基本可编程逻辑单元(CLB)、数字时钟管理(DCM)、嵌入块式RAM(BRAM)、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件模块。
目前FPGA具备的功能
经过这么多年的发展,目前的FPGA已经具备了以下的功能:
FPGA的发展方向
随着微电子技术的快速发展,速度更快、集成度更高的FPGA在不断出现,结构和工艺的提高,使FPGA的资源越来越丰富,可实现的功能越来越强大。
所以FPGA有如下的发展趋势:
FPGA在神经网络方面的应用
近两年,随着AI、神经网络技术等产业的迅猛发展,对计算力的要求越来越高,因为FPGA具有资源丰富、配置灵活以及DSP、MCU等IP集成到一起的巨大优势,所以基于FPGA的NN加速器的研究和产业化,十分火热。比如微软的Bing搜素业务等就使用了基于FPGA的NN加速器。
但是FPGA价格较贵,所带来成本上的压力,在一定上面,可能会抑制它的更大规模的使用。
小结
FPGA作为可以让用户来进行编程和配置,进而用来解决各种不同的逻辑设计问题的器件,在各种新型技术兴起的前期(之前的大数据、如今的神经网络),都表现出了非常好的活力,它降低了新兴技术研究的成本,加快了新兴技术研究的速度,在整个技术演进道路上,扮演着举足轻重的角色。
关于FPGA相关内容,我写了《浅谈FPGA技术》、《浅谈FPGA芯片结构》等多篇文章,详细介绍了FPGA的工作模式、硬件架构等内容,如果有兴趣,欢迎加关注“单眼皮老王”,阅读相关文章,更欢迎和我讨论。
希望回答会对你有所帮助,感谢。