FPGA是由存放在片内RAM中的程序来设置其事情状态的,因此,事情时须要对片内的RAM进行编程。用户可以根据不同的配置模式,采取不同的编程办法。
目前,FPGA市场霸占率最高的两大公司——赛灵思公司和Altera生产的FPGA都是基于SRAM工艺的,须要在利用时外接一个片外存储器以保存程序。上电时,FPGA将外部存储器中的数据读入片内RAM,完成配置后,进入事情状态;掉电后SRAM存储的数据丢失,内部逻辑消逝。这样,FPGA能反复利用,且无须专门的FPGA编程器,只需配备一片存储代码的FLASH存储器即可。
Actel、QuickLogic等公司还供应反熔丝技能的FPGA,它具有抗辐射、耐高低温、低功耗和速率快等优点,在军品和航空航天领域中运用较多,但这种FPGA不能重复擦写,开拓初期比较麻烦,用度也比较昂贵。Lattice是ISP技能的发明者,在小规模PLD运用上有一定的特色。赛灵思公司的早期产品一样平常不涉及军品和宇航级市场,但目前已经有多款产品进入该领域。

目前主流的FPGA仍是基于查找表技能的,已经远远超出了先前版本的基本性能,并且整合了常用功能(如RAM、时钟管理和DSP)的硬核(ASIC型)模块。
此处,我们以XC2V3000为例,先容范例的FPGA构造图。XC2V3000拥有300万门的超大系统容量,采取0.15 μm/0.12 μm CMOS 8层金属稠浊工艺设计,内核电压为1.5 V,根据输入/输出参考电压的不同设计可支持多种接口标准,内部时钟频率可达420 MHz。XC2V3000的内部构造如图1-1所示,它紧张由可配置逻辑(CLB)、用户可编程I/O(IOB)、Block SelectRAM、数字时钟管理模块(DCM)、数字阻抗匹配模块(DCI)和硬件乘法器等组成。个中CLB用于实现FPGA的绝大部分逻辑功能;IOB用于供应封装引脚与内部逻辑之间的接口;BlockRAM用于实现FPGA内部的随机存取,它可配置RAM、双口RAM、FIFO等随机存储器;DCM用于供应灵巧的时钟管理功能;硬件乘法器用于提高FPGA的数字旗子暗记处理能力。
图1-1 Virtex系列产品XC2V3000的内部构造
1.可配置逻辑块(CLB)
如图1-2所示,XC2V3000的CLB模块由4个相同的Slice和附加逻辑构成,用于实现组合逻辑和时序逻辑。
每个Slice由2个4输入函数发生器、进位逻辑、算术逻辑、存储逻辑和函数复用器组成。算术逻辑包括1个异或门(XORG)与1个专用与门(MULTAND),1个异或门可以使1个Slice实现2位全加操作,专用与门用于提高乘法器的效率。进位逻辑由专用进位旗子暗记和函数复用器(MUXC)组成,共同实现快速的算术加减法操作。详细构造详见图1-3和图1-4。
图1-2 Virtex系列产品
图1-3 Virtex系列产品
图1-4 Virtex系列产品Slice构造
2.可编程输入/输出单元(IOB)
可编程输入/输出单元简称IOB,供应FPGA内部逻辑与外部封装引脚之间的接口,用于完身分歧电气特性下对输入/输出旗子暗记的驱动和匹配。根据当前利用的I/O接口标准的不同,须要设置不同的接口电压V cco 和参考电压V REF 。XC2V3000的I/O引脚分布在8个Bank中,同一个Bank的接口电压V cco 必须保持同等,不同Bank的接口电压V cco 许可不同。
如图1-5所示,XC2V3000的IOB模块含有6个存储单元,可以单独配置为边沿D触发器或锁存器,也可以成对实现DDR(Double-Data-Rate)输入和DDR输出。
DDR寄存器的构造见图1-6。
3.嵌入式块RAM(BRAM)
XC2V3000的Block SelectRAM资源丰富,其单位容量为18Kb双端口RAM,可以自由设天命据宽度和深度纵横比,并支持三种并发读/写(Read-During-Write)模式。
图1-5 Virtex系列产品
图1-6 DDR寄存器构造
4.丰富的布线资源
布线资源连通FPGA内部所有的单元,IOB、CLB、BRAM、DCM等都利用相同的内连阵列。XC2V3000内部共有16条全局时钟线,用于芯片内部全局时钟和全局复位/置位的布线。24条纵横交错的长线资源实现了芯片Bank间的高速通信和第二全局时钟旗子暗记的布线。
5.底层内嵌功能单元
XC2V3000集成了丰富的内嵌功能模块,如DCM(数字时钟管理器)、DCI(数字掌握阻抗)、MicroBlaze软处理器核等,使其具有软、硬件联合设计的能力,可以用有限的资源完成系统级的设计任务。