现场可编程门阵列 (FPGA) 是功能强大且灵活的设备。它们将定制设计的性能与可重新编程性相结合,即使在系统进入现场后也是如此。因此,FPGA 越来越多地用于各种系统,从火星探测器到战斗机,从通信和汽车系统到越来越多的嵌入式应用程序。在这个关于 FPGA 应用机会的常见问题解答之后,将讨论使用FPGA 如何影响设计过程,并简要回顾 FPGA 系统集成问题。

本文将从研究用于各种最终使用系统的 FPGA 的两个“通用”应用开始;安全/加密用途和图像处理。它将考虑在汽车、航空、医疗和工业系统中使用 FPGA 的具体机会。推动 FPGA 采用的因素之一是嵌入式应用专用内核的可用性不断提高。对于下面讨论的大多数应用程序,预定义的内核已经存在。示例包括加密 IP 内核、DSP 内核、图像处理内核、通信(和软件定义无线电)内核、5G/MIMO 内核、电力线通信内核、工业和汽车以太网内核等。

使用 FPGA 时,安全性可能是一个复杂的问题。它由特定于 FPGA 的安全问题和与应用程序相关的问题的组合组成。首先,代工厂的知识产权 (IP) 盗窃通常是定制 IC 的一个严重问题。FPGA 解决了这个问题,因为敏感 IP 通常在交付之前不会加载到 FPGA 中。此外,FPGA 可以使用比特流加密来保护已加载到 FPGA 或外部存储器上的 IP。但还需要做更多工作来确保 FPGA 和终端应用程序的安全。

3f6035acdfbd4a48bdde3e0b4f5901dd~noop.image?_iz=58558&from=article.jpg

FPGA 在一系列军事、汽车、工业和通信系统中提供可重编程性和高能效的高性能电机控制、传感器输入、信号处理、安全通信等。(图片:赛灵思)

加密 FPGA

基于软件的加密协议是许多安全功能的基础。有一种趋势是用直接嵌入硬件的安全解决方案取代这些基于软件的方法,尤其是对于关键系统和嵌入式应用程序。基于软件的安全性的复杂性是有问题的,因为它提供了一个大的“攻击面”,不容易抵御坚定的入侵者。

使用基于 FPGA 的基于硬件的安全应用程序可以解决现有的基于软件的实施方案的许多缺点。FPGA 固有的可编程性,即使在它们被送往现场后,也能根据需要高效地执行持续的错误修复和安全更新。

此外,加密应用程序需要大量运算,这使它们成为使用 FPGA 的好地方。密码算法中使用的变换和排列可以以低开销和良好的性能编程到 FPGA 中。FPGA 上的加密操作可以并行执行,以进一步提高性能。

用于 MD5e、SHA-2 和其他加密功能的基于 FPGA 的内核受益于执行位级操作的能力。公钥系统和入侵检测功能已使用 FPGA 构建。各种加密和安全应用程序利用了 FPGA 支持的固有速度和灵活性。

使用 FPGA 进行图像处理

在实时图像处理应用中,FPGA 带来了低延迟和高能效的优势。例如,带有嵌入式 FPGA 的智能相机可以在从传感器流式传输图像时实时执行图像处理。相机提供经过处理的数据流,而不是一系列图像。FPGA 固有的并行性可以处理图像处理中固有的空间内容(数据级别)和时间内容(任务级别)。

为获得最佳性能,需要专门针对 FPGA 图像处理优化软件。现有的图像处理算法通常针对串行处理器进行了优化,无法利用 FPGA 固有的并行功能。

FPGA 可以使智能视频监控系统实时分析图像并识别潜在的可疑活动。这样的系统可以使用一系列 IP 内核来实现:用于处理视频的图像处理内核;用于分析图像数据的计算机视觉核心;以及一个基于加密的通信核心,用于将数据发送到一个中央位置,在那里可以由人工操作员进一步分析和采取行动。

FPGA可用于实现一系列图像处理功能,包括过滤、分割、压缩、聚类等。应用范围广泛,包括自动驾驶汽车、交通标志识别、医疗系统中的组织图像分析、机器人和智能视觉系统、视频压缩和加密等。

FPGA 人工智能和图像处理

FPGA 不仅可以用于图像处理,而且越来越多地用于各种人工智能 (AI) 和机器学习 (ML) 应用程序。图像处理只是 FPGA 应用于 AI 的一个例子。它们为深度学习和机器视觉系统带来了高性能、灵活性和可扩展性。

作为软件定义的设备,FPGA 可以在不更改任何硬件的情况下提供持续的性能优化。与其他设备相比,FPGA 可以更新到最新的机器学习算法,从而提高其“智能”。

当用于深度学习推理时,FPGA 可以以低且一致的功耗快速处理大量信息。它们还可以在各种应用程序中提供低延迟,包括机器视觉和激光雷达,并且本质上是面向未来的,并且能够通过相对简单的现场升级来支持新的流程和应用程序。

ADAS 和 FPGA

除了机器视觉和激光雷达之外,典型的 ADAS 设计还包括用于速度、制动、车道检测、交通信号识别等的复杂传感器网络。FPGA 的处理灵活性和速度可以处理大量传感器和其他输入,用于运动估计、对象识别和图像增强,并执行适当的操作。重要的是,传感器和图像处理功能可用作硬件内核或软件内核。这加快了上市时间并增强了功能。

与数字信号处理相比,FPGA 在 ADAS 应用中具有重要优势;通过支持并行处理,FPGA 可以更快地响应潜在的危险和不断变化的条件。当用于 ADAS 等多输入和输出系统的复杂处理时,FPGA 的功耗通常与专用标准产品 (ASSP) 相当或更低。

未来的自动驾驶汽车将依赖车辆之间的实时通信。FPGA 有望在这些和其他通信应用中发挥作用。

软件无线电和 FPGA

高级软件无线电 (SDR) 应用受益于 FPGA 和数字信号处理器 (DSP) 的组合。在 SDR 中,DSP 可以在 FPGA 外部,但通常作为功能块或内核嵌入到 FPGA 中。SDR 技术支持用于宽带、超宽带和复杂 MIMO 天线配置的新兴无线协议,包括新兴的 5G 系统。FPGA 用于将高速外围设备(如宽带 A/D 和 D/A 转换器、数字接收器和通信链路)实时连接到可编程处理器。

FPGA 还非常适合各种定时功能,例如 SDR 所需的同步。串并转换、数据打包、多路复用、数据包形成和时间戳等数据格式化功能可使用 FPGA 高效执行。

低功耗 SDR 设计也可以使用 FPGA 实现。凭借嵌入式 DSP 内核、并行逻辑处理和内存内核,FPGA 可以支持低功耗便携式和电池供电 SDR 中的高级宽带通信,用于军事、公共安全和商业无线网络。

虽然它们是低功耗的,但 FPGA SDR 可以是高性能的,并且包括:高级宽带波形,例如 OAM 和 OFDM 调制协议;嵌入式加密和解密逻辑提供灵活和现场可升级的高级加密引擎;高速无线数据调制解调器;以及多个 SDR IP 内核,包括数据包处理器和应用层处理器。

从航空到医疗系统

军用和商用航空设备通常使用商用现成 (COTS) FPGA 来节省时间和成本,同时提供高可靠性。在飞机设计中,最大限度地减轻重量是一个关键的考虑因素,而且为每个功能配备一个单独的设备通常是不切实际的。在多个模块之间分配功能可以提供容错并提高可靠性。对于军用飞机,相对不敏感的维护和其他数据由同一个子系统处理,这些数据与目标信息等更敏感的数据相同。在 FPGA 中分配功能和提供逻辑模块分离的能力是一种常见的做法。它在提供一定程度的容错的同时保护敏感数据。

医疗设备、汽车系统和工业设备的制造商也可以从 FPGA 的灵活性、成本效益和减少过时的优势中获益。FPGA 在这些和其他系统中的优势包括:

  • 与定制 ASIC 相比,使用 FPGA 避免了非经常性工程费用和最低订购要求
  • 与 ASIC 开发周期相比,上市时间更快且风险更低
  • 集成专用 IP 或硬件内核的能力可以进一步降低成本和产品差异化
  • 系统可以适应多种行业标准或协议,并可以随着这些标准和协议的发展而更新
  • 系统和功能可以在设计过程中和设备进入现场后重新编程。

工业以太网和 FPGA

使用 FPGA 实现的以太网 POWERLINK 协议可用于增强工业自动化系统。POWERLINK 是由以太网 POWERLINK 标准化组织 (EPSG) 管理的开源协议。POWERLINK 可以纯粹在软件中实现,但时间紧迫的任务可以转移到专用硬件(如 FPGA)以达到最佳性能。

使用 FPGA 实现以太网 POWERLINK 协议可以以低成本提供系统灵活性和高性能。使用 FPGA,有多种方案可用于实施协议。基本选择包括将应用处理器嵌入到 FPGA 中的单芯片解决方案的可能性,或者处理器可以是外部的,从而提供更高性能的可能性。还可以在 FPGA 中嵌入额外的功能,例如电机控制器或可编程逻辑控制器,进一步降低系统复杂性和成本。

FPGA 可以针对各种应用进行优化,并有助于提高系统性能和降低成本。但是使用这些复杂的设备会对设计过程产生重大影响。