FPGA全称:Field Programmable Gate Array,即现场可编程门阵列。可以认为FPGA器件就是一个空白的数字电路板,它可以实现任何你想要的数字逻辑,在这个器件上,只要你能用代码吧想实现的功能写下来,FPGA就能帮你实现对应的功能。当然目前最新的FPGA通过固话IP的方式已经能够实现DSP、serders、视频处理等复杂逻辑了。
FPGA早期的功能主要是
1)逻辑粘合:在一块电路板上,可以使用一个FPGA对多个数字逻辑进行控制,通过编程实现数字电路中常用的基础功能如选择器、加法器、多路复用器等(当前实现实现这些简单的逻辑常用EPLD)。
2)实时控制:当前FPGA常用的另一个方向就是实时控制,一旦FPGA开始运行代码,它就可以看做是一个定制的ASIC,在时序逻辑下可以clk级别的处理特定逻辑,当FPGA时钟达到500M时,数据处理速度可以达到2ns级,同时,由于FPGA有丰富的布线资源,可以并行进行数据处理,数据处理效率可以达到Gbps。
3)高速信号处理:入套所述在ADDA转换、图像采集、实时数字信号处理等领域也有绝对优势;
4)IC原型验证:由于IC设计使用的也多是verilog语言,将IC代码移植到FPGA上可以快速进行FPGA功能的验证,(由于IC代码的系统级仿真非常非常慢)
FPGA的学习基础,个人认为是没有太高门槛的,有一定的数字电路基础知识,会使用verilog、或者VHDL语言即可。因为verilog语法总共就那几条,学会即可。但是要保证自己写的代码没有逻辑BUG是需要后期不断积累的。
FPGA在通信行业、图像处理、芯片验证、人工智能、导航制导等领域在数字信号处理,常用协议实现、高速接口等方面是很有前景的。
目前FPGA的主流厂商国外的有:lattice、Xilinx(比较厉害)、Intel(原altera被收购)。国内目前有紫光、安陆等厂商,目前已经成功商用