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 操作系统的微软和推出 MacOS 操作系统的苹果。如果学生在学校期间经常使用 Windows 系统的话,那么他毕业之后也会倾向于使用和购买搭载 Windows 系统的设备。如果经常使用 MacOS 系统的话也会倾向于购买苹果的设备。 以清华大学为例,早在 1994 年,Xilinx 就在清华大学成立了中国大陆第一个培训中心。 在招聘网站上,清华大学招聘 FPGA 工程师的岗位描述上明确指出了需要熟悉 Altera/Xilinx FPGA 设计流程。 也有很多其它企业招聘 FPGA 工程师时会明确要求掌握 Intel(Altera)/Xilinx 的设计流程,少数企业也会要求掌握 Lattice 的设计流程。由此可见,Intel 和 Xilinx 的推广是比较成功的,紫光同创其实也在朝这个方向努力。 出自第七届大学生集成电路设计 · 应用创新大赛杯赛题目 以 2017 年第七届大学生集成电路设计 · 应用创新大赛 - 紫光同创企业杯为例,在紫光同创企业杯的各种赛题中,设计要求里都会有一条:使用紫光同创 Titan 系列 FPGA 进行设计。紫光同创就是通过这样的方式来推广自己的产品。 这样一些,部分相关专业的大学生在毕业之前就能获得紫光 FPGA 的开发经验,并且开始熟悉紫光 FPGA 的开发流程。不过这种推广具体反馈到企业那边的效果如何,这还需要时间的检验。挑战 由于美国出口管制实体清单以及一系列美国政策的出现,很多中国企业都开始着手于 "国产替代化"的事业。特别是针对像 FPGA 这样由美国公司达成高度垄断的市场,国产替代化的重要性不言而喻。这对于像紫光同创、复旦微电子、高云半导体这些国产 FPGA 厂商来说是机遇。目前国内 FPGA 厂商的 FPGA 芯片和 EDA 工具与美国大厂相比仍有一定差距,因此目前国产厂商的 FPGA 产品尚不能完全替代美国的 FPGA 产品。而追上这些差距对于国产 FPGA 厂商来说也是一大挑战。