FPGA是什么
我们何时能够拥有自己的CPU?这是一个国人都在问的问题。自美国发动贸易战以来,这个话题就更加被频繁提起,高端芯片的自己自足成为了压在全国工业人心头的一个大石头。然而比起CPU,有一种芯片用量少,但更加高端,更加不可缺少,那就是——FPGA。
FPGA是Field Programable Gate Array,翻译过来叫现场可编程逻辑门阵列。这种芯片和CPU这种专用集成电路(ASIC)的最大区别就是,它是一种“柔性”的芯片,可以给它烧写程序,不像CPU,芯片上这个部分干嘛,那个部分干嘛,在设计过程中就已经牢牢固化,一旦被光刻机透过掩膜完成刻蚀,这块芯片的使命就算是定了。而FPGA不同,它是由千千万万个可配置的逻辑单元(CLB)组成,这是一种基于查找表(LUT)的结构,通过对SRAM组成的查找表内写入不同的内容,来实现对FPGA的灵活配置。FPGA上的组成部分具体可以分为:可编程输入输出单元、可编程逻辑单元、完整的时钟管理、嵌入块状RAM、布线资源、内嵌的底层功能单元和内嵌专用硬件模块。各个CLB 之间的连接由一个两层金属线段的格栅组 成, 格栅的交叉连接通过配置程序控制特殊设计的传 输晶体管的通断来实现, 从而形成分布在CLB 四周的 众多可编程的互连点。
同一片FPGA在不同场景下发挥出不同的作用,而研发人员只需要用硬件语言HDL(Hardware Design Language)编程后将程序烧入FPGA就可以了。这样的工作模式使得各种电子设备的硬件成本有了非常大的下降,因为小规模生产的产品可以直接使用FPGA,而不需要单独开发一款ASIC。对于SoC设计领域,FPGA的出现也无疑是一个巨大的福音。芯片设计人员可以将电路通过HDL语言实现,写入FPGA中,然后进行验证。有任何BUG都可以在FPGA上先验证完毕后再流片,从而大大降低SoC的设计成本;不然有CPU发现一点问题就要重新流片再验证,那土豪也玩不起。
FPGA在军事、航天领域都有哪些用途?
因此在1984年Altera公司发布第一款FPGA后,就立刻得到了长足发展。FPGA应用范围非常广泛。比如在芯片设计领域的ASIC验证,设计复杂实时的数据的运算处理和控制的场景都非常需要这款灵活和便于升级的芯片。面世至今,FPGA已经应用在了消费,汽车,通信,工业控制,宇航和军事多个领域中,而这里面最先应用上FPGA的就是军事和宇航领域。
FPGA在军用领域尤其重要,多得最多的就是雷达,通信设备和电子战设备,总之,只要涉及高速信号采样的处理平台,都绕不过这个东西。具体的应用比如相控阵雷达的时空二维滤波,合成孔径雷达成像,巡航导弹的地形匹配和末端图像匹配,红外导弹的目标识别等等。我们就以有源相控阵雷达为例看看FPGA的作用。
现在有源相控阵雷达已经取代了其他种类的雷达成为了军舰,战斗机使用最多的雷达,谁家新开发的雷达要不是相控阵的都不要意思跟别人打招呼。相控阵雷达由许多个T/R器件组成,每个T/R其实都相当于一个模集成电路板,规模和你电脑上的一张声卡,网卡不相上下,甚至更复杂。这也是相控阵雷达价格为啥如此昂贵的原因。一个T/R通常由3个MMIC和1个VLSI(Very-large-scale-integration)。其中2个MMIC负责雷达波的发送和接收,1个负责移相和可变放大,而VLSI则是T/R的大脑和心脏,负责大量数据的处理和信号控制,这里就要用到FPGA了,FPGA内可以写入一些复杂的雷达处理算法,配合DSP可以实现波束控制,距离跟踪,速度搜索,脉冲压缩,波束宽带信号的匹配滤波,合成孔径等复杂功能。其运算能力不亚于一颗专用ASIC,但价格就要便宜的多了,而且一般情况下要想升级雷达,只需要升级算法重新编程即可。而x86通用处理器的算数逻辑运算单元数量较少,而且I/O引脚要么是PCIe,SATA,要么是内存接口,没有多少什么可以用的单端控制信号,用在这样的场景上显得很不合适。
美国的雷达自然不必说,雷达用的都是自家的FPGA了。而在过去相当长一段时间内,其实像我国,俄罗斯,以及具有雷达研发能力的国家其实都绕不过美国的FPGA。比如俄罗斯米格-35上的“甲虫”AESA雷达,这也是俄罗斯第一款机载有源相控阵雷达。受限于本国落后的电子技术,俄罗斯只能偷偷的用美国的芯片,不然就要到退回电子管时代了。
另一个FPGA在军事应用的例子就是导弹的导引头成像、识别的处理。现在的红外导引头,比如AIM-9X红外格斗弹的成像分辨率是640X512,已经是一幅很清晰的图像了,这时候需要FPGA通过运行图像处理算法进行降噪,图像变换,提取边缘,滤波,提取特征等一些处理。经过处理后才可以判断目标为飞机还是干扰弹。
FPGA同样可以用于宇航用途,在卫星,空间站上的电子通信系统,高分辨率相机,空间探测器上同样可以发挥作用,然而宇航级的FPGA比起商用级别的要苛刻的多,性能不一定最好,但要能够抵抗来自宇宙的高能电磁波辐射和高能粒子辐射。目前宇航级别的FPGA做的最好的还是Altera和Xilinx,而且价格贵的十分离谱。在这个领域,美国一改商用FPGA的积极推销,一片都不允许卖给中国和俄罗斯。比如XQR5VFX130-1CF1752V,这款芯片可以抗10级宇宙辐射,原厂卖3-4万美元一片,但是国内有供应商报价400万人民币一片,价格是原先的10倍不止,原因就是美国压根就不卖,而且还要严密封锁。
而美国出口的用于芯片验证的FPGA板也是价格不菲,一个板子搭配相关算法就可以卖几十万(不含税)。关键是不买还不行,因为只有美国能做啊。
我国的FPGA现状和未来方向
FPGA最初主要作为一种军事用途的芯片,而到了后来,随着汽车电子,无线通信,物联网,自动驾驶,异构计算并行计算,人工智能,甚至区块链等领域的崛起,自然而然地又成为商用和工业领域不可或缺的重要元器件。英特尔在2015年大手笔收购了Altera公司,就是为了布局未来,为了可以在自动驾驶,人工智能,5G等领域有所建树,以追求和高通的抗衡。目前全世界FPGA领域只有2个巨头,一个是Xilinx,一个是Intel(收购的Altera),这两家可以分走79%以上的的市场份额,剩余3条小鱼是Mircochip,Lattice,Quicklogic。Xilinx和Altera两家给自有自己超全的产品线,Xilinx的产品从低端到高端有Spartan -> Artix -> Kintex -> Virtex系列,此外还有个带ARM核的Zynq系列;Intel的Altera有Cyclone->Arria->Stratix系列。可以说客户想得到的所有领域和细分市场,都能在他们那里找到对应型号。
目前我国的国产FPGA有高云、安路、京微齐力、上海复旦微、紫光同创和AGM等企业,但我们的市场份额只能在那12%里找,而且也只占一部分,在民用市场中只能占据低端,近些年正向中端迈进。我们的FPGA逻辑门数量偏少,工艺较为落后。目前国产FPGA工艺普遍在45nm,55nm,而国际领先水平是28nm。
军事和航天领域上,我们对高端FPGA的需求是迫切的,不能妥协的。军舰,战斗机上搭载的先进雷达离不开高端FPGA,否则性能就会极其平庸,在作战中无法取得主动。国内的中电科和中电集团针对军用级别的FPGA研发也做出了努力。去年,在一次军民融合展会上,中国电科就展出了一款完全正向设计的3500万门级别的FPGA,随后中国电子也宣布成功设计出7000万门的FPGA。按照xilinx逻辑门数量粗略计算,这两款FPGA分别可以达到35万CLB和70万CLB,这个水平做到了xilinx高端Virtex系列的XC7V330T和XC7V690T的水平,相当于高端FPGA里的中等水平,但和最强的XC7V2000T的190万CLB这个级别相比,还是有较大差距。这样的成绩倒也没那么悲观,而且未解密水平的可能还要更好一些;但在航天领域,我们的FPGA应该还有较大差距,否则就不会出现几百万一片美国FPGA买不到的情况。
未来我国的FPGA发展,仍然是要在工艺水平和设计水平上双重追赶世界先进水平。除此之外,我们可以在嵌入式和神经网络计算和其他专用计算上与FPGA融合的路线上发展,尽快适应未来产业的发展。