每日更新教程,评论区答疑解惑,小白也能变大神!"

目录

1 FPGA的诞生背景与核心需求

2 查找表:FPGA逻辑实现的基础

2.1 查找表的工作原理

2.2 LUT的完成方式与优势

3 FPGA的配置模式与工艺技术

3.1 FPGA的配置模式

3.2 FPGA的工艺技术及其特点

4 FPGA芯片的详细结构剖析

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

4.2 可设置逻辑块(CLB)

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

4.4 嵌入式块RAM(BRAM)

4.5 丰富的布线资源

4.6 底层内嵌能力单元

4.7 内嵌专用硬核

5 FPGA中的IP核:软核、固核与硬核

5.1 软核

5.2 固核

5.3 硬核

6 FPGA技术的应用总结与未来展望


1 FPGA的诞生背景与核心需求

现场可编程门阵列(Field Programmable Gate Array,FPGA)是在PAL、GAL、EPLD、CPLD等可编程器件基础上发展起来的高度灵活的半导体器件。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,同时解决了全定制电路的不足,并克服了原始可编程器件门电路数量有限的缺点。这一特性使FPGA成为现代数字系统设计中的重要组成部分,尤其适合需要高效原型构建、设计迭代频繁或得现场升级的应用场景。

FPGA的核心价值在于其可重配置特性。由于FPGA需要被反复烧写,它完成组合逻辑的基础结构不可能像ASIC那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构。查找表(Look-Up-Table,LUT)可以很好地满足这一要求,目前主流FPGA都采用了基于SRAM工艺的查找表结构,也有一些军品和宇航级FPGA采用Flash或者熔丝与反熔丝工艺的查找表结构。依据烧写文件改变查找表内容的办法来实现对FPGA的重复安装,这种架构奠定了FPGA灵活性的硬件基础。

2 查找表:FPGA逻辑实现的基础

2.1 查找表的工作原理

查找表(LUT)是FPGA搭建逻辑特性的核心单元,其本质是一个静态随机存取存储器(SRAM)。根据数字电路的基本原理,对于一个n输入的逻辑运算,不管是与或非运算还是异或运算,最多只可能存在2^n种结果。因此,倘若事先将相应的结果存放于一个存储单元,就相当于实现了相应逻辑门电路的功能。FPGA正是利用这一原理,借助烧写档案去配置查找表的内容,从而在相同的电路情况下实现不同的逻辑能力。

当用户借助原理图或硬件描述语言(HDL)描述了一个逻辑电路后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入RAM。这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容并输出。例如,一个4输入与门电路的LUT实现应该将16种输入组合中只有"1111"对应输出为"1",其余情况输出为"0",这些值预先存储在LUT中,形成完整的4输入与门功能。

2.2 LUT的搭建方式与优势

通过目前FPGA中多应用4输入或6输入的LUT。一个4输入的LUT能够看作一个有4位地址线的16×1位RAM,能够存储16种可能的逻辑结果。当输入信号加载到LUT的地址线时,对应的存储值就会被输出,从而构建所需的逻辑功能。随着工艺进步,现代FPGA通常采用更复杂的LUT结构,如Xilinx UltraScale+架构中的6输入LUT,能够搭建更艰难的逻辑功能,减少逻辑层级,提高性能。

与传统固定逻辑门电路相比,基于LUT的FPGA具有显著优势。LUT可以实现任意组合逻辑功能,不受固定门电路类型的限制;基于LUT的FPGA具有更高的集成度,器件密度从数万门到数千万门不等,可以完成极其繁琐的时序与组合逻辑电路功能;LUT结构还具有更快的执行速度和更大的规模,适用于高速、高密度的数字逻辑电路设计领域。

3 FPGA的配置模式与工艺技术

3.1 FPGA的部署模式

由于FPGA是基于存放在片内的RAM来设置其工作状态的,因此工作时需要对片内RAM进行编程。用户可根据不同的应用需求,采用不同的编程方式。FPGA主要有以下几种部署模式:

并行模式:使用并行PROM或Flash配备FPGA,此种模式下设置数据利用并行总线传输,配置速度较快,适合对启动速度要求较高的应用。

主从模式:一片PROM配置多片FPGA,这种模式在多板卡架构或需要多个相同FPGA配备的场景中非常有用,可能确保多个FP芯片的同步配置。

串行模式:使用串行PROM配置FPGA,只需要少量引脚即可达成配置,适合引脚资源受限的应用,但配置速度相对较慢。

外设模式通过:将FPGA作为微处理器的外设,由微处理器对其编程。这种模式下,FPGA的配置数据能够存储在平台的其他存储设备中,由处理器在系统启动时加载到FPGA。

3.2 FPGA的工艺技术及其特点

目前主流的FPGA主要采用以下几种工艺技术:

SRAM工艺:目前市场占有率最高的两大公司Xilinx和Altera生产的FPGA都是基于SRAM工艺的。此种FPGA需要在使用时外接一个片外存储器以保存程序。上电时,FPGA将外部存储器中的信息读入片内RAM,做完调整后进入工作状态;掉电后FPGA恢复为白片,内部逻辑消失。这种工艺的FPGA不仅能反复使用,还无需专门的FPGA编程器,只需通用的EPROM、PROM编程器即可。优点是可重复编程多次,设计灵活;缺点是掉电后配备材料丢失,需要外置配置芯片。

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

Flash工艺:一些FPGA厂商如Lattice和Microsemi(原Actel)提供基于Flash工艺的FPGA。这种FPGA结合了SRAM和反熔丝的一些优点,既具有非易失性,又允许被多次编程,同时具有较高的可靠性。

4 FPGA芯片的详细结构剖析

现代FPGA芯片已经远远超出了早期版本的基本性能,并且整合了常用作用(如RAM、时钟管理和DSP)的硬核(ASIC型)模块。FPGA芯片主要由七大核心部分构成,这些部分相互协作,形成了完整可编程系统。

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

可编程输入/输出单元是芯片与外界电路的接口部分,结束不同电气特性下对输入/输出信号的驱动与匹配要求。FPGA内的I/O按组(bank)分类,每组都能够独立地支持不同的I/O标准。通过软件的灵活配置,可适配不同的电气标准与I/O物理特性,可以调整驱动电流的大小,改变上、下拉电阻。

通过外部输入信号可以通过IOB模块的存储单元输入到FPGA的内部,也可以直接输入FPGA内部。当外部输入信号经过IOB模块的存储单元输入到FPGA内部时,其保持时间的要求许可降低。为了便于管理和适应多种电器标准,FPGA的IOB被划分为若干个组,每个bank的接口标准由其接口电压VCCO决定,一个bank只能有一种VCCO,但不同bank的VCCO可以不同。只有相同电气标准的端口才能连接在一起,VCCO电压相同是接口标准的基本条件。目前,I/O口的频率也越来越高,一些高端的FPGA通过DDR寄存器技术能够支持高达2Gbps的数据速率。

4.2 可配置逻辑块(CLB)

FPGA内的就是可配置逻辑块基础逻辑单元,其实际数量和特性会依器件的不同而不同。每个CLB都包含一个可调整开关矩阵,此矩阵由4或6个输入、一些选型电路(多路复用器等)和触发器组成。开关矩阵是高度灵活的,可以对其进行配置以便处理组合逻辑、移位寄存器或RAM。

通过在Xilinx公司的FPGA器件中,CLB由多个(一般为4个或2个)相同的Slice和附加逻辑构成。每个CLB模块不仅可以用于搭建组合逻辑、时序逻辑,还可以配置为分布式RAM和分布式ROM。Slice是Xilinx公司定义的基本逻辑单位,其内部结构包括两个4输入或6输入的函数、进位逻辑、算术逻辑、存储逻辑和函数复用器组成。算术逻辑包括一个异或门(XORG)和一个专用与门(MULTAND),一个异或门能够使一个Slice实现2bit全加操作,专用与门用于提高乘法器的效率;进位逻辑由专用进位信号和函数复用器(MUXC)组成,用于实现快速的算术加减法操作。

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

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

数字时钟管理模块主要用于时钟的倍频、分频、去抖动和相移。通过DLL(延迟锁定环)或PLL(锁相环)科技,FPGA可以构建高精度、低抖动的时钟管理,满足高速数字系统对时钟质量的严格要求。例如,Xilinx公司生产的芯片上集成了DLL,Altera公司的芯片集成了PLL,Lattice公司的新型芯片上同时集成了PLL和DLL。这些时钟管理模块可以通过IP核生成的工具方便地进行管理和部署。

4.4 嵌入式块RAM(BRAM)

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

选择芯片的一个要紧因素。就是CAM存储器在其内部的每个存储单元中都有一个比较逻辑,写入CAM中的数据会和内部的每一个数据进行比较,并返回与端口信息相同的所有素材的地址,因而在路由的地址交换器中有广泛的应用。除了块RAM,还行将FPGA中的LUT灵活地调整成RAM、ROM和FIFO等结构。在实际应用中,芯片内部块RAM的数量也

单片块RAM的容量通常为18k比特,即位宽为18比特、深度为1024,可以根据需要改变其位宽和深度,但修改后的容量不能大于原始容量,且位宽最大不能超过36比特。当然,可以将多片块RAM级联起来形成更大的RAM,此时只受限于芯片内块RAM的数量,而不再受单块RAM的容量限制。

4.5 丰富的布线资源

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

全局布线资源:专门用于芯片内部全局时钟和全局复位/置位的布线,具有低偏移、低延迟的特点。

长线资源:用以完成芯片Bank间的高速信号和第二全局时钟信号的布线,适合长距离信号传输。

短线资源:用于完成基本逻辑单元之间的逻辑互连和布线,适合局部区域的信号连接。

分布式布线资源:用于专有时钟、复位等控制信号线,提供专门的信号传输通道。

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

4.6 底层内嵌功能单元

内嵌功能模块关键指DLL(延迟锁定环)、PLL(锁相环)、DSP(数字信号处理器)和CPU等软处理核(Soft Core)。现在越来越丰富的内嵌功能单元,使得单片FPGA成为了架构级的设计工具,使其具备了软硬件联合设计的能力,逐步向SOC平台过渡。

DLL和PLL具有类似的功能,能够完成时钟高精度、低抖动的倍频和分频,以及占空比调整和移相等功能。这些模块大大提高了FPGA在时序控制和时钟管理方面的能力。DSP块则提供了专用的乘加器结构,极大提高了FPGA在数字信号处理方面的性能和效率。软核处理器如Xilinx的MicroBlaze和Altera的Nios II,使FPGA能够运行麻烦的软件程序,实现真正的可编程片上系统。

4.7 内嵌专用硬核

内嵌专用硬核通过是相对底层嵌入的软核而言的,指FPGA处理能力强大的硬核(Hard Core),等效于ASIC电路。为了提高FPGA性能,芯片生产商在芯片内部集成了一些专用的硬核。例如:为了提高FPGA的乘法速度,主流的FPGA中都集成了专用乘法器;为了适用通信总线与接口标准,很多高端的FPGA内部都集成了串并收发器(SERDES),能够达到数十Gbps的收发速度。

Xilinx公司的高端产品不仅集成了Power PC系列CPU,还内嵌了DSP Core模块,其相应的系统级设计工具是EDK和Platform Studio,并依此提出了片上体系(System on Chip)的概念。经过PowerPC、Miroblaze、Picoblaze等平台,能够开发标准的DSP处理器及其相关应用,达到SOC的制作目的。这些硬核大大提高了FPGA在特定应用中的性能和效率,同时降低了功耗。

5 FPGA中的IP核:软核、固核与硬核

IP(Intelligent Property)核是具有知识产权核的集成电路芯核总称,是经过反复验证过的、具有特定功能的宏模块,与芯片制造工艺无关,可以移植到不同的半导体工艺中。到了SOC阶段,IP核设计已成为ASIC电路设计公司和FPGA提供商的重要任务,也是其实力体现。对于FPGA开发软件,其提供的IP核越丰富,用户的设计就越方便,其市场占用率就越高。目前,IP核已经变成系统设计的基本单元,并作为独立设计成果被交换、转让和销售。

从IP核的提供方式上,通常将其分为软核、硬核和固核这3类。从完毕IP核所花费的成本来讲,硬核代价最大;从使用灵活性来讲,软核的可复用使用性最高。

5.1 软核

软核在EDA设计领域指的是综合之前的寄存器传输级(RTL)模型;具体在FPGA设计中指的是对电路的硬件语言描述,包括逻辑描述、网表和帮助文档等。软核只经过特性仿真,需要经过综合以及布局布线才能使用。

软核的主要优点是灵活性高、可移植性强,允许用户自配置。设计人员可以根据具体应用需求对软核进行参数化配备和修改,使其更好地适应设计目标。软核是IP核应用最广泛的形式,涵盖了从简单外设控制器到复杂处理器内核的众多类型。

软核的主要缺点是对模块的预测性较低,在后续设计中存在发生错误的可能性,有一定的设计风险。由于软核需要在目标FPGA上进行综合和实现,其性能、面积和功耗特性在集成前不太容易准确预测。

5.2 固核

固核在EDA设计领域指的是带有平面规划信息的网表通过;具体在FPGA设计中能够看做带有布局规划的软核,通常以RTL代码和对应具体工艺网表的混合形式给出。将RTL描述结合具体标准单元库进行综合优化设计,形成门级网表,再通过布局布线应用即可使用。

和软核相比,固核的设计灵活性稍差,但在可靠性上有较大提高。固核通常已经过综合和初步的时序分析,具有更可预测的性能和面积特性。设计人员在使用固核时,可以更准确地估计其在实际系统中的表现,降低集成风险。

目前,固核也是IP核的主流形式之一,专门是在对性能和面积有较严格要求的应用中。许多常用的接口标准,如PCI Express、以太网MAC等,都有相应的固核实现。

5.3 硬核

硬核在EDA设计领域指经过验证的设计版图保护知识产权的要求,不允许设计人员对其有任何改动。就是;具体在FPGA设计中指布局和工艺固定、经过前端和后端验证的设计,设计人员不能对其修改。不能修改的原因有两个:首先是系统设计对各个模块的时序要求很严格,不允许打乱已有的物理版图;其次

硬核的主要优点是性能优异、功耗低、面积小,并且具有完全可预测的时序特性。由于硬核是经过充分优化和验证的物理实现,集成到FPGA中后,其性能特性与独立使用时基本一致。

硬核的主要缺点是灵活性差,难以移植到不同的FPGA平台或工艺。IP硬核的不许修改特点使其复用有一定的困难,因此只能用于某些特定应用,应用范围较窄。常见的硬核包括嵌入式处理器核(如ARM Cortex系列)、高速串行收发器、存储器控制器等。

6 FPGA技术的应用总结与未来展望

FPGA技术自诞生以来,已经经历了三十多年的发展,从简单的可编程逻辑器件演变为高度困难的可编程系统平台。现代FPGA不仅提供了丰富的逻辑资源,还集成了处理器系统、专用硬件模块和高速接口,成为达成麻烦数字系统的理想平台。

FPGA的主要优势在于其灵活性、并行处理能力和快速原型制作特性。与传统的ASIC相比,FPGA不应该高昂的非重复工程费用(NRE),设计周期短,风险低,特别适合产品开发初期、小批量生产或需要现场升级的应用。与处理器相比,FPGA具有真正的并行处理能力,能够同时执行多个操作,极大地提高了系统吞吐量。

目前,FPGA已在众多领域得到广泛应用,包括通信基础设施、数据中心加速、工业控制、汽车电子、航空航天、医疗设备、测试测量等。随着人工智能和机器学习的发展,FPGA在这些领域也展现出巨大潜力,特别是作为神经网络推理加速平台。

未来,FPGA技术将继续向更高集成度、更低功耗和更强机制的方向发展。异构计算架构的兴起将使FPGA在计算密集型应用中发挥更大作用。同时,高级语言和开发工具的不断完善,将降低FPGA的设计门槛,使更多软件工程师能够利用FPGA的并行处理能力。3D堆叠科技、高速串行接口和专用AI引擎等创新,将进一步拓展FPGA的应用领域,巩固其在现代电子系统中的重要地位。