in

FPGA是什么以及它是如何工作的?

关键要点:
  • 可编程门阵列(fpga)由数字电路组成,可以重新编程和重新配置以执行新任务。
  • 最早的可编程门阵列出现在80年代初,然后在90年代末开始迅速发展。只有几家公司如altera、xilinx和ti等享有盛誉。
  • fpga编程使用多种不同的语言,包括verilog和vhdl。

什么是fpga:完全解释

fpga具有可以重新编程和重新配置的数字电路。

©giacomo carrabino/shutterstock.com

fpga(可编程门阵列)是一种集成电路,可以非常容易地重新编程和重新配置以执行不同的功能。它设计成在制造后由设计师或客户进行编程或配置,因此被称为现场可编程。最重要的是,它可以通过实时分析和修改数据来独立探索数据。换句话说,它是一个具有其内存的可编程逻辑电路阵列。

fpga可以通过先进的算法解决使用传统处理器(中央处理器)计算成本过高或不切实际的复杂问题。此外,可编程门阵列由于功耗较低、体积较小和重量较轻,比传统处理器更便宜。但这还不是全部。使用fpga,您可以创建几乎没有关于自定义微芯片外观或功能限制的定制硅设计。

fpga相比其他种类的集成电路(如中央处理器和图形处理器)具有许多优势。例如,fpga比cpu更快,因为它们并行执行指令,而cpu必须等待每个指令完成后才能继续执行下一个指令。

尽管fpga通常与高端计算相关联,但它们在消费电子行业也越来越受欢迎。许多高端显卡中的功能已经内置在fpga芯片中。然而,它们通常比传统视频卡更实惠和更节能。此外,它们具有更快的吞吐量,并且可以支持更多同时流。因此,越来越常见地在游戏机中使用基于fpga的图形卡。

fpga的历史

最早的可编程门阵列出现在80年代初,但直到90年代末才真正开始起飞。除了altera、xilinx和ti等几家公司外,它们在外界并不为人所知。然后,千年虫事件发生了,fpga突然无处不在!公司开始将它们视为asic(应用特定集成电路)的替代品,用于构建对标准cpu或gpu过于复杂的系统。

现场可编程门阵列 (field programmable gate arrays,fpga) 今天仍然是一个热门话题,因为它们能够以更少的功耗和更低的成本制造物品。它们还对其他应用,如网络和网络安全有用。如今的fpga比以前的产品更加先进,增加了几项新功能。其中包括相同芯片中不同集成电路之间可重构的连接,使工程师可以将其用作简单的开关;可以在不同输入之间切换的复用器;以及可以使用固件编程的可编程逻辑块 (plb),而不是像以前那样使用软件。

fpga如何工作?

现场可编程门阵列由数字电路组成,可以重新编程和重新配置以执行新任务。电路板被设计成模拟真实电路的行为,因此经常用于测试目的(例如,测试新产品的质量保证)。

fpga具有几种不同的硬件元素,包括逻辑门(fpga的基本构建块),可以对输入和输出数据执行布尔运算。路由资源也用于在fpga内部将信号从一点路由到另一点。

现场可编程门阵列在各个行业和应用中使用,包括航空航天、汽车、医疗设备、工业自动化和消费电子。fpga因为可以应用于需要asic大量功耗但不一定需要相同性能的应用而变得越来越受欢迎。例如,使用fpga可能使您的代码比在asic上运行时更快,但通过整体使用较少的功耗来节约电力。

根据应用的fpga类型

根据应用,fpga分为三种类型。它们包括:

  • 高端fpga:这种类型的fpga是为高性能和逻辑密度而开发的。高端fpga的示例包括microsemi的proasic3系列、achronix的speedster 22i系列、xilinx的virtex系列和altera的stratix系列。
  • 中端fpga:这种类型的fpga在成本和性能之间平衡,并且是高端和低端fpga之间的最佳解决方案。中端fpga的示例包括lattice semiconductor的ecp3和ecp5系列、microsemi的igl002、xilinx的artix-7/kintex-7系列和altera的arria。
  • 低端fpga:这种类型的fpga设计用于低复杂性、低逻辑密度和每个芯片的低功耗。低端fpga的示例包括lattice semiconductor的mach xo/ice40、microsemi的fusion系列、xilinx的spartan系列和altera的cyclone系列。

如何编程fpga

可编程门阵列(field programmable gate arrays)由可以配置以处理数据的逻辑门组成。它们包含多个内部存储器,可以存储和检索数据,即寄存器。普通的门阵列fpga由多路复用器、组合逻辑元件(算术逻辑单元)、寄存器和内存块组成,用户可以通过软件对其进行编程。门阵列通常用于高性能计算应用,因为在成本更低的情况下,它们提供比pld更高的性能。可编程门阵列的编程通过一系列步骤进行,包括配置设备的寄存器和设计规则,并向设备的存储单元(浮点阵列)写入新的软件代码。

在fpga编程中使用的语言

在fpga编程中使用了许多不同的语言,包括verilog和vhdl。verilog是一种硬件描述语言,于1984年开发。它是fpga设计的行业标准,可用于创建系统所需的任何类型的电路。它被广泛认为是最简单的初学者语言,因为它使用可在不同项目中重复使用的状态机和逻辑块。

vhdl是另一种在fpga编程中使用的流行语言,也基于状态机概念。它与verilog的区别在于它具有更多的特性,如数据类型和信号名,使得编写复杂电路更容易且更高效。fpga编程是一种具有自己语法和语法的语言。它不是像python或javascript这样的脚本语言,但它具有一些相似之处。

fpga编程语言的设计目标是高级且易于使用,侧重于效率。它们利用系统中已有的硬件,而不需要像解释器或虚拟机这样的中间人。

fpga编程语言通常是编译的,这意味着它们在用于程序执行之前会被转换为可执行文件。编译器将源代码翻译成适应设备体系结构和运行硬件的格式。

fpga:现实世界的应用

可编程门阵列(fpga)是一种非常多功能且高性能的处理器,可用于各种任务。它非常适合速度和功耗效率至关重要的应用,但也可以用于更复杂的系统。

可编程门阵列最常见的用途之一是在电信领域。电信公司需要以光速快速处理大量数据,这意味着需要使用高速处理器,如fpga。这种系统称为“芯片上系统”(soc),它是将多个功能合并到一个设备中的高效方式。

可编程门阵列在网络设备中也是一种常见应用。网络设备通常依赖于高端处理器,如cpu或gpu。然而,这些处理器并不总是适合它们所要求的所有任务。fpga可以代替它们,以比cpu或gpu更高效地处理例如路由数据包等任务。fpga还广泛用于人工智能应用中,可以比传统的人工智能技术更快地训练神经网络。

一些更常见的可编程门阵列的应用包括:

  • aerospace and defence
  • high-performance computing and data storage
  • medical electronics
  • asic prototyping
  • video & image processing
  • wired communications
  • wireless communications

Written by 小竞 (编辑)

他们称呼我为小竞, 做作为河小马的助理有5年时间了,作为jingzhengli.com的编辑,我关注每天的科技新闻,帮你归纳一些现有科技以及AI产品来提升你的生产力,拥抱AI,让科技和AI为我们服务!