1.1 FPGA器件典型内部结构

主流的FPGA器件都是基于SRAM工艺技术原理制成的,通常都整合了常用功能的硬核模块(包括嵌入式块RAM、时钟管理模块和DSP模块等)。FPGA器件典型内部结构示意图如图1-1所示。FPGA器件主要由7个部分组成,分别为可编程输入/输出单元(I/OB)、可配置逻辑模块(CLB)、时钟管理单元、嵌入式块RAM(BRAM)、丰富的布线资源、内嵌式底层功能单元和内嵌专用硬核。

图1-1 FPGA器件典型内部结构示意图

1)可编程输入/输出单元(I/OB)

可编程输入/输出单元简称I/OB,是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配要求。FPGA内的I/OB按组分类,每组都能够独立地支持不同的I/OB标准。通过软件的灵活配置,可适配不同的电气标准与I/OB物理特性,可以调整驱动电流的大小,可以改变上、下拉电阻。I/OB引脚的频率也越来越高,一些高端的FPGA通过DDR寄存器技术可以支持高达2Gbps的数据速率。外部输入信号可以通过I/OB的存储单元输入FPGA内部,也可以直接输入FPGA内部。当外部输入信号通过I/OB的存储单元输入FPGA内部时,其保持时间(Hold Time)的要求可以降低,通常默认为0。

为了便于管理和适应多种电器标准,FPGA的I/OB被划分为若干个组(Bank),每个Bank的接口标准由其接口电压VCCO决定,一个Bank只能有一种VCCO,但不同Bank的VCCO可以不同。只有相同电气标准的接口才能连接在一起,VCCO相同是接口连接的基本条件。

2)可配置逻辑模块(CLB)

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

3)时钟管理单元

FPGA中的PLL(Phase Locked Loop,锁相环)通常由PFD(鉴频鉴相器)、CP(电荷泵)、LF(环路滤波器)、VCO(压控振荡器)组成。一般晶体振荡器由于工艺和成本原因达不到高频信号输出。高频电子线路中,需要外部信号与内部的振荡信号同步。一路输入时钟需要生成多路时钟信号。

业内大多数FPGA均提供数字时钟管理,相位环路锁定能够提供精确的时钟综合,且能够减小抖动,并实现过滤功能。

4)嵌入式块RAM(BRAM)

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

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

5)丰富的布线资源

布线资源连通FPGA内部的所有模块单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。布线资源与编程开关矩阵示意图如图1-2所示。FPGA内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置的不同而划分为4类:第1类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线;第2类是长线资源,用以完成芯片Bank间的高速信号和第二全局时钟信号的布线;第3类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第4类是分布式的布线资源,用于专有时钟、复位等控制信号线。在实际中,设计人员不需要直接选择布线资源,布局布线器可自动地根据输入逻辑网表的拓扑结构和约束条件选择布线资源来连通各个模块单元。从本质上讲,布线资源的使用方法和设计的结果有密切、直接的关系。

图1-2 布线资源与编程开关矩阵示意图

6)内嵌式底层功能单元

内嵌式底层功能单元主要指数字信号处理器和CPU等软核(Soft Core)。越来越丰富的内嵌式底层功能单元,使得单片FPGA成为系统级的设计工具,使其具备了软硬件协同设计的能力,逐步向SoC平台过渡。

7)内嵌专用硬核

内嵌专用硬核是相对底层嵌入的软核而言的,指FPGA处理能力强大的硬核(Hard Core),等效于专用集成电路(ASIC)。为了提高FPGA性能,芯片生产商在芯片内部集成了一些专用的硬核。例如,为了提高FPGA的乘法速度,主流的FPGA中都集成了专用乘法器;为了适用通信总线与接口标准,很多高端的FPGA内部都集成了串行器/解串器(SERDES),可以达到数十Gbps的收发速度。例如,Xilinx公司的Virtex-5 FXT FPGA器件不仅集成了PowerPC 440处理器,而且内嵌了DSP Core模块,其相应的系统级设计工具是EDK和Platform Studio,并依此提出了片上系统(System on Chip,SoC)的概念,通过PowerPC等处理器平台,能够开发标准的数字信号处理器及其相关应用,达到SoC的开发目的。