中文 英语

fpga越来越像soc

随着处理器被添加到传统的fpga中,线路变得模糊,可编程性被添加到asic中。

受欢迎程度

与以前相比,fpga是闪耀的摇滚明星。fpga不再仅仅是查找表(lut)和寄存器的集合,它已经远远超越了现在的系统探索架构和未来asic设计架构的验证工具。

这个系列的设备现在包括从基本的可编程逻辑一直到复杂的SoC设备。在各种应用领域,包括汽车和其他应用的人工智能、企业网络、航空航天、国防和工业自动化fpga使芯片制造商能够以一种可以在必要时更新的方式实现系统。在协议、标准和最佳实践仍在不断发展的新市场,以及需要eco保持竞争力的新市场,这种灵活性至关重要。

这就是Xilinx决定增加一个手臂该公司营销总监路易·德·卢纳(Louie de Luna)表示,该公司将其Zynq FPGA的核心用于创建FPGA SoCAldec.“最重要的是,供应商已经改进了工具流程。这让人们对Zynq产生了浓厚的兴趣。他们的SDSoC开发环境看起来像C语言,这对开发人员来说很好,因为应用程序通常是用C语言编写的,所以他们加入了软件功能,并允许用户将这些功能分配给硬件。”


Xilinx的Zynq-7000 SoC。来源:赛灵思公司

有些fpga不只是类似于soc。它们本身就是soc。

“它们可能包含多个嵌入式处理器、专门的计算引擎、复杂的接口、大内存等等。OneSpin解决方案.“系统架构师规划和使用FPGA的可用资源就像他们对ASIC所做的那样。设计团队使用综合工具将SystemVerilog、VHDL或SystemC RTL代码映射到基本逻辑元素中。在大部分设计过程中,针对FPGA和针对ASIC或全定制芯片之间的差异正在缩小。”

Ty Garibay的首席技术官ArterisIP对这一演变非常熟悉。他说:“从历史上看,Xilinx在2010年开始走上了Zynq的道路,他们定义了一款产品,本质上是将Arm SoC的硬宏集成到现有FPGA的一个角落。“Altera随后聘请我做基本上相同的事情。其价值主张是,SoC子系统是许多客户想要的,但由于SoC特别是处理器的性质,它们不能很好地将合成应用到FPGA上。将这种级别的功能嵌入到实际的可编程逻辑中是令人望而却步的,因为它几乎使用了整个FPGA来实现该功能。但它可以作为一个硬功能,作为整个FPGA芯片的一个小部分或微不足道的部分。你放弃了SoC真正可重构逻辑的能力,但它是可编程的软件,所以它以这种方式改变了功能。”

他说,这意味着可以在织物中拥有软件可编程功能、硬宏和硬件可编程功能,它们可以一起工作。“这有一些非常好的市场,特别是在低成本的汽车控制领域,无论如何,传统上FPGA旁边都有一个中等性能的微控制器类型的设备。客户只会说,‘我要把整个功能滚到FPGA芯片上的硬宏中,以减少电路板空间,减少BOM,降低功耗。’”

这符合过去30年fpga的发展,即最初的fpga只是带有一堆I/ o的可编程结构。随着时间的推移,内存控制器以及SerDes、RAM、dsp和HBM控制器都被加强了。

Garibay说:“FPGA供应商一直在继续增加芯片,但也在继续增加越来越多的硬逻辑,这些逻辑被很大一部分客户群认为是普遍可用的。”“今天发生的事情是将其扩展到软件可编程方面。在Arm SoC之前添加的大多数东西都是不同形式的硬件,主要与I/O有关,但也有dsp,因为有足够的计划实用功能,所以尝试通过加固来节省可编程逻辑门是有意义的。”

视角的问题
这本质上把FPGA变成了设计可能性的瑞士军刀。

该公司营销和业务发展副总裁Anush Mohandass说:“如果你回到过去,它只是一堆lut和寄存器,而不是门。NetSpeed系统.“他们遇到了一个经典问题。如果将通用计算与特定于应用程序的版本进行比较,通用计算将提供更大的灵活性,而特定于应用程序的计算将提供一些性能或效率方面的好处。Xilinx和Altera越来越多地尝试结合这一点,他们注意到几乎每个FPGA客户都有一个DSP和某种形式的计算。所以他们加入了Arm核心,DSP核心,他们加入了所有不同的物理接口和常用的东西。他们加固了它,这使它更有效率,性能也变得更好。”

这些新功能为fpga在各种新的和现有市场中发挥重要作用打开了大门。

“从市场的角度来看,你可以看到fpga肯定会进入SoC市场,”高通公司高级营销总监Piyush sanchetti说Synopsys对此.“无论你做的是FPGA还是成熟的ASIC,都是有经济效益的。这些界限开始变得模糊,我们当然看到越来越多的公司,尤其是在某些市场,正在朝着更适合生产的经济方向发展。”

Sancheti表示,从历史上看,fpga一直用于原型设计,但用于生产用途仅限于航空航天、国防和通信基础设施等市场。“现在这个市场正在向汽车、工业自动化和医疗设备领域扩展。”

AI,一个蓬勃发展的fpga市场
一些采用fpga的公司是希望优化自己的IP或AI/ML算法性能的系统供应商/ oem。

NetSpeed的莫汉达斯说:“他们想要制造自己的芯片,对他们中的许多人来说,刚开始做ASIC可能有点吓人。”“他们可能也不想花3000万美元的晶圆成本来生产芯片。对他们来说,FPGA是一个有效的入口点,他们有独特的算法,他们想要投射自己的神经网络,看看它是否能给他们提供他们想要的性能。”

公司Catapult HLS合成和验证高级产品营销经理Stuart Clubb表示,目前人工智能应用的挑战是量化Mentor是西门子旗下的企业.“需要什么样的网络?我如何建立这个网络?内存架构是什么?你从这样的网络开始,即使你只有几层,你有很多数据,在几个系数中,它很快旋转到数百万个系数,内存带宽变得相当可怕。没有人真正知道什么是正确的架构。如果答案不知道,你就不会跳进去构建一个ASIC。”

在企业网络领域,最常见的问题是加密标准似乎一直在变化。Mohandass说:“与其试图构建ASIC,不如将其放在FPGA中,从而使加密引擎更好。”“或者,如果你在网络方面做任何类型的数据包处理,fpga仍然为你提供了更多的灵活性和更多的可编程性。这就是灵活性发挥作用的地方,他们已经利用了这一点。你仍然可以称之为异构计算,它看起来仍然像一个SoC。”

新规则
随着新型FPGA soc的出现,旧的规则不再适用。“特别是如果你在电路板上调试,你就做错了,”Clubb指出。“虽然在电路板上调试被视为一种成本较低的解决方案,但这可以追溯到早期,人们可以说,‘它是可编程的,你可以在上面放置一个范围,你可以查看正在发生的事情。但现在说,‘如果我发现了一个错误,我就可以修复它,在一天内编写一个新的比特流,然后把它放回主板上,然后再找到下一个错误’,这简直是疯了。这是一种心态,你可以在很多领域看到,员工的时间不被视为成本。管理层不会购买模拟器或系统级工具或调试器,因为,‘我只是付钱让人完成工作,我会对他大喊大叫,直到他更努力地工作。’”

他说,这种行为仍然很常见,因为有足够多的公司每年都要裁掉底层10%的员工,让每个人都保持警惕。

然而,FPGA soc是真正的soc,需要同样严格的设计和验证方法。“这种织物可编程的事实并不会真正影响设计和验证,”克罗布说。“如果你做一个SoC,是的,你可以做我听到一些客户所说的‘乐高’工程。这是方框图方法。我需要一个处理器,一个内存,一个GPU,一些其他零碎的东西,一个DMA内存控制器,WiFi, USB和PCI。这些都是你组装的“乐高”积木。问题在于,你必须验证它们是否有效,以及它们是否能协同工作。”

尽管如此,FPGA SoC系统开发人员在验证方法方面正在迅速赶上他们的SoC兄弟。

“他们不像传统的硅SoC开发人员那么先进,传统的硅SoC开发人员处理的心态是,‘这将花费我200万美元,所以我最好把它做好,’因为(fpga)失败的成本更低,”Clubb说。“但如果你花了200万美元开发FPGA,但你做错了,现在你要花三个月的时间来修复错误,仍然有问题需要解决。团队有多大?要花多少钱?上市时的罚金是多少?这些都是很难明确量化的成本。如果你在消费领域,对于FPGA来说,你几乎不太可能真正关心如何在圣诞节前完成它,所以优先级有点不同。在定制硅芯片上做SoC的总成本和风险,并扣动扳机说,‘这是我的系统,我完成了’,你并没有看到这么多。我们都知道,行业正在整合,做大芯片的大公司越来越少。其他人都必须找到一种方法来做到这一点,而这些fpga正在实现这一点。”

一个新的权衡选择
桑切蒂说,对于工程团队来说,在设计时为目标设备留有余地是很常见的。“我们看到很多公司创建RTL并验证它,几乎不知道他们是要使用FPGA还是ASIC,因为很多时候这个决定可能会改变。你可以从FPGA开始,如果你达到一定的容量,经济上可能有利于调试ASIC。”

在今天的人工智能应用领域尤其如此。

公司营销副总裁Mike Gianfagna表示:“人工智能算法的加速技术已经取得了进展。eSilicon.“显然,人工智能算法已经存在很长一段时间了,但现在我们在如何使用它们方面突然变得更加复杂,以接近实时的速度运行它们的能力是这里的魔力。它从cpu开始,然后转移到GPU。但即使是GPU也是一种可编程设备,所以有一些通用性是一刀切的。虽然架构擅长并行处理,因为这就是图形加速的意义所在,但这很方便,因为这就是AI的意义所在。在很大程度上,这是好的,但它仍然是一种通用的方法。这样你就能得到一定程度的性能和能耗。有些人接下来会转向fpga,因为它可以比GPU更好地定位电路,并且在性能和电源效率方面得到提升。ASIC在功率和性能方面是极致的,因为你有一个完全自定义的架构,完全满足你的需要,不多不少。这显然是最好的。”

人工智能算法很难映射到硅上,因为它们几乎处于不断变化的状态。所以在这一点上做一个完全定制的ASIC是不可取的,因为它已经过时的时候,硅来了。Gianfagna说:“fpga在这方面做得很好,因为你可以对它们进行重新编程,所以在昂贵芯片上的投资不会损失。”

他补充说,这里有一些自定义内存配置,以及一些子系统功能,如卷积和转置内存,它们会被反复使用,因此尽管算法可能会改变,但有一些块不会改变,并且/或会被反复使用。考虑到这一点,eSilicon正在开发一个带有一些软件分析的机箱,以研究人工智能算法。目标是能够更快地为特定应用程序选择最佳的体系结构。

eSilicon的IP工程副总裁Deepak Sabharwal说:“fgpa让你可以灵活地更换机器或引擎,因为你可能会遇到一种新的网络,而使用ASIC是有风险的,因为你可能没有最好的支持,所以你可以有这种灵活性。”“然而,FPGA在容量和性能上总是受到限制,所以你将无法真正达到生产级的规格。你可以使用它和分组,但最终你将不得不使用ASIC。”

嵌入式附近地区
另一个在过去几年中已经站稳脚跟的选择是嵌入式FPGA,它将可编程性构建到ASIC中,而不是将ASIC的性能和功耗优势添加到FPGA中。

“FPGA soc仍然主要是具有相对较少的用于处理的芯片区域的FPGA,”Geoff Tate说Flex Logix.“在框图中,比例看起来不同,但在实际的模具照片中,主要是FPGA。但有一类应用程序和客户,FPGA逻辑和SoC其余部分之间的正确比例是拥有一个更小的FPGA,以更经济的芯片尺寸为他们提供RTL可编程性。”

这种方法在航空航天、无线基站、电信、网络、汽车和视觉处理,特别是人工智能等领域得到了广泛应用。“算法变化得如此之快,以至于芯片回来的时候几乎已经过时了,”Tate说。“通过一些嵌入式FPGA,可以让他们更快地迭代算法。”

这一点在从驾驶汽车向越来越自动驾驶汽车的转变中尤为明显。虽然故障和老化问题已经得到了很多关注,但挑战是保持“优雅的退化”,at的系统工程副总裁Raymond Nijssen说Achronix.“性能和质量随着时间的推移而变化,标准也是如此。汽车需要识别过马路的儿童的要求是最近才出台的。没有人知道法规将如何变化,也没有人知道如何进行测试。如何测试尚不清楚的标准。”

Nijssen说,在这种情况下,可编程性就变得至关重要,以避免重做整个芯片或模块。

调试设计
不过,这只是部分原因。与所有soc一样,了解如何调试这些系统以及内置仪器,可以帮助在问题变成重大问题之前识别问题。

“随着系统fpga变得越来越像SoC,它们需要在SoC中所期望的开发和调试方法。UltraSoC.有一种信念(可能是naïve),因为你可以在FPGA中看到任何东西,所以很容易调试。这在比特级是正确的,在波形查看器中,但在系统级就不成立了。最新的大型fpga显然是系统级的。在这一点上,你从位探针类型的排列中得到的波形级视图并不是特别有用。你需要一个逻辑分析仪,一个协议分析仪,以及处理器核心本身良好的调试和跟踪能力。”

FPGA的大小和复杂性要求验证过程与asic类似。复杂的UVM基于的测试平台支持模拟,通常也由仿真支持。形式化工具在这里扮演着关键角色,从自动设计检查到基于断言的验证,以及一系列强大的求解器。OneSpin的Khan表示,虽然fpga的更换确实比asic更快、更便宜,但在大型SoC中检测和诊断错误的困难意味着在进入培养实验室之前必须进行彻底的验证。

事实上,在一个领域,对FPGA SoC的验证需求可以说比在RTL输入和合成后网络列表之间进行asic等效性检查更大。FPGA的细化、合成和优化阶段通常比传统的ASIC逻辑合成流程对设计进行更多的修改。这些更改可以包括跨周期边界移动逻辑,以及在内存结构中实现寄存器。Khan补充说,彻底的顺序等价性检查对于确保最终的FPGA设计仍然符合RTL中的原始设计意图至关重要。

在工具方面,也有优化性能的空间。“对于嵌入式视觉应用(游戏邦注:很多应用都是为Zynq开发的),你可能每秒只能看到5帧画面。但如果你在硬件上加速,你可能得到每秒25到30帧。这为新型设备铺平了道路。问题是,模拟和验证这些设备并不简单。你需要软件和硬件的集成,这是很困难的。如果你在SoC中运行所有东西,那就太慢了。每次模拟需要5到7个小时。如果共同模拟,你可以节省时间,”Aldec的de Luna说。

简单地说,在复杂的asic中使用的相同类型的方法现在正在复杂的fpga中使用。随着这些设备被用于功能安全类型的应用,这一点变得更加关键。

“这就是需要正式分析的地方,以确保存在故障传播路径,然后验证这些路径。节奏.“这些东西非常适合进行形式分析。FPGA验证中的传统方法实际上使这些类型的验证任务几乎不可能完成。在FPGA设计中,假设以系统速度运行的硬件测试非常快速和容易,并进行非常简单的模拟,只是为了检查完整性,这在FPGA设计中仍然非常普遍。然后你对设备进行编程,进入实验室并开始运行。这是一个相对快速的路径,除了实验室的可观察性和可控性非常有限。这是因为只能通过将数据从FPGA内部拉到引脚进行探测,这样才能在测试器上看到它们。”

Dave Kelf,首席营销官断路器验证系统对此表示赞同。“这为这些设备的验证方式带来了有趣的转变。在过去,较小的设备通过将设计加载到FPGA本身并在测试卡上实时运行来尽可能多地验证。随着soc和软件驱动设计的出现,可以预期这种“自我原型”风格的验证可能与软件驱动技术一起很好地工作,并且在过程的某些阶段确实如此。然而,在原型制作期间识别问题并调试它们是复杂的。这一早期验证阶段需要模拟,因此soc风格的fpga看起来越来越像ASIC。对于这个两阶段的流程,它们之间的共性使得流程更加高效,并包括通用的调试和测试工作台。诸如便携式刺激之类的新进展将提供这种通用性,实际上,使SoC fpga更易于管理。”

结论
展望未来,Sherer表示,用户希望将目前在ASIC领域使用的更严格的流程应用到FPGA流程中。

他说:“我们进行了大量的培训和分析,他们预计fpga中会有更多用于调试的技术,以提供这种级别的支持。”“FPGA社区往往落后于最先进的状态,倾向于使用非常传统的方法,所以他们需要在空间、规划和管理、需求可追溯性方面进行培训和意识。这些来自SoC流程的元素在FPGA中是绝对必要的,并不是FPGA本身在驱动它,而是最终应用中的那些工业标准在驱动它。对于一直在FPGA环境下工作的工程师来说,这是一次工具改造和再教育。”

asic和fpga之间的界限正在模糊,这是由要求灵活性的应用程序、越来越多地将可编程性与硬连接逻辑结合在一起的系统架构以及现在应用于两者的工具所驱动的。这种趋势不太可能很快改变,因为许多需要这种组合的新应用领域仍处于起步阶段。

有关的故事
嵌入式fpga时代到来
随着芯片和系统设计变得越来越异构,这些器件在更关键的功能上越来越受欢迎。
技术讲座:EFPGA验证
嵌入式fpga与离散式fpga和asic相比如何?
技术讲座:EFPGA时序
嵌入式FPGA的独特之处在于。
技术讲座:EFPGA编程
使用嵌入式fpga与asic有何不同。
技术讲座:FPGA RTL检查
如何确保FPGA中的RTL与您开发的匹配。
技术讲座:EFPGA密度
如何提高可编程逻辑的密度。



1评论

凯文·卡梅隆 说:

经过几十年的努力,FPGA的家伙们未能实现快速的代码到FPGA的方法,现在他们要做AI了?-我不这么认为。他们甚至不知道如何使用自己的硬件来进行FPGA验证或加速自己的工具(据我所知)。

留下回复


(注:此名称将公开显示)

Baidu