FPGA 简介

部署运行你感兴趣的模型镜像
关注、星标公众号,精彩内容每日送达
来源:网络素材

第1节 什么是 FPGA

FPGA 的全称为 Field-Programmable Gate Array,即现场可编程门阵列。 FPGA 是在 PAL、 GAL、 CPLD 等可编程器件的基础上进一步发展的产物, 是作为专用集成电路( ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 简而言之, FPGA 就是一个可以通过编程来改变内部结构的芯片。

FPGA 功能实现:需要通过编程即设计硬件描述语言,经过 EDA 工具编译、综合、布局布线成后转换为可烧录的文件,

最终加载到 FPGA 器件中去,改变 FPGA 内部的连线,最终完成所实现的功能。

FPGA 性能对比:FPGA 相比于单片机、 CPU 等集成电路芯片拥有效率更高、功耗更低的特点,但是易于开发程度远远不如单片机、 CPU; 在数字芯片设计领域, FPGA 虽然相比 ASIC 具有更短的开发周期与开发难度, 但是其存在着成本过高、性能较差并且在资源的利用率上远不及 ASIC 等问题,不能真正的替代 ASIC。

第2节 FPGA 的基本结构

FPGA 可编程的特性决定了其实现数字逻辑的结构不能像专用 ASIC 那样通过固定的逻辑门电路来完成,而只能采用一种可以重复配置的结构来实现, 而查找表(LUT)可以很好地满足这一要求,目前主流的 FPGA 芯片仍是基于 SRAM 工艺的查找表结构。

FPGA 芯片参数指标:包含可编程逻辑模块的数量、固定功能逻辑模块(如乘法器)的数目及存储器资源(如嵌入式 RAM)的大小。

在最底层的可配置逻辑模块(如片上的逻辑单元) 上,存在着基本的两种部件:触发器和查找表( LUT) , 而触发器和查找表的组合方式不同,是各个 FPGA 家族之间区别的重要依据, 并且查找表本身的结构也可能各不相同( 有 4 输入或 6 输入或其他)。

查找表( Look-Up-Table)简称为 LUT, 其本质上就是一个 RAM。目前 FPGA 内部中多使用 4输入的 LUT,每一个 LUT 可以看成一个有 4 位地址线的 RAM。

当用户在 EDA 工具上通过原理图或 硬件描述语言设计了一个逻辑电路以后, FPGA 开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入 RAM 中。 这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查找表操作, 通过地址找到对应的 RAM 中的结果, 最后将其输出。以实现数字逻辑 Y=A&B&C 的功能为例。如果是在专用 ASIC 中,为了实现该逻辑,逻辑门都已经事先确定好, Y 的输出值为两个逻辑与运算后的结果,其基本的实现结构如下图所示:

对Y=A&B&C 的 利用FPGA 实现基本结构 :

第3节 更为复杂的 FPGA 架构

随着技术的发展和工艺节点的进步, FPGA 的容量和性能在不断提高的同时, 其功耗却不断的优化减少。 2006 年以前四输入查找表一直被广泛使用, 在一些高端器件可能会用上六输入、八输入或更多输入端口的查找表。 而一个多输入的查找表又可以分解成较小输入的查找表, 即能够分裂成许多更小的功能。 例如一个八输入的查找表可以分解成两个四输入的查找表或分解成一个三输入加一个五输入的查找表。在实际的高端器件中,这种可编程构造可以描述相当于百万级(有时甚至千万级)的原始逻辑门。

在 FPGA 内部,利用 FPGA 的可编程性在芯片内部构造实现了一个计数器逻辑,有着“软内核”与“硬内核”之分。

软内核(软功能):在构造计数器逻辑过程中使用到的功能便可以被称为软功能。

硬内核(硬功能):功能若是直接利用芯片实现的,则是利用了芯片内部的硬功能。

软内核与硬内核之间优势互补,软内核的优势在于可以在利用芯片资源的基础上利用编程设计让其完成需要实现的任何功能(注意是数字功能,不包括模拟功能)。 而**硬内核由于是实现固定功能的器件,因此其优势在于资源利用率高且功耗较低, 占用硅片的面积也较小, 并具有较高的性能。最重要的区别**在于:与软内核相比硬内核可用于实现模拟功能, 例如锁相环的倍频功能,这个功能需要在模拟电路下实现,所以这一部分是在 FPGA 内部用硬件来实现的 。

第4节 带嵌入式处理器的 FPGA

利用 FPGA 的可编程构造实现的事情之一即为使用其中的一部分数字逻辑资源制作一个或多个软处理器内核, 当然, 也可以实现不同规模的处理器。

这个芯片是一种新的SoC(System on Chip,系统级芯片) FPGA,完全以硬内核方式实现的双路 ARM Cortex-A9 微控制器子系统(运行时钟高达 1GHz,包含浮点引擎,片上缓存,计数器,定时器等)以及种类广泛的硬内核接口功能( SPI, I2C, CAN等),还有一个硬内核的动态内存控制器,所有这些组件都利用大量传统的可编程构造和大量的通用输入输出( GPIO)引脚进行了性能增强。

第5节 数据存储以及配置方式

在 FPGA 内部存在着存储单元片内 RAM 块,数据是存放在 RAM 中并由其来设置工作状态的,若想要 FPGA 进行工作,就需要对片内 RAM 进行编程。 而如果外部有大量数据交互时,就要通过增加外设来对数据进行暂时性的存储,如 SDRAM 存储器或者 DDR3 存储器,暂存在外设中的数据最终也是要通过 FPGA 内部的 RAM 进行存储与处理。当在 EDA 工具上将程序设计完成之后,便需要将软件上的程序烧录进 FPGA 内部。通过不同的配置模式, FPGA 便会有不同的编程方式。

常用的几种配置模式:

并行模式: 通过并行 PROM(Programmable read-only memory,可编程只读存储器)、 Flash (Macromedia Flash。多媒体软件平台)配置 FPGA;

主从模式: 使用一片 PROM 配置多片 FPGA;

串行模式:串行 PROM 配置 FPGA;

外设模式:将 FPGA 作为微处理器的外设,由微处理器对其编程。

目前, 主流的 FPGA 都是基于 SRAM (Static Random-Access Memory,静态随机存取存储器)工艺的, 在大部分的 FPGA 开发板上,使用的都是串行配置模式。由于 SRAM 掉电就会丢失内部数据,因此往往都会外接一个能够掉电保存数据的片外存储器以保存程序。 这样一来, 上电时 FPGA 便将外部存储器中的数据读入片内 RAM 以完成配置, 对 FPGA 编程完成后便进入工作状态;掉电后 FPGA 内部 SRAM 中存储的数据丢失,逻辑清零。 以这种方式配置 FPGA 不仅能反复使用,还无需重复的手动配置。完成一次主动配置之后每次上电便会自动的实现 FPGA 的内部编程。

(全文完)

图片

想要了解FPGA吗?这里有实例分享,ZYNQ设计,关注我们的公众号,探索

您可能感兴趣的与本文相关的镜像

Langchain-Chatchat

Langchain-Chatchat

AI应用
Langchain

Langchain-Chatchat 是一个基于 ChatGLM 等大语言模型和 Langchain 应用框架实现的开源项目,旨在构建一个可以离线部署的本地知识库问答系统。它通过检索增强生成 (RAG) 的方法,让用户能够以自然语言与本地文件、数据库或搜索引擎进行交互,并支持多种大模型和向量数据库的集成,以及提供 WebUI 和 API 服务

### FPGA简介 现场可编程门阵列(Field Programmable Gate Array, FPGA)是一种高度灵活的集成电路,能够在制造完成后由用户配置其功能。这种灵活性使得FPGA成为众多应用的理想选择,尤其是在原型验证、定制计算加速以及特定领域硬件实现等方面。 #### 基本结构与工作原理 FPGA的核心是由大量逻辑单元组成的矩阵网格,这些逻辑单元通常被称为可配置逻辑块(Configurable Logic Block, CLB)。CLB能够通过内部互连资源连接起来形成复杂的数字电路。每个CLB一般包含几个查找表(Look-Up Table, LUT)、触发器和其他基本元件,用于构建组合逻辑或顺序逻辑电路[^1]。 除了CLB之外,现代FPGAs还配备了多种类型的专用硬核来增强性能。例如,为了提升算术运算效率,许多型号内置了高效的乘法器;而针对高速数据传输需求,则有支持多吉比特每秒速率的串行/并行转换接口——即SERDES模块。这类预定义的功能组件不仅简化了设计流程,而且提高了整体系统的吞吐量和可靠性。 #### 设计流程与发展历程 开发基于FPGA的应用程序涉及编写描述目标行为的语言文件—通常是VHDL或者Verilog HDL,并利用综合工具将其转化为具体的物理布局。随后经过映射、放置及布线阶段最终生成位流(Bitstream),该文件被加载到器件上完成个性化设置过程。随着技术进步,越来越多高级别的抽象方法论也被引入进来辅助工程师更便捷高效地开展项目研发活动。 自上世纪八十年代初问世以来,FPGA经历了快速的发展变革。早期产品主要面向简单控制任务提供有限规模的可重构能力;然而随着时间推移,在工艺制程不断演进的基础上,新一代设备已经具备处理复杂算法乃至整个SoC(System on Chip)级解决方案的实力。如今市场上常见的几大品牌如Xilinx(赛灵思), Intel-Altera (英特尔旗下公司) 和Microsemi等都在持续推出具有更高密度、更低功耗特性的新产品系列满足日益增长的需求趋势。 #### 应用场景分析 由于兼具通用性和专属性优势,FPGA广泛应用于各个行业当中: - **通信基础设施建设**:凭借出色的实时信号处理能力和丰富的外设选项,非常适合用来搭建基站控制器、路由器以及其他网络节点装置; - **数据中心优化**:作为服务器集群中的协处理器角色参与大数据挖掘、机器学习训练等工作负载分担任务,有效缓解CPU/GPU瓶颈现象; - **消费电子市场**:诸如智能家居中枢、虚拟现实头显之类新兴事物同样离不开这一强大平台的支持,帮助制造商缩短上市周期的同时也赋予终端更多可能性。 综上所述,FPGA以其独特的架构特点赢得了广大科研工作者和技术爱好者的青睐。未来伴随着人工智能浪潮的到来及其背后海量异构计算要求的增长,相信此类创新性半导体元器件还将继续发挥不可替代的作用。 ```python def fpga_application(): applications = [ "Communication Infrastructure", "Data Center Optimization", "Consumer Electronics" ] for app in applications: print(f"FPGA is widely used in {app}.") fpga_application() ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值