主流的FPGA仍是基于查找表技术的,已经远远超出了先前版本的基本性能,并且整合了常用功能(如RAM、DCM和DSP)的硬核(ASIC型)模块。如图所示,FPGA芯片主要由7部分组成,分别为:可编程输入输出单元(IOB)、基本可编程逻辑单元(CLB)、完整的时钟管理(DCM)、嵌入式块RAM、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件模块。
       

1.可编程输入输出单元(IOB)
           可编程输入/输出单元简称I/O单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配要求。FPGA内的I/O按组分类,每组都能狗独立地支持不同的I/O标准。通过软件的灵活配置,可是配不通电气标准与I/O物理特性,可以调整驱动电流的大小,可以改变上、下拉电阻。I/O口的频率也越来越高。
           为了便于管理和适应多种电气标准,FPGA的IOB被划分为若干组(bank),每个bank的接口标准由其接口电压VCCO决定,一个bank只能有一种VCCO,但不同的bank可以有不同的VCCO,只有相同电气标准的接口才能连接在一起。

2.可配置逻辑块(CLB)
       CLB是FPGA内的基本逻辑单元,CLB的实际数量和特性会因为器件的不同而不同,但是每个CLB都包含一个可配置开关矩阵,此矩阵由4或6个输入、一些选型电路(MUX)和触发器组成。开关矩阵是高度灵活的,可以对其进行配置以组成组合逻辑、移位寄存器或RAM。在Xilinx公司的FPGA器件中,CLB有多个相同的Slice和附加逻辑组成,每个CLB模块不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式RAM和分布式ROM。
       Slice是Xilinx公司定义的基本逻辑单位,一个Slice由两个4输入的函数发生器(LUT)、进位逻辑、算数逻辑、存储逻辑和函数复用器组成。

3.数字时钟管理模块(DCM)
       业内大多数FPGA均提供数字时钟管理(Xilinx全部FPGA都有这种特性)。Xilinx推出最先进的数字时钟管理和相位环路锁定。DCM可以完成对时钟的分频倍频功能,并能维持各时钟之间的相位关系,即零时钟偏差。

4.嵌入式块RAM(BRAM)
       BRAM有很高的灵活性,可以被配置位单端口RAM、双端口RAM、内容地址存储器(CAM)以及FIFO等常用存储结构。在实际应用中,芯片内部BRAM数量是芯片选型的一个重要因素,单片块RAM的容量是18kbits,即位宽为18比特、深度为1024。也可以根据需要更改其位宽与深度(位宽不得大于36bits)。亦可以将多块BRAM级联起来形成更大的RAM。

5.丰富的布线资源
       布线资源连通FPGA内部所有单元,而连线长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA芯片内部有着丰富的不限资源,根据工艺、长度、宽度和分布位置而划分为4类不同的类别。第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线;二、长线资源,用以完成芯片bank之间的高速信号和第二全局时钟信号的布线;三、是短线资源,用于完成基本逻辑单元之间的逻辑链接和布线;四、分布式的布线资源,用于专有时钟、复位等控制信号线。

6.底层内嵌功能单元
       内嵌功能模块主要是指DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP和CPU等软处理核。

7.内嵌专用硬核
       内嵌专用硬核是相对底层迁入的软核而言的,等效于ASIC电路。为了提高FPGA性能,芯片生产商在芯片内部集成了一些专用的硬核。例如:专用乘法器,串并收发器(SERDES)可以达到数十Gbps收发速度。

主流的FPGA仍是基于查找表技术的,并且整合了常用功能(如RAM、DCM和DSP)的硬核(ASIC型)模块,如下图所示FPGA的结构主要包括:

可编程输入输出单元(IOB)
    可编程输入/输出单元简称I/O单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配要求。FPGA内的I/O按组分类,每组都能狗独立地支持不同的I/O标准。通过软件的灵活配置,可是配不通电气标准与I/O物理特性,可以调整驱动电流的大小,可以改变上、下拉电阻。I/O口的频率也越来越高
    为了便于管理和适应多种电气标准,FPGA的IOB被划分为若干组(bank),每个bank的接口标准由其接口电压VCCO决定,一个bank只能有一种VCCO,但不同的bank可以有不同的VCCO,只有相同电气标准的接口才能连接在一起。
可配置逻辑块(CLB)
    CLB是FPGA(xilinx)内的基本逻辑单元,CLB的实际数量和特性会因为器件的不同而不同,但是每个CLB都包含一个可配置开关矩阵,此矩阵由4或6个输入、一些选型电路(MUX)和触发器组成。开关矩阵是高度灵活的,可以对其进行配置以组成组合逻辑、移位寄存器或RAM。
在Xilinx公司的FPGA器件中,CLB有多个相同的Slice和附加逻辑组成,每个CLB模块不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式RAM和分布式ROM。
而在ALTERA公司的FPGA器件中LE(logic elements)是描述内部逻辑的基本单元,比如cyclone IV 系列的LE由一个4输入LUT+可编程的寄存器 构成。
    Slice是Xilinx公司定义的基本逻辑单位,一个Slice由两个4输入的函数发生器(LUT)、进位逻辑、算数逻辑、存储逻辑和函数复用器组成。
X家和A家FPGA内部结构的区别详细可以查看:https://www.cnblogs.com/lifan3a/articles/4682471.html
丰富的布线资源
    布线资源连通FPGA内部所有单元,而连线长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA芯片内部有着丰富的不限资源,根据工艺、长度、宽度和分布位置而划分为4类不同的类别。第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线;二、长线资源,用以完成芯片bank之间的高速信号和第二全局时钟信号的布线;三、是短线资源,用于完成基本逻辑单元之间的逻辑链接和布线;四、分布式的布线资源,用于专有时钟、复位等控制信号线。
嵌入式块RAM(BRAM)
    BRAM有很高的灵活性,可以被配置位单端口RAM、双端口RAM、内容地址存储器(CAM)以及FIFO等常用存储结构。在实际应用中,芯片内部BRAM数量是芯片选型的一个重要因素。
ps:FPGA芯片内有两种存储器资源:一种叫block ram,另一种是由LUT配置成的内部存储器(也就是分布式ram)。Block ram由一定数量固定大小的存储块构成的,使用BLOCK RAM资源不占用额外的逻辑资源,并且速度快。但是使用的时候消耗的BLOCK RAM资源是其块大小的整数倍。
底层内嵌功能单元
    内嵌功能模块主要是指DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP和CPU等软处理核

聊一聊FPGA的片内资源相关知识相关推荐

  1. 特权同学笔记-榨干FPGA片上存储资源

    榨干FPGA片上存储资源 记得Long long time ago,特权同学写过一篇简短的博文<M4K使用率>,文章中提到了Cyclone器件的内嵌存储块M4K的配置问题.文中提到了这个M ...

  2. Osmocom-BB 相关资源、知识分享

    Osmocom-BB 相关资源.知识分享 1.在layer1层添加了解析sniffer的代码 参考http://git.osmocom.org/osmocom-bb/log/?h=luca/gsmma ...

  3. Xilinx FPGA的专用时钟引脚及时钟资源相关

    主要参考了https://www.eefocus.com/liu1teng/blog/12-02/237897_4533d.html .Xilinx UG471.UG472以及Xilinx Forum ...

  4. Next.js踩坑入门系列(七) —— 其他相关知识

    Next.js踩坑入门系列 (一) Hello Next.js (二) 添加Antd && CSS (三) 目录重构&&再谈路由 (四) Next.js中期填坑 (五) ...

  5. Varnish的相关知识,varnish的简单应用

    Varnish是一款高性能的缓存加速器,具有稳定,且效率更高,资源占用更少等特点. 缓存存储的格式: key-value: key:访问路径,URL, hash value:web content 命 ...

  6. mysql x锁 u锁_讲解更新锁(U)与排它锁(X)的相关知识

    一直没有认真了解UPDATE操作的锁,最近在MSDN论坛上看到一个问题,询问堆表更新的死锁问题,问题很简单,有类似这样的表及数据: CREATE TABLE dbo.tb( c1 int, c2 ch ...

  7. 网络带宽相关知识和计算

    一.带宽 带宽应用的领域非常多,可以用来标识信号传输的数据传输能力.标识单位时间内通过链路的数据量.标识显示器的显示能力. 1. 在模拟信号系统又叫频宽,是指在固定的时间可传输的资料数量,亦即在传输管 ...

  8. 图像处理的一些相关知识(Related knowledge for IQA)

    图像处理的一些相关知识 logistic transform 一般的logistic function 逻辑回归的向量化实现样例 - Ufldl 可向量化编程 分类问题中常用,代替开关函数 IQA算法 ...

  9. iOS硬编解码相关知识

    1.软编与硬编概念 1.1 软编码:使用CPU进行编码. 实现直接.简单,参数调整方便,升级易,但CPU负载重,性能较硬编码低,低码率下质量通常比硬编码要好一点. 1.2 硬编码:不使用CPU进行编码 ...

最新文章

  1. Mysql 事务中Update 会锁表吗?
  2. UNIX 之父和 Linux 之父:创造新系统真的只是个意外 | 赠书
  3. QCon北京2015:18个热门专题,出品人全部确认,新版网站上线
  4. 关于通过使用BAPI创建销售订单(抬头信息中:含增强字段)
  5. pku 1191 棋盘分割 DP / 记忆化搜索
  6. python数据接口获取数据_python UI自动化实战记录二:请求接口数据并提取数据
  7. 机智云小程序启蒙:WebSocket网页控制
  8. 如何加快Json 序列化?有哪些方法?
  9. ubuntu 1604搭建hdp2.4 Hadoop
  10. c# 将doc转换为docx
  11. 设计模式 - Visitor 模式(访问者模式)
  12. python将csv文件拆分_在python中将一个csv拆分为多个文件
  13. FFmpeg API 变更记录
  14. [转帖]javascript做浮点数运算精确问题
  15. 计算机一级win7操作题,计算机等级考试一级WIN7操作题.docx
  16. 2010年程序员的最后一天!
  17. centos eclipse php,centos打不开eclipse怎么办?
  18. gulp-htmlmin 页面压缩插件 gulp插件 参数说明
  19. unity3d开发微信小游戏2
  20. vue项目中常见的跨域问题解决

热门文章

  1. 20春计算机应用基础在线作业,19春学期《计算机应用基础》在线作业21.txt
  2. java子线程切换到主线程_Android子线程切换到UI线程方法总结
  3. Python入门--字典生成式,生成字典的公式
  4. Codeforces Round #460 (Div. 2): E. Congruence Equation(枚举)
  5. javascript学习之数组的使用一 push pop shift unshift 方法
  6. java读取、写入保存、遍历ini文件配置数据
  7. CentOS7 上以 RPM 包方式安装 Oracle 18c 单实例
  8. python - super 寻找继承关系
  9. thinkphp视图中插入php代码
  10. InnoDB中锁的算法(1)