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

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

3天内不再提示

FPGA相关知识系统介绍

FPGA之家 来源:FPGA之家 2023-01-29 17:13 次阅读

FPGA的本质是设计一颗芯片,其开发刘成是通过verilog硬件描述语言通过EDA工具编译、综合、布局布线成为下载文件,最终加载到FPGA器件中去,完成所实现的功能。而硬件描述语言描述的就是组合逻辑和时序逻辑电路,度和逻辑就是与、非、或组成的电路,而时序电路就是触发器。在FPGA中,组合逻辑的变成了查找表的工作,于是所有的数字电路转化成为查找表和寄存器,这便是FPGA的基础,查找表负责逻辑实现,寄存器存储电路状态。现代FPGA内部除了查找表和寄存器之外,还有RAM块,用于存储大量的数据块,这样可以节省芯片实现的面积。FPGA内部的时序电路需要时钟的输入,通常FPGA内部需要的时钟种类较多,因此需要在片内产生相关的时钟,因此时钟管理单元DCM/PLL也是必不可少的内部部件。除此之外,FPGA内部还包括接口I/O,可分为普通I/O和高速I/O,次外还有各种各样的硬核。

FPGA的英文翻译过来是现场可编程门阵列,这是相对于ASIC来说的,ASIC硬件也可以可做是门阵列,但是它是非可编程的器件,流片完成之后功能就固化了。但是FPGA 的可编程性在于其能够重新下载配置文件,来改变其内在的功能。两者在前端开发流程上并无二致。FPGA作为一种器件,技术主要垄断在ALTERA和XILINX这两大公司手中。

(一)FPGA架构

一个完整的嵌入式系统中由单独一个FPGA组成的情况较少,通常由多个器件组合完成,例如CPU+FPGA。通常是由一个FPGA+ARM,ARM负责软件配置管理,界面输入外设操作,FPGA负责大数据量运算,可看做CPU的专用协处理器来使用,也常会用于扩展外部接口。常用的架构有ARM+FPGA,DSP+FPG A,或者网络处理器+FPGA等,这些架构形成构成整个高速嵌入式设备的处理形态。实现高速处理方面,CPU的发展趋势是多核。FPGA的热门应用有:

1)网络存储产片

2)高速网络设备

3)4G通信等设备:对于新一代通信基站的信号处理,FPGA+DSP阵列的架构就是绝配。

总之,没有完美的架构,只有合适的组合。

(二)器件互联

系统架构确定之后,下一步就是FPGA和各器件的互联问题。通常来说,CPU和FPGA的互联问题主要取决于两个要素:

1)CPU所支持的接口

2)交互的业务

通常FPGA一般支持与CPU连接的数字接口,其常用的有EMIF,PCI,网口,DDR等接口。作为总线类接口,FPGA通常作为从设备与CPU连接,CPU作为主设备通过访问直接映射的地址对FPGA进行访问。通常总线访问分为同步访问和异步访问。CPU手册中会对信号定义时序控制有着详细的说明,FPGA根据这些详细的说明来说实现相应的逻辑。同时CPU还会对访问时序进行设置,例如设置建立时间、保持时间、最快时钟。对于总线型的访问来说,数据信号通常为三态,用于输入输出,这种设计目的减少外部连线的总数。总线访问优势是直接映射到系统的地址区间,访问较为直观,但相对传输速率不高,主要原因如下:

1)受制总线访问间隔,即两次访问中间的空闲状态

2)不支持双向传输,并且FPGA主动对CPU发起操作是,只有中断处理一种方式。

这种总线型操作特点可以使其用作系统的管理操作,例如FPGA内部寄存器的配置,运行过程中所需参数配置,以及数据量较小的信息交互等操作。这些操作数据量和所需带宽合适,可应对普通的嵌入式系统的需求处理。而对于大数据流量的数据交互,一般采用专用的总线交互,其特点支持双向传输,总线传输速率较快。

(三)FPGA特点

FPGA最大的特点在于其灵活性:

1)I/O的灵活性,可以通过其I/O组成各种接口与各种器件连接,并且支持不同的电器特性。

2)内部存储器灵活,可以通过IP生成工具生成各种深度和宽度的RAM和FIFO

3)逻辑的灵活性,内部逻辑可生成各种类型IP

(四)架构设计

1)流驱动式

对于一个FPGA的架构设计,其首先需要考虑的就是性能,其次就是接口设计。一般架构设计是采用数据流驱动方式实现的,通常来说应用于IP领域、存储领域、数字处理领域等较大型FPGA设计都是数据流驱动式架构,主要包括输入接口单元,主处理单元,输出接口单元,还可能包括辅助处理单元、外部存储单元,这些单元之间一般采用流水式处理,即数据处理完之后数据打包发下一级处理。其中数据输入输出可能有多个,此时需要架构内部实现数据的交换。

2)稳定性:设计一定能够进行正常工作

3)时钟域复位:复位一般采用异步复位同步释放的方式。

4)并行与复用:并行可以提过处理速度,复用可以节省资源。最终的设计取决于对设计处理能力和逻辑数量的权衡。

5)流水线处理:简化设计;时序优化。但是流水设计对于带反馈的设计无能为力,强加流水设计的话有可能会浪费逻辑和设计。

(五)FPGA中一些常用内部资源

1)FIFO设计:作为FPGA中内部资源的一个常用器件,最常见与异步时钟域划分和缓冲数据,但不仅限于此。简化设计、减少耦合、输入输出接口固定,便于仿真和验证,都是使用FIFO的好处。

2)RAM:通常实例化RAM中,一种是BLOCK RAM,一种是分布式RAM,前者可以提供较大的存储空间,后者提供较小的存储空间。

(五)coding原则

1)注释:好的代码必须有注释,注释至少包括文件注释、端口注释和功能语句注释。好的注释,可以提高代码的可读性,可维护性。

2)语句:所写语句一定是可综合的,在FPGA设计中无外乎就是时序逻辑和组合逻辑。组合逻辑是即可生效的,时序逻辑是时钟的下一拍起效。

3)阻塞与非阻塞赋值:一般情况下,组合逻辑用的是阻塞赋值,时序逻辑用的是非阻塞赋值。

4)注意避免锁存器的生成:锁存器最容易产生在always(*)模块,所有的分支条件都要描述并且赋值,状态机中的default状态也不要忘记。

(六)接口设计

在进行设计的时候,需要一个接口模块,首先需要明确以下问题:

1)同步接口还是异步接口?

2)有哪些信号,功能是什么?

3)信号之间的时序关系是什么?

4)传递的效率什么?

这些问题的答案一般都会在datasheet中给出,一般设计一个接口模块,必然与其他硬件电路相连接。加入外部连接接口是总线接口,至少包括以下却不限于以下信号:

1)地址:能够支持的最大地址空间,数据和地址是否复用?

2)数据:一般读数据和写数据复用同一接口

3)读写命令

4)是否支持突发传输

5)同步还是异步

6)控制信号之间的相位关系以及建立时间和保持时间的要求

(6)学会总线设计

PC时代,垄断江湖的是微软和INTel,而在移动互联网时代,最具有潜质的就是谷歌的ANDROID系统和ARM芯片。因此作为ARM处理做片上互联的AMBA总线标准成为业界应用最广泛的标准。

AMBA总线实际是三个标准的集合,分别为AHB,ASB,APB。ASB已经逐渐被AHB取代,现在使用最广泛的是AHB和APB总线,以及最新扩展的AXI总线。如图为AHB和APB在一个嵌入式系统中的应用场景。

b23de4e8-98f1-11ed-bfe3-dac502259ad0.png

​​

审核编辑:汤梓红

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

    关注

    1625

    文章

    21663

    浏览量

    601661
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10824

    浏览量

    211087
  • 接口
    +关注

    关注

    33

    文章

    8486

    浏览量

    150804
  • 时序电路
    +关注

    关注

    1

    文章

    114

    浏览量

    21679
  • 触发器
    +关注

    关注

    14

    文章

    1995

    浏览量

    61042

原文标题:FPGA相关知识系统介绍

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

收藏 人收藏

    评论

    相关推荐

    FPGA入门知识介绍

    FPGA入门知识介绍近几年来,由于现场可编程门阵列(FPGA)的使用非常灵活,又可以无限次的编程,已受到越来越多的电子编程者的喜爱,很多朋友都想学习一些
    发表于 08-16 10:32

    CentOS系统知识介绍

    CentOS系统的被很多人使用,但是有些人是被CentOS系统的名声所吸引的,对CentOS系统的了解是很少,下面我们就来介绍一下CentOS系统
    发表于 07-15 07:41

    控制系统相关知识

    、控制系统相关知识(1)控制系统的基本性能要求:稳、准、快稳:指的是系统的稳定性。稳定性是系统
    发表于 08-17 07:42

    介绍UG编程的基本操作及相关加工工艺知识

    UG编程基本操作及工艺介绍分析本章主要介绍UG编程的基本操作及相关加工工艺知识,读者学习完本章后将会对UG编程知识有一个总体的认识,懂得如何
    发表于 09-01 06:36

    手机电池相关知识介绍

    手机电池相关知识介绍 一、手机电池的几个重要概念 1、容量: 对一个手机电池来说最重要的参数就是它所能储存的电量大小,该词用专业术语
    发表于 10-26 16:59 1862次阅读

    导线连接器相关知识介绍

    导线连接器相关知识介绍      现代汽车由于电控器件的不断增多,其连接导线的数量也不可避免地呈增大趋势,为保证导线连接的正确性
    发表于 11-27 10:08 1220次阅读

    RRC和RB等LTE接口与承载相关基础知识介绍

    本文介绍了LTE接口与承载相关基础知识介绍了E-RAB在LTE系统中的位置和组成以及RB的功能和管理等
    发表于 10-13 13:05 7次下载
    RRC和RB等LTE接口与承载<b class='flag-5'>相关</b>基础<b class='flag-5'>知识</b><b class='flag-5'>介绍</b>

    集散控制系统原理及相关知识详解与应用介绍

    本文介绍了集散控制系统的基本概念及其构成,以及集散控制系统的控制算法、操作和显示及数据通信等知识的详解。
    发表于 11-17 17:04 17次下载
    集散控制<b class='flag-5'>系统</b>原理及<b class='flag-5'>相关</b><b class='flag-5'>知识</b>详解与应用<b class='flag-5'>介绍</b>

    复合管的相关知识介绍

    本文介绍了复合管的相关知识
    发表于 11-23 14:58 12次下载
    复合管的<b class='flag-5'>相关</b><b class='flag-5'>知识</b>的<b class='flag-5'>介绍</b>

    单电源系统直流耦合相关知识的解析

    本文介绍了单电源系统直流耦合的相关知识
    发表于 11-23 15:31 12次下载
    单电源<b class='flag-5'>系统</b>直流耦合<b class='flag-5'>相关</b><b class='flag-5'>知识</b>的解析

    FPGA基础知识培训教程免费下载

    本文档的主要人详细介绍的是FPGA基础知识培训教程免费下载包括了:1.什么是FPGA ,2.Actel FPGA整体概述 3.Actel
    发表于 04-23 08:00 8次下载
    <b class='flag-5'>FPGA</b>基础<b class='flag-5'>知识</b>培训教程免费下载

    FPGA的入门基础知识详细说明

    本文档的主要内容详细介绍的是FPGA的入门基础知识详细说明。
    的头像 发表于 12-20 10:13 9424次阅读
    <b class='flag-5'>FPGA</b>的入门基础<b class='flag-5'>知识</b>详细说明

    基于FPGA 以及数字电路设计相关高级技巧介绍

    和初学者相比,专业的 FPGA 工程师需要掌握更多的技能和知识。对此我归纳了四个方面,分别是 FPGA 相关的高级技巧、领域相关
    发表于 02-16 09:07 2011次阅读
    基于<b class='flag-5'>FPGA</b> 以及数字电路设计<b class='flag-5'>相关</b>高级技巧<b class='flag-5'>介绍</b>

    FPGA基础知识介绍

    电子发烧友网站提供《FPGA基础知识介绍.pdf》资料免费下载
    发表于 02-23 09:45 29次下载

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

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