0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

相信我,看完本文你就真的了解FPGA了

454398 来源:alpha007 作者:alpha007 2020-10-30 12:09 次阅读

最佳处理解决方案常常是由 RISC、CISC、图形处理器FPGA 的组合提供,或由 FPGA 单独提供,或以硬处理器内核作为部分结构的 FPGA 提供。然而,许多设计人员不熟悉 FPGA 的功能、其发展脉络以及如何使用 FPGA。

本系列文章由 5 部分组成,这是第 1 部分,将讨论 FPGA 的基础知识,并介绍主要提供商的一些示例解决方案。

设计人员一直在寻找系统构架的构建方法,以提供可满足所有应用需求的最佳计算解决方案。在许多情况下,这种最佳解决方案常常需要使用现场可编程门阵列 (FPGA),但令人遗憾的是,很多设计人员对这些器件的功能以及如何进行整合并不熟悉。

本文将简要说明可从使用 FPGA 中受益的设计场景。然后,在阐述基本工作原理之后,将会介绍一些有趣的 FPGA 解决方案和开发套件。

为何要使用 FPGA?

计算应用多种多样,能满足应用需求的最佳方法可能因应用而异,包括现成的微处理器 (MPU) 和微控制器 (MCU)、现成的图形处理单元 (GPU)、FPGA 以及定制片上系统 (SoC) 器件。为了确定使用哪一种方法,需要仔细审视应用需求和考虑事项。

例如,当研究 5G 基站等尖端技术时,设计人员需要考虑到基础标准和协议仍在不断发展中。这意味着设计人员需要能够快速有效地应对任何超出控制范围的规范变更。

同样,他们需要能够灵活地响应未来在系统部署到现场后发生的标准和协议变更。此外,他们还必须能够响应系统功能中的意外错误或系统安全性方面的漏洞,修改现有功能或添加新功能,从而延长系统使用寿命。

尽管最高性能通常是由 SoC 提供,但这种方法既昂贵又耗时。另外,在芯片结构中实现的任何算法本质上都是“冻结在硅片中”。鉴于上述考虑,这种固有的不灵活性便成了问题。为了找到高性能和灵活性的最优平衡点,需要一条替代路线。该路线常常由 FPGA、微处理器 / 微控制器与 FPGA 的组合或以硬处理器内核作为部分结构的 FPGA 提供。

什么是 FPGA?

这是一个很难回答的问题,因为对不同人来说,FPGA 是不同的东西。而且,FPGA 的类型有很多,每种类型都有不同的能力和功能组合。

可编程结构是任何 FPGA 的核心(即“FPGA-dom”的界定方面),并以可编程逻辑块阵列的形式呈现 。每个逻辑块都是多种元件的集合,包括查找表 (LUT)、多路复用器寄存器,所有这些元件都可以进行配置(编程)以根据需要执行操作。

许多 FPGA 使用 4 输入 LUT,可配置为实现任何 4 输入逻辑功能。为了更好地支持某些应用采用的宽数据路径,有些 FPGA 提供 6 输入、7 输入甚至 8 输入 LUT。LUT 的输出直接连接到逻辑块输出之一和多路复用器输入之一。多路复用器的另一个输入直接连接到逻辑块输入(e)。多路复用器可以配置为选择其中一个输入。

多路复用器的输出馈入寄存器输入。每个寄存器都可以配置为边沿触发的触发器或电平敏感锁存器(尽管如此,但不建议在 FPGA 内部使用锁存器形式的异步逻辑)。每个寄存器的时钟(或使能信号)可以配置为高电平有效或低电平有效。同样,置位 / 复位输入的有效电平也是可配置的。

这些逻辑块可以被视为漂浮在“可编程互连之海”中的“可编程逻辑之岛”。这种互连可配置为将任何逻辑块的任何输出连接到其他逻辑块的任何输入。同样,FPGA 的主要输入可以连接到任何逻辑块的输入,任何逻辑块的输出都可以用来驱动器件的主要输出。

主要的通用输入 / 输出 (GPIO) 以组形式呈现,每组可配置为支持不同的接口标准,例如 LVCMOS、LVDS、LVTTL、HSTL 或 SSTL。另外,输入的阻抗也是可配置的,输出的压摆率也一样可配置。

FPGA 结构进一步扩展可包括 SRAM 块(称为块 RAM (BRAM))、锁相环 (PLL) 和时钟管理器之类的东西。此外,还可以添加数字信号处理 (DSP) 块(DSP 切片)。它们包含可配置的乘法器和可配置的加法器,能够执行乘法累加 (MAC) 运算。

高速 SERDES 块是 FPGA 的另一个常见特性,能支持千兆位串行接口。必须注意的是,并非所有 FPGA 都支持上述全部特性。不同 FPGA 针对不同的市场和应用提供不同的特性集合。

FPGA 中的可编程结构可用来实现所需的任何逻辑功能或功能集合,一直到处理器内核甚至多个内核。如果这些内核是以可编程结构实现的,则称其为“软内核”。相较之下,有些 FPGA(通常称为 SoC FPGA)包含一个或多个“硬内核”处理器,其直接在硅片中实现。这些硬处理器内核可能包括浮点单元 (FPU) 和 L1/L2 高速缓存。

同样,外设接口功能(如 CANI2C、SPI、UARTUSB)可以实现为可编程结构中的软内核,但许多 FPGA 将其作为硬内核在硅片中实现。处理器内核、接口功能和可编程结构之间的通信通常利用 AMBA 和 AXI 之类的高速总线实现。

第一批 FPGA 是由 Xilinx 于 1985 年推出上市,仅包含一个 8 x 8 可编程逻辑块阵列(没有 RAM 块、DSP 块等)。相比之下,当今的高端 FPGA 可以包含数十万个逻辑块、数千个 DSP 块和以兆位 (Mb) 计的 RAM。总体而言,它们可能包含数十亿个晶体管,相当于数千万个等效门(例如 2 输入 NAND 门)。

备选配置技术

为了确定逻辑块的功能和互连的布线,需要借助配置单元,后者可以用 0/1(断开 / 接通)开关来形象地表示。这些单元还用于配置 GPIO 接口标准、输入阻抗、输出压摆率等。根据具体 FPGA,这些配置单元可以采用如下三种技术之一来实现:

反熔丝:这些配置单元是一次性可编程 (OTP) 单元,意味着一旦对器件进行了编程,就无法撤回。此类器件往往仅限于太空和高安全性应用。其销量很小,因此价格很高,可谓昂贵的设计选择。


闪存:像基于反熔丝的配置单元一样,基于闪存的单元也是非易失性的。与反熔丝单元不同,闪存单元可以根据需要重新编程。闪存配置单元可以承受辐射,因而这些器件适合于太空应用(不过要对上部金属化层和封装进行修改)。


SRAM:采用这种手段时,配置数据存储在外部存储器中,每次 FPGA 上电时都要从存储器中加载数据(或在动态配置情况下,按照指令要求加载数据)。

对于配置单元基于反熔丝或闪存的 FPGA,优势在于它们是“即时接通”,功耗很小。这些技术的一个缺点是,除了用于创建芯片其余部分的基础 CMOS 工艺之外,他们还需要其他处理步骤。

对于配置单元基于 SRAM 技术的 FPGA,优势在于使用与芯片其余部分相同的 CMOS 工艺制造,并且具有更高的性能,因为它通常比反熔丝和闪存技术领先一代或两代。主要缺点是 SRAM 配置单元比(相同技术节点的)反熔丝和闪存单元更耗电,并且容易因为辐射而发生单粒子翻转 (SEU)。

长期以来,后一个缺点导致基于 SRAM 的 FPGA 被认为不适合用于航空航天应用。最近,业界采用了特殊缓解策略,使得基于 SRAM 的 FPGA 与基于闪存的 FPGA 一同出现在“好奇号”火星漫游车等系统上。

利用 FPGA 提供灵活性

FPGA 适用于多种多样的应用,特别适合用于实现智能接口功能、电机控制、算法加速和高性能计算 (HPC)、图像和视频处理、机器视觉人工智能 (AI)、机器学习 (ML)、深度学习 (DL)、雷达、波束赋形、基站以及通信。

一个简单的例子是在其他使用不同接口标准或通信协议的器件之间提供智能接口。请考虑一个现有系统,其中有一个应用处理器使用旧式接口连接到相机传感器和显示设备。

现在,假设系统的创建者希望将相机传感器和显示设备升级为更轻、更便宜、功耗更低的现代产品。唯一的问题是,两个新外设或其中之一可能使用现代接口标准,而原应用处理器 (AP) 却无法提供支持。或者,它们可能支持完全不同的通信协议,例如移动行业处理器接口(MIPI)。在这种情况下,采用支持多种 I/O 标准的 FPGA,再加之以某些软 MIPI IP 内核,将能提供一条快速、低成本、无风险的升级路径。

再举一个应用例子,考虑一些计算密集型任务,例如执行雷达系统所需的信号处理或通信基站中的波束赋形。采用冯诺依曼或哈佛架构的常规处理器非常适合某些任务,但不适合于需要重复执行相同操作序列的任务。这是因为运行单个线程的单个处理器内核一次只能执行一条指令。

相比之下,FPGA 中可以同时执行多个功能,支持以流水线方式完成一系列操作,进而实现更大的吞吐量。同样,FPGA 不像处理器那样执行相同的操作,例如对 1,000 对数据值再执行 1,000 次运算,而是在可编程结构中实例化 1,000 个加法器,从而在单个时钟周期中以大规模并行方式执行相同的计算。

哪些厂商制造 FPGA?

这是一幅不断演变的画卷。具备最高容量和性能的高端器件有两家主要制造商,分别是 Intel(其收购了 Altera)和 Xilinx。

Intel 和 Xilinx 提供从低端 FPGA 到高端 SoCFPGA 的各种产品。另一家几乎完全专注于 FPGA 的供应商是 Lattice Semiconductor,其针对的是中低端应用。最后但并非最不重要的一家是 Microchip Technology(通过收购 ActelAtmelMicrosemi),现在可提供多个系列的中小型 FPGA 和低端 SoC FPGA 类产品。

由于产品系列众多,每个系列提供不同的资源、性能、容量和封装样式,因此为眼前的任务选择最佳器件可能很棘手。

下面是一些例子:Intel 器件;Lattice Semiconductor 器件;以及 Xilinx 器件。

如何使用 FPGA 进行设计?

传统的 FPGA 设计方法是工程师使用 Verilog 或 VHDL 之类的硬件描述语言来捕获设计意图。首先可以对这些描述进行仿真,以验证其是否符合要求,然后将其传送给综合工具,生成用于配置(编程)FPGA 的配置文件。

每家 FPGA 供应商要么有自己内部开发的工具链,要么提供专业供应商定制的工具版本。无论哪种情况,都可以从 FPGA 供应商网站获得这些工具。另外,成熟工具套件可能有免费或低成本的版本。

为使 FPGA 更易于为软件开发人员所用,一些 FPGA 供应商现在提供高级综合 (HLS) 工具。这些工具会解析在 C、C++或 OpenCL 中以高级抽象所捕获的期望行为的算法描述,并生成输入以提供给较低级的综合引擎。

对于希望入门的设计人员,有许多开发和评估板可用,每种板提供不同的功能和特性。这里给出三个例子:DFRobot 的 DFR0600 开发套件,其具有 Xilinx 的 Zynq-7000 SoC FPGA;Terasic Inc. 的 DE10 Nano,其具有 Intel 的 Cyclone V SoC FPGA;ICE40HX1K-STICK-EVN 评估板,其具有 Lattice Semiconductor 的低功耗 iCE40 FPGA。

若设计人员计划使用基于 FPGA 的 PCIe 子卡来加速 X86 主板上运行的应用程序,可以关注 Alveo PCIe 子卡等产品,也是由 Xilinx 提供。

总结

最佳设计解决方案常常由 FPGA、处理器与 FPGA 的组合或以硬处理器内核作为部分结构的 FPGA 提供。

FPGA 多年来发展迅速,能够满足灵活性、处理速度、功耗等多方面的设计需求,适合于广泛的应用。

审核编辑黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1603

    文章

    21331

    浏览量

    593473
收藏 人收藏

    评论

    相关推荐

    FPGA芯片了解多少?

    及楼梯等路线方式已经固定,那么FPGA的内部就类似霍格沃兹中的魔法楼梯,可以随时改变房间到房间的路线关系。 此外,FPGA不需要像CPU和GPU在软件应用层面的指令系统编译,对FPGA
    发表于 04-17 11:13

    拆解FPGA芯片,带你深入了解其原理

    拆解FPGA芯片,带你深入了解其原理 现场可编程门阵列(FPGA)可以实现任意数字逻辑,从微处理器到视频生成器或加密矿机,一应俱全。FPGA由许多逻辑模块组成,每个逻辑模块通常由触发器
    发表于 04-17 11:07

    初识FPGA需要关注的注意事项!

    QuartusII ,或ISE 就可以,这两个基本是相通的,会了哪一个,另外的那个也就很Easy。功能仿真建议使用Modelsim ,如果是做芯片的,就可以学学别的仿真工具,做FPGA
    发表于 02-22 10:57

    关于JTAG口,了解多少?

    过程中,有一个关键步骤就是下板实现,做硬件“硬现”很重要,一般来说用JTAG口比较常见一些,因此相信肯定有些大侠遇到过JTAG口失灵或者损坏无法使用的事情。最近我就遇到了这类事情,FPGA的JTAG口突然
    发表于 01-19 21:19

    #人工智能 #FPGA #物联网 认识FPGA(一)FPGA真的了解吗?

    fpga物联网
    明德扬助教小易老师
    发布于 :2024年01月12日 06:39:19

    RFID和NFC之间的那些事儿,你真的了解吗?

    RFID和NFC之间的那些事儿,你真的了解吗?
    的头像 发表于 12-15 09:38 616次阅读
    RFID和NFC之间的那些事儿,你<b class='flag-5'>真的</b><b class='flag-5'>了解</b>吗?

    需要了解FPGA基础知识

    不多比著名的摩尔定律晚20年左右。FPGA是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物,是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决定制电路的不足,又克服了原有
    发表于 11-20 18:56

    fpga是什么?看完就明白

    硬件设计变得更加高效和便捷,为各行各业的创新提供有力支撑。相信随着技术的不断进步,FPGA将继续演化和发展,并为硬件设计带来更多的可能性。 (文章来源:网络)
    发表于 11-13 15:43

    FPGA设计加加速,NIC、Router、Switch任意实现

    FPGA设计加加速,NIC、Router、Switch任意实现 优秀的IC/FPGA开源项目(二)-NetFPGA 《优秀的IC/FPGA
    发表于 11-01 16:27

    寻找FPGA LED接收卡行业人才!

    期待的: 对FPGA及相关技术有深厚的了解和实践经验。 有LED显示或接收卡相关的项目经验。 能够独立解决技术难题,同时也善于团队合作。 对技术有热情,愿意与团队共同进步。 无论您是刚刚入门,还是
    发表于 10-26 10:55

    简单了解FPGA可重构技术

    FPGA可重构技术就是通过上位机控制在FPGA运行过程中加载不同的Bitstream文件,FPGA芯片根据文件内的不同逻辑将内部的资源全部或部分进行重新配置以达到多种功能任务动态切换的目标,从而提高了使用
    发表于 08-04 10:08 405次阅读

    数字电源设计方案难选?相信我,看了本文就不难了~

    图源:freepik.com 作为一名当代的电源设计工程师,如果正打算为终端系统选择一款合适的电源解决方案,很可能会感到非常的纠结: 是选择模拟电源还是数字电源? 如果选择数字电源,是选择基于DSP的控制方案还是基于MCU的控制方案? 我们非常理解电源工程师的难处,希望下面的文字能够化解这一难题。 模拟电源vs数字电源 众所周知,在核心功率转换方面,模拟电源方案一直是行业的主角,相关的产品种类丰富且久经市场考验,非常值得信赖。不过,
    的头像 发表于 07-05 08:25 505次阅读
    数字电源设计方案难选?<b class='flag-5'>相信我</b>,看了<b class='flag-5'>本文</b>就不难了~

    光纤面板你真的了解吗-科兰

    光纤面板在综合布线工程中是一个必备的原件,但是对于光纤面板你真的了解吗?下面就跟随科兰小编一起来了解一下吧。 什么是光纤面板? 纤维面板具有传光效率高,级间耦合损失小,传像清晰、真实,在光学上具有
    的头像 发表于 06-07 10:18 782次阅读
    光纤面板你<b class='flag-5'>真的</b><b class='flag-5'>了解</b>吗-科兰

    干货 | 拆解FPGA芯片,带你深入了解其原理

    MS-DOS程序通过键盘和鼠标进行控制Implementation本文的其余部分讨论XC2064的内部电路,从裸片照片中的反向工程。下图显示XC2064芯片的布局。FPGA的主要部
    发表于 06-02 14:03

    深入探讨在FPGA设计中要避免的10大错误

    本文列出了FPGA设计中常见的十个错误。我们收集了 FPGA 工程师在其设计中犯的 10 个最常见错误,并提供了解决方案的建议和替代方案。
    发表于 06-01 17:28 706次阅读
    深入探讨在<b class='flag-5'>FPGA</b>设计中要避免的10大错误