一、FPGA芯片基本结构
1、可编程逻辑单元(CLB)
这是FPGA芯片中最重要的部分,用于实现数字逻辑电路中的逻辑功能和控制。包括查找表(LUT)和D触发器。查找表是逻辑块的计算单元,由多个输入和一个输出组成,用于实现各种逻辑功能。D触发器则用于存储状态和时序控制。FPGA芯片中通常包含数千个这样的逻辑单元,以支持复杂的逻辑运算。
2、可编程输入输出单元(IOB)
作为FPGA芯片与外界电路的接口,完成不同电气特性下对输入/输出信号的驱动与匹配要求。FPGA的IOB被划分为若干个组(bank),每个bank可以独立地支持不同的I/O标准,并可以通过软件灵活配置以适应不同的电气标准和I/O物理特性。
3、嵌入式RAM块
提供内部存储器资源,用于存储与内存相关的数据和程序。包括寄存器、随机存储器模块(RAM)等。RAM可以被配置为单端口RAM、双端口RAM、内容地址存储器(CAM)以及FIFO等常用存储结构。
4、布线网络
连通FPGA内部的所有单元,确保信号能够在芯片内部有效传输。根据工艺、长度、宽度和分布位置的不同,布线资源通常被划分为全局布线资源、长线资源、短线资源和分布式布线资源等。
5、时钟管理单元
生成和管理时钟信号,确保同步电路中的各个部分能够按照预定的时序进行工作。包括DLL和PLL等电路,用于实现时钟的高精度、低抖动倍频和分频,以及占空比调整和移相等功能。
6、内嵌的底层功能单元和专用硬件模块
提供额外的硬件加速功能,如DSP(数字信号处理)模块、CPU软核等,以提高FPGA的性能和应用范围。这些模块可以根据设计需求进行配置和使用,以实现特定的功能和应用。
二、FPGA芯片的工作原理
FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。
现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。
FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。