作者| 薛定谔的咸鱼

2020年12月11日,提起5G大家很容易想到华为,在华为的5G基站中有一类芯片,它的存在感不是很强,但它的作用很大,它就是FPGA芯片。

什么是FPGA芯片?

如果我们想快速了解一款芯片,最简单的方法就是调查它功能和用途,但这个方法对于FPGA来说并不适用。

如果你真的去查FPGA的应用场景,你会得到一个很长的名单,比如:通信网络、物联网、信息安全、数据中心、人工智能、卫星导航、医疗器械、图像处理、视频编码、云计算、军工等等。

可能有些人查到一半就开始懵了,FPGA芯片的应用范围跨越了太多行业。那么FPGA芯片到底是什么呢?

答:是白纸。

如果我们把其它各种专用芯片比作不同风格的画作,那么FPGA芯片就是白纸。我们可以在白纸上画出各种不同风格的画作,这就是FPGA。

假如你是一块FPGA开发板,你在大学实验室里的一天可能是这样度过的:

清晨,一批大二学生进入了实验室。他们为了完成昨天晚上未完成的项目,开始急匆匆的调整着相关的硬件。最终,他们完成了,FPGA开发板变成了音乐播放器。

中午,一帮大三学生赶到了实验室,他们要参加省里的智能小车比赛。还是这块FPGA开发板,这回被他们借去测试智能小车的代码。

下午,一个大四的学生来到了实验室,还是借这块FPGA开发板。不过他是用来做毕业设计的,他要做一个电梯的控制模块。

就这样,一天过去了。同样一块FPGA开发板,上午它是音乐播放器,中午它是智能小车,下午它又是电梯控制模块。只是因为每次刷入的代码不同,FPGA芯片就具备了完全不同的功能,这就是FPGA的神奇之处。

FPGA的特点

首先一大特点就是灵活性,FPGA就像上文所说的“白纸”一样,可以通过“刷代码”的方式改变用途和功能。

对于数据中心来说,很多机器是面向不同客户出租的,因此硬件的用途经常会发生改变。而这时如果用FPGA作为加速卡就会非常方便了,设备用途改变的同时,FPGA这边也同步进行改变就可以了。

特别是对于人工智能领域的优势更为明显,比如现在流行一种神经网络,没准过一段时间另一种神经网络又变得热门了,而且算法也会随之时间不断更新。这种情况下可能就需要不断更换硬件,最大限度的去贴合算法需求。而FPGA就方便很多了,需要进行调整的时候重新刷入就可以了,在节约时间的同时也减少了成本。

FPGA除了灵活性以外,另外一大特点就是并行了。如何理解并行呢?

比如我们在周末要做家务的时候,用洗衣机洗衣服15分钟,洗菜5分钟,做饭20分钟。那么一共需要多少时间呢?如果顺序进行这些家务的话,那就需要40分钟。但是我们可以发现,在洗衣机洗衣服的时候我们是可以同时干其它家务的,这样一来我们只需要25分钟就可以做完这些家务了。

由此可见,并行可以大大提高效率,也正是因为这样,FPGA可以帮助CPU加速计算。

但值得说明的是,不是所有任务都适合并行。比如我们必须在洗完菜之后才能做饭,这两个任务就不能并行完成。因此FPGA的加速往往是针对一种或者一类任务,并不会像CPU那样解决所有问题。

FPGA和ASIC

FPGA全称现场可编程逻辑门阵列,它属于一种半定制电路。而ASIC称为专用集成电路。

这两个其实都可以算是“白纸”,只不过在FPGA的“白纸”上我们画的是铅笔画,而设计并制造ASIC芯片时,我们是在“白纸”上画水彩画。

两者其实都具有相当的灵活性,只不过对于ASIC来说,当水彩画完成也就是芯片造出来的时候,就已经没有什么修改的空间了。而FPGA的铅笔画是可以擦了重新画的。

另外一方面,如果对于同样一个电路,其它条件也大致等同的情况下,ASIC的性能是比FPGA强的。就像水彩画比铅笔画色彩更鲜艳。因此如果一个电路在后期不需要更改的情况下,出于性能(功耗、速度、芯片面积)方面的考虑,选ASIC更合适。

当然以上所说的只是性能方面的考量,在实际选择中还会有其它因素的影响,比如成本。

ASIC的起步成本是十分高昂的,对于一些先进的工艺制程来说,流片一次的成本就可能直接上亿。而FPGA的起步成本非常低,在淘宝上就能以几百块包邮的价格买到相应的开发板。而且由于ASIC制造之后不可更改,所以就有可能因为设计不合理或者相应产品在市场上反馈不好,以至于相关开发成本打水漂的情况。对于FPGA来说就很少有这方面风险了,如果设计有问题,后期还可以再次调整,即使项目规划有问题,买入的FPGA芯片也可再次出售或用在其它项目中。但另一方面,ASIC规模化生产后边际成本非常低,而基于FPGA设计的产品则难以通过大批量生产获得边际成本红利。

举例来说就是,今天想吃羊肉串,ASIC就像自助餐,进门费用很高,但进去之后吃三串和吃十串费用上的区别就不大了。而FPGA就像一般餐馆,基本没有最低消费,进去点多少吃多少。但是很少会因为你点的多就给你优惠。但芯片总会要更新的,就想吃羊肉串吃多了会腻,之后可能就想吃排骨了。但是在这个自助餐店里没有排骨。那怎么办呢,去另一家有排骨的自助餐餐厅里重新交钱吃,这就是ASIC成本上的特点。但对于FPGA来说,换一家餐厅点餐就可以了,反正都没有最低消费。

因此,对于一些中小公司来说,如果他们的产品对于性能有一定要求,需要相对先进的工艺制程的话,他们根本负担不起一次先进工艺的流片费用,那么只能选择FPGA了。如果他们的产品对于性能要求不是很高的话,就有可能选择成熟工艺的ASIC,老工艺的流片成本还是比较低的。

而对于大公司就要分情况讨论了,如果目标产品需要经常改变,那么就用FPGA。如果目标产品只是开发初期需要经常改变,但定型之后不会修改的,那么就在初期选择FPGA,在定型后转向ASIC。如果一个芯片产品已经有了相当的开发经验,在第二年只是推出新款的话,也有可能直接使用ASIC。

另外一方面,就是开发周期了。先进工艺的流片费用很高,除了高昂的费用之外,它的开发周期也相对较长。ASIC芯片制作过程也是很花时间的,所以有些公司为了让自己的产品更快上市,占据相应的市场,也会选择FPGA。

国产FPGA

根据网络公开资料整理

以2018年的数据为例,在全球FPGA市场上,Xilinx(赛灵思)、intel(英特尔)、Microsemi(美高森美)、Lattice (莱迪思)这四家公司就占据了大概96%的市场份额。这四家公司和排名第五的QuickLogic均是美国公司,而且在市场占有率仅为2%的其它公司中,也还包含着一些美国公司。

国内的一些FPGA公司比如紫光同创、复旦微电子、高云半导体等企业尚在发展阶段,与国外一些先进的FPGA公司之后仍有一定差距。

工艺上的差距

截取自Xilinx官网

截取自intel官网

以Xilinx和intel,这两家公司都提供了不同工艺制程的FPGA产品,这样就可以更好的满足不同需求不同预算的客户。其中Xilinx的FPGA产品目前所采用的最先进工艺为16nm,而intel为10nm。(仅统计目前官网上展示的FPGA产品,故未统计例如Xilinx 7nm工艺的ACAP类产品)

截取自紫光同创官网

而国内FPGA厂商,以紫光同创为例,其目前的FPGA产品种类相对较少,目前其官网上的FPGA产品所采用的最先进工艺为40nm。大概今年3月,紫光同创发布了28nm工艺的Logos-2系列FPGA,但目前在官网的产品页上未找到相关信息,仅有发布的新闻资讯。

截取自intel官网

另一方面,以intel的Stratix系列FPGA为例,其40nm产品Stratix IV推出年份为2008年,28nm产品Stratix V推出时间为2010年。

推广上的差距

对于FPGA产品来说,除了向企业推广以外,向学校推广也是非常重要的。一般来说FPGA厂商提供的并不只是FPGA芯片,而是包括EDA工具在内的相对完整的解决方案。各家厂商一般都会有自己的EDA工具,比如Xilinx的Vivado、intel的QuartusII、紫光同创的PDS,这些都属于各家的FPGA软件工具。不同软件在功能和使用习惯上是有差异的。所以如果能让学校里这些未来的FPGA工程师们能先习惯使用自家的EDA工具和芯片是非常重要的。

就像现在桌面操作系统有两大厂商,推出WINDOWS操作系统的微软和推出MAC操作系统的苹果。如果学生在学校期间经常使用WINDOWS系统的话,那么他毕业之后也会倾向于使用和购买搭载WINDOWS系统的设备。如果经常使用MAC系统的话也会倾向于购买苹果的设备。

以清华大学为例,早在1994年,Xilinx就在清华大学成立了中国大陆第一个培训中心。

数据来自BOSS直聘

在boss直聘上,清华大学招聘FPGA工程师的岗位描述上明确指出了需要熟悉Altera/Xilinx FPGA设计流程。

数据来自BOSS直聘

数据来自BOSS直聘

也有很多其它企业招聘FPGA工程师时会明确要求掌握intel(Altera)/Xilinx的设计流程,少数企业也会要求掌握Lattice的设计流程。由此可见,intel和Xilinx的推广是比较成功的,紫光同创其实也在朝这个方向努力。

出自第七届大学生集成电路设计·应用创新大赛杯赛题目

以2017年第七届大学生集成电路设计·应用创新大赛-紫光同创企业杯为例,在紫光同创企业杯的各种赛题中,设计要求里都会有一条:使用紫光同创Titan系列FPGA进行设计。紫光同创就是通过这样的方式来推广自己的产品。

这样一些,部分相关专业的大学生在毕业之前就能获得紫光FPGA的开发经验,并且开始熟悉紫光FPGA的开发流程。不过这种推广具体反馈到企业那边的效果如何,这还需要时间的检验。

挑战

由于美国出口管制实体清单以及一系列美国政策的出现,很多中国企业都开始着手于“国产替代化”的事业。特别是针对像FPGA这样由美国公司达成高度垄断的市场,国产替代化的重要性不言而喻。这对于像紫光同创、复旦微电子、高云半导体这些国产FPGA厂商来说是机遇。目前国内FPGA厂商的FPGA芯片和EDA工具与美国大厂相比仍有一定差距,因此目前国产厂商的FPGA产品尚不能完全替代美国的FPGA产品。而追上这些差距对于国产FPGA厂商来说也是一大挑战。