由于在传统的fpga中增加了处理器,在asic中增加了可编程性,使得这些产品的界限越来越模糊了。
fpga与以前的自己相比,现在都是摇滚明星了。不再只是一个查找表(lut)和寄存器的集合,fpga已经远远超出了现在的系统体系结构和原来只是用于证明未来asic设计架构的工具。
fpga器件系列现在包括了从基本的可编程逻辑到复杂的soc器件。在各种应用领域,汽车和其他应用领域的人工智能、企业网络、航空航天、国防和工业自动化等等,fpga使芯片制造商能够在需要时随时更新系统。在新的市场中,这种灵活性至关重要,协议、标准和最佳案例仍在不断发展,ecos需要保持竞争力。
这就是赛灵思(xilinx)公司的决策理由,xilinx在它的zynq fpga里增加了一个arm核处理器,以打造一个soc fpga芯片。aldec公司的营销总监louie de luna说,“最重要的是,供应商已经改善了他们的工具流程。这使得他们对zynq更感兴趣。他们的sdsoc开发环境看起来像c,这对开发人员很有好处,因为应用程序通常是用c编写的。因此,他们输入软件功能,并允许用户将这些功能分配给硬件。”
图:赛灵思的zynq-7000 soc(来源:xilinx)
这些不仅仅是soc fpga,这也是他们有自主专利的soc。
“它们可能包含若干个嵌入式处理器、专用计算引擎、复杂接口、大的内存等等,” onespin solutions的产品综合验证专家muhammad khan说。“系统架构师计划和使用fpga的可用资源,就像他们做一个asic那样。设计团队使用综合工具将他们的systemverilog、vhdl或systemc rtl代码映射到基本逻辑元件中。对于设计过程的大部分,在有效针对fpga和针对asic或全定制芯片之间的差异正在减小。”
arterisip的首席技术官ty garibay非常熟悉这种演变。“从历史上看,xilinx从2010开始形成zynq路径。他们定义了一种产品,它基本上是把一个arm soc的硬宏嵌入到现有fpga里,”他说。“后来altera雇我基本上做同样的事情。价值命题是soc子系统是许多客户想要的东西,但由于soc的性质,特别是处理器,他们不适合综合到一个fpga。嵌入到实际可编程逻辑的功能级是令人望而却步的,因为它几乎使用了整个fpga的资源。但它可以作为一个硬件功能只占fpga很小的资源。你放弃了为soc提供真正可重构逻辑的能力,但它是可编程的软件,因此它是以这样的方式来改变功能。”
这意味着可以实现一个软件可编程,一个硬宏,然后在构架中实现硬件可编程功能,他们可以一起工作,他说。“有一些很好的市场,尤其是在低成本汽车控制的地方,过去传统做法是在fpga旁边放一个中等性能的微控制器。客户只会说,‘我只要把整个功能放到fpga芯片的硬宏上,以减少电路板空间,减少bom,降低功率。’”
这符合fpga在过去30年中的演变,原来的fpga只是一组i/o的可编程架构。随着时间的推移,内存控制器被固化,以及serdes、ram、dsp和hbm控制器等等。
“fpga供应商一直不断在培育芯片,但也增加了越来越多的硬件逻辑,因为有一个很大比例的客户群需求,”garibay说。“今天发生的事情是把它扩展到软件可编程那一面,在arm soc之前我们添加的大部分东西都是不同形式的硬件,主要与i/o有关,但我们也有必要尝试通过加强可编程逻辑门来加固像dsp这样的东西,因为市场有足够的应用需求。”
01
市场视角
这样做实质上已经把fpga变成了像设计瑞士军刀一样的多可能性。
“如果倒转时间,它只是一堆luts和寄存器,而不是门,”netspeed systems的市场营销和业务发展副总裁anush mohandass说。“这里有一个经典的问题,如果你使用通用版本,并将其与特定于专用程序的版本进行比较,通用计算将给出更多的灵活性,而专用的版本会比通用版本在性能或效率上更优。xilinx和altera正试图越来越多将这两块结合,他们注意到每个fpga客户都有诸如dsp或某种形式的计算需求。因此,他们嵌入arm核,嵌入dsp核,他们嵌入所有不同的phys(物理结构)和常用的东西。并固化它,使它更有效,同时性能指标也变得更好。”
这些新的能力为fpga在各种新的和现有市场中扮演重要角色打开了大门。
“从市场的角度看,fpga肯定会进入soc的市场,”新思科技高级营销总监piyush sancheti说。“不管你做fpga还是做十分成熟的asic,都有一个经济学问题。现在这些路线开始变得模糊,我们看到越来越多的公司,特别是在某些市场上,反而做fpga产品的生产会取得较好的经济效益。”
从历史上看,fpga曾被用于原型设计,但是对于生产使用来说,它仅限于像航空航天、国防和通信基础设施这样的市场,sancheti说。“现在这个市场正在扩展到汽车、工业自动化和医疗电子。”
02
ai:fpga的一个新兴市场
那些信奉fpga的公司一般都是系统供应商/ oem,他们总是希望优化自己的ip或ai/ml算法的性能。
“他们想建立自己的芯片,对于很多人来说,开始做asic可能会有点吓人,” netspeed的mohandass说。“对于不想花3000万美元的晶圆成本来制造芯片的他们来说,fpga是一个有效的切入点,在那里他们有计划中的独特算法,独特的神经网络,用fpga设计看看是否可以得到他们正在寻找的功能。”
目前人工智能应用面临的挑战是量化,西门子业务mentor的catapult hls综合验证高级产品营销经理stuart clubb说。“我们需要什么样的网络,该如何建设那个网络,内存结构是什么?你从网络开始设计,即使只有几层,有很多数据在若干个系数中,它很快地旋转到几百万个系数,内存带宽变得非常可怕。没有人知道什么架构可行,如果答案是未知的,你就不会跳进去贸然建立一个asic。”
在企业网络领域,最常见的问题是加密标准似乎一直在变化。“把加密设计到fpga里代替设计一个asic,对加密引擎更好,”mohandass说。“或者,如果你在全球网络方面做任何类型的数据包处理,fpga仍然给会你更多的灵活性和可编程性。这就是灵活性发挥作用的地方,他们也利用了这一点。你仍然可以称之为异构计算,它看起来更像一个soc。”
03
新规则
随着新一代的fpga soc,旧的规则不再适用。具体来说,如果你在板子上调试,那你就错了,”clubb指出。“虽然在板上调试被认为是一种低成本的解决方案,这可以追溯到能够说“可编程”的早期阶段。但如果现在说,‘我发现一个bug,我可以修复它,在一天之内编程一个新的比特流,然后把它放回板子上,再找到下一个bug,’那就是疯了。这是一种被视为不关心成本的心态,就像你在做普通员工那样,管理层不会购买模拟器、系统级工具或调试器,因为‘我只是付钱给那个家伙完成任务,我会对他大喊大叫,直到他更努力工作。’”
这种行为仍然很普遍,因为有足够多的公司,他们每年都会把底部10%的员工砍掉以让每个人都保持警觉的态度,他说。
然而,fpga soc是真正的soc,需要相同的严格设计和验证方法。“事实上,可编程的构造并不真正影响设计和验证,”clubb说。“如果你做一个soc,例如,你可以做我听到的一些客户称之为“乐高”工程,这是一个框图法。我需要一个处理器,一个内存,一个gpu,一些其他的小模块,一个dma内存控制器,wifi,usb和pci。这些都是你组装的‘乐高’块。麻烦的是,你必须确认他们能工作,并且能在一起工作。”
尽管如此,fpga soc系统开发人员还是很快赶上了他们的soc兄弟们,在那里,验证方法是值得关注的。
“它们不是像原先的传统硅soc开发商那样的心态:‘这将花费我200万美元,所以我最好把它弄对。’因为fpga的失败成本很低,”clubb说。“但是如果你花了200万美元开发fpga,你弄错了,现在你要花三个月来修复bug,还有一些其他问题需要解决。需要组建多大的团队,要花多少钱,产品上市时间的处罚成本,市场在哪里等等?这些都是很难明确量化的成本。如果你是在一个消费领域,几乎不太可能去考虑用fpga,你真正关心的是它能不能赶上圣诞节前上市,所以有一点不同的优先级。考虑定制硅中做soc的总成本和风险,当你扣动扳机说:‘这是我的系统,我已经完成了,’其实你看不到那么多。我们知道,这个行业正在整合,很少有大玩家做大筹码。每个人都想办法来做,而这些正是fpga可以提供的。”
04
新的折衷方案
工程团队设计目标器件时常常会有意留出一些选项,这并不少见。sancheti说,“我们看到很多公司创建rtl并验证它,几乎不知道是去做fpga还是做asic,因为很多因素可以让这个决定改变。你可以从fpga开始,如果达到了某个量,从经济学角度考虑可能你会去做一个asic。”
这尤其适用于今天的人工智能应用领域。
“已经有一系列技术被用于人工智能算法加速,”esilicon市场营销副总裁mike gianfagna说。“显然,ai算法已经存在很长时间了,但是现在我们突然碰到更加复杂的情况是如何使用它们,颇堪称奇的是在近乎实时的速度下运行它们的能力。它从cpu开始,然后转移到gpu。即使gpu是一个可编程的通用器件,一个就可以适合所有。虽然架构擅长并行处理,因为这就是图形加速的全部内容,这很方便,这就是ai的全部内容。在很大程度上它是好用的,但它仍然是一种通用的方法。这样你就可以得到一定程度的性能和功率的覆盖。一些人接下来要转移到fpga,因为这比你用gpu可以更好地设计电路,并在性能和功率效率方面取得进步。asic对功率和性能来说是终极的,因为在那里你有一个完全定制的架构,它能满足你所需要的,不多也不少。这显然是最好的。”
人工智能算法很难映射到硅中,因为硅处于几乎不变的状态。所以在这一点上做一个全定制的asic不是一个好的选择,因为相对硅的时代它已经过时了。“fpga是很好的选择,因为你可以重新编程它们,所以在昂贵芯片上的投资也不会损失。” gianfagna说。
这里,有一些自定义内存配置,以及某些子系统功能,如卷积和转置存储器,它们被再次使用。因此,当算法可能改变时,有一些模块不会被改变/或被反复使用。他补充说。考虑到这一点,esilicon正在开发一个带有软件分析的平台来研究人工智能算法,目标是能够更快地为特定的应用选择最佳的体系结构。
“fpga为你提供了更换机器或发动机的灵活性,因为你可能会遇到一种新的网络,提交asic是有风险的,因为你没有最好的支持,以及这样的灵活性,”,esilicon ip工程副总裁deepak sabharwal说。“然而,fpga总是会在容量和性能上受到限制,所以你将无法真正达到fpga的生产水平规格。你可以玩它和归类东西,但最终你可能不得不建立一个asic。”
05
嵌入式luts
另一个在过去几年取得了立足点的选择是嵌入式fpga,它将可编程性构建为asic,而不是将asic的性能和功率优势添加到fpga中。
“fpga soc仍然主要是fpga,具有相对少量的芯片面积用于加工,”flex logix首席执行官geoff tate说。“从框图看不出规模,要看实际芯片的照片,主要面积还是fpga。但是有一类应用程序和客户,fpga逻辑和soc的部分之间的正确比率是更小的fpga,他们的rtl编程在一个更具成本效益的芯片尺寸上。”
这种方法在航空航天、无线基站、电信、网络、汽车和视觉处理领域,尤其是人工智能领域找到了牵引力。“算法变化如此之快,以至于芯片在返回时几乎就过时了”tate说。“使用一些嵌入式fpga,可以让他们更快地进行算法迭代。”
从人驾驶汽车转向自动驾驶汽车,这一点尤其明显。虽然失效和老化的问题得到了很多关注,但挑战是如何保持“优雅的退化”。根据achronix系统工程副总裁raymond nijssen的说法,“性能和质量随着时间的推移而变化,标准也是如此。对汽车识别一个孩子过街的要求是相对较新的。没有人知道规章会如何改变,或者你如何测试。但你如何测试还不知道的标准呢?”
在这种情况下,可编程性对于避免重做整个芯片或模块就变得至关重要,nijssen说。
06
设计调试
尽管这只是一部分原因,与所有的soc一样,了解如何调试这些系统,并在仪器中构建,可以帮助它们在成为主要问题之前识别它们。
“随着系统fpga变得更像soc,他们需要适用于在soc中的开发和调试方法,”ultrasoc的首席执行官rupert baines说。“有一个(也许是天真的)信念,因为在fpga上你可以看到所有东西,调试起来一定很容易。这在比特级别上是正确的,带有波形观察器,但是当到达系统级时它不成立。最新的大型fpga显然是系统级的。在这一点上,你从一个探针排列得到的波形图并不是非常有用。你需要一个逻辑分析器,一个协议分析器,以及处理器内核本身的良好的调试和跟踪能力。”
fpga的大小和复杂性要求与asic类似的验证过程。基于测试台的复杂的uvm支持模拟,通常也支持仿真。正规的工具都在这里扮演着重要的角色,从自动设计检查,到权威验证以及一系列强大的解决方案。虽然fpga可以比asic更快速、更便宜地改变,这是事实,在大型soc中检测和诊断bug的困难意味着在进入实验室之前必须对它们进行彻底的验证,onespin的khan说。
事实上,在一个领域中,对fpga soc的验证要求比在rtl输入和后综合网表之间的asic等价性检查更高。fpga的阐述、综合和优化阶段常常比传统的asic逻辑综合流程对设计有更多的修改。这些变化可以包括跨越循环边界的移动逻辑,以及在存储器结构中实现寄存器。彻底的时序电路等价性检查对于确保最终的fpga设计仍然符合rtl中的原始设计者意图是必不可少的,khan补充说。
在工具方面,也有优化性能的空间。“使用嵌入式视觉应用程序,其中很多都是为zynq编写的,每秒钟可以获得5帧图像。但如果你用硬件加速,就可以得到每秒25-30帧,这为新型器件铺平了道路。问题是,这些器件的仿真和验证并不简单。你需要在软件和硬件之间进行集成,这是困难的。如果你在soc运行所有的东西,那太慢了。它可以模拟5到7个小时,如果你用协同仿真,就可以大大节省模拟时间,” aldec’s de luna说。
简单地说,在复杂的asic中使用的相同类型的方法现在正在用于复杂的fpga中。随着这些器件在功能安全性应用中的使用,这一点变得越来越重要。
“这就是为了确保有故障传播路径,然后验证这些路径的形式化分析,” cadence的集团营销总监adam sherer说。“这些东西都是非常适合形式化分析。fpga验证的传统方法是无法完成这类验证任务的。它在fpga设计中仍然很普遍,假设它非常快,很容易达到以系统速度运行的硬件测试。即使它运行在系统速度,一个非常简单的模拟就能完成一个全面的检查。然后你编程这些器件,在实验室开始启动运行。除了实验室中的可观测性和可控性是极其有限的,这是一个相对快速的路径。因为只有在从fpga的内部拉动数据到引脚才能进行探测,这样才能在测试仪上看到它们。”
breker验证系统公司的首席营销官dave kelf同意这一点,“这使得器件验证的方式发生了有趣的转变。在过去,通过将设计加载到fpga本身并在测试卡上实时运行的方法使较小的器件尽可能多地验证。随着soc和软件驱动设计的出现,可以预期这种自我“原型”的验证方式可能与软件驱动的技术结合得很好,对于这个过程的某些阶段,它确实如此。然而,在原型开发过程中识别问题并调试它们是很复杂的。这种较早的验证阶段需要进行仿真,因此soc风格的fpga看起来越来越像一个asic。考虑到这两个过程,它们之间的协同使得过程更加高效,包括常见的调试和测试平台。新的进展,如便携式激励(portable stimulus)会提供这种协同性,事实上,使得soc fpga更易于管理了。”
07
结论
sherer说,展望未来,用户正在寻求把那种在asic世界更严格的工艺整合到fpga。
“有大量的培训和分析,他们希望在fpga中有更多的技术用于调试,以获得这样的支持。”他说。“fpga社区倾向于落后于现有技术,倾向于使用非常传统的方法。因此,他们需要在空间、规划和管理、需求追溯等方面进行培训和培养意识。来自soc流程的那些元素在fpga中是绝对必要的,而fpga本身并没有推动这个那么多,而是那些最终应用的工业标准在推动它。需要对在fpga环境下工作的工程师进行再培训和再教育。”
在大量需要灵活性的应用驱动下,asic和fpga之间的界限正变得模糊,系统架构越来越多地结合可编程性与硬件逻辑,以及工具,这些现在都适用于两者。这种趋势不太可能很快改变,因为许多新应用领域要求的这些组合仍然还处于萌芽阶段。
恩智浦联手同济大学、上汽集团等企业启动智能网联汽车大规模路测
新能源车将进入置换期 动力电池回收利用方案仍然处于摸索阶段
Molex业界首个生物塑料树脂连接器获得第三方环境声明验证
无线充电并不神秘,反而是鸡肋?
什么是脉冲电位器?它和普通电位器一样吗?
展望未来,把在ASIC世界更严格的工艺整合到FPGA
声学防水膜和声学防水网之间的区别是什么
U-SAM芯片组为日本非接触支付技术铺平道路
Nacos+@RefreshScope为什么配置能动态刷新?
了解LED 让你花更少的成本做出优美的设计
基于单片机的数字频率计的实现论文分享
高频放大器和低频放大器有何不同
基于CSU8RP3429的LCD移动电源设计
通信安全必学的十个基本技巧
温湿度传感器带来了更好的包装产品
我国工业控制领域信息安全态势又发展如何?
京东再次为低俗广告道歉
云计算市场竞争激烈 百度云借AI发力 浪潮云占坑
数字电视概述(DTV)
医疗器械与药物“异花受粉”带来的机遇与挑战