eFPGA与FPGA的区别?eFPGA又是什么?

HOTKING2019-10-25 12:00:00eFPGAFPGA

和ASIC相比,绝大多数的FPGA设计都无法达到同样的运行频率。其实,FPGA并非以高时钟频率取胜, FPGA的高性能主要是通过极高的硬件并行处理能力、深度流水线、以及高位宽总线等方式取得。

eFPGA,全称为嵌入式FPGA(Embedded FPGA),顾名思义是将类似于FPGA的可编程逻辑阵列“嵌入”到ASIC或SoC中。在本文中,作者收集整理了几个关于eFPGA的常见迷思,以及对应的解答和讨论,谨供各位参考。

eFPGA性能指标相关的迷思

1. eFPGA的工作频率能否达到我的设计要求?

和ASIC相比,绝大多数的FPGA设计都无法达到同样的运行频率。其实,FPGA并非以高时钟频率取胜, FPGA的高性能主要是通过极高的硬件并行处理能力、深度流水线、以及高位宽总线等方式取得。

入式FPGA,即eFPGA的本质也是可编程逻辑阵列,因此单就运行频率而言并不能和ASIC相比。

不过,业界和学术界也在不断研究如何突破FPGA的频率限制,例如,英特尔在新一代的高端FPGA产品Stratix10中采用了HyperFlex架构,如下图所示,在可编程逻辑单元之间引入了多个寄存器阵列,可以将FPGA的运行速度增加1.5~2倍。

在老石的博士研究课题中,老石发现很多应用场景对误差的容忍度很高,因此对FPGA进行简单的“超频”操作就可以极大提高FPGA的性能,代价仅仅是出现概率极小的精度损耗 。

2. eFPGA的功耗会不会太大?

这个问题的答案应该是否定的。不仅如此,eFPGA的功率密度通常远低于FPGA,或者ASIC与SoC上的其他IP。

对于传统的FPGA而言,它主要的“功耗大户”之一是FPGA的可编程I/O部分。而eFPGA直接通过芯片上总线与ASIC的其他IP相连,直接去掉了原FPGA的I/O部分,从而将削减了大部分功耗。

另一方面,如上一个问题提到的,eFPGA的频率远低于ASIC或SoC上的其他IP,使得eFPGA的动态功耗相对较低。

3. eFPGA能否为我的设计提供足够的带宽 ?

同样的,对于传统FPGA设计而言,系统性能很多时候直接受到FPGA芯片的I/O引脚数量的限制。特别是对于很多通信、网络、高性能运算的应用而言,需要FPGA芯片提供大量高性能SerDes收发器以及通用I/O引脚,以便于外部系统进行数据交换和传输,而这通常受到芯片封装技术的限制。

与此相比,eFPGA没有引脚数量限制,因为它本质上就是集成在ASIC里的IP核。因此与FPGA相比,eFPGA与ASIC或SoC的通信带宽可以提升10倍以上。事实上,这也是eFPGA产生和使用的主要推动因素之一。

eFPGA不需要芯片与芯片间的连接,而是直接通过芯片上不同IP的连接进行通信,极大提升了通信带宽,并减少了通信延时。


4. 使用eFPGA会导致芯片面积过大?

ASIC或SoC工程师在第一次看到FPGA时通常会被FPGA芯片的大小吓到,因为通常FPGA芯片实在是太大了。可以看下图,感受一下FPGA与英特尔Atom通用处理器芯片大小的对比。

通常来讲,FPGA的主要芯片面积一半是可编程逻辑单元,另一半则是可编程的I/O及相关电路。可编程I/O是FPGA安身立命的法宝之一,它使得FPGA可以与包括微处理器、ASIC、存储器、以及其他FPGA在内的几乎其他任何芯片或系统相互通信。这也是为什么可编程I/O部分的芯片面积为何如此之大的原因。

与FPGA相比,eFPGA不需要实现可编程的I/O部分,因为与eFPGA相互通信的ASIC IP在设计时就已固定。当去掉了可编程I/O部分之后,对于同等逻辑密度的FPGA而言,eFPGA的芯片面积会极大缩减。

5. 使用eFPGA的成本会很高?

老石对成本方面的问题并不了解,但是,eFPGA的主要提供商之一,Achronix公司的市场部副总裁Steve Mensor称:使用eFPGA的成本“并不会比其他IP更贵”。

老石认为,使用成本应该从两个角度来看。 第一是用户直接付出的金钱成本 ,即购买芯片或IP付出的金钱。 另一个则是所购买的IP能提供的功能多样性 ,即实现某种功能所分摊的成本。对于FPGA或eFPGA而言,它们最强大的功能是可以实现不同的用户逻辑,并且在芯片流片后还能进行功能逻辑的修改,因此能大幅降低SoC和ASIC的开发风险,并提高设计的灵活性。

eFPGA开发相关的迷思

1. eFPGA的开发流程与传统ASIC或SoC的开发流程差别太大?

eFPGA的流程与传统FPGA、ASIC或SoC的开发流程并无二致,总结起来都是逻辑综合、布局布线、时序优化等。和FPGA相同,eFPGA开发完成后也会生成一个二进制配置文件(bitstream),用来对可编程逻辑进行配置。包含eFPGA的SoC开发流程如下图所示。



与其说与ASIC或SoC的开发流程不同,不如说是开发工具有很大差别,这样就引出了下一个问题。

2. eFPGA的开发工具尚不成熟?

不管是对于FPGA设计,还是ASIC或SoC设计,开发工具一直是体现一个公司综合实力的精髓所在。

芯片开发工具可以大致分成两个层次, 一个是用来设计芯片本身 ,主要是各大EDA公司如Cadence和Synopsys的软件套件,涵盖了芯片设计的各个阶段。 另一个则是用来开发芯片应用的软件 ,例如用于FPGA开发的英特尔FPGA的Quartus Prime和Xilinx的Vivado等,这些软件决定了FPGA是否便于用户使用,因此是这些公司真正的“皇冠上的明珠”。

作为eFPGA厂商而言,提供便于使用且性能稳定的开发工具是必不可少的。这需要长期的技术积累,以及广泛的用户体验与反馈。老石相信,对eFPGA开发工具的研发,会是这些eFPGA厂商的重中之重。

3. eFPGA的开发难度太大?

在生产方面,eFPGA的开发和集成需要eFPGA厂商、ASIC或SoC集成商、以及晶圆代工厂紧密配合,保证在不同工艺节点eFPGA都能有效整合。然而,对于单纯的逻辑开发难度与周期而言,eFPGA与其他数字电路IP并无本质区别。

在eFPGA的配置和调试方面,也与传统FPGA没有太多区别。通过开发工具产生的eFPGA配置文件可以通过jtag或者flash等方式,对eFPGA进行功能配置。

eFPGA作为一种存在许久的设计理念,在近年逐渐重新获得人们的关注。这主要是由于eFPGA能够提供更优的系统性能与更低的芯片功耗,因此被逐渐用于5G、机器学习加速器等诸多新兴领域。

eFPGA与FPGA二者同属可编程逻辑阵列,有着共同的架构和性能特点,但又有着不同的优势和缺点。老石认为, 与其说eFPGA会替代FPGA,不如说eFPGA是FPGA的有力补充 。相信在大数据和人工智能时代,这些可编程逻辑芯片一定会有着更加广阔的应用。