2.3 FPGA的结构
目前主流的FPGA仍是基于查找表技术(Look up Table,LUT)的,但已经远远超过了先前版本的基本性能,并且整合了常用功能(如RAM、时钟管理和DSP)的硬核模块。各大厂商的FPGA架构基本类似,FPGA的基本结构主要包括逻辑单元阵列、输入输出模块、内部存储器模块、数字信号处理(乘法器)模块、时钟管理模块,以及专用的高速接口等硬核模块,高端的FPGA芯片还集成了ARM处理器硬核模块。各厂商对功能模块的命名有一定差异,如Intel公司FPGA中的逻辑元件阵列称为逻辑单元,AMD公司FPGA中的逻辑元件阵列称为可配置逻辑块(Configurable Logic Block,CLB),广东高云半导体公司推出的FPGA中的逻辑元件阵列称为可配置功能单元(Configurable Function Unit,CFU)。
图2-7为广东高云半导体公司推出的GW1N系列FPGA器件结构示意图。器件内部是可配置功能单元(CFU),外围是输入输出模块(IOB),器件内嵌了静态随机存储器模块(Block SRAM)、时钟锁相环(PLL)、片内晶振(OSC)和用户闪存(User Flash),支持瞬时启动功能,同时器件内嵌了MIPI D-PHY RX硬核模块(一种高速串行传输接口)。
图2-7 GW1N系列FPGA器件结构示意图
CFU是构成高云半导体FPGA产品内核的基本单元,每个基本单元可由四个可配置逻辑块(CLS)及相应的可配置布线单元(CRU)组成,其中每个可配置逻辑块均包含两个四输入查找表(LUT)和两个寄存器(REG),如图2-8所示。
图2-8 可配置功能单元(CFU)结构示意图
GW1N系列FPGA产品的IOB主要包括I/O缓冲区、I/O逻辑及相应的布线单元三个部分。每个IOB包括两个I/O引脚,它们可以配置成一组差分信号对,也可以作为单端信号分别配置。
静态随机存储器模块(Block SRAM)可以理解为内嵌的RAM,这些存储器资源按照模块排列,以行的形式分布在整个FPGA阵列中。每个Block SRAM可配置最高18kbit的存储空间。工程师可通过IP(Intelligent Property,知识产权)核配置成单端口模式、双端口模式及只读存储器(ROM)模式等多种操作模式。
时钟锁相环是一种反馈控制电路,利用外部输入的参考时钟信号控制环路内部振荡信号的频率和相位。GW1N系列FPGA器件的时钟锁相环模块能够提供多种频率的时钟信号,通过配置不同的参数可以进行时钟的频率调整(倍频和分频)、相位调整、占空比调整等。
GW1N系列FPGA产品内嵌了一个可编程片内晶振,支持2.5MHz~125MHz的时钟频率。片内晶振提供可编程的用户时钟,可以为用户的设计提供时钟源,通过配置工作参数,可以获得多达64种时钟频率。
GW1N系列FPGA器件提供用户闪存(User Flash)资源,可直接存储FPGA程序,不需要单独为FPGA外接一块Flash芯片。
布线资源连通FPGA内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置的不同,布线资源划分为四类:第一类是全局布线资源,用于芯片内部全局时钟信号和全局复位/置位信号的布线;第二类是长线资源,用以完成芯片Bank间的高速信号和第二全局时钟信号的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式的布线资源,用于专有时钟、复位等控制信号线。在实际工程设计中,设计者不需要直接选择布线资源,布局布线器可自动根据输入逻辑网表的拓扑结构和约束条件选择布线资源来连通各个模块单元。从本质上来讲,布线资源的使用方法和设计的结果有密切、直接的关系。