FPGA底层资源综述
FPGA底层资源主要是Slices、IOBs、Memory、Multipliers、Global clock buffers等等,下面对各类资源进行详细的解读。
一.Slices
7系列FPGA的slice包含4个部分:
(1)
逻辑功能产生器,也就是咱们常说的查找表LUT,1个slice里包含4个6输入的查找表。
(2)
存储单元,也就是常说的触发器,1个slice里包含8个触发器。每4个触发器为一组,可配置成D触发器或锁存器。
(3)
多路复用器,也就是1位宽的数据选择器mux,数量非常多,足够使用。
(4)
进位逻辑(carry chain),另外这不是或门,而是异或门。这是FPGA中自带的进位链(Carry Chain)逻辑。一般当你实现诸如计数器这种可能有进位逻辑的设计可能会调用到这部分资源
因此,许许多多的slice相结合,再加上全局时钟就能实现复杂的数字功能!
sliceL的结构图:
二.IOBs
可编程IO的作用就是完成信号的采集和输出,引脚可以配置支持不同电气特性,上拉下拉或三态,差分或单端。IOB与附近的idelay、odelay、ilogic、ologic和可编程IO等资源,共同组成FPGA的IO_Bank。
三.Memory
FPGA 的 on-chip memory 一般可以分成两种,即 Distributed RAM 和 Block RAM。DRAM 是由 LUT 实现的,Block RAM 则是专用的 mem 资源,容量比 DRAM 大一些。
在 UltraScale+ 系列,Xilinx 引入了一种新的专用 mem 资源,叫做 Ultra RAM,单个 URAM 的容量是 Block RAM 的6倍,能支持更大的数据处理需求。使用下面的表格来对比三种 Mem 资源。更细节的内容可以去阅读 Xilinx 的 Guide
存储同样的数据,使用 BRAM 可能会比 DRAM 消耗更少的资源,但是 BRAM 可能对 timing 的影响更大,如果这个时候 timing 是更重要的因素,那么只好牺牲掉一些资源使用 DRAM。
参考:《UltraScale Architecture Memory Resources》
《UltraScale Architecture Configurable Logic Block》
四.Multipliers
乘法器顾名思义,用来做乘法运算
五.
FPGA的时钟资源介绍主要分为三部分。第一部分是区域结构,第二部分是元件功能,第三部分是实现方式。
首先FPGA的时钟资源负责驱动所有的时序逻辑,生产商尽力使得时钟资源充分,可靠,为了达成这一目的,xilinx采取了结构化的时钟资源布局方式。
首先将整个板子分为左右两部分,宽度完全一致,中间是大动脉。也就是下图中的Clocking Center位置的Clocking Backbone,所有的BUFG(Global Clock buffers)也是包含在这里面。
顾名思义,BUFG是全局的Clock buffer。
BUFG能
1.作为时钟使能控制跨越了数个时钟域的时钟
2.作为无毛刺的多路复用器进行时钟二选一亦或是切换掉失效的时钟
3.被CMT驱动来消除时钟分发延迟,调整相对另一个时钟的延迟
一条动脉显然无法给整个人体供血,有限个数(7系列有32条布线资源)的BUFG也无法直接驱动所有的逻辑资源。虽然BUFG的驱动范围最广,但是所有资源都使用BUFG也不能获得最好的效果。
所以我们还需要横向的血管,也就是HROW(Horizontal Clock Row),它们等距水平分布,非常像模拟城市里建造道路时的棋盘式布局。但是HROW不同于Clock Backbone,它们主要负责相邻上下两个部分的时序逻辑资源驱动,具体实现则通过BUFH,BUFH相当于作用范围阉割版的BUFG。每个时钟域内有12条BUFH的布线资源,也就是说,一个时钟域最多能用12条BUFH布线资源引入12个BUFG的时钟。
在这里还要强调一点,所有的全局时钟信号线布线时都必须经过Clock Backbone,而当全局时钟信号线从Clock Backbone出来之后,要进入具体的时钟区域时,则必须通过HROW。那么我们可以这么总结,所有的全局时钟线布线时都必须经过Clock Backbone和HROW,BUFG和BUFH共享HROW中的布线资源。一条进入某个时钟域内的路径可以是一条BUFG的信号线从Clock Backbone中引出,再接到BUFH上,总共使用了一条BUFG的布线资源(1/32)和(1/12),当然,信号线是可以复用的。
时钟区域是什么?时钟区域是板子的划分,它的上下界限在两条HROW的中间处,也就是说,每个时钟区域的中间都有一条HROW横穿而过。而它的左右界限则是两条CMT Backbone的中间处,同理,每个时钟区域的中间都有一条CMT Backbone竖穿过去。根据板子的大小不同,时钟域数量从1到24不等。一个时钟域包括了所有的同步组件(CLB, I/O, serial transceivers, DSP, block RAM, CMT)。每个时钟域包括了50个CLB和1个I/O bank(50 I/Os)。
在横向的血管之外,我们还需要小血管和毛细血管,对应BUFMR和BUFR。BUFMR可以驱动本时钟域内所有的时序资源以及上下相邻的两个时钟域。当它驱动相邻时钟域时,布线需要经过CMT Backbone。而BUFR只能驱动本时钟域内的时序资源。
而BUFIO只能驱动本时钟域/本I/O域内的I/O部件。
参考:https://blog.csdn.net/weixin_43778388/article/details/122521139
https://zhuanlan.zhihu.com/p/336370365?utm_medium=social&utm_oi=47239162494976
http://t.zoukankan.com/aliothx-p-13398060.html
https://blog.csdn.net/dongdongnihao_/article/details/111354406
https://blog.csdn.net/wenjia7803/article/details/115339122
FPGA底层资源综述相关推荐
- FPGA底层资源介绍
目录 IOB 基本可编程逻辑单元(CLB) BLOCK RAM DSP48 GTX固核 学了这么久,也该自己总结下FPGA内部结构了,不能总是说FPGA内部有LUT,触发器,选择器,太笼统了,思路一点 ...
- FPGA底层资源之CLB详解
CLB是用于xilinx中实现时序电路和组合电路的主要逻辑资源. XIlinx7系列FPGA的CLB有如下特点: •真6输入查找表(LUT)技术 •双LUT5(5输入LUT)选项 •分布式ram和移位 ...
- Xilinx 7系列 FPGA CLB资源介绍
赛灵思 7系列 FPGA CLB资源介绍 ---主要来源于官方技术手册ug474_7Series_CLB.pdf FPGA共有6大组成部分:1.可编程输入输出I/O单元:2.基本可编程逻辑单元CLB: ...
- Xilinx FPGA PLL 资源与INTEL FPGA PLL资源locked信号的不同
文章目录 Xilinx FPGA PLL 资源与INTEL FPGA PLL资源locked信号的不同 Xilinx FPGA PLL 资源locked信号仿真图 INTEL FPGA PLL 资源l ...
- (78)FPGA内部资源与FPGA开发流程-面试必问(二)(第16天)
(78)FPGA内部资源与FPGA开发流程-面试必问(二)(第16天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)FPGA内部资源与FPGA开发流程-面试必问 ...
- (05)FPGA内部资源
(05)FPGA内部资源 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA内部资源 5)结语 1.2 FPGA简介 FPGA(Field Programmable ...
- FPGA时钟资源PLL与DLL区别
1.1 FPGA时钟资源PLL与DLL区别 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA时钟资源PLL与DLL区别: 5)结束语. 1.1.2 本节引言 &q ...
- FPGA时钟资源使用
1.1 FPGA时钟资源使用 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA时钟资源使用: 5)结束语. 1.1.2 本节引言 "不积跬步,无以至千里 ...
- FPGA基础资源之IOB的应用
FPGA基础资源之IOB的应用 1.应用背景 在我们做时序约束时,有时候需要对FPGA驱动的外围器件进行input_delay/output_delay进行约束.不知道,大家有没有被以下这种类似的现象 ...
最新文章
- 觉得酒驾处罚太严厉?看看国外的再说吧...
- Android Fragment应用实战
- ABAP正则表达式 vs SPLIT INTO 1
- linux连接教程视频,[原创]linux视频教程之连接
- 角色和权限Hibernate实体映射配置
- 记住密码 的 简要概述_密码错误的简要历史
- python内核死亡的原因_Kernel Panic常见原因以及解决方法
- java替换最后一个字符_Excel公式技巧23: 同时定位字符串中的第一个和最后一个数字...
- .net 反编译_向.net/Unity 程序员推荐一个十分因吹斯听的网站:sharplab.io
- 不确定度在线计算_不确定度标准给找全了,收藏下,有天会用得到
- 关于C#中枚举与字符串与数字之间的转换
- python一般用什么平台好_python哪几个平台好用
- 定位修改器服务器码,快手的定位修改器,快手定位到别的城市深度解析免费体验效果...
- pycharm专业版的破解
- “自贸云”+“自贸大数据”将加速辽宁自贸区建设与创新
- IDEA修改快捷键方法(在原快捷键不变的基础上增加自己习惯的快捷键)
- 好心情患者故事:节食暴食反复横跳,我确诊了重度抑郁
- 【面试题】单链表的操作2
- 论文介绍--Spatio-Temporal Dynamics and Semantic Attribute Enriched Visual Encoding for Video Captioning
- OpenCV图像处理---模糊原理
热门文章
- 山西工商学院计算机系在哪,山西工商学院怎么样
- 水滴互助上链:利用区块链技术打造透明安全互助业务
- 计算机视觉常用算法整理
- 把Arraylist<byte[]>的多个byte[]合成一个byte[] :鹿鸣的脱发日记
- 大师挑战(武僧在擂台上的对抗)
- iOS 缓存的清除及优化
- 【Linux】如何关闭Linux防火墙
- Oracle 查看版本号
- 看不懂,为什么跑出租车的大战送外卖的,没关系,主要是你不理解大数据
- [机缘参悟-11]:“孙悟空”包含的佛学思想和人生哲理