新闻中心

EEPW首页 > 嵌入式系统 > 业界动态 > 当FPGA越来越像SoC,FPGA跟ASIC还有啥区别

当FPGA越来越像SoC,FPGA跟ASIC还有啥区别

作者:时间:2018-06-11来源:与非网收藏
编者按:在需要灵活性的应用、不断将可编程逻辑和硬线逻辑结合在一起的系统架构以及适用于两者的工具的推动下,ASIC和FPGA之间的界限正在变得日益模糊。

  新规则

本文引用地址:http://www.eepw.com.cn/article/201806/381394.htm

  随着新一代SoC的投入使用,旧规则不再适用了。“具体来说,如果你还在电路板上进行调试,那就太落伍了,”Clubb指出。“虽然在开发板上进行调试被认为是一种成本较低的解决方案,但这是在早期阶段使用的手段:‘它是可编程的,您可以在它上面放置一个示波器,观察一下现象,看看发生了什么。如果发现了一个错误,我可以修复它,在一天内修改代码,然后将它重新烧录到电路板上,然后再定位下一个bug,'这太疯狂了。在员工的时间不被视为成本的很多公司,管理层不会购买模拟器或系统级工具或调试器,因为'我付了钱让这个人完成工作,我会一直训他,直到他努力工作。'”

  这种行为仍然很常见,Clubb说,因为有很多公司实行10%的末位淘汰,以鞭策每个员工好好干活。

  但是,SoC是真正的SoC,需要严格的设计和验证方法。“器件可编程不会真正影响设计和验证,”Clubb说。“如果你要设计一颗SoC,你可以按照我听很多客户说起过的‘乐高’工程,采用框图式的方法。我需要一颗处理器、一块内存、一颗GPU、一些其他零件、一个DMA内存控制器、WiFi、USB和PCI,这些都是您组装用的'乐高'积木。麻烦之处在于必须验证它们能够工作,并且能够一起工作。”

  不过,SoC系统开发人员正在迅速掌握SoC从业者们关注的验证方法。

  “因为[使用FPGA]的成本更低,所以FPGASoC系统开发人员的思考方式和传统的芯片SoC开发人员不同,传统SoC开发人员的处理思路是'这将花

  费我200万美元,所以我最好做好万全的准备',“Clubb说。“但是如果你花费200万美元开发FPGA,没搞对,现在你将需要花费三个月的时间修复这些bug,这也是需要考虑的成本。开发团队有多大?要花多少钱?没有及时上市的惩罚是什么?这些都是非常难以清晰量化的成本。如果您处于消费领域,需要在圣诞节期间及时上市的产品上几乎不可能使用FPGA,所以这有一个不同的优先级。在定制芯片中做一款SoC需要面临巨大的整体成本和风险,因此越来越少见了。众所周知,这个行业正在整合,大玩家越来越少。每个选手都必须找出一种方式实现自己的设计,这些FPGASoC可以帮助实现这一目标。”

  新的折衷选择

  Sancheti说,很多工程团队不介意更换目标器件。“我们看到许多公司创建RTL并对其进行验证,但几乎不知道他们最终会选择FPGA还是,因为这个决定可能会变很多次。你可以从FPGA开始,当达到一定数量后,如果成本更低,就转到上。”

  这种局面对于今天的AI应用领域尤其普遍。

  eSilicon营销副总裁MikeGianfagna表示:“加速AI算法速度的技术还在发展中。人工智能算法其实已经存在了很长一段时间,但是现在,我们在使用AI方面突然间变得更加复杂,并且可以非常神奇地以接近实时的速度运行它们。最初的AI算法运行在CPU上,然后转移到了GPU上。GPU也可以认为是一种可编程器件,尽管它具有一定的通用性。GPU架构擅长并行处理,因为图形加速运算就是并行计算,所以在GPU上跑AI算法很方便,因为AI基本上就是并行处理。在很大程度上来说,GPU确实很好,但是它仍然是一种通用的方法,你可以在一定的功耗下获得一定程度的性能。现在,有些人接下来要转向FPGA运行AI算法,因为FPGA可以提供比GPU更好的专用电路,而且性能和功效上都能得到提升。ASIC在功耗和性能方面最为出色,因为您拥有可以完全满足您的需求的自定义架构,不多不少,显然最好。”

  人工智能算法很难映射到芯片上,因为它们几乎总是在变化。就这一点可以看出,做一款全定制的ASIC完全不合时宜,因为芯片出厂时老的算法就已经过时了。“FPGA显然可以很好地应对这种情况,因为你可以对它们进行重新编程,这样对芯片的昂贵投资就不会打水漂了。”Gianfagna说。

  这里有一些自定义的内存配置,以及某些像卷积和转置存储等可以再次使用的子系统功能,因此,虽然算法可能会更改,但某些块不会更改,可以一次又一次地使用。考虑到这一点,eSilicon正在开发一款具有软件分析功能、可以查验AI算法的机箱,目标是能够更快速地为特定应用选择最佳架构。

  “使用FPGA,可以灵活地更换机器或者引擎,因为您可能会遇到一种新的神经网络,选择ASIC则要承担风险,因为你可能无法获得灵活性,”eSilicon知识产权工程副总裁DeepakSabharwal说。“然而,FPGA在容量和性能方面总是受到限制,所以用FPGA无法真正达到产品级规格。你可以用它做实验,对事物分组,但最终你将不得不选用一颗ASIC。”

  嵌入式LUT

  过去几年,还有一种器件类型取得了一定进步,即嵌入式FPGA,它将可编程性集成到ASIC中,同时将ASIC的性能和功耗优势添加到FPGA中。

  FlexLogix公司首席执行官GeoffTate表示:“在FPGASoC中,处理单元的芯片面积相对较小,在方框图中看起来,比例有大有小,但是在实际的光刻图中,仍然主要是FPGA。不过,有一类应用和客户,FPGA逻辑单元和SoC其余部分的正确比例应该是FPGA更小,使得它们既具有RTL可编程性,同时芯片尺寸更具成本效益。”

  这种方法在航空航天、无线基站、电信、网络、汽车和视觉处理等领域,特别是在人工智能应用上获得了相当的关注。“算法变化非常快,以至于芯片从晶圆厂流片回来时就几乎已经过时了,”Tate说。“有了嵌入式FPGA,可以让设计人员更快地迭代他们的算法。”

  在汽车从司机驾车模式向自主驾驶汽车的演变中,这种意义尤其明显。Achronix系统工程副总裁RaymondNijssen表示,虽然失效和老化问题引起了很多关注,但主要的挑战在于保持“优雅的降级”。“随着时间的推移,性能和质量会发生变化,标准也会发生变化。比如一个相对较新的需求是汽车需要识别小孩过马路,没有人知道这些法规会如何改变,或者你如何进行测试,如何测试那些尚未知晓的标准。”

  Nijssen说,在这种情况下,可编程性对于避免重新制作整个芯片或模块变得至关重要。

  调试你的设计

  和所有SoC一样,理解怎么调试这些系统,如何构建测量手段,可以帮助人们在出现大麻烦之前找出问题。

  “随着系统FPGA变得越来越像SoC,他们需要一套类似于SoC的开发和调试方法,”UltraSoC首席执行官RupertBaines说。“有一种天真的想法认为,你可以在FPGA中看到任何东西,所以很容易调试。波形查看器可以查看到bit级别,但是并不能提供任何系统级别的信息。现在新的大型FPGA显然是系统级的。在系统级别上,你通过位探测器获得的波形级视图没有太大作用,你需要的是逻辑分析仪、协议分析仪,以及处理器内核本身的良好调试和跟踪功能。”

  FPGA的大小和复杂性要求其验证过程类似于ASIC。先进的基于UVM的测试平台支持模拟,通常也支持仿真。从自动设计检查到基于断言的验证,以及一系列强大的求解器,形式工具在这里起着关键的作用。尽管FPGA确实可以比ASIC更快更便宜地修改,但在大型SoC中检测和诊断bug的难度意味着必须在进入bring-up阶段之前进行彻底的验证,OneSpin的Khan说。

  事实上,在RTL输入和综合后网表之间进行等效性检查方面,对FPGASoC的验证要求可能比ASIC更高。与传统的ASIC逻辑综合流程相比,FPGA的精细化、综合和优化阶段通常需要对设计进行更多的修改。这些更改可能包括跨越周期边界移动逻辑,以及在内存结构中实现寄存器。Khan补充道,彻底的顺序等价检查对于确保最终的FPGA设计仍然符合RTL中最初的设计者意图至关重要。

  在工具方面还有优化性能的空间。““很多嵌入式视觉应用程序都是在Zynq上编写的,性能可能是每秒5帧。但如果你在硬件上加速它,可能会提高到每秒25到30帧,这种改进空间为新型器件铺平了道路。问题在于,这些器件的模拟和验证并不简单。您需要整合软件和硬件,这很困难。如果你把所有运算都放在SoC中运行,那就太慢了。每次模拟可能需要五到七个小时,如果你把多个模拟合并起来,就可以节省时间,”Aldec的deLuna说。

  简而言之,复杂ASIC中使用的同类方法现在正用于复杂的FPGA。随着这些器件被用于功能安全类型的应用,这变得越来越重要。

  “这就是形式分析的用武之地,通过形式分析,可以得出错误的传播路径,然后验证这些路径,”Cadence市场营销总监AdamSherer说。“这些东西非常适合进行形式分析。传统的FPGA验证方法几乎不可能进行这些类型的验证。有一种非常流行的观点认为,FPGA设计非常快,而且能够容易地以系统速度运行硬件测试,并且只需进行简单的仿真即可进行完整性检查。把编程烧录到器件中,在实验室中实际运行,这是一条相对较快的验证路径,但实验室中的可观察性和可控性极其有限,因为它只能根据FPGA引脚的数据进行探测,以便您可以在测试仪上看到它们。”

  BrekerVerificationSystems首席营销官DaveKelf对此表示赞同。“这使得这些器件得到验证的方式发生了有趣的转变。过去,在小型器件上,通过将设计加载到FPGA中并在测试卡上实时运行,尽可能多地运行来验证它。随着SoC和软件驱动设计的出现,可以预期这种“自行设计原型”的验证方式可能适用于软件驱动技术,并且可能适用于该过程的某些阶段。但是,在原型上识别问题并对其进行调试非常复杂,这个早期验证阶段需要模拟,因此SoC型FPGA看起来越来越像ASIC。SoC和FPGA之间的通用性使得验证过程更高效,调试和测试平台也会通用。PortableStimulus(便携式激励)等新进展将提供这种通用性,实际上将使得SoCFPGA更易于管理。”

  结论

  展望未来,Sherer表示,用户正在寻求将现在用在ASIC领域里的更严格的流程应用到FPGA流程中。

  “有很多学习和分析应用希望FPGA中有更多系统级调试技术,”他说。“FPGA社区一向落后于最新的技术,倾向于使用非常传统的方法,因此他们需要培训和了解最新的技术和方法、规划、管理和需求的可追溯性。FPGA绝对需要那些来自SoC流程的元素,其驱动力来自终端应用中的那些行业标准,而不是FPGA自身。传统的FPGA工程师需要重新接受再教育。”

  在需要灵活性的应用、不断将可编程逻辑和硬线逻辑结合在一起的系统架构以及适用于两者的工具的推动下,ASIC和FPGA之间的界限正在变得日益模糊。这种趋势短期内不会发生扭转,因为需要这些组合的许多新应用领域目前仍处于起步阶段。


上一页 1 2 下一页

关键词: FPGA ASIC

评论


相关推荐

技术专区

关闭