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
    +关注

    关注

    1629

    文章

    21735

    浏览量

    603171
收藏 人收藏

    评论

    相关推荐

    FPGA基础知识及设计和执行FPGA应用所需的工具

    本文将首先介绍FPGA的基础知识,包括FPGA的工作原理以及为什么要使用FPGA等,然后讨论设计和执行FPGA应用所需的工具。
    的头像 发表于 11-11 11:29 743次阅读
    <b class='flag-5'>FPGA</b>基础知识及设计和执行<b class='flag-5'>FPGA</b>应用所需的工具

    科普课堂 | OSI模型,真的了解吗?

    网络通信是现代信息技术的基石,它使得人们可以在不同的地理位置之间快速、高效的传递信息,为了实现这一目标,需要一种标准的框架来描述网络通信的过程。因此OSI七层网络模型诞生了。简单介绍-什么是OSI七层通信模型?OSI七层通信模型(学名叫OpenSystemInterconnection,意为开放互联系统),也有很多人会写成IOS七层或者ISO七层,这里大家可
    的头像 发表于 10-18 17:37 1676次阅读
    科普课堂 | OSI模型,<b class='flag-5'>你</b><b class='flag-5'>真的</b><b class='flag-5'>了解</b>吗?

    认识贴片电阻吗,对他了解多少?

    认识贴片电阻吗,对他了解多少?
    的头像 发表于 08-27 15:49 457次阅读
    <b class='flag-5'>你</b>认识贴片电阻吗,<b class='flag-5'>你</b>对他<b class='flag-5'>了解</b>多少?

    对村田的贴片电容器有多少了解

    对村田的贴片电容器有多少了解
    的头像 发表于 08-26 17:57 618次阅读
    <b class='flag-5'>你</b>对村田的贴片电容器有多少<b class='flag-5'>了解</b>?

    了解贴片电感上标注的数字含义吗?

    了解贴片电感上标注的数字含义吗?
    的头像 发表于 08-17 14:30 765次阅读
    <b class='flag-5'>你</b><b class='flag-5'>了解</b>贴片电感上标注的数字含义吗?

    科普 | 一文了解FPGA

    FPGA 性能有进一步提升的可能。 Xilinx 和 Intel 相继发布 ACAP 和 Agilex 平台型产品,根据 Xilinx 披露的数据,新的平台型产品速度超过当前最高速的 FPGA 20
    发表于 07-08 19:36

    FPGA的JTAG口很脆弱?以后要多加小心

    上面的步骤来操作。 我就纳闷,难道FPGA的JTAG口真的那么脆弱?我按照上述次方法,结果发现,TCK真的跟GND短路,真是郁闷至极啊。
    发表于 06-10 09:41

    一个更适合工程师和研究僧的FPGA提升课程

    需求啦。本周,社区FPGA专项培训课程正式安排上! 和我一起查收这份报名攻略~? 重要的事写在前面! !本课程多人联合报名有折扣优惠,多项课程可支持私人定制。(私信我,还另外享受折扣价
    发表于 06-05 10:09

    真的了解驻波比吗?到底什么是电压驻波比?

    真的了解驻波比吗?到底什么是电压驻波比?在很长一段时间内,小编对驻波比的了解仅限于这样一个概念:它是一个用于描述波反射大小的物理量,取值范围[1, ∞],值越小,就表示反射越小,值越
    的头像 发表于 05-29 14:27 4017次阅读
    <b class='flag-5'>你</b><b class='flag-5'>真的</b><b class='flag-5'>了解</b>驻波比吗?到底什么是电压驻波比?

    真的了解110配线架吗

    110配线架是一种常见的网络设备,主要用于计算机网络中数据和电话传输的配线系统。作为综合布线系统的核心产品,它起着传输信号的灵活转接、灵活分配以及综合统一管理的作用。综合布线系统的最大特性是利用同一接口和同一种传输介质,让各种不同信息在上面传输,而这一特性的实现主要通过连接不同信息的配线架之间的跳接来完成。 110配线架早期主要用于网络系统配线,现在则主要用于电话系统配线,俗称鱼骨架。一般来说,一个110配线架为
    的头像 发表于 04-23 11:46 1511次阅读

    FPGA芯片了解多少?

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

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

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

    mpo光纤跳线真的了解

    MPO光纤跳线是一种使用MPO(Multi-fiber Push-On)连接器的光纤跳线。MPO连接器是MT系列连接器之一,其插芯端面上有两个直径为0.7mm的导引孔和导引针,用于实现精准连接。MPO光纤跳线具有多芯设计,最多可达24芯,常用的是12芯。这种紧凑的设计使得MPO跳线芯数多、体积小,非常适用于需要高密度集成光纤线路的环境。 MPO光纤跳线广泛应用于FTTX、40/100GSFP、SFP+等收发模块或设备内外部的连接应用。同时,MPO光纤跳线也支持多种形式的定制,如MPO转接跳线、MTP类
    的头像 发表于 04-02 10:15 1133次阅读

    关于JTAG口,了解多少?

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

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

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