eFPGA:冉冉升起的新星,eFPGA 即嵌入式 FPGA(embedded FPGA),是近期兴起的新型电路 IP。
 
随着摩尔定律越来越接近瓶颈,制造 ASIC 芯片的成本越来越高。因此,设计者会希望 ASIC 能实现一定的可配置性,同时又不影响性能。在希望能做成可配置的模块中,负责与其他芯片或者总线通信的接口单元又首当其冲。在芯片中,模块间的通信往往使用简单的并行接口或者配合简单的时序逻辑,但是在芯片间通信时为了保证可靠性,必须通过一系列握手(handshake)协议来完成通信接口。设计者往往希望自己的 SoC 能够与市面上尽可能多的其他芯片通信,然而市场上的芯片通信接口并没有一个统一标准,同时一些通信协议也在随着时间不断更新换代,因此芯片间通信往往需要一些中介(bridge)芯片。事实上,使用 FPGA 芯片作为芯片间通信的中介已经是很常见的做法,因为 FPGA 具有可配置性,因此可以作为通用通信中介。例如,Apple 在 iPhone7 中集成了一小块 LatTIce 的 FPGA 芯片,据推测就是为了实现芯片间的通信中介和可配置互联。然而,在硬件系统中使用额外的通信中介芯片成本较高,而且也不利于维护,那么,有没有集成度更高的方案呢?这时候,eFPGA 就应运而生,通过把一小块 FPGA 电路 IP 集成到 SoC 中充当接口握手协议处理单元,可以大大提高 SoC 接口的灵活性,因此能与不同的其他芯片进行通信。
 
除此之外,随着目前异构计算架构的兴起,eFPGA 又看到了一种新的可能,即在 SoC 上实现高集成度的异构计算,让 eFPGA 随着系统的需求在处理不同的应用时配置成不同的模块。这与 Intel 收购 Altera FPGA 的终极目标相同,只是 Intel 收购 Altera 之后,Altera 的 FPGA IP 只会集成在 Intel 的芯片上,而 eFPGA 厂商则可以把 IP 提供给任何花钱购买的客户。
 
  
 
eASIC 概念第一次进入大众视野可以说是 2014 年,由 UCLA 的 Cheng C. Wang,Fang-Li Yuan 和 Dejan Markovic 等人在 ISSCC 发表的文章,“A MulTI-Granularity FPGA With Hierarchical Interconnects for Efficient and Flexible Mobile CompuTIng”。在这篇文章中,作者们通过创造性地设计互联单元,一举解决了 FPGA 的功耗、性能和成本受到布线资源限制的问题,从而使得 eASIC 集成到 SoC 中真正变为可能,而该论文也因其突出贡献获得了 ISSCC Lewis Award。之后,Cheng C. Wang,Fang-Li Yuan 和 Dejan Markovic 就利用该论文中的成果成立了 FlexLogix,推广 eFPGA 的概念,并使其真正能够商用化。
 
到了今年,eFPGA 的概念已经获得了业界的广泛认可,而该领域的公司也在慢慢变多。在前几天举行的 ARM TechCon 中,我们看到了四家公司,分别是 FlexLogix,Achronix,QuickLogic 以及 Menta。
 
FlexLogix 作为 eFPGA 的先驱,在本届 ARM TechCon 上推出的新亮点是用于 2.5D 封装的小型 FPGA 芯片。该芯片主要解决的问题是,如果 ASIC 使用成熟工艺(如 65nm)实现,但是 eFPGA 在 65nm 上跑不到预期的性能怎么办?使用 FlexLogix 的小型 FPGA 芯片,就可以把 16nm 的 eFPGA 和 65nm 的 ASIC 使用硅载片(silicon interposer)之类的 2.5D 封装技术集成到一起,从而实现客户所需要系统性能。
 
  
 
Achronix 的亮点则是高速 eFPGA IP。其最新一代的 Speedcore IP 将会在 TSMC 7nm 工艺上实现,从而实现最强的性能。另外,Achronix 的 Speedster FPGA 芯片也在出货中。作为首家 eFPGA 进入量产芯片的公司,Achronix2016-2017 年收入猛增,值得关注。
 
  
 
QuickLogic 是老牌 FPGA 厂商,现在也加入了 eFPGA 的战场,为我们带来了 ArcTIcPro 系列 IP。其主要市场是超低功耗 SoC 市场,例如蓝牙、物联网等等,它的 eFPGA 将给这些超低功耗 SoC 带来可配置性,从而实现更好的功耗与成本。另外,QuickLogic 的 eFPGA 支持以性价比高著称的 SMIC,也是其一大亮点。
 
  
 
Menta 与之前三家相比,其最大的亮点是可移植性最好,因为之前三家公司提供的 eFPGA 都是 GDS 硬 IP,而 Menta 能够提供 RTL 软 IP,因此可以轻松移植到不同的工艺上。
 
  
 
FPGA SoC:老树发新枝
如果说 eFPGA 是往 SoC 里面加入 FPGA 的话,那么 FPGA SoC 的概念就是在 FPGA 里面加上了处理器。FPGA 经过这么多年的发展,已经不只是验证设计的平台,而变成了一种独立的设计实现方式。FPGA 可快速重配置的特点使它在许多对灵活性有要求的平台如鱼得水。
 
为了能从外部方便地控制 FPGA,往往需要在 FPGA 里面实现一个微处理器以运行操作系统以及相关程序,然后把程序中可加速的部分使用 FPGA 里面的可配置逻辑高效执行。虽然程序中的大部分运算都可以由 FPGA 加速,但是操作系统部分却可能成为整体实现的瓶颈:在传统 FPGA 中,微处理器往往会用软核(如 MicroBlaze)在 FPGA 上实现,因此比起用来加速的逻辑部分,微处理器的运行速度会比较慢(时钟频率《100 MHz),从而拖慢了整体系统的效率。有鉴于此,Altera 和 Xilinx 都推出了自己的方案,即在 FPGA 芯片内集成一个微处理器硬核(如 ARM 系列处理器)。该硬核不使用 FPGA 而是由定制逻辑实现,因此可以跑在很高的时钟频率(~1GHz 甚至更高)。因此,在 FPGA SoC 中,处理器性能不再成为瓶颈,从而使整体系统实现更高性能。
 
  
 
目前 Xilinx 和 Altera 都已经推出了 FPGA SoC 相关产品,并且获得了用户的一致认可。然而,FPGA SoC 的前景远远不止 FPGA+高速处理器硬核。大家知道,FPGA 开发生态发展较慢,一个重要原因就是硬件逻辑代码编写的学习曲线非常陡峭,导致开发者敬而远之。为了减少开发者的学习成本并加快开发速度,FPGA 厂商纷纷推出高级综合工具(high-level synthesis),可以直接把 C 语言之类的高级语言翻译成 RTL,从而大大简化 FPGA 硬件开发。而 FPGA SoC 配合高级综合工具双剑合璧能让整个开发流程更简单:首先开发者用 C 写传统 ARM 上能跑的程序代码,之后高级综合工具把代码中能够用 FPGA 加速的部分转化成 RTL 并用 FPGA 硬件实现,而代码的其他部分则跑在 FPGA SoC 中的 ARM 硬核上面。这样就让高性能 FPGA 开发变得非常容易,可望在未来让更多开发者能加入 FPGA 生态。
 
eFPGA 与 FPGA SoC,谁将引领下一代可编程硬件之潮流?
那么,eFPGA IP 和 FPGA SoC,谁将在未来更受欢迎呢?笔者认为,这两种生态都表明了 SoC 在摩尔定律遇到瓶颈的今天走向可配置的潮流,只是 eFPGA 从 SoC 的角度出发,而 FPGA SoC 则是从传统 FPGA 的角度出发。这有点类似之前的微处理器,以 Intel 代表的传统处理器芯片提供商的技术发展路径是以处理器为本,并在处理器芯片中集成更多多媒体处理单元,例如集成显卡,使得处理器更接近 SoC;而以 ARM 为代表的 IP 提供商则是提供处理器 IP,为 ASIC 中集成合适的处理器 IP 成为实用的 SoC 变得更方便。这两种生态将会同时存在,然后随着市场的发展或许会在某个中间点融合在一起。让我们拭目以待!