FPGA的新变化

FPGA SoC通过融合FPGA和ASIC两者的元件,跨越了灵活性和性能之间的界限。但随着它们进入高安全性、任务关键型市场,它们也面临着与标准SoC相同的问题,包括在日益复杂的器件中快速传输越来越多的数据,以及在验证和调试中可能出现的一切棘手的问题。
FPGA SoC是一种混合器件,随着芯片制造商和系统公司每年要完成更多的设计工作,它正获得越来越多的关注,尤其是协议和算法仍在变化的市场中,比如汽车、医疗器械和安全性市场。使用标准的FPGA芯片可以提供必要的灵活性,但是只有ASIC才能满足更高的性能要求,无论是在新市场还是在现有的市场,如航空航天。FPGA SoC提供了一种折中解决方案,既提供了ASIC的一些性能和低功耗优势,也提供了灵活性,以避免提早过时。
但是这种复杂性也带来了SoC设计团队非常熟悉的问题。
Aldec公司硬件部总经理Zibi Zalewski表示:“FPGA的复杂性和功能日益增长,你可以在一颗FPGA中构建具有多种接口和协议的大型系统,而这种设计需要一种结构来集成不同的IP和硬件模块,使它们可以工作在各种时钟域和数据协议上。”
现代FPGA,尤其是那些具有硬核嵌入式处理器和控制器的FPGA,适用于传统逻辑FPGA和ASIC之间的某个地带,并向ASIC方向发展。Zalewski说:“我们肯定需要NoC,因为从验证的角度来看,NoC简化了接口。NoC设计允许工程团队管理顶层接口,它可以进一步用于为主机或转发器创建一个主原型通道,以进行仿真,而不是去管理多个接口,那样会增加验证过程的复杂性、时间和成本。”
这对FPGA SoC工具有一些有趣的影响。FPGA供应商通常连同他们的硬件销售他们自己的工具,这使得EDA供应商很难在这个市场上产生重大影响。但是,随着这两个世界开始合并,问题就出现了,例如,FPGA SoC是否需要使finFET成为可能的复杂工具和IP,特别是在需要可追溯性的安全关键应用中。
Cadence公司的产品管理总监Juergen Jaeger说:“当使用大容量FPGA进行设计验证和原型设计时,关键的要求之一就是要具备适当的调试功能。但是,在今天的no-NoC FPGA的架构中,提供这样的调试功能是很困难的,主要是由于FPGA中连接资源有限,尤其是因为需要所有FPGA内部路由资源来实现设计本身,并且用足够的性能运行它。此外,调试还要求能够访问尽可能多的内部设计节点(理想情况是全部节点),并将这些测试点路由到外部。这几乎是不可能的,还会导致许多挑战和调试缺陷。此处便是FPGA内部NoC可以提供帮助的地方,因为它可以提供测试许多本地节点的能力,通过NoC将数据路由到聚合器,而不会浪费宝贵的FPGA路由资源,然后通过某些标准接口(如千兆以太网)输出调试数据。”
然而,并非所有的FPGA都需要NoC。Jaeger表示:“如果是数据路径密集的设计,需要传输大量的数据,那么NoC可能会有所帮助。但是,如果设计更加以控制为中心,并且要求性能尽可能强,那么NoC的固有延迟和非确定性性质可能会适得其反。它还需要新的FPGA设计工具,可以利用FPGA内部的NoC组件。”
更低的功率
ASIC天生比FPGA更节能。现在的问题是:通过组合这些器件,以及利用为SoC开发的一些低功耗技术,比如通过NoC进行更高效的信号路由,可以减少多少功耗。
Aldec公司的Zalewski说:“NoC使FPGA资源可以由IP内核和外部接口共享,并简化了电源管理技术。使用NoC,FPGA逻辑可以被划分成不同的区域,每个区域都可以被称为路由器的单独的NoC节点处理,如果不使用的话,可以选择地关闭为睡眠模式。”
这种灵活性的概念促成了CCIX Consortium的成立,CCIX Consortium旨在为新出现的加速应用提供互连服务,例如机器学习、网络处理、存储卸载、内存数据库,以及4G/5G无线技术。
该标准旨在允许基于不同指令集架构的处理器将缓存一致性、对等处理(peer processing)等优点扩展到多种加速器件,包括FPGA、GPU、网络/存储适配器、智能网络,以及定制ASIC。
在使用FPGA加速工作负载时,这一点尤为关键。NetSpeed Systems公司营销副总裁Anush Mohandass指出,在几年前的Hot Chip会议期间,微软表示希望使用FPGA加速Bing的图像搜索,而不是在常规服务器中运行。“他们发现,使用FPGA加速图像可以提高效率、降低延迟,所以,在这个领域,FPGA可以进入最前沿。不要将它用作通用计算机,而是将其用于加速。”
事实上,Mohandass认为这是CCIX时刻背后的起源。“即使微软做到了,并且说‘我们有Xeon处理器,它是主CPU,是主引擎……’当它检测到FPGA可以做的事情时,就会抛给FPGA。如果是这样的话,那为什么要把加速器当成二等公民呢?在CCIX中,加速在字面上与核心计算集群具有相同的权限。”
当今先进的FPGA还存在其他技术问题,这些问题可能也会通过NoC结构得到解决。
Synopsys公司高级营销总监Piyush Sancheti说:“就门数和复杂性而言,每个FPGA架构看上去都像一个SoC,但现在你已经拥有了所有这些功能,很明显,你把更多的功能塞进了一个器件中,这就产生了多功能的复杂性,就像时钟一样。我们看到FPGA中的时钟结构变得越发复杂,从而产生了一大堆新问题。”
IP重用
这也简化了设计重用。Sancheti说:“通常情况下,如果设计采用任何类型的SoC环境,无论是在ASIC还是FPGA上实现,集成的IP越多,设计中的异步时钟就越多。可能有一个PCIe运行在66 MHz,设计的其他部分可能会以更高的频率运行,而这些设计并不是相互同步的。本质上,这意味着存在以不同频率运行的逻辑,但是这个逻辑是在相互通信的。这会导致时钟域交叉问题。如何确保信号从快速时钟域转为慢速信号,或从慢速转为快速时,信号是可靠的?并且你没有元稳定信号(peer processing),本质上这些信号的时序不是完全同步的。”
就像SoC设计一样,此处需要一个非常复杂的同步方案,以及确保正确同步的工具和方法。Sancheti说:“除了jelly bean系统的FPGA以外,大家都有一套完整的方法来进行时钟域交叉验证,这对FPGA设计社区来说实际上是个新鲜事。如果你把所有这些挑战都映射到设计流程和方法上,就会有新东西添加到他们的流程中,先前,他们不担心纯粹是因为他们没有那么多的IP,而且他们也没有那么多的时钟域要处理。它可以追溯到设计和最终应用的简单性。随着FPGA变得更像SoC,他们不得不应对一切SoC设计挑战。”
缩小差距
那么,如今的FPGA SoC是否足够像传统的、数字SoC那样,所有相同的规则都适用于片上网络呢?似乎或多或少有点像,但又不完全一样。
ArterisIP公司CTO Ty Garibay表示:“两家主要的FPGA供应商都有专门的片上网络工具,如果用户选择使用其中的一种,那么他们可以使用某种形式的片上网络来连接他们的功能。这更多的是一种系统的概念性方法。它是否足够像标准SoC,将NoC视为连接主干是否更有意义?许多FPGA应用都不是这样。它们看起来更像是网络芯片或主干芯片,基本上是数据流。数据从左边进来,中间经过一大堆的数据传输单元,然后数据从右边输出。这不是传统的SoC。这是一个普通的网络处理器、或基带调制解调器、或类似的东西,它是一个数据流芯片。所以在这些类型的FPGA软设计中,不需要片上网络。 ”
但是如果它在概念上看起来像一堆相互通信并且通常由中心点控制的独立功能单元,那么将这些单元连接到芯片上的软网络确实是有意义的。Ty Garibay表示:“预计下一代高性能FPGA将包含片内的硬核NoC,因为它们正在达到相当高速的数据流量——特别是当你拥有100千兆位的SerDes和HBM2的时候,此时你想通过软逻辑为每个通道提供1-2太比特,这基本上会使用掉所有的软逻辑,剩余的软逻辑不足以用于处理。”
因此,这种带宽将需要将数据传输硬件化,这与强制使用硬核DSP或硬核存储控制器的方式非常相似。未来几代FPGA可能会看起来像棋盘似的街道,此处的街道是硬核的128、256、512个12位的总线,在1-2个周期内从头走到尾,并且不会使用任何软逻辑。
Garibay说:“与此同时,还有一个综合功能,作为将这些功能硬件化到FPGA中的一部分,即为这些通道分配入口和出口,因为我们正在传输海量的数据,我不知道如何通过软逻辑做到这一点。这是真正将NoC加入FPGA的开始,因为NoC总是个好主意。”
文章来源:半导体行业观察微信公众号,ALIFPGA摘录分享
版权所有权归卿萃科技 杭州FPGA事业部,转载请注明出处
作者:杭州卿萃科技ALIFPGA
原文地址:杭州卿萃科技FPGA极客空间 微信公众号

扫描二维码关注杭州卿萃科技FPGA极客空间
FPGA的新变化的更多相关文章
- [转]Material Design Library 23.1.0的新变化与代码实战
Design Library出来已经快有一个月了,当时大概看了一下介绍这个新版本变化的译文,内容不多,给我印象最深的就是Percent lib.AppBarLayout 和NavigationView ...
- Material Design Library 23.1.0的新变化与代码实战
Design Library出来已经快有一个月了,当时大概看了一下介绍这个新版本变化的译文,内容不多,给我印象最深的就是Percent lib.AppBarLayout 和NavigationView ...
- 从iOS 11 UI Kit中谈谈iOS 11的新变化
北京时间9月20日凌晨1点,iOS 11终于迎来了正式版的推送,相信各位小伙伴已经在第一时间进行了升级.iOS 11毫无疑问是一次大规模的系统更新,UI.系统内核.锁屏等多方面都进行了不同程度的改进. ...
- Delphi XE7 GPS控件android下的新变化
Delphi XE7 GPS控件的Android新变化 GPS控件的Accuracy可以起作用了,Accuracy>0时: 1--100:ACCURACY_HIGH 101--500 ...
- 前端面试之HTML5的新变化
前端面试之HTML5的新变化 H5新增语义化标签 头部标签 <header> :头部标签 <nav> :导航标签 <article> :内容标签 <secti ...
- iOS8.3发布了Swift 1.2带来哪些新变化
苹果前几日在面向开发者推送iOS 8.3 Beta的同时,还发布了版本号为6D520o的Xcode 6.3 Beta,其中便包含了iOS 8.3 Beta和OS X v10.10 SDK,并进一步提升 ...
- [译] OpenStack Kilo 版本中 Neutron 的新变化
OpenStack Kilo 版本,OpenStack 这个开源项目的第11个版本,已经于2015年4月正式发布了.现在是个合适的时间来看看这个版本中Neutron到底发生了哪些变化了,以及引入了哪些 ...
- [译] OpenStack Liberty 版本中的53个新变化
一个新的秋季,一个新的OpenStack 版本.OpenStack 的第12个版本,Liberty,在10月15日如期交付,而且目前发行版本已经备好了.那么我们期望能从过去六个月时间的开发中获得些什么 ...
- XCode9的新变化
XCode9已经随着ios11的发布发布了,那么在这个XCode9版本中有哪些变化呢? 1 折叠代码 焦点在方法的实现体的方法名上,按comman键,则整个函数会被框住.用来标志这个方法的起点和终点 ...
随机推荐
- hdu3718
题解: 见图 按照每一个位置上有相同加一 然后km 代码: #include<cstdio> #include<cmath> #include<cstring> # ...
- mysql的sql编程
sql编程 变量 变量分为两种:系统变量和自定义变量 系统变量 系统定义好的变量:大部分的时候用户根本不需要使用系统变量,系统变量时用来控制服务器的表现的,如:auto_commit. 查看系统变量 ...
- ES6入门之对象扩展
ES5对象(超类)原有: 属性:construct构造函数 方法: object.hasOwnProperty( propertyName ) //检测是否有一个本地的属性而不是继承的,返回boole ...
- C++面向对象高级编程(一)基础篇
技术在于交流.沟通,转载请注明出处并保持作品的完整性. 概要: 知识点1 构造函数与析构函数 知识点2 参数与返回值 知识点3 const 知识点4 函数重载(要与重写区分开) 知识点5 友元 先以C ...
- .net 获取客户端Ip地址
Request.ServerVariables["REMOTE_ADDR"]来取得客户端的IP地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的IP地址,而不是真正 ...
- EasyRTMP+EasyRTSPClient实现的多路(支持断线重连)RTSP转RTMP直播推流工具
本文转自EasyDarwin开源团队成员Kim的博客:http://blog.csdn.net/jinlong0603/article/details/73441405 介绍 EasyRTMP是Eas ...
- C# 加密狗 超级狗 加密程序 程序授权示例 程序授权验证
本篇针对超级狗进行讲解,对应的超级狗套件的工具包版本为2.4版本.超级狗图片如下: 主要包含两个狗,一个是超级狗,一个是开发狗,在本博文中都是必须的.首先先安装光盘中的开发套间. 接下来就开始演示一个 ...
- (转)如何转载CSDN的文章
前言 对于喜欢逛CSDN的人来说,看别人的博客确实能够对自己有不小的提高,有时候看到特别好的博客想转载下载,但是不能一个字一个字的敲了,这时候我们就想快速转载别人的博客,把别人的博客移到自己的空间 ...
- 如何写一个LaTeX类文件,并设计你自己的简历
2017/8/29 20:26:03 原文地址 https://www.sharelatex.com/blog/2011/03/27/how-to-write-a-latex-class-file-a ...
- stm32寄存器版学习笔记10 SPI
SPI(Serial Peripheral Interface),串行外围设备接口.SPI是一种高速的.全双工.同步的通信总线. SPI接口一般使用4条线通信: MISO 主设备数据输入,从设备数据输 ...