FPGA硬件资源介绍

FPGA内部有很多可供用户任意配置的资源,其中包括:可编程逻辑、可编程I/O、互连线、IP核等。
FPGA(型号EP2C70F672C8)芯片模型如下
资源未使用时:
在这里插入图片描述
资源使用后(quartus ii 工程全编译compilation后)
在这里插入图片描述
(1)首先,第一个资源,逻辑阵列块(Logic Array Block,LAB):每个LAB由16个逻辑单元LE(Logic Element)组成。一个逻辑单元主要由以下部件组成:一个四输入的查询表(LookUp Table,LUT),一个可编程的寄存器,一条进位链,一条寄存器级连链等。下图是两个已经映射资源后的LAB,资源利用率不同的LAB其颜色深浅也有所差异(左边使用的资源少,颜色就浅;右边使用的资源多,颜色就深)
在这里插入图片描述
放大后的LE如下图所示,每个LE主要由左边一个蓝色的查找表和右边一个红色的寄存器组成。在这里插入图片描述
双击其中一个LE可以观察到其大致的内部结构(内部结构只有被使用才能够双击打开查看),我们可以看到主要的两个部分,一是左边的4输入查找表,另一个是可编程寄存器,还包括:数据选择器、进位链等。查找表和多路选择器完成组合逻辑功能,寄存器完成时序逻辑功能。(蓝色高亮的部分是已经使用的资源,未高亮灰色的部分是未被使用的资源)。
在这里插入图片描述
这里的输入查找表类似于一个容量为16 bits 的 ROM(2^4 = 16),4表示地址输入位宽为4 bits,存储的内容作为输入对应的输出结果的逻辑运算,并在 FPGA 配置时载入。

上图红色①标注处为查找表:目前主流 FPGA 都采用了基于 SRAM 工艺的查找表结构。查找表本质上就是一个 RAM。当用户通过原理图或 HDL 语言描述了一个逻辑电路以后,FPGA 开发软件会自动计算逻辑电路的所有可能结果,列成一个真值表的形式,并把真值表(即输入对应的输出逻辑)事先写入RAM,这样每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。目前FPGA中多使用4输入的查找表,所以每一个查找表可以看成一个有4位地址线的RAM。

上图红色②标注处为寄存器:可以配置成多种工作方式,比如触发器或锁存器,同步复位或异步复位、复位高有效或低有效。

上图红色③标注处为进位链:超前进位加法器,方便加法器的实现,加快复杂加法的运算。

上图红色④标注处为数据选择器:数据选择器一般在 FPGA 配置后固定下来。
(2)用户可编程I/O(User I/Os,也被简称为IOE):可编程I/O资源分布在整个芯片的四周。下图是其中一个可编程I/O单元,里面又包含三个最小单元(每个可编程I/O单元中的最小单元个数不固定,有的包含两个,也有的包含四个)。
在这里插入图片描述
下图为可编程I/O最小单元内部结构图,包括双向I/O缓冲器、OE寄存器、对齐寄存器、同步寄存器、DDR输出寄存器、三态门、延时模块等组成。
在这里插入图片描述
为了便于管理和适应多种电器标准,FPGA 的 IOE 被划分为若干个组(Bank),每个 Bank 的接口标准由其接口电压 VCCO 决定,一个 Bank 只能有一种 VCCO,但不同 Bank 的 VCCO 可以不同。只有相同电气标准和物理特性的端口才能连接在一起,VCCO 电压相同是接口标准的基本条件。下图为我们开发板使用的EP4CE10F17C8芯片“Pin Planner”中用于管脚绑定的视图,我们可以看到整个图中被划分为8种不同的颜色,每种颜色代表不同的Bank。
在这里插入图片描述
(3)互连线资源(Interconnect):布线资源连通 FPGA 内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA 芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置的不同而划分为 4 类不同的类别:第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线;第二类是长线资源,用于完成芯片 Bank 间的高速信号和第二全局时钟信号的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式的布线资源,用于专有时钟、复位等控制信号线。下图中中蓝色高亮的连线为由LAB中的LE中的寄存器连接到IOE中的互连线
(4)嵌入式存储单元(Memory Bits,也被称为Block RAM或简称为BRAM):该部分资源主要用于生成RAM、ROM、FIFO以及移位寄存器等常用的存储模块,在存储较多数据或作跨时钟域处理时常用,BRAM 由一定数量固定大小的存储块构成的,使用 BRAM 资源不占用额外的逻辑资源,不过使用的时候消耗的 BRAM 资源只能是其块大小的整数倍,就算你只存了 1 bit 也要占用一个 BRAM。(下图中棕绿色竖线)
在这里插入图片描述
下图为一个sample dual-port memory内部结构图。由输入输出寄存器和一个RAM块构成。相对于LUT构成的分布式RAM(Distribute RAM,简称为DRAM),这种专门的存储单元并且速度快,容量更大,从而避免LUT资源的浪费,一般是 BRAM 资源不够用的情况下才使用分布式 RAM。
在这里插入图片描述
(5)嵌入式乘法单元(Embedded multiPlier 9-bit elements,也简称为DSP块):该单元主要用于各种复杂的数学运算,乘法、除法以及常用的功能函数如:有限冲激响应滤波器(FIR),无限冲击响应滤波器(IIR),快速傅里叶变换(FFT),离散余弦变换(DCT)等时会消耗很多逻辑资源,而FPGA中的LUT和寄存器资源有限,这时候使用嵌入式乘法单元这部分资源就不会造成逻辑资源的浪费。DSP块成列式分布在芯片的中间位置,下图为一对DSP块资源。
在这里插入图片描述
下图为嵌入式乘法器单元DSP块的内部结构图。包含输入输出寄存器和一个乘数块。
在这里插入图片描述
(6)锁相环(Phase Lock Loop,PLL):锁相环路是一种反馈控制电路,简称锁相环。锁相环的特点是利用外部输入的参考信号控制环路内部振荡信号的频率和相位。因锁相环可以实现输出信号频率对输入信号频率的自动跟踪,所以锁相环通常用于闭环跟踪电路。锁相环在工作的过程中,当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的相位差值,即输出电压与输入电压的相位被锁住,这就是锁相环名称的由来。该芯片一共有4个锁相环,在四个角处。
在这里插入图片描述
PLL的参考时钟输入都是由专用时钟管脚上的晶振进来的,用于时钟的倍频、分频,以及相位、占空比调制。PLL出来的时钟都会连接到全局时钟网络上。

发布了56 篇原创文章 · 获赞 12 · 访问量 7849

猜你喜欢

转载自blog.csdn.net/weixin_44884357/article/details/105288900