当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]嵌入式FPGA(eFPGA)是指将一个或多个FPGA以IP的形式嵌入ASIC,ASSP或SoC等芯片中。换句话说,eFPGA是一种数字可重构结构,由可编程互连中的可编程逻辑组成,通常表现为矩形阵列,数据输入和输出位于边缘周围。 eFPGA通常具有数百或数千个输入和输出,可连接到总线、数据路径、控制路径、GPIO、PHY或任何需要的器件。

嵌入式FPGA(eFPGA)是指将一个或多个FPGA以IP的形式嵌入ASIC,ASSP或SoC等芯片中。

换句话说,eFPGA是一种数字可重构结构,由可编程互连中的可编程逻辑组成,通常表现为矩形阵列,数据输入和输出位于边缘周围。 eFPGA通常具有数百或数千个输入和输出,可连接到总线、数据路径、控制路径、GPIO、PHY或任何需要的器件。

所有eFPGA都将查找表(LUT)作为基本构建模块。 LUT有N个输入选择一个小表,其输出表示N个输入的任何需要的布尔函数。 有些eFPGA LUT有四个输入,有的有六个。有些LUT有两个输出。 LUT通常在输出端具有触发器; 这些可以用来存储结果。这些LUT寄存器组合通常以四进制形式出现,还有进位算术和移位器,以便有效地实现加法器。

LUT接收来自可编程互联网络的所有输入,并将其所有输出反馈到可编程互连网络。

除了LUT之外,eFPGA还可能包含MAC(乘法器/累加器模块)。 它们也连接到可编程互连网络,用于提供更高效的数字信号处理(DSP)和人工智能(AI)功能。 对于内存来说,有大量的RAM,通常是双端口的封装。至于LUT和MAC,通过RAM连接到可编程互连网络。

eFPGA具有输入和输出引脚的外环,将eFPGA连接到SoC的其它部分,这些引脚也连接到可编程的互连网络。

软件工具用于合成Verilog或VHDL代码,以编程eFPGA逻辑和互连来实现任何所需的功能。

eFPGA是方便的新逻辑块,可在许多方面提高SoC的价值,其中包括:

使用数百个LUT的广泛,快速的控制逻辑;

可重新配置的网络协议;

用于视觉或人工智能的可重构算法;

用于航空航天应用的可重配置DSP;

用于MCU和SoC的可重配置加速器。

除了以上这些,还有更多,这里就不一一介绍了。

当今,已经有了一些eFPGA供应商,主要包括Achronix,Flex Logix,Menta和QuickLogic,此外,还有一些较小的供应商。有了这些选择,客户需要决定哪一个最能满足他们的需求。那么,要如何选择呢? 虽然需要考虑商业因素,但本文重点讨论技术因素。

第1步:制程的兼容性

通常情况下,即使在IP评估的早期阶段,公司也会选择foundry厂和工艺节点。而台积电、GlobalFoundries和SMIC现在或正在开发针对包括65nm,40nm,28nm,22nm,16nm,14nm和7nm工艺节点的eFPGA。

但是,并非所有供应商对所有代工厂/工艺节点都有eFPGA,至少目前还没有。 通过他们的网站检查哪些与您的制程兼容非常重要。 您还应该看看所讨论的eFPGA是否已经在芯片中进行了验证,并在NDA下提供了报告。

不要忘记检查金属堆栈的兼容性。您选择的关键IP,如SerDes或您的应用可能需要您使用特定的金属堆栈,但并非所有eFPGA IP都与所有金属堆栈兼容。

第2步:阵列大小和功能

并非所有的eFPGA供应商都可以做非常小规模的eFPGA,同时,并不是所有厂商都可以做出规模非常大的eFPGA。另外,它们支持的MAC和RAM的性质可能会有所不同。

对于您是否需要数百个LUT或数十万个LUT,以及您对MAC和RAM的需求,这可能会筛选出一些供应商。

步骤3:使用RTL进行基准测试

eFPGA供应商会为您提供用于评估的软件,以便您可以确定(RTL)每个eFPGA可以实现的硅面积和性能。您需要eFPGA能够在与SoC其余部分相同的温度和电压范围内运行,因此请确保您需要的是支持的。

在进行基准测试时,将苹果与苹果进行比较(compare apples to apples)非常重要。例如,您应该在相同的工艺(slow/slow or typ/typ or fast/fast)以及相同电压和相同温度下比较每个eFPGA。您应该期望来自eFPGA供应商的软件工具将允许您检查不同工艺转角和电压组合下的性能。

请注意,您的RTL适用于eFPGA。如果从硬连线ASIC设计中采用RTL,则触发器之间往往会有20~30个逻辑层。如果你把它放在没有优化的eFPGA中,它会运行得非常慢。在eFPGA中,LUT输出总是有触发器,您可以使用它们向RTL添加更多的流水线,以在eFPGA中获得更高的性能。

谈到RTL,确保你正在测试什么对你很重要。

一个16位加法器。你关心的是它的运行速度有多快,但是如果你不小心,看到的结果可能会让你感到惊讶。现在想象一个大的eFPGA。如果加法器放置在阵列的一个角落,输入和输出接近,则性能将远高于在阵列中间找到加法器的情况。这是因为如果您观察从阵列输入到阵列输出的性能,当加法器位于阵列中间时,到数据输入和加法器输出的加法器的距离会更长。实际上,加法器是相同的,并且在两个位置运行速度都很快。问题在于你的测试没有隔离加法器的性能,但它也加入了达到加法器所需的信号。

步骤4:使用您需要的RTL基准测试区域

与性能一样,在尝试针对不同eFPGA的RTL的相对面积进行基准测试时,要非常小心。一些eFPGA供应商使您能够轻松生成数十种不同的阵列尺寸,但其他人可能只会为您的基准测试提供两种尺寸。

第一步是查看LUT计数(或MAC计数)。但是,不同的eFPGA供应商可能有不同的LUT尺寸。在查找表中可能不会填满它,所以如果你有两个触发器进入一个与非门,再进入另一个触发器,那么任何大小的查找表都将实现一个与非门。

某些eFPGA在输出端具有两个触发器,这使得N输入LUT可以分解为两个共享N输入LUT和一些输入子集的更小的LUT。此功能可提高面积利用率。

即使您正在对来自两家供应商的N-LUT eFPGA进行基准测试 - 并且您的设计使用了两个LUT中的一半并且两者的面积相同 - 但您不能断定它们同样好。 你需要确定的是eFPGA LUT的利用率是否可以实现。一般eFPGA的利用率为60-70%,但有些eFPGA的利用率可达到90%。 唯一能找到的方法是使RTL几乎填满eFPGA的LUT。

另一种获得使用感的方法是查看展示位置的可视化。 在下面的例子中,LUT显然是非常紧密地组合在一起的(阴影块是设计中使用的LUT),这是高利用率的良好视觉指示。

步骤5:对输入和输出容量进行基准测试

一些基于eFPGA的应用程序需要大量的输入和输出。例如,网络芯片的总线可以是512位宽(有时甚至数千位宽)。 您需要查看每个K-LUT可用的输入和输出计数,看看它是否在满足您需求的范围内。

结论

eFPGA是令人兴奋的新工具,它使SoC架构师可以使他们的芯片更加灵活和可重新配置。

使用上面的指导原则,您将能够更快地找到最适合您独特应用程序、特定需求的eFPGA。如果您选择正确的解决方案,您将能够充分发挥eFPGA的潜力。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

机器人操作系统(ROS)驱动程序基于ADI产品而开发,因此可直接在ROS生态系统中使用这些产品。本文将概述如何在应用、产品和系统(例如,自主导航、安全气泡地图和数据收集机器人)中使用和集成这些驱动程序;以及这样将如何有助...

关键字: 电机控制器 机器人 嵌入式

Bluespec支持加速器功能的RISC-V处理器将Achronix的FPGA转化为可编程SoC

关键字: RISC-V处理器 FPGA SoC

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

为无处不在的端侧设备插上AI的翅膀,AMD发布第二代Versal™ 自适应 SoC

关键字: AMD FPGA 自适应SoC AI 边缘计算

支持高达48V@5A的PD受电模式,达到目前USB PD最高标准。

关键字: 嵌入式 开发板

【2024年4月8日,德国慕尼黑讯】低碳化和数字化是当今时代人们面临的两大核心挑战,人类社会需要依靠创新和先进的技术,才能破除挑战、推动转型进程。在德国纽伦堡举办的2024国际嵌入式展(Embedded World 20...

关键字: 半导体 微控制器 嵌入式

TDK 株式会社(TSE:6762)进一步扩充 Micronas 嵌入式电机控制器系列 HVC 5x,完全集成电机控制器与 HVC-5222D 和 HVC-5422D,以驱动小型有刷(BDC)、无刷(BLDC)或步进电机...

关键字: 嵌入式 电机控制器 内存

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发
关闭
关闭