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

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

3天内不再提示

FPGA入门之什么是FPGA

jf_78858299 来源:CSDN 作者:原来如此呀 2023-03-21 10:21 次阅读

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

图片

image-20211026193942002

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

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

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

常用的几种配置模式

  1. 并行模式 :通过并行 PROM(Programmable read-only memory,可编程只读存储器)、 Flash (Macromedia Flash。多媒体软件平台)配置 FPGA;
  2. 主从模式 :使用一片 PROM 配置多片 FPGA;
  3. 串行模式 :串行 PROM 配置 FPGA;
  4. 外设模式 :将 FPGA 作为微处理器的外设,由微处理器对其编程。

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

FPGA在芯片制造大厂会有比较多的岗位,一般的嵌入式消费公司岗位很少,我有认识一个同学,从大学就开始学习FPGA,我们那年电赛就是用的FPGA来完成的,现在他也还一直从事FPGA开发。

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

    关注

    1628

    文章

    21728

    浏览量

    602944
  • 集成电路
    +关注

    关注

    5387

    文章

    11529

    浏览量

    361592
  • asic
    +关注

    关注

    34

    文章

    1199

    浏览量

    120427
  • pal
    pal
    +关注

    关注

    1

    文章

    43

    浏览量

    27274
收藏 人收藏

    评论

    相关推荐

    FPGA入门FPGA设计者入门必备!

    电子发烧友网: 在我看来,想要成为一名合格的 FPGA 设计者,需要掌握很多知识和技巧。本文就针对FPGA设计入门者需要掌握的基本功及设计原则展开分析,希望对大家有帮助。 一.5大
    发表于 06-26 15:26 1.4w次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>入门</b>:<b class='flag-5'>FPGA</b>设计者<b class='flag-5'>入门</b>必备!

    FPGA如何从入门到高手?

    本文首先介绍了FPGA的特点与FPGA芯片结构,其次分析了FPGA与ASIC及CPLD对比,最后介绍了FPGA基础入门到高手相关知识与
    发表于 05-30 08:39 3.7w次阅读
    <b class='flag-5'>FPGA</b>如何从<b class='flag-5'>入门</b>到高手?

    FPGA入门资料

    本帖最后由 eehome 于 2013-1-5 09:55 编辑 哪位大侠有FPGA入门级的资料,跪求!!!关于FPGA可以实现哪些功能,进行哪些方面的功能扩展,比如内嵌硬核、
    发表于 07-22 08:45

    Xilinx FPGA无痛入门,海量教程免费下载

    用notepad++的关联设置Lesson07 特权Xilinx FPGA SF-SP6入门指南 -- ISE与Modelsim联合仿真库编译Lesson08 特权Xilinx FPGA
    发表于 07-22 11:49

    FPGA/SOPC开发快速入门教程

    FPGA/SOPC开发快速入门教程
    发表于 08-06 16:56 79次下载
    <b class='flag-5'>FPGA</b>/SOPC开发快速<b class='flag-5'>入门</b>教程

    FPGA入门教程

    初步介绍了触发器和逻辑门,初步介绍了FPGA的功能和组成,对初学者入门很有帮助。
    发表于 11-03 10:31 0次下载

    FPGA入门试验精品

    FPGA入门试验精品,有需要的下来看看啊
    发表于 05-10 11:24 27次下载

    FPGA入门技术教程

    FPGA入门技术教程,适合新手刚入门的时候看
    发表于 01-24 16:29 47次下载

    FPGA快速入门经验谈(part2)

    FPGA入门学习网络讲座: “柏氏”7步FPGA快速入门学习法
    发表于 02-11 06:50 1022次阅读

    FPGA硬件基础FPGA时钟资源的工程文件免费下载

    本文档的主要内容详细介绍的是FPGA硬件基础FPGA时钟资源的工程文件免费下载。
    发表于 12-10 15:00 15次下载

    FPGA硬件基础FPGA的逻辑单元的工程文件免费下载

    本文档的主要内容详细介绍的是FPGA硬件基础FPGA的逻辑单元的工程文件免费下载。
    发表于 12-10 15:00 19次下载

    FPGA硬件基础FPGA的RAM存储课件和工程文件

    本文档的主要内容详细介绍的是FPGA硬件基础FPGA的RAM存储课件和工程文件。
    发表于 12-10 15:27 30次下载
    <b class='flag-5'>FPGA</b>硬件基础<b class='flag-5'>之</b><b class='flag-5'>FPGA</b>的RAM存储课件和工程文件

    FPGA的零基础入门教程

    本文档的主要内容详细介绍的是FPGA的零基础入门教程免费下载。
    发表于 01-18 16:47 58次下载
    <b class='flag-5'>FPGA</b>的零基础<b class='flag-5'>入门</b>教程

    华为FPGA设计全套入门技巧

    华为经典FPGA设计全套入门技巧。
    发表于 03-22 09:31 15次下载

    FPGA入门FPGA 开发流程

    FPGA 的设计流程就是利用 EDA 开发软件和编程工具对 FPGA 芯片进行开发的过程。原理图和HDL(Hardware description language,硬件描述语言)是两种最常用的数字
    的头像 发表于 03-21 10:26 3265次阅读