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

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

3天内不再提示

FPGA的基本结构、数据存储及配置方式

FPGA研究院 来源:CSDN 作者:原来如此呀 2022-11-29 10:10 次阅读

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 的输出值为两个逻辑与运算后的结果,其基本的实现结构如下图所示:

5848f3dc-6f76-11ed-8abf-dac502259ad0.png

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

585e2de2-6f76-11ed-8abf-dac502259ad0.png

更为复杂的 FPGA 架构

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

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

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

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

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

带嵌入式处理器的 FPGA

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

58740612-6f76-11ed-8abf-dac502259ad0.png

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

数据存储以及配置方式

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

    关注

    1603

    文章

    21328

    浏览量

    593275
  • 芯片
    +关注

    关注

    447

    文章

    47821

    浏览量

    409207
  • soc
    soc
    +关注

    关注

    38

    文章

    3750

    浏览量

    215724

原文标题:干货丨FPGA基础知识

文章出处:【微信号:FPGA研究院,微信公众号:FPGA研究院】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    态势数据存储方式有哪些

    智慧华盛恒辉态势数据存储方式主要取决于数据的特性、规模以及访问需求。以下是几种常见的态势数据存储
    的头像 发表于 04-22 19:28 39次阅读

    深入理解 FPGA 的基础结构

    不能实现的异步访问,但是一般需要小规模存储器时才采用这种方法(不能占用太多的用来实现逻辑的查找表资源)。 6、配置链 将电路编程到 FPGA 上的过程叫做配置,向
    发表于 04-03 17:39

    FPGA零基础学习系列精选:半导体存储器和可编程逻辑器件简介

    的,存储存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许
    发表于 03-28 17:41

    fpga配置flash怎么用来存储数据

    FPGA(现场可编程门阵列)是一种高度灵活的硬件设备,可以根据特定的需求进行重新配置FPGA通常用于处理大量数据和实时计算。然而,FPGA
    的头像 发表于 12-15 15:42 775次阅读

    protobuf的编码和存储方式

    一、protobuf简介: 1.1 protobuf的定义: protobuf是用来干嘛的? protobuf是一种用于 对结构数据进行序列化的工具,从而实现 数据存储和交换。 (主要
    的头像 发表于 11-09 09:27 460次阅读
    protobuf的编码和<b class='flag-5'>存储</b><b class='flag-5'>方式</b>

    为什么web3时代的数据存储方式,Filecoin是理想的方式

    为什么web3时代的数据存储方式,Filecoin是理想的方式? 随着区块链技术和去中心化应用程序(dapps)的普及,数据管理和
    的头像 发表于 10-26 11:16 217次阅读

    视频监控数据有哪些存储方式?哪种存储方式最优?

    视频监控数据有哪些存储方式?哪种存储方式最优? 随着社会的发展,视频监控技术已经成为城市安全管理中不可缺少的一部分。随之而来的是海量的视频监
    的头像 发表于 10-26 11:16 1991次阅读

    基于FPGA在通讯领域和数据存储的应用

    电子发烧友网站提供《基于FPGA在通讯领域和数据存储的应用.pdf》资料免费下载
    发表于 10-26 11:06 0次下载
    基于<b class='flag-5'>FPGA</b>在通讯领域和<b class='flag-5'>数据</b><b class='flag-5'>存储</b>的应用

    FPGA在一个时钟周期可以读取多个RAM数据吗?

    设计都涉及到对RAM的读写操作。在FPGA芯片中,RAM也叫做存储块(Block RAM),可以存储大量的数据FPGA中的RAM可以一次
    的头像 发表于 10-18 15:28 713次阅读

    单片机可以使用链表结构存储数据吗?

    单片机可以使用链表结构存储数据
    发表于 09-20 07:56

    深度解析CPLD和FPGA内部结构和原理

    大多数FPGA都具有内嵌的块RAM,这大大拓展了FPGA的应用范围和灵活性。块RAM可被配置为单端口RAM、双端口RAM、内容地址存储器(CAM)以及FIFO等常用
    发表于 08-29 10:14 1636次阅读
    深度解析CPLD和<b class='flag-5'>FPGA</b>内部<b class='flag-5'>结构</b>和原理

    使用高速NOR闪存配置FPGA

    点击上方 蓝字 关注我们 NOR闪存已作为FPGA(现场可编程门列阵)的配置器件被广泛部署。其为FPGA带来的低延迟和高数据吞吐量特性使得FPGA
    的头像 发表于 08-15 13:55 369次阅读
    使用高速NOR闪存<b class='flag-5'>配置</b><b class='flag-5'>FPGA</b>

    FPGA配置原理说明

    我们所说的FPGA配置电路,一方面要完成从PC上把bit文件下载到FPGA存储器的任务,另一方面则要完成FPGA上电启动时加载
    发表于 06-10 10:09 344次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>配置</b>原理说明

    在微处理器系统里实现两种简单的FPGA配置方式

    单元存储配置数据配置数据决定了PLD内部互连和功能,改变配置
    的头像 发表于 05-30 11:00 471次阅读

    在微处理器系统里实现两种简单的FPGA配置方式

    存储配置数据配置数据决定了PLD内部互连和功能,改变配置
    的头像 发表于 05-30 10:59 487次阅读
    在微处理器系统里实现两种简单的<b class='flag-5'>FPGA</b><b class='flag-5'>配置</b><b class='flag-5'>方式</b>