eFPGA是什么?几个关于eFPGA的常见迷思

efpga,全称为嵌入式fpga(embedded fpga),顾名思义是将类似于fpga的可编程逻辑阵列“嵌入”到asic或soc中。在老石之前的文章《xilinx到底有没有赢得微软的fpga订单》中,提到了facebook可能会采用类似efpga的方法,作为自家数据中心的计算加速芯片。
在本文中,老石收集整理了几个关于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的有力补充。相信在大数据和人工智能时代,这些可编程逻辑芯片一定会有着更加广阔的应用。

中国芯之路:满地泥泞亦要前进
海康机器人CS系列可满足3D检测应用当中多样、复杂需求
东芝推出中国数字电视规范信号接收解调器IC
爱芯科技完成新一轮品牌升级 比亚迪获“2021年深圳市质量创新奖”
HDMI/DVI新技术与芯片及其应用
eFPGA是什么?几个关于eFPGA的常见迷思
谷歌拒绝军方资金参与其机器人研发项目
电容基础知识讲座
如何选择合适的电脑主板品牌新电脑为什么要进行烤机
Enabling Test Modes on the MAX
AMS与欧司朗的业务合并协议谈判取得了进展
揭秘魅族负资产的背后,阿里既然占有将近30%的股份
拦住对手:新款Blackfin处理器树立高性价比新标杆
印度拟限制中国手机价格?中方回应
吸尘器无刷控制板深圳生产厂家
锂离子电池是锂电池吗?
思岚推出Athena机器人开发平台,有望主导机器人开发平台未来市场
MIPI CSI-2 相机规格增加了先进的始终在线成像解决方案
长期戴耳机听力下降,我们该如何使用耳机才能保护听力
服务机器人优胜劣汰不断洗牌 目前还处于手机业“大哥大”时代