FPGA简介|结构、组成和应用

news2025/2/13 18:08:43

  Field Programmable Gate Arrays(FPGA,现场可编程逻辑门阵列),是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物, 是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路灵活性的不足,又克服了原有可编程器件门电路数有限的缺点。

参考文章
Ⅰ electronicshub
Ⅱ IBM

  为了实现可编程,FPGA通常包括可编程逻辑块(Programmable Logic Blocks,PLBs)/(Configurable Logic Blocks,CLBs) 和逻辑块之间的可配置互连线组成。相比于单片机、CPU等集成电路芯片具有效率高、功耗低的特点,同时相较于ASIC具有更短的开发周期与开发难度,但成本较高、且在资源的利用率上远不及ASIC

1.不同类型的PLD

  在进一步深入了解FPGA之前,我们先引入这样一个概念——Programmable Logic Devices(PLD),他是一个更高层面的概念,指包含大量逻辑门触发器的集成电路,用户可以对其进行配置以实现各种功能

  最简单的可编程逻辑设备通常由一系列的与门或门组成,这些门的逻辑及其互连可以通过编程配置。基本上,PLD可以分为三种类型:

1.1 简单可编程逻辑器件(SPLD)

1.1.1 可编程逻辑阵列(PLA)

  PLA由一个可编程互连的AND门平面一个可编程互连的OR门平面组成,通过连接水平和垂直互连线,每个输入可以连接到任何一个与门,然后来自不同与门的输出可以进一步连接到或门以构成更复杂的逻辑

在这里插入图片描述

1.1.2 可编程阵列逻辑(PAL)

  在PAL中,只有与门是可编程的,而或门平面在在制造过程中是固定的,其灵活性不如PLA,但他们消除了与可编程或门相关的时间延迟

在这里插入图片描述

1.1.3 通用数组逻辑(GAL)

  在组成上GAL与PAL类似,区别在于其可编程结构,PAL使用PROM,它是一次性可编程的,而GAL使用EEPROM可以重新编程

1.2 复杂可编程逻辑器件(CPLD)

  CPLD是在SPLD器件基础上开发的,它由多个Logic Block组成,其内部由PAL或PLA以及Macrocell组成,用于创建更大、更复杂的设计

在这里插入图片描述

1.3 现场可编程门阵列(FPGA)

  FPGA与CPLD的区别主要在于他们的组合逻辑形成模式不同,CPLD是基于基本门电路形成的,而FPGA是基于查找表(LUT——RAM、MUX)形成的

  FPGA比CPLD还要复杂,它由可编程逻辑单元CLB可编程互联可编程IO块组成

在这里插入图片描述

  FPGA可以通过指定每个CLB的逻辑功能,并设置每个可编程逻辑开关的连接来实现任何自定义设计,由于设计定制电路的过程是在现场而不是在晶圆厂完成的,因此该器件被称为“现场可编程”

在这里插入图片描述

2.FPGA的组成

  通常,FPGA由三个基本组件组成:

  • 可编程逻辑单元(CLBs)——负责实现核心逻辑功能
  • 可配置互连线——负责连接逻辑块
  • IO块——通过布线连接到CLB,有助于建立外部连接

在这里插入图片描述

2.1 Configurable/Programmable Logic Blocks

  CLB是FPGA的基本组件,它同时提供 逻辑(基于LUT)存储(基于FF) 功能,基本逻辑块可以是晶体管、NAND门、多路选择器、查找表、类似PAL的结构甚至处理器等任何东西,Xilinx和Altera都使用基于查找表的逻辑模块来实现逻辑和存储功能

  单个CLB模块的内部结构大致如下图所示,方框中的部分即为一个四输出的查找表单元

在这里插入图片描述

查找表的设计原理
  对于下图中真值表对应的控制逻辑,如果用查找表实现的话,可以先设计4bit的RAM,RAM中存储的数据对应为真值表中的逻辑结果,然后分别用信号A和B控制双路选择器,输出结果为Y,这就是一个简单的二输入查找表

在这里插入图片描述

  具有n个输入的LUT由 2 n 2^n 2n个配置位(由SRAM单元实现),使用这些SRAM Bits,LUT可以配置为实现任何逻辑功能

2.2 Configurable interconnects

  如果说逻辑功能由CLB提供,则可编程布线则负责将这些CLB互联,它提供了一个逻辑块与另一个逻辑块之间以及逻辑块和IO块之间的互连,以完全实现自定义电路

  基本上,布线网络由可编程开关的连接线组成,可以使用任何编程技术进行配置,基本上有两种类型的互连体系结构,他们是:

  • 网格布线
    在网格布线架构中,逻辑模块以二维阵列排列,并使用可编程布线网络互连,这种布线方式广泛应用于商业FPGA中

在这里插入图片描述

  • 分层路由
    分层路由架构将逻辑块分成几个组或集群。如果逻辑块位于同一集群中,则分层路由会在较低层次上将它们连接起来,如果逻辑块在不同的集群中,则布线是在更高层次进行的

在这里插入图片描述

  • 片上存储器
      最早的FPGA仅使用FF将内存集成到逻辑块内部,然而随着FPGA功能的增加,越来越复杂的设计需要专用的片上存储器来缓冲和重用数据,现代FPGA综合使用大型SRAM存储器阵列,较小的查找表和传统的FF元件来提供存储

  • DSP:
      在早期的FPGA中,唯一可用的算术资源就是简单的加法器,任何更复杂的逻辑都是由更原始的CLB模块构成的,随着硅技术的进步,更加复杂的算术资源被整合到FPGA中,最终形成了现代的FPGA DSP模块,DSP模块为实现高性能计算提供了高度优化的资源从而避免在CLB中实现这些功能的复杂性

3.FPGA编程技术

  FPGA中可编程开关主要利用以下三种方法实现:

  • SRAM

  SRAM使用晶体管设计,静态(S,Static)意味着SRAM存储单元上加载的值将保持不变,直到故意更改或移除电源,下图显示了一个典型的六晶体管的SRAM单元,用于存储1位二进制数据

在这里插入图片描述

  基于SRAM对逻辑单元和互连进行编程,有着低动态功耗、高速和易于集成的优点(得益于CMOS结构)

在这里插入图片描述

  • EEPROM/闪存

  主要优点是其非易失性,但是尽管flash支持可重新编程,与SRAM技术相比,其可重写次数有限

  • 防熔断剂

  防熔丝编程技术是生产一次性可编程器件的技术,他们是使用antifuse的链路实现的,该链路在未编程状态下具有非常高的电阻,可以被视为开

  编程时,向输入端提供高电压和电流,因此,最初以连接两条金属轨道的非晶硅形式形成的反熔丝,通过转化为导电多晶硅而焕发生机

在这里插入图片描述

  与其他两种技术相比,反熔丝技术占用的空间最小,但只能作为一次性可编程选项

4.FPGA应用

FPGA基本设计流程
利用硬件描述语言进行编程设计–>EDA 工具编译、综合、布局布线–>转换为可烧录的文件–>最终加载到FPGA器件中,改变FPGA内部的连线–>完成所实现的功能

在这里插入图片描述

  • 雷达应用:FPGA因其高速、并行处理能力而受到信号处理和数据采集的青睐
  • 无人机(UAV):高速信号处理算法使FPGA非常适合执行无人机中的飞行控制、传感器处理和通信任务
  • 工业控制系统(ICS):用于实现各种自动化和基于硬件的加密功能,以实现高效的网络安全
  • ASIC原型设计:作为原型验证
  • 数据中心:高带宽、低延迟

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2297493.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

4. React 中的 CSS

用例中的干净的脚手架的创建可以参考另一篇文章:3.React 组件化开发React官方并没有给出在React中统一的样式风格: 由此,从普通的css,到css modules,再到css in js,有几十种不同的解决方案,上百…

django中间件,中间件给下面传值

1、新建middleware.py文件 # myapp/middleware.py import time from django.http import HttpRequest import json from django.http import JsonResponse import urllib.parse from django.core.cache import cache from comm.Db import Db class RequestTimeMiddleware:def …

【论文阅读】Revisiting the Assumption of Latent Separability for Backdoor Defenses

https://github.com/Unispac/Circumventing-Backdoor-Defenses 摘要和介绍 在各种后门毒化攻击中,来自目标类别的毒化样本和干净样本通常在潜在空间中形成两个分离的簇。 这种潜在的分离性非常普遍,甚至在防御研究中成为了一种默认假设,我…

Python基于Django的微博热搜、微博舆论可视化系统(V3.0)【附源码】

博主介绍:✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&…

不小心删除服务[null]后,git bash出现错误

不小心删除服务[null]后,git bash出现错误,如何解决? 错误描述:打开 git bash、msys2都会出现错误「bash: /dev/null: No such device or address」 问题定位: 1.使用搜索引擎搜索「bash: /dev/null: No such device o…

【云安全】云原生- K8S kubeconfig 文件泄露

什么是 kubeconfig 文件? kubeconfig 文件是 Kubernetes 的配置文件,用于存储集群的访问凭证、API Server 的地址和认证信息,允许用户和 kubectl 等工具与 Kubernetes 集群进行交互。它通常包含多个集群的配置,支持通过上下文&am…

【工业场景】用YOLOv8实现火灾识别

火灾识别任务是工业领域急需关注的重点安全事项,其应用场景和背景意义主要体现在以下几个方面: 应用场景:工业场所:在工厂、仓库等工业场所中,火灾是造成重大财产损失和人员伤亡的主要原因之一。利用火灾识别技术可以及时发现火灾迹象,采取相应的应急措施,保障人员安全和…

(2025)深度分析DeepSeek-R1开源的6种蒸馏模型之间的逻辑处理和编写代码能力区别以及配置要求,并与ChatGPT进行对比(附本地部署教程)

(2025)通过Ollama光速部署本地DeepSeek-R1模型(支持Windows10/11)_deepseek猫娘咒语-CSDN博客文章浏览阅读1k次,点赞19次,收藏9次。通过Ollama光速部署本地DeepSeek-R1(支持Windows10/11)_deepseek猫娘咒语https://blog.csdn.net/m0_70478643/article/de…

【自然语言处理】TextRank 算法提取关键词、短语、句(Python源码实现)

文章目录 一、TextRank 算法提取关键词 [工具包]二、TextRank 算法提取关键短语[工具包]三、TextRank 算法提取关键句[工具包]四、TextRank 算法提取关键句(Python源码实现) 一、TextRank 算法提取关键词 [工具包] 见链接 【自然语言处理】TextRank 算法…

记一次Self XSS+CSRF组合利用

视频教程在我主页简介或专栏里 (不懂都可以来问我 专栏找我哦) 目录:  确认 XSS 漏洞 确认 CSRF 漏洞 这个漏洞是我在应用程序的订阅表单中发现的一个 XSS 漏洞,只能通过 POST 请求进行利用。通常情况下,基于 POST 的…

JDBC如何连接数据库

首先,我们要去下载JDBC的驱动程序 官网下载地址:https://downloads.mysql.com/archives/c-j/ 选择最新版本就可以 然后回到我们idea点击file - project Structure - Modules, 就行了 参考1:如何解决JDBC连接数据库出现问题且对进行数据库操…

AI语言模型的技术之争:DeepSeek与ChatGPT的架构与训练揭秘

云边有个稻草人-CSDN博客 目录 第一章:DeepSeek与ChatGPT的基础概述 1.1 DeepSeek简介 1.2 ChatGPT简介 第二章:模型架构对比 2.1 Transformer架构:核心相似性 2.2 模型规模与参数 第三章:训练方法与技术 3.1 预训练与微调…

网络安全威胁是什么

1.网络安全威胁的概念 网络安全威胁指网络中对存在缺陷的潜在利用,这些缺陷可能导致信息泄露、系统资源耗尽、非法访问、资源被盗、系统或数据被破坏等。 2.网络安全威胁的类型 物理威胁系统漏洞威胁身份鉴别威胁线缆连接威胁有害程序危险 (1&#x…

驱动开发、移植(最后的说法有误,以后会修正)

一、任务明确:把创龙MX8的驱动 按照我们的要求 然后移植到 我们的板子 1.Linux系统启动卡制作, sd卡 先按照 《用户手册—3-2-Linux系统启动卡制作及系统固化》 把创龙的Linux系统刷进去。 2. 把TLIMX8-EVM的板子过一遍 把刚刚烧好系统的sd卡插入 创…

归并排序(C# C++)

目录 1 归并排序的基本概念 2 算法步骤 2-1 分解阶段 2-2 合并阶段 3 代码实现 3-1 C#代码示例(该代码在unity环境下) 3-2 C代码示例 1 归并排序的基本概念 归并排序(Merge Sort)是一种经典的分治算法,由约翰…

如何使用智能化RFID管控系统,对涉密物品进行安全有效的管理?

载体主要包括纸质文件、笔记本电脑、优盘、光盘、移动硬盘、打印机、复印机、录音设备等,载体(特别是涉密载体)是各保密、机要单位保证涉密信息安全、防止涉密信息泄露的重要信息载体。载体管控系统主要采用RFID射频识别及物联网技术&#xf…

华为云kubernetes基于keda自动伸缩deployment副本(监听redis队列长度)

1 概述 KEDA(Kubernetes-based Event-Driven Autoscaler,网址是https://keda.sh)是在 Kubernetes 中事件驱动的弹性伸缩器,功能非常强大。不仅支持根据基础的CPU和内存指标进行伸缩,还支持根据各种消息队列中的长度、…

入选TPAMI2025!傅里叶变换+目标检测新突破!

今天给大家推荐一个目标检测,好发不卷的新思路:与傅里叶变换结合! 一方面,不仅能提升检测的准确性和可靠性,还能增强模型的通用性和适应性,灵活应对复杂场景。比如TPAMI25的FSD模型,便通过该方…

物联网智能语音控制灯光系统设计与实现

背景 随着物联网技术的蓬勃发展,智能家居逐渐成为现代生活的一部分。在众多智能家居应用中,智能灯光控制系统尤为重要。通过语音控制和自动调节灯光,用户可以更便捷地操作家中的照明设备,提高生活的舒适度与便利性。本文将介绍一…

等级保护2.0|网络安全服务

等级保护2.0|网络安全服务 定义 对于国家秘密信息、法人和其他组织及公民专有信息以及公开信息的存储、传输、处理这些信息系统分等级实行安全保护,对信息系统中发生的信息安全时间分等级响应、处置。 思想 对信息安全实行等级化保护和等级化管理 目标 突出重…