FPGA学习笔记03——FPGA原理及结构

FPGA芯片内部的资源概述:
可配置的逻辑块CLB(LUT、MUX、DFF);时钟资源;时钟管理模块;块存储器资源;互联资源;专用的DSP模块;输入输出块;吉比特收发器;PCI-E模块;XADC模块等。

一、LUT(Look Up Table,查找表)

FPGA的基本原理是基于查找表结构的。
LUT的本质就是一个RAM。FPGA一开始使用的均为4输入的查找表,后续发展过程中使用的都是6输入查找表。
FPGA学习笔记03——FPGA原理及结构_第1张图片
SliceL中的LUT
FPGA学习笔记03——FPGA原理及结构_第2张图片
SliceM中的LUT
由布尔代数理论可知,对于一个n输入的逻辑运算,至多存在2n种组合结果结果。如果事先将相应的结果存放于存储单元内,通过输入进行查找,就相当于实现了与非门的功能。FPGA通过烧写文件,配置查找表的内容,那么相同电路的情况下就实现了不同的逻辑功能。
SliceM中的LUT还可以实现分布式存储器和移位寄存器。而SliceL中的LUT只能实现组合逻辑。
NOTE:LUT的两个主要优点:
(1) 克服了传统数字逻辑中使用逻辑门导致的延时不确定问题;
(2) 复杂度只与端口的个数有关。

二、CLB(Configurable Logic Block,可配置的逻辑块)

CLB是FPGA中最基本的功能单元。Slice(切片)是FPGA中最基本的设计资源。
一个CLB中含有两个Slice:SliceM及SliceL(有的CLB中只含有两个SliceL),两个Slice之间没有任何的连接关系,两个Slice均连接到旁边的开关矩阵用于布线到其他FPGA资源。
SliceM(M指Memory)不仅可以实现逻辑运算,而且可以实现快速进位链及分布式存储器。(图片左侧部分)
SliceL(L指Logic)只能用于逻辑和算术运算,不能用于存储器。(图片右侧部分)
FPGA学习笔记03——FPGA原理及结构_第3张图片
每一个Slice中都含有4个6位LUT(最左)、8个D触发器/锁存器(最右)、多路复用器/多路选择器MUX(中左)、快速进位链CARRY(中右)。而且每一个Slice都会有一个类似于坐标的编号例如Slice_X45Y59。

三、时钟管理资源

1、时钟资源

FPGA学习笔记03——FPGA原理及结构_第4张图片
FPGA中有多种类型的时钟线:BUFG、BUFR、BUFIO、BUFH、BUFMR等,各个时钟线的主要功能及应用详见数据手册ug472。FPGA中的时钟是按照分段式总线连接的,而CPLD中时钟是连续式分布的。
FPGA被分为了多个时钟域,如右图所示,可以看到共有8个不同颜色的部分,其中每一部分即为一个时钟域(clock region)。每一个时钟域包含50个IO、占用了50个CLB的高度、跨越了半个芯片宽度。时钟域中还含有DSP、BRAM等资源。
全局时钟线BUFG可以通过水平时钟线BUFH驱动在任何时钟域的12个全局时钟网络。
在每个时钟域中提供了4个(2对)时钟驱动引脚CCIO(Clock_capale Clock,即时钟输入引脚),7系列中CCIO有两种:MRCC(多区域时钟驱动);SRCC(单区域时钟驱动)。

2、时钟管理模块CMT

CMT(Clock Management Tile,时钟管理模块)包含一个MMCM(Mixed-mode Clock Manager,混合模式时钟管理器)和一个PLL(Phase Locked Loop,相位锁相环)。在6系列的器件中使用DCM(Digital Clock Manager,数字时钟管理)代替了MMCM。
FPGA学习笔记03——FPGA原理及结构_第5张图片

四、BRAM与FIFO

1、BRAM

大多数FPGA都具有内嵌的Block RAM,这极大地拓展了FPGA的应用范围和灵活性。BRAM可以用于高效的数据存储或缓冲,可用于高性能的状态机、FIFO缓冲区、大的移位寄存器、大的LUT或者ROM。
7系列的FPGA提供的BRAM每一个容量为36Kb。详见ug473
FPGA学习笔记03——FPGA原理及结构_第6张图片
BRAM的特点:
(1) 真正的双端口网络,可以边读边写,使得吞度量提高了一倍。并且两个端口可以实现异步读写操作。也可以配置为单端口的存储器。
(2) 集成的级联逻辑:用于将多个BRAM连接在一起,构成容量更大的存储器。
(3) 集成了64/72位汉明码。
(4) 36Kb及18Kb的BRAM可以有多种配置方式。

2、FIFO

FPGA中提供了硬件的FIFO(First-in First-out,先进先出队列)。核心是36Kb BRAM,外加了读写指针以及状态逻辑,可以通过调用开发软件中的FIFO IP核来实现。
FPGA学习笔记03——FPGA原理及结构_第7张图片

五、互联布线资源

互联是FPGA内给功能元件(如IOB、CLB、DSP、BRAM)的输入输出信号提供一个可编程网络。互联资源也称为布线资源,通过分段进行最优化选择。
FPGA学习笔记03——FPGA原理及结构_第8张图片
在7系列FPGA中,CLB以规则的阵列排列。每个连接到开关阵列的模块都可以通过开关阵列分文FPGA的其他资源。
FPGA中有多种不同类型的布线资源:Fast、Single、Double、Quad等。
FPGA学习笔记03——FPGA原理及结构_第9张图片

六、DSP(ug479

7系列FPGA中继承了专用的、充分定制的低功耗的XstremeDSP DSP48E1模块,开发工具中提供了该模块的IP核。该模块的特性:
(1) 25*18位的补码乘法器/累加器,高分辨率48位信号处理器,其工作频率最高可以达到638MHz。
(2) 低功耗的预加法器可以用于构建滤波器,它降低了所需的50%DSP Slice资源。
(3) 高级特性包括:可选的流水线、可选的ALU及用于级联的专用总线。
FPGA学习笔记03——FPGA原理及结构_第10张图片

七、IO块(ug471

FPGA学习笔记03——FPGA原理及结构_第11张图片
IO块主要分成两大部分:IO逻辑资源和IO物理电气资源。
IO物理电气资源,主要包含两种类型的IO口:HR(High Range,宽范围支持3.3V电压) IO及HP(High Performance,高性能支持1.8V电压) IO,Artix-7系列只有HR IO而Virtx-7与Kintex-7系列的FPGA中既有HR又有HP。
IO逻辑资源提供了两个主要原语:DELAY及SERDES。DELAY是对输入输出逻辑进行相应的延时;SERDES是用来对输入输出信号进行串-并转换。(原语指FPGA内部的基本功能模块)

八、吉比特收发器(ug476

在这里插入图片描述
7系列FPGA中提供吉比特收发器,按照速率可划分为:GTP(6.6Gb/s),GTX(12.5Gb/s),GTH(13.1Gb/s),GTZ(28.05Gb/s)。开发工具中有相应的IP核可供使用。
图中的红色方框内就是吉比特收发器所在的时钟域,每组吉比特收发器单独占用一块时钟域。

你可能感兴趣的:(学习笔记)