当前位置:首页 > 新闻资讯 > FPGA之家动态 >

FPGA基础知识

时间:2025-03-15      来源:FPGA_UCY 关于我们 0

现场可编程门阵列(Field Gate Array,FPGA)属于可编程逻辑器件的一种,在20世纪90年代获得了突飞猛进的发展,经过近20年的发展,到目前已经成为实现数字系统的主流平台之一。

一、可编程逻辑器件

可编程逻辑器件( Logic ,PLD)起源于20世纪70年代,是在专用集成电路(ASIC)的基础上发展起来的一种新型逻辑器件,是当今数字系统设计的主要硬件平台。其主要特点是完全由用户通过软件进行配置和编程,从而完成某种特定的功能,且可以反复擦写。修改和升级PLD不需额外地改变PCB电路板,只是在计算机上修改和更新程序,使硬件设计工作转化为软件开发工作,缩短了系统设计的周期,提高了实现的灵活性并降低了成本,因此获得广大硬件工程师的青睐,形成了巨大的PLD产业规模。

1、分类:

目前常用的PLD产品有:可编程只读存贮器(PROM)、现场可编程逻辑阵列FPLA、可编程阵列逻辑PAL、通用阵列逻辑GAL、可擦除的可编程逻辑器件EPLA、复杂可编程逻辑器件CPLD和现场可编程门阵列FPGA等。 PLD器件从规模上划分:简单PLD(SPLD)、复杂PLD(CPLD)以及FPGA。它们的内部结构的实现各不相同。 PLD按照颗粒度可以分为:小颗粒度(如“门海”架构),中等颗粒度(如FPGA)以及大颗粒度(如CPLD)。 按照编程工艺可以分为:

熔丝(Fuse)和反熔丝()编程器件、

可擦除的可编程只读存储器()编程器件、

电信号可擦除的可编程只读存储器()编程器件(如CPLD)和

静态RAM(SRAM)编程器件(如FPGA)。

前三类为非易失性器件,编程后配置数据保留在器件上;SRAM为易失性器件,掉电后配置数据会丢失,因此在每次上电后需要重新进行数据配置(如FPGA)。

2、可编程逻辑器件的发展可以划分为4个阶段:

3、可编程逻辑器件开发工具:

基于高复杂度PLD器件的开发,在很大程度上要依靠电子设计自动化(EDA)来完成。典型的EDA工具中必须包含两个特殊的软件包,即综合器和适配器。

综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合。

适配器一般不用于FPGA设计。

PLD开发工具的重要性:随着开发规模的级数性增长,就必须减短PLD开发软件的编译时间、并提高其编译性能以及提供丰富的知识产权(IP)核资源供设计人员调用。此外,PLD开发界面的友好性以及操作的复杂程度也是评价其性能的重要因素。

目前在PLD产业领域中,各个芯片提供商的PLD开发工具已成为影响其成败的核心成分。只有全面做到芯片技术领先、文档完整和PLD开发软件优秀,芯片提供商才能获得客户的认可。一个完美的PLD开发软件应当具备下面6点:

准确地将用户设计转换为电路模块;

能够高效地利用器件资源;

能够快速地完成编译和综合;

满足用户在不同领域的设计需求,即全面又高效;

提供丰富的IP资源;

用户界面友好、操作简单。

公司的ISE是业界公认的优秀集成PLD开发软件,可完成上百款可编程逻辑器件的开发。此外综合软件、仿真软件以及/等诸多第三方EDK开发软件也满足上述要求。

二、FPGA芯片的基本工作原理

如前所述,FPGA是在PAL、GAL、EPLD、CPLD等可编程器件的基础上进一步发展的产物。

1、采用的工艺:

由于FPGA需要被反复烧写,它实现组合逻辑的基本结构不可能像ASIC那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构;查找表可以很好地满足这一要求。目前主流FPGA都采用了基于SRAM工艺的查找表结构,也有一些军品和宇航级FPGA采用Flash或者熔丝与反熔丝工艺的查找表结构。SRAM工艺的FPGA芯片不具备非易失特性,因此断电后将丢失内部逻辑配置。在每次上电后,都需要从外部非易失存储器(PROM、Flash存储器等)中导入配置比特流。

根据数字电路的基本知识可以知道,对于一个n输入的逻辑运算,不管是与或非运算还是异或运算等,最多只可能存在2n种结果。 所以,如果事先将相应的结果存放于一个存储单元,就相当于实现了与非门电路的功能。FPGA的原理也是如此,它通过烧写文件去配置查找表的内容,从而在相同的电路情况下实现了不同的逻辑功能。

查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。对于一个6/4(6输入或者4输入) LUT可以看成一个有6/4位地址线的64/16x1 的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。(目前的最新产品 5 FPGA芯片采用6输入的LUT,而其余所有芯片都使用4输入的LUT)

例子见原书。

由于基于LUT的FPGA具有很高的集成度,其器件密度从数万门到数千万门不等,可以完成极其复杂的时序逻辑电路与组合逻辑电路,所以适用于高速、高密度的高端数字逻辑电路设计领域。主要设计和生产厂家有、、、Actel、Atmel和等公司,其中最大的是、、三家。

如上所述,FPGA是由存放在片内的RAM来设置其工作状态的,因此工作时需要对片内RAM进行编程。用户可根据不同的配置模式,采用不同的编程方式。FPGA有如下几种配置模式:

并行模式:并行PROM、Flash配置FPGA;

主从模式:一片PROM配置多片FPGA;

串行模式:串行PROM配置FPGA;

外设模式:将FPGA作为微处理器的外设,由微处理器对其编程。

目前,FPGA市场占有率最高的两大公司和生产的FPGA都是基于SRAM工艺的,需要在使用时外接一个片外存储器以保存程序。上电时,FPGA将外部存储器中的数据读入片内RAM,完成配置后,进入工作状态;掉电后FPGA恢复为白片,内部逻辑消失。这样FPGA不仅能反复使用,还无需专门的FPGA编程器,只需通用的EPROM、PROM编程器即可。

Actel、等公司还提供反熔丝技术的FPGA,只能下载一次,具有抗辐射、耐高低温、低功耗和速度快等优点,在军品和航空航天领域中应用较多,但这种FPGA不能重复擦写,开发初期比较麻烦,费用也比较昂贵。

是ISP(In- ,在系统可编程)技术的发明者,在小规模PLD应用上有一定的特色。早期的产品一般不涉及军品和宇航级市场,但目前已经有Q Pro-R等多款产品进入该类领域。

2、 FPGA的基本架构

目前FPGA芯片仍是基于查找表技术的,但其概念和性能已经远远超出查找表技术的限制,并且整合了常用功能的硬核模块(如块RAM、时钟管理和DSP)。公司FPGA的内部结构如下(由于不同系列的应用场合不同,所以内部结构会有一定的调整):

基础代谢率计算器_基础代谢率的正常范围_fpga基础

每个模块的功能如下:

可编程输入输出单元(IOB):

可编程输入/输出单元简称I/O单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配要求,提供输入缓冲、输出驱动、接口电平转换、阻抗匹配以及延迟控制等功能。FPGA内的I/O按组分类,每组都能够独立地支持不同的I/O标准。通过软件的灵活配置,可适配不同的电气标准与I/O物理特性,可以调整驱动电流的大小,可以改变上、下拉电阻。目前,I/O口的频率也越来越高,一些高端的FPGA通过DDR寄存器技术可以支持高达2Gbps的数据速率。

为了便于管理和适应多种电器标准,FPGA的IOB被划分为若干个组(bank),每个bank的接口标准由其接口电压VCCO决定,一个bank只能有一种VCCO,但不同bank的VCCO可以不同。只有相同电气标准的端口才能连接在一起,VCCO电压相同是接口标准的基本条件。

可配置逻辑块(CLB):

CLB是FPGA内的基本逻辑单元。CLB的实际数量和特性会依器件的不同而不同,但是每个CLB都包含一个可配置开关矩阵,此矩阵由4或6个输入、一些选型电路(多路复用器等)和触发器组成。开关矩阵是高度灵活的,可以对其进行配置以便处理组合逻辑、移位寄存器或RAM。在公司的FPGA器件中,CLB由多个(一般为4个或2个)相同的Slice和附加逻辑构成,如图所示。每个CLB模块不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式RAM和分布式ROM。

fpga基础_基础代谢率计算器_基础代谢率的正常范围

Slice是公司定义的基本逻辑单位,其内部结构如下:

基础代谢率计算器_fpga基础_基础代谢率的正常范围

图1-4 典型的4输入Slice结构示意图

一个Slice由两个4/6输入的查找表函数、进位逻辑、算术逻辑、存储逻辑和函数复用器组成。算术逻辑包括一个异或门(XORG)和一个专用与门(),一个异或门可以使一个Slice实现2bit全加操作,专用与门用于提高乘法器的效率;进位逻辑由专用进位信号和函数复用器(MUXC)组成,用于实现快速的算术加减法操作;4 输入函数发生器用于实现4 输入LUT、分布式 RAM 或者16 比特移位寄存器(目前,基于65nm工艺的FPGA一般都采用6输入查找表,可以实现6输入LUT或64比特移位寄存器);进位逻辑包括两条快速进位链,用于提高CLB模块的处理速度。

数字时钟管理模块(DCM):

业内大多数FPGA均提供数字时钟管理(的全部FPGA均具有这种特性)。推出最先进的FPGA提供数字时钟管理和相位环路锁定。相位环路锁定能够提供精确的时钟综合,且能降低抖动,并实现过滤功能。

嵌入式块RAM(BRAM):

大多数FPGA都具有内嵌的块RAM,这大大拓展了FPGA的应用范围和灵活性。块RAM可被配置为单端口RAM、双端口RAM、内容地址存储器(CAM)以及FIFO等常用存储结构。

单片块RAM的容量为18k比特,即位宽为18比特、深度为1024,可以根据需要改变其位宽和深度,但要满足两个原则:首先,修改后的容量(位宽深度)不能大于18k比特;其次,位宽最大不能超过36比特。当然,可以将多片块RAM级联起来形成更大的RAM,此时只受限于芯片内块RAM的数量,而不再受上面两条原则约束。

丰富的布线资源:

布线资源连通FPGA内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置的不同而划分为4类不同的类别:

在实际中设计者不需要直接选择布线资源,布局布线器可自动地根据输入逻辑网表的拓扑结构和约束条件选择布线资源来连通各个模块单元。从本质上讲,布线资源的使用方法和设计的结果有密切、直接的关系。

底层内嵌功能单元:

内嵌功能模块主要指DLL(Delay Loop)、PLL(Phase Loop)、DSP和CPU等软处理核( )。正是由于集成了丰富的内嵌功能单元,从而使得单片FPGA成为了系统级的设计工具,具备了软硬件联合设计的能力,逐步向SOC平台过渡。

DLL和PLL具有类似的功能,可以完成时钟高精度、低抖动的倍频和分频,以及占空比调整和移相等功能。公司生产的芯片上集成了DLL,公司的芯片集成了PLL,公司的新型芯片上同时集成了PLL和DLL。PLL 和DLL可以通过IP核生成的工具方便地进行管理和配置。典型的DLL的结构如图:

fpga基础_基础代谢率的正常范围_基础代谢率计算器

内嵌专用硬核:

内嵌专用硬核是相对底层嵌入的软核而言的,指FPGA处理能力强大的硬核(Hard Core),等效于ASIC电路。为了提高FPGA性能,芯片生产商在芯片内部集成了一些专用的硬核。的主流芯片都集成了硬核的块RAM、硬核乘加器,在高端产品还集成了Power PC系列CPU,还内嵌了吉比特收发器(MGT)模块。

3、FPGA开发流程中的一些概念:

4、 电子文档资源的搜索技巧:4个非常有效的网站

5、FPGA初学者:

4、ISE .1:

推出了新一代ISE Suite 10.1版设计套件,从正面解决FPGA设计师所面临的严峻挑战,并且第一次提供了一个统一了逻辑、DSP以及嵌入式应用设计人员需要的解决方案。ISE Suite 10.1为设计的每一步提供了直观的生产力增强工具,覆盖从系统设计探索、软件开发和基于HDL硬件语言设计、直到验证、调试和PCB设计集成的全部设计流程。

ISE Suite 10.1继承了ISE以前版本的全部优点;此外,它还具备以下8个创新特点,为大规模、复杂FPGA设计提供更高的性能和更高的生产力:


注明:本内容来源网络,不用于商业使用,禁止转载,如有侵权,请来信到邮箱:429562386ⓐqq.com 或联系本站客服处理,感谢配合!

用户登陆

    未注册用户登录后会自动为您创建账号

提交留言