目前主流的FPGA仍是基于查找表技术的,已经远远超出了先前版本的基本性能,并且整合了常用功能(如RAM、时钟管理和DSP)的硬核(ASIC型)模块。如图3-1(图3-1只是一个示意图,实际上每一个系列的FPGA都有其相应的内部结构)所示,FPGA芯片主要由7部分完成,分别为可编程输入输出单元、可配置逻辑模块、数字时钟管理模块、嵌入式块RAM、丰富的布线资源、底层内嵌功能模块和内嵌专用硬件模块。
图3-1 FPGA内部结构
1.可编程输入输出单元(IOB)
可编程输入输出单元是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配要求。典型的IOB内部结构示意图如图3-2所示。FPGA内的I/O按组分类,每组都能够独立地支持不同的I/O标准。通过软件的灵活配置,可适配不同的电气标准与I/O物理特性,可以调整驱动电流的大小,可以改变上、下拉电阻。目前,I/O口的频率也越来越高,一些高端的FPGA通过DDR寄存器技术可以支持高达2 Gb/s的数据速率。
图3-2 典型的IOB内部结构示意图
外部输入信号可以通过IOB模块的存储单元输入FPGA的内部,也可以直接输入FPGA内部。当外部输入信号经过IOB模块的存储单元输入FPGA内部时,其保持时间(hold time)的要求可以降低,通常默认为0。
为了便于管理和适应多种电气标准,FPGA的IOB被划分为若干个组(bank),每个bank的接口标准由其接口电压V CCO决定,一个bank只能有一种V CCO,但不同bank的V CCO可以不同。只有相同电气标准的端口才能连接在一起,V CCO电压相同是接口标准的基本条件。
2.可配置逻辑模块(CLB)
CLB是FPGA内的基本逻辑单元。CLB的实际数量和特性会依器件的不同而不同,但是每个CLB都包含一个可配置开关矩阵,此矩阵由4或6个输入、一些选型电路(多路复用器等)和触发器组成。开关矩阵是高度灵活的,可以对其进行配置以便处理组合逻辑、移位寄存器或RAM。在Xilinx公司的FPGA器件中,CLB由多个(一般为4个或2个)相同的Slice和附加逻辑构成。典型的CLB结构示意图如图3-3所示。每个CLB不仅可以用于实现组合逻辑与时序逻辑,还可以配置为分布式RAM和分布式ROM。
3.数字时钟管理模块(DCM)
业内大多数FPGA均提供数字时钟管理模块。Xilinx推出的较先进的FPGA提供数字时钟管理和相位环路锁定功能。相位环路锁定能够提供精确的时钟综合,且能够降低抖动,并实现过滤功能。
4.嵌入式块RAM(BRAM)(www.daowen.com)
图3-3 典型的CLB结构示意图
大多数FPGA都具有内嵌的块RAM,这大大拓展了FPGA的应用范围和灵活性。块RAM可被配置为单端口RAM、双端口RAM、内容地址存储器(CAM)以及FIFO等常用存储结构。RAM、FIFO是比较普及的概念,在此就不赘述。CAM在其内部的每个存储单元中都有一个比较逻辑,写入CAM中的数据会和内部的每一个数据进行比较,并返回与端口数据相同的所有数据的地址,因而在路由地址交换器中有着广泛的应用。除了块RAM,还可以将FPGA中的LUT灵活地配置成RAM、ROM和FIFO等结构。在实际应用中,芯片内部块RAM的数量也是选择芯片的一个重要因素。
单片块RAM的容量为18 Kb,即位宽为18 b,深度为1024,可以根据需要改变其位宽和深度,但要满足两个原则:首先,修改后的容量(位宽、深度)不能大于18 Kb;其次,位宽最大不能超过36 b。当然,可以将多片块RAM级联起来形成更大的RAM,此时只受限于芯片内块RAM的数量,而不再受上面两条原则约束。
5.丰富的布线资源
布线资源连通FPGA内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置的不同可划分为4类。第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线;第二类是长线资源,用于完成芯片bank间的高速信号和第二全局时钟信号的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式的布线资源,用于分布专有时钟、复位等控制信号线。
在实际设计时,设计者不需要直接选择布线资源,布局布线器可自动地根据输入逻辑网表的拓扑结构和约束条件选择布线资源来连通各个模块单元。从本质上讲,布线资源的使用方法和设计的结果有密切、直接的关系。
6.底层内嵌功能模块
底层内嵌功能模块主要指延迟锁相环(delay locked loop,DLL)、锁相环(phase locked loop,PLL)、DSP和CPU等软处理核(soft core)。现在底层内嵌功能模块越来越丰富,使得单片FPGA成为系统级的设计工具,具备了软硬件联合设计的能力,逐步向SOC平台过渡。
DLL和PLL具有类似的功能,可以完成时钟高精度、低抖动的倍频和分频,以及占空比调整和移相等功能。Xilinx公司生产的芯片集成了DLL,Altera公司生产的芯片集成了PLL,Lattice公司生产的新型芯片同时集成了PLL和DLL。利用PLL和DLL可以通过IP核生成的工具方便地进行管理和配置。
7.内嵌专用硬核模块
内嵌专用硬核是相对底层内嵌的软核而言的,指FPGA处理能力强大的硬核(hard core),等效于ASIC电路。为了提高FPGA性能,芯片生产商在芯片内部集成了一些专用的硬核。例如,为了提高FPGA的乘法速度,主流的FPGA中集成了专用乘法器;为了适用通信总线与接口标准,很多高端的FPGA内部集成了串并收发器,可以达到很高的收发速度。
Xilinx公司的高端产品不仅集成了PowerPC系列CPU,还内嵌了DSP Core模块,其相应的系统级设计工具是EDK和Platform Studio,Xilinx公司还依此提出了片上系统的概念。使用PowerPC、MicroBlaze、PicoBlaze等平台,能够开发标准的DSP及其相关应用,达到SOC的开发目的。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。