FPGA全称是现场可编程门阵列(Field Programable Gate Array),名字比较长,我们分成两段来理解。
首先是“现场可编程”,FPGA是硬件可编程,不需要把芯片拆下来送回厂家,在现场就能进行编程调试,灵活性非常高。
这种编程和我们熟知的软件编程不一样,传统的单片机编程往往通过改变寄存器的配置来实现,并不会改变芯片的逻辑功能,而FPGA不同,通过编程,你甚至可以让一个网络通讯芯片变成视频处理芯片,而实现它的原理,就是“门阵列”。
你可以简单地把“门”理解成一种开关,它可以控制电路信号的高低,从而表示最简单的二进制:0和1。在电路中,我们可以设定当两个输入都为“1”时,输出才能为“1”,否则为“0”,这样就制造了一个最简单的逻辑门。
无数逻辑门相互连接,控制着输出结果,它们构成了集成电路的基本组件,也是芯片的最底层构造。
现在,我们把逻辑门构成的所有组合汇聚成一张查找表(Look-up Table,LUT),再把无数查找表阵列起来,并且给予这些查找表互相连接的能力,就构成了FPGA的基础结构。
这感觉就好像我们都玩过的接水管游戏,不同的是,每块水管里仿佛都有一套可以任意组合的乐高积木,而每块水管又都可以朝着四面八方连接,就连水流的方向和速度也能改变,可以说,FPGA的编程是从底层改变了芯片的逻辑结构,“万能芯”的称呼一点也不过分。
那么如此强大的FPGA为什么没有取代传统的芯片呢?
实际上,可编程芯片从70年代就已经诞生了,FPGA诞生至今也有近40年,但由于它的特殊性,成本较高,开发门槛大,因此会更适合一些特殊场景。
比如标准或协议经常更改的无线通信;需要兼容多种协议的数据中心互联;加密方式经常变化的军工行业;或者一些密集计算及处理协议的场景,像是视频编码、人工智能、网络处理等。
而更广泛的场景下,传统芯片仍占据较大的优势。
但从2016年至今,全球FPGA市场规模都在不断扩大,预计2025年将达到125.8亿美元。FPGA的高灵活性是其他逻辑芯片无法达到的,相信未来会有更多丰富的应用场景。