先进FPGA体系结构和技术综述外文翻译资料
2023-06-15 17:07:54
英语原文共 16 页,剩余内容已隐藏,支付完成后下载完整资料
先进FPGA体系结构和技术综述
一、引言
现场可编程门阵列(FPGA)是一种预制硅器件,可以通过电气编程实现几乎任何类型的数字电路或系统。FPGA的基本结构由大量逻辑块(LBs)、互连网络和可配置I/O块组成。由于集成度非常高,最近的FPGA设备还包括存储器块、硬接线DSP块、时钟管理块和高速数据收发器块,这些都是单片嵌入的[1]minus;3]. 逻辑块是主要的数字处理资源,每个逻辑块都被配置为根据需要实现的功能执行组合操作和顺序操作。对于组合运算,使用一组查找表(LUT)作为任意逻辑函数生成器,对于顺序运算,使用一组D触发器。此外,LB的一些进化形式经过优化,能够支持附加功能,例如本地存储(分布式RAM存储器)、移位寄存器(SR)、多路复用器和加法器/减法器操作。用户可以对互连网络进行编程,以便根据需要连接尽可能多的LBs[4]minus;7].
二、编程技术
1.基于SRAM的编程
SRAM编程技术的基础是静态存储单元,对单元的访问由字线启用,字线控制两个访问晶体管M5和M6的读写操作。如果未断言字线,则接入晶体管M5和M6将单元从位线断开,并且由M1~M4形成的两个交叉耦合的反相器将继续相互增强,只要它们连接到电源[3]。
基于SRAM的FPGA利用SRAM为路由和计算功能提供可配置性,通常通过使用LUT和多路复用器。有两个相关的主要优势,即通过设计可重新编程和与标准CMOS工艺技术兼容。因此,基于SRAM的FPGA可以赶上现有的最新CMOS技术,从而受益于集成度的提高、更高的速度和更低的动态功耗以及更小的最小几何形状[16]。
2.基于闪存/E2 PROM存储器的编程
在闪存技术的情况下,配置基于闪存连接,在设备断电时保持配置状态。每个连接包含两个晶体管,它们共享一个浮栅并存储编程位信息,存取晶体管的导电性可以通过向浮栅注入电荷来控制。由于浮栅由其绝缘层进行电气隔离,因此放置在浮栅上的任何电子都被困在那里,在正常条件下,多年内不会放电。
与基于CMOS的SRAM不同,非易失性是基于闪存的编程技术最重要的优势之一。因此,基于闪存的FPGA不必使用外部资源来存储和加载配置数据。此外,由于所有配置和路由数据在断电时都保持其状态,因此基于闪存的设备可以在通电后立即运行,而无需等待重新配置。闪存方法也比基于SRAM的技术更节省面积,SRAM需要5或6个晶体管来实现可编程位存储。
基于闪存的设备的主要缺点是重新编程的次数有限,并且需要非标准CMOS工艺。Microsemi IGLOO2等当前设备的额定编程周期仅为500~1000次[18]。基于反熔丝的一次性编程SRAM和基于浮动网关技术的替代方案是反熔丝编程技术。该技术基于在正常情况下表现出非常高电阻的结构,但可以“吹”(实际上是连接)以创建低电阻链路。与SRAM或浮栅编程技术相比,这种连接是永久性的。因此,基于反熔丝编程技术的FPGA只能编程一次。反熔丝编程技术的主要优点是占地面积小[16]。对于金属对金属防熔丝,无需硅区域进行连接,从而减少了可编程性所需的区域。出于同样的原因,与其他编程技术相比,反熔丝的导通电阻和寄生电容更低。此外,由于基于防熔丝的FPGA的编程只需进行一次,下载到FPGA的硬件描述比特流的安全性大大提高。
然而,也存在一些缺点。特别是,由于基于反熔丝的FPGA需要非标准CMOS工艺,因此与基于SRAM的FPGA相比,它们的制造工艺通常落后几代(见下面的表1)。此外,编程的基本机制涉及熔丝中材料特性的重大变化,当新的IC制造工艺逐步采用时,会带来规模挑战。无法重新编程也限制了应用范围。与其他技术不同,系统内编程是不可能的,这需要使用特殊的编程系统对设备进行编程,然后再将其安装到最终产品上。最后,防熔丝的一次性可编程性使得制造测试无法检测所有可能的故障[16]。
- 逻辑块结构
1.设计基础
FPGA中逻辑块的目的是提供数字逻辑系统中使用的基本计算和存储元件。在本节中,将讨论三个最常被引用的逻辑块,它们分别基于LUT、多路复用器和反相器锥体(AIC)。
(1) LUT
LUT被认为是一个只有1位输出的存储器阵列。带有一个LUT和DFF的逻辑块架构。在大多数情况下,K输入逻辑函数的真值表存储在(2Ktimes;1)SRAM中。SRAM的地址线作为输入,SRAM的输出提供逻辑功能的值。然而,LUT的高功能性并不是免费的。随着输入数量的增加,它们的面积呈指数增长,延迟呈线性增长,因此它们往往比较大,速度也比较慢。此外,输出的数量本质上只有一个,这限制了它们的灵活性[24,25]。
主要使用的商用FPGA始终基于集群,例如Altera Stratix、Cyclone和Xilinx Virtex系列[26]minus;35]. 集群是一组基本逻辑元件(BLE),它们通过基于MUX的横杆[36]完全连接。
在大多数工业FPGA中,逻辑块的粒度可以通过LUT和触发器进行调整。LUT大小(K,输入数量)和簇大小(N,每个簇的LUT数量)对FPGA的面积和速度性能有重要影响。参考文献[37]的工作首先探索了K和N对FPGA架构的影响。
随着LUT和集群大小的增加,实现给定功能所需的逻辑块的总数减少,并且关键路径上此类块的数量也减少。然而,逻辑块的大小和延迟都随着K和N的增加而增加。此外,专用于块外路由的区域将随着K和N的变化而变化,这对结果有很大影响。产生最佳面积延迟积的逻辑块粒度的选择介于这两个极端之间[38-40]。
(2) MUX
在基于MUX的FPGA中,两个输入MUX通过将其每个输入连接到常数或信号来实现不同的逻辑功能。使用这种方法,可以通过将多个MUX和基本逻辑门分组来构造能够实现大量功能的逻辑块。
基于多路复用器的逻辑块的优点是为相对较少的晶体管提供了很大程度的功能。然而,这是以大量输入为代价实现的,这对路由资源提出了很高的要求。因此,这样的模块更适合使用小型可编程开关(如闪存和防熔丝)的FPGA。
(3) AIC
和反相器锥体(AIC)是一个完整的单元二叉树,可以配置为2输入NAND或And门。其中所有节点都是2输入与门,输出端有可选的反转。然而,在这个原始的AIC架构中,单元的输入端没有逆变器。因此,其扇出包括反转和非反转边的节点不能按原样表示。为了适应这些情况,需要进行一些AIG转换,例如复制具有扇出的节点或在其输出端添加一个逆变器节点。这提供了更大的灵活性,并允许AIC映射更大的功能子集。
虽然AIC逻辑块无法实现其输入的所有可能功能,但与基于LUT的逻辑块相比,AIC逻辑块的通用性较差,但效率更高。AIC在输入和输出带宽方面可能更丰富,因为它们的面积随着输入的数量线性增长。而且,它们的延迟随着宽输入和中间输出的增加而呈对数增长,更容易实现。
2.商业产品示例
一般来说,已发表的关于逻辑块体系结构的研究工作倾向于建模和探索相对简单的基本逻辑元素,例如纯k输入LUT。相比之下,商业逻辑块经历了一场演变,通常导致开发更复杂的块,以获得更多功能。
(1) Altera
在Altera FPGA产品系列中,基于Stratix和Cyclone的体系结构使用不同类型的逻辑元件(LE)排列到逻辑阵列块(实验室)中。在Stratix I FPGA中,每个实验室都包含一些LEs,它们由一个4输入LUT、一个可编程寄存器、具有进位选择功能的进位链和一些其他控制逻辑组成,通过4输入LUT,每个LE可以实现四个变量的任何功能,并且还支持由实验室范围的控制信号动态选择的单位加法或减法模式。该器件结构简单,易于在软件中映射和合成,被认为适用于低成本FPGA。这种体系结构仍在Cyclone 1-4 FPGA系列中使用[27]minus;30].
为了获得具有高效逻辑利用率的高级功能,Stratix II中的体系结构在很大程度上得到了发展。自适应逻辑模块(ALM)取代了LE成为最小的逻辑单元,并且在以下Stratix设备系列中,它仍然是实验室的主要功能。例如,Stratix V设备中的ALM由组合逻辑、四个寄存器和两个加法器组成。组合逻辑部分有八个输入,包括两个使用Altera专利LUT技术的自适应LUT。实现任意六输入函数需要整个ALM。因为它有八个输入到组合逻辑块,一个ALM支持实现两个单独功能的各种组合。例如,除了实现完整的6输入LUT,ALM还可以实现2个独立的4输入功能,或具有独立输入的5输入和3输入功能[31]。由于有4个寄存器和2个加法器,ALM可以灵活地实现经典4输入LUT(4-LUT)体系结构的2.5个逻辑元件(LE),包括4-LUT、进位逻辑和寄存器[32]。与具有固定4输入LUT的LEs相比,ALM的体系结构展示了更多的功能和灵活性,提供了较大LUT的性能优势和较小LUT的面积效率[44]。
ALM的设计显示了FPGA速度性能和面积成本之间可能的权衡。Altera的研究结果表明,通过减少电路关键路径上逻辑元件的级别,基本6-LUT可以产生14%的性能改善,而这种性能提高也会带来较大的面积损失,由于LUT的更大屏蔽和更多输入,面积增加了17%[32]。设计ALM的基本方法不仅是研究构建更大的LUT,以降低逻辑级别,从而提高性能,还可以通过在适当的时候将更大的LUT有效地划分为更小的LUT来避免面积增加,如虚线所示。划分LUT的能力使其具有“适应性”
(2) Xilinx
在大多数Xinlix FPGA设备中,基本逻辑元件(BLE)基于具有固定输入的LUT。以早期设备XC3000为例,每个BLE包含一个5输入LUT,可以实现任意定义的5输入布尔函数,或两个任意定义的4输入布尔函数,只要这两个函数共享公共输入。然而,当时(大约1995~2000年),EDA工具并不复杂,无法高效地合成和放置这种复杂的函数生成器,它被基于Virtex 1-4 FPGA中4输入LUT的体系结构所取代。这种变化可以被视为面积和性能之间的折衷。
Xilinx在2007年提出了Virtex-5系列FPGA,其中基于6输入LUT的可配置逻辑块(CLB)开始被用作基本元件。CLB包含两个片,每个片组织为一列,并包含四个6输入LUT、四个存储元件、一些多路复用器和进位逻辑。所有片都使用这些元素来提供逻辑、算术和ROM功能。函数生成器实现为六个输入LUT,每个LUT可以配置为具有一个输出的六输入LUT,或者配置为具有单独输出但具有公共地址或逻辑输入的两个五输入LUT。每个5输入LUT输出可以选择在触发器中注册,每个片中的4个触发器可以选择配置为锁存器。
此外,Virtex-5中的一些片支持额外的功能,例如使用LUT存储数据和使用32位寄存器移位数据[33]。这些片被称为SLICEM,其中函数生成器(lut)可以实现为称为分布式RAM元素的同步RAM资源。一个切片机中的多个LUT可以组合起来存储更大的数据量,最多256位。一般来说,分布式RAM在资源和性能方面更高效,可以实现由64位或更少的内存组成的存储器,从而在使用存储元件用于非常小的阵列和块RAM用于更大的阵列之间进行权衡[34]。Stratix IV的内存实验室(MLAB)中也有类似的功能,每个ALM都可以配置为64位内存块[7]。
两个主要FPGA供应商的不同LUT架构之间的比较引起了一系列争论。Altera宣布,与Xilinx的Virtex-5设备的固定6输入LUT ar体系结构相比,灵活的ALM体系结构是先进的,每个ALM可以获得相当于基于6-inpus LUT的1.8个逻辑元件的性能[45]。然而,Xilinx宣称,ALM的性能仅相当于基于固定6输入LUT的体系结构的1.2倍,同时在面积方面要花费更多的成本。因此,Virtex-5设备的逻辑资源容量仍然高于对应的Stratix III设备[46]。无论这些论点的真实性如何,将具有多个输入的LUT作为FPGA的基本单元已经成为FPGA架构设计的主流。
四、嵌入式资源
随着DSP、存储器、时钟管理器、高速收发器等功能模块数量的增加和性能的提高,FPGA已成为一种必不可少的系统使能器件。这些嵌入式资源的加入对现代FPGA的性能有很大的影响。此外,主要的商业供应商倾向于提供一系列FPGA平台,而不是单一的FPGA产品,具有针对不同应用领域优化的不同功能组合[74]。如何快速、经济地组装具有不同功能模块的FPGA平台,已成为FPGA设计的热门课题。在这一节中,我们将讨论这个问题,并对Altera和Xilinx的设计特点进行概述。
Xilinx创建了所谓的高级硅模块块(ASMBL)体系结构,以实现具有不同功能的FPGA平台的快速且经济高效的组装[75]。在这种体系结构中,逻辑资源(如可配置逻辑块(CLB)、DSP、内存等)按列排列,可以为目标应用选择。客户可以根据自己的具体设计,选择具有适当功能组合的FPGA平台。ASMBL体系结构的主要优点是消除了几何布局约束,这意味着任何类型的硬IP块都可以独立于周围资源进行扩展,并且电源和地面可以放置在芯片上的任何位置[76]。
Altera设备由一系列实验室组成,这些实验室通过一行一列的布线线路相互连接。实验室建筑自然形成了一个又高又窄的布局。功能模块(如MegaRAMs)被组织为矩形块,并且具有相当大的宽度,而不是Virtex中的列。这些模块不能像ASMBL架构那样直接组装和移除,需要重新开始合成和放置,以
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[604018],资料为PDF文档或Word文档,PDF文档可免费转换为Word