首页 理论教育 FPGA内部结构详解

FPGA内部结构详解

时间:2023-10-28 理论教育 版权反馈
【摘要】:FPGA 内的I/O 按组分类,每组都能够独立地支持不同的I/O 标准。除了块RAM,还可以将FPGA 中的LUT 灵活地配置成RAM、ROM 和FIFO 等结构。FPGA 芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置的不同而划分为4类不同的类别。

FPGA内部结构详解

FPGA 的基本结构都是基于查找表加寄存器结构的,Xilinx、Altera、Lattice、Actel和Atmel 公司都是知名的FPGA 供应商,这些厂商的FPGA 产品的基本构架都可简化为6个部分,分别为可编程输入/输出单元、可编程逻辑块(CLB)、嵌入式块RAM、丰富的布线资源、底层嵌入式功能单元和内嵌专用硬核等。

1. 可编程输入/输出单元(IOB)

可编程输入/输出(Input/Output)单元简称I/O 单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配要求。FPGA 内的I/O 按组分类,每组都能够独立地支持不同的I/O 标准。通过软件的灵活配置,可适配不同的电气标准与I/O 物理特性,可以调整驱动电流的大小,可以改变上、下拉电阻。目前,I/O 口的频率也越来越高,一些高端的FPGA 通过DDR 寄存器技术可以支持高达2 Gb/s 的数据速率。

外部输入信号可以通过IOB 模块的存储单元输入到FPGA 的内部,也可以直接输入FPGA 内部。当外部输入信号经过IOB 模块的存储单元输入到FPGA 内部时,其保持时间(Hold Time)的要求可以降低,通常默认为0。为了便于管理和适应多种电器标准,FPGA的IOB 被划分为若干个组(bank),每个组的接口标准由其接口电压VCCO 决定,一个组只能有一种VCCO,但不同组的VCCO 可以不同。只有相同电气标准的端口才能连接在一起,VCCO 电压相同是接口标准的基本条件。

2. 可编程逻辑块(CLB)

CLB 是FPGA 内的基本逻辑单元。CLB 的实际数量和特性会依器件的不同而不同,但是每个CLB 都包含一个可配置开关矩阵,此矩阵由4 或6 个输入、一些选型电路(多路复用器等)和触发器组成。开关矩阵是高度灵活的,可以对其进行配置以便处理组合逻辑、移位寄存器或RAM。

Slice 是Xilinx 公司定义的基本逻辑单位。一个Slice 由两个4/6 输入LUT、进位逻辑、算术逻辑(一个异或门XORG,一个与门MULTAND)、存储逻辑和函数复用器组成。

算术逻辑包括一个异或门(XORG)和一个专用与门(MULTAND),一个异或门可以使一个Slice 实现2 bit 全加操作,专用与门用于提高乘法器效率;进位逻辑由专用进位信号和函数复用器(MUXC)组成,用于实现快速的算术加减法操作;4 输入函数发生器用于实现4 输入LUT、分布式RAM 或16 比特移位寄存器(Virtex-5 系列芯片的Slice中的两个输入函数为6 输入,可以实现6 输入LUT 或64 比特移位寄存器);进位逻辑包括两条快速进位链,用于提高CLB 模块的处理速度。

3. 嵌入式块RAM(BRAM)(www.xing528.com)

多数FPGA 都具有内嵌的块RAM,这大大拓展了FPGA 的应用范围和灵活性。块RAM 可被配置为单端口RAM、双端口RAM、内容地址存储器(CAM)以及FIFO 等常用存储结构。CAM 存储器在其内部的每个存储单元中都有一个比较逻辑,写入CAM 中的数据会和内部的每一个数据进行比较,并返回与端口数据相同的所有数据的地址,因而在路由的地址交换器中有广泛的应用。除了块RAM,还可以将FPGA 中的LUT 灵活地配置成RAM、ROM 和FIFO 等结构。在实际应用中,芯片内部块RAM 的数量也是选择芯片的一个重要因素。

单片块RAM 的容量为18k 比特,即位宽为18 比特、深度为1 024,可以根据需要改变其位宽和深度,但要满足两个原则:首先,修改后的容量(位宽、深度)不能大于18k比特;其次,位宽最大不能超过36 比特。当然,可以将多片块RAM 级联起来形成更大的RAM,此时只受限于芯片内块RAM 的数量,而不再受上面两条原则约束。

4. 丰富的布线资源

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

在实际中设计者不需要直接选择布线资源,布局布线器可自动地根据输入逻辑网表的拓扑结构和约束条件选择布线资源来连通各个模块单元。从本质上讲,布线资源的使用方法和设计的结果有密切、直接的关系。

5. 底层内嵌功能单元

内嵌功能模块主要指DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP和CPU 等软处理核(SoftCore)。

现在越来越丰富的内嵌功能单元,使得单片FPGA 成为系统级的设计工具,使其具备了软硬件联合设计的能力,逐步向SOC 平台过渡。DLL 和PLL 具有类似的功能,可以完成时钟高精度、低抖动的倍频和分频,以及占空比调整和移相等功能。赛灵思公司生产的芯片上集成了DCM 和DLL,Altera 公司的芯片集成了PLL,Lattice 公司的新型芯片上同时集成了PLL 和DLL。PLL 和DLL 可以通过IP 核生成的工具方便地进行管理和配置。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈