芯见小科普 | “万能芯”到底是什么?一文看懂FPGA

如果说有一种芯片,它既可以成为CPU,也可以成为GPU,你一定觉得不可思议,实际上这种芯片真的存在,而且用途还很广泛,这就是我们今天要说的FPGA。视频链接:https://baijiahao.baidu.com/builder/preview/s?id=1787227197989032224

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的高灵活性是其他逻辑芯片无法达到的,相信未来会有更多丰富的应用场景。