FPGA概述

FPGA概述
FPGA概述

FPGA概述

FPGA(Field Programmable Gate Array)现场可编程逻辑门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC) 领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。它是当今数字系统设计的主要硬件平台,其主要特点就是完全由用户通过软件进行配置和编程,从而完成某种特定的功能,且可以反复擦写。在修改和升级时,不需额外地改变PCB 电路板,只是在计算机上修改和更新程序,使硬件设计工作成为软件开发工作,缩短了系统设计的周期,提高了实现的灵活性并降低了成本。

一什么是可编程逻辑器件

在数字电子系统领域,存在三种基本的器件类型:存储器、微处理器和逻辑器件。存储器用来存储随机信息,如数据表或数据库的内容。微处理器执行软件指令来完成范围广泛的任务,如运行字处理程序或视频游戏。逻辑器件提供特定的功能,包括器件与器件间的接口、数据通信、信号处理、数据显示、定时和控制操作、以及系统运行所需要的所有其它功能。逻辑器件又分为固定逻辑和可编程逻辑,固定逻辑是器件复杂性不同,从设计、原型到最终生产,当应用发生变化时就要从头设计,可编程逻辑器件较固定的优点就在于当应用发生变化和器件工作不合适时不用从头设计,直接从新编写逻辑器件后就可以了,这样就节省了前期的开发费用和周期。

二可编程逻辑器件CPLD/FPGA的比较

可编程逻辑包括PAL,GAL,PLD等,经过不断的发展,演变成现在的CPLD/FPGA。CPLD(Complex Programmable Logic Device) 复杂可编程逻辑器件和FPGA(Field Programmable Gate Array)两者的功能基本相同,只是实现的原理有些不同,忽略两者的区别时统称为可编程逻辑器件或者是CPLD/FPGA。CPLD是的实现是基于乘积项结构(附录2),FPGA的是基于查找表结构(附录1)。两者的区别一般有如下特点:

1CPLD的逻辑单元比较大,容量较小,时序确定,延时可预测,FPGA基于查找表(LUT)所以时间上取决于查找表的路由。

2CPLD的容量一般比较小,寄存器少,适合做一些容量不大,组合逻辑比较复

杂的设计,如地址译码器,总线接口和上电复位逻辑等,相反FPGA则可以做一些容量大,内嵌存储器等高级设计,如嵌入式CPU,数据处理等

3CPLD内部连线采用连续性内部连线,这样的链接延时比较固定,但受连接路径的影响,FPGA则采用片段链接,可以充分利用连线资源

4FPGA可以提供比CPLD器件足够大的逻辑容量密度,大大减少PCB的空间,降低系统的功耗

上述了CPLD和FPGA的区别,但是作为可编程逻辑器件,他们也有其共同的特点,概括起来他们基本组成分三大部分:

1 二维的逻辑阵列(逻辑单元),构成器件的德逻辑组成核心

2 输入和输出块(I/O),负责芯片与外界电路的借口连接

3 链接逻辑块的互联资源,用于逻辑块之间,逻辑块与输入/输出之间的连接

三FPGA的特点

1 高性能是实时性,由于FPGA芯片内部是通过上百万个逻辑单元完成硬件实现,具有并行处理的能力,运算速度比平常的单片机和DSP快很多。

2 高集成性FPGA可根据用户的需求在内部嵌入硬/软IP核,以实现不同的而要求而且采用SOPC技术也可节省目标硬件的面积

3 高可靠性和地成本目前的FPGA芯片在出厂之前都做过100%的检测,不需要设计人员承担投片生产的费用

4 高灵活性和低功耗FPGA是现场可编程,用户可以反复的编程,擦写,使用,或者在外围电路保持不变的情况下,采用不同的设计而实现不同的功能,这样给产品的升级和维护带来极大的方便

四FPGA的体系结构

FPGA采用逻辑单元阵列LCA(Logic Cell Array)的概念,内部包括可配置逻辑模块CLB(Configurable Logic Block),输入/输出模块IOB(Input/Output Block),内部连线(Interconnect)和用于存放编程数据的静态存储器SRAM组成。

图1 FPGA内部结构

1 可编程逻辑模块CLB

CLB是实现逻辑功能的基本单元,通常规则地排列成一个阵列,散布于整个芯片。CLB一般由逻辑函数发生器,触发器,数据选择器等构成,函数发生器用于实现n输入变量的一个任意组合逻辑。

2 输入/输出模块(IOB)

IOB提供了器件引脚和内部逻辑阵列之间的连接,主要由输入发生器,输入缓冲器和输出触发/锁存器,输出缓冲器组成。IOB可被定义为输入/输出,双向I/O 功能。当定义成输入时,通过该引脚的信号先送进输入缓冲器,缓冲器分两路,一路直接送到MUX,一路经延时送到输入通路D触发器,再送到数据选择器,根据不同的控制信息确定送至CLB阵列是来自输入缓冲还是触发器。

3 可编程互联资源IR

IR可以将CLB和CLB之间,CLB和IOB之间连接起来,IR主要由许多金属连线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路之间的的连接。

片内连线按长度分为:单长度线(a),双长度线(b)和长线(c)三种。

(a)(b) (c)

五FPGA的设计流程

FPGA 是可编程芯片,因此FPGA 的设计方法包括硬件设计和软件设计两部分。硬件包括FPGA 芯片电路、存储器、输入输出接口电路以及其他设备,软件即是相应的VHDL 程序和Verilog HDL程序。FPGA采用自顶而下的设计方法,开始从系统级设计,然后逐步分化到二级单元,三级单元知道可以直接操作基本逻辑单元或IP核为止,一般情况下设计流程有如下步骤:

1 功能定义/器件选型

在FPGA 设计项目开始之前,必须有系统功能的定义和模块的划分,另外就是要根据任务要求,如系统的功能和复杂度,对工作速度和器件本身的资源、成本、以及连线的可布性等方面进行权衡,选择合适的设计方案和合适的器件类型。

2 设计输入

设计输入有原理图输入和硬件描述语言输入,原理图输入比较直观但不易仿真,但效率很低,且不易维护,不利于模块构造和重用。更主要的缺点是可移植性差,当芯片升级后,所有的原理图都需要作一定的改动。硬件语言包括VHDL 和Verilog HDL以及System C等,硬件描述语言输入其共同的突出特点:语言与芯片工艺无关,利于自顶向下设计,便于模块的划分与移植,可移植性好,具有很强的逻辑描述和仿真功能,而且输入效率很高。

3 功能仿真

功能仿真也称为前仿真是在编译之前对用户所设计的电路进行逻辑功能验证,此时没有延迟信息,仅是对功能的初步检测。

4 综合优化

所谓综合就是将较高级抽象层次的描述转化成较低层次的描述。综合优化根据目

标与要求优化所生成的逻辑连接,使层次设计平面化,供FPGA 布局布线软件进行实现。就目前的层次来看,综合优化(Synthesis) 是指将设计输入编译成由与门、或门、非门、RAM、触发器等基本逻辑单元组成的逻辑连接网表,而并非真实的门级电路。

5 综合后仿真

综合后仿真检查综合结果是否和原设计一致。在仿真时,把综合生成的标准延时文件反标注到综合仿真模型中去,可估计门延时带来的影响。但这一步骤不能估计线延时,因此和布线后的实际情况还有一定的差距,并不十分准确。

6 实现与布局布线

布局布线可理解为利用实现工具把逻辑映射到目标器件结构的资源中,决定逻辑的最佳布局,选择逻辑与输入输出功能链接的布线通道进行连线,并产生相应文件( 如配置文件与相关报告),实现是将综合生成的逻辑网表配置到具体的FPGA 芯片上。

7 时序仿真

时序仿真,也称为后仿真,是指将布局布线的延时信息反标注到设计网表中来检测有无时序违规( 即不满足时序约束条件或器件固有的时序规则,如建立时间、保持时间等) 现象。时序仿真包含的延迟信息最全,也最精确,能较好地反映芯片的实际工作情况。

8 板级仿真与验证

板级仿真主要应用于高速电路设计中,对高速系统的信号完整性、电磁干扰等特征进行分析,一般都以第三方工具仿真和验证。

9 芯片编程与调试

设计的最后一步就是芯片编程与调试。芯片编程是指产生使用的数据文件( 位数据流文件,BitstreamGeneration),然后将编程数据下载到FPGA 芯片中。逻辑分析仪(Logic Analyzer,LA) 是FPGA 设计的主要调试工具,但需要引出大量的测试管脚,且LA 价格昂贵。目前,主流的FPGA 芯片生产商都提供了内嵌的在线逻辑分析仪。

六FPGA的应用领域

随着FPGA厂商降低芯片的成本,FPGA被广泛应用于,通信,数字信号处理,

工业控制,航空航天等领域,并取得非常高的可靠性。

附录:

1 查找表(Look Up Table)简称LUT,其本质就是一个RAM,现在大多数的FPGA是四输入以上的LUT,若是四输入的LUT,那么就可以看成一个有四位地址线的16*1的RAM,用户通过硬件描述语言描述一个逻辑电路后,FPGA会自动计算逻辑电路所有可能的结果,每输入一个信号进行逻辑运算时,就等同于输入一个地址进行查表,读出表中相应的内容,然后输出即可。

2 乘积项又称乘积项阵列,实际就是一个与或阵列,每一个交叉点都是一个可编程熔丝,如果导通就是实现“与”逻辑。后面的乘积项选择矩阵是一个“或”阵列。两者一起完成组合逻辑。如图所示

相关主题
相关文档
最新文档