2024年2月20日发(作者:)

第27卷第2期电 子 器 件Vol.27,No.2                  2004年6月ChineseJournalofElectronDevicesJune.2004AnalysisoftheFundamentalandImplementationMethodaboutDynamicRecofigurableFPGAQINXiang2Ju1,2,ZHUMing2Cheng,ZHANGTai2Yi22,3,nic&’ANInstituteofTechnologyandEngineeringScience,Xi’an710048,China;eofInformationEngineeringofShenzhenUniversity,Shenzhen516080,China;nic&’ANJiaotongUniversity,Xi’an710049,ChinaAbstract: DynamicReconfogurableFieldProgrammableGateArray(DR2FPGA)canconfigureitspartialortotallogicresourcesatruntime,perpresentssomestudiesofDR2FPGA,includingbasicarchitecture,reconfigurationfundamental,ationofDR2FPGAisusefulfordesigninghigh2performancesystems,ds: FPGA;staticreconfiguration;dynamicreconfiguration;totalreconfiguration;partialreconfigurationEEACC: 1265B;1130BFPGA动态可重构技术原理及实现方法分析覃祥菊1,2,朱明程,张太镒21,3,魏忠义11.西安工程科技学院电子与信息工程系 ,西安 710048;2.深圳大学EDA中心,深圳516080;3.西安交通大学电信学院,西安 710049摘要:FPGA动态重构技术主要是指对于特定结构的FPGA芯片,在一定的控制逻辑的驱动下,对芯片的全部或部分逻辑资源实现在系统的高速的功能变换,从而实现硬件的时分复用,,节省逻辑资源。本文以SRAMFPGA的可重配置特性为基础,结合几种新型的动态重构FPGA芯片结构,分析了FPGA动态重构技术的原理,讨论了其实现方法。关键词:FPGA;静态重构;动态重构;全局重构;局域重构中图分类号:TN431.2   文献标识码:A   文章编号:1005-9490(2004)02-0277-06  自九十年代以来,FPGA的发展与应用引起了人们广泛的关注,应用范围逐步扩大,芯片规模成倍增加。一直以来,都是通过对现有的FPGA作简单累加来扩大芯片规模,这种方法主要面临如下瓶颈问题:①芯片内部布线有很大困难,随着FPGA门电路总数Ngate增加,内部的布线连接几乎与Ngate成平方增长;②随着容量的快速增加,布线复杂度增加,FPGA的损坏率也随之增加;③随着系统规模的扩大,单片资源的利用率反而下降。FPGA动态可重构技术则是通过实现资源的时分复用,对功能进行动态配置,来满足大规模应用需要。这样,大大提高了FPGA的资源利用率,同时降低器件的损坏率,是FPGA器件的一个发展方向。本文首先分析了常规FPGA的结构特点及存在的缺陷,对几收稿日期:2004-02-26基金项目:国家自然科学基金项目(69976020),国家自然科学基金重大研究项目(90207012).作者简介:覃祥菊(1980-),女,硕士研究生,现在深圳大学EDA中心从事动态可重构技术研究,xiangju-qin@;     朱明程,男,教授,硕士生导师,深圳大学EDA中心主任,zhumc@.

 电子器件                    第27卷27                    8种典型动态可重构FPGA(DR-FPGA)内部结构作了详细分析,阐述了动态可重构技术实现中的关键问题。大连线数Fwire。门、转换开关和连线之间还有一定的传导延迟。为简化起见,假设FPGA有一个最小的重用时间tmin-cycle,资源总数为Nresource,计算FPGA的最大资源利用率为:Cpeak=Nresourcetmin-cycle1 常规FPGA的结构特点和资源利用率缺陷  从FPGA的结构来看,主要有两种:一是基于反熔丝技术的FPGA,二是基于SRAM编程的FP2GA。用反熔丝开关作基本元件,具有非易失性。编程完成后,即使撤除工作电压,FPGA的配置数据仍然保留,不能重构。而基于SRAM编程的FPGA通过阵列中的SRAM单元对FPGA进行编程。SRAM单元由一个RAM和一个PIP晶体管组成,RAM中储着PIP晶体管的通断信息,系统上电时,这些信息码由外部电路写入到FPGA内部的RAM中,电源断开后,RAM中的数据将丢失。因此SRAM编程型FPGA是易失性的,每次重新加电,FPGA都要重组数据。这一特点可以实现数据的静(2)1tmin-cycle仅当时钟频率达到最大 fmax=时,资源利用率可达到最大,此时每个门电路都发挥作用。而当FPGA为处理更深层次的逻辑线路工作频率小于此最大值,或器件有一段时间空闲时,FPGA就没有最大限度的发挥作用。设时钟周期tclk内有Nresource-used资源发挥作用,资源利用率为:u=Nreource-usedtclk(3)由于tclk>tmin-cycle,Nresource-used

第2期         覃祥菊,朱明程等:FPGA动态可重构技术原理及实现方法分析            279同,又可以分为全局重构和局部重构。①全局重构:对FPGA器件或系统能且只能进行全部的重新配置,在配置过程中,计算的中间结果必须取出存放在额外的存储区,直到新的配置功能全部下载完为止,重构前后电路相互独立,没有关联。通常,可以给FPGA串连一个EPROM来存储配置数据,实现前后功能的转化。②局部重构:对重构器件或系统的一部分进行重新配置,而在此过程中,其余部分的工作状态不受影响。这种重构方式减小了重构范围和单元数目,从而可以大大缩短重构时间,占有相当的优势。212 几种典型的动态可重构FPGA结构分析期望在FPGA内部完成动态重构过程,必须借助可动态重构的FPGA,动态可重构FPGA在器件编程结构上具有专门的特征。现已经提出好几种动态可重构FPGA结构,比较有代表性的主要有以下几种。①M1芯片所谓M1芯片是美国California大学的Morpho2ingSystem工程提出的一种粗粒度、多重context可图3 RC内部结构控制部分是一种精简指令集计算机处理器Ti2nyRISC,控制着整个芯片的配置和全局的数据流,为了实现对本芯片上的特殊控制,对其指令系统已经做了扩展。运行中,在指令控制下将要执行相应功能的context信息从CM装载到RC中,并调用相应的单重构结构。如图2所示,它由可重构元胞阵列(RC),处理器核(Tiny-RISC),帧缓冲器(FB)及数据存储器(DM)组成。[4]元动态的配置数据,同时,装载下一配置数据到context存储器。FB分为两个组,当RC阵列在处理FB中的一组数据时,DMA控制器交换外部存储器和另外一组间的数据。如果计算和数据的转移(RAM->FB)在FB的不同组间执行,则他们在时间上相互覆盖。DMA控制器同样也能够实现外部RAM和context存储器间的数据转移。现已经提出M1的一种改进结构M2,在内部扩充了其存储空间,比M1的速度更快、消耗的功率更小。这种可重构芯片有DSP器件的灵活性,同时又能达到与ASIC芯片相当的高性能,可广泛应用于并行计算系统,多媒体数据处理,高质量图像处理中。②SIDSAFIPSOC结构FIPSOC是SIDNA工程提出的一种粗粒度结构图2 M1的内部结构的FPGA[6],如图4所示,由五个部分组成:微控制其核心是一个由64个RC排成网格状RC阵列,每个RC的结构就和处理器的数据通道一样,只是本身没有控制单元,其控制信息包含在Context中。如图3所示,每个RC一个乘法运算单元(ALU-MULT)、两个多路选通器(MUXA、MUXB)和一个器,可编程数字部分,可配置模拟部分(包括四条不同的放大通道,比较器,A/D和D/A模块等),不同功能模块间的接口模块。其核心部分是可编程数字部分,由一个两维的可编程元胞阵列DMC(DigitalMacroCell)组成。DMC的内部结构如图5所示,分为组合逻辑和时序移位单元。两个多路选通器为运算单元选择输入信号,移位寄存后输出,并产生一个寄存文件,反馈给多路选通器。Contex实际是一些二进制代码,其内容决定了RC要完成的功能。逻辑两大部分,组合逻辑部分由四个4输入的LUT组成,可实现多种功能。时序逻辑部分也有多重context的动态重构功能,主要由四个触发器模块组

 电子器件                    第27卷28                    0图6 DPGA的结构划分图4 FIPSOC内部结构框图成,并通过内部路由器与组合逻辑部分关联,为了实现动态重构,每个寄存器中的数据都是可复制的。还有一个LUT映射可传播的配置数据本地配置中,基本的原理如图7所示。图7 DPGA内部的阵列单元图5 DMC的内部结构右边的LUT识别全局的Context标识符后,产生相应的控制指令,并存储在指令存储器中,在适当时刻输出到左边的LUT。左边LUT接受到的指令后,按指令要求来配置相应的数据,并输出到本地的状态存储器或其他AE中。从这里也可以看出,DPGA器件实现时间上的重配置时,AE内部要能实现多种功能以供配置,而不是象常规FPGA仅能实现固定单一功能,所谓的重构只是对FPGA重复配置同一功能。④Virtex系列FPGA的结构Virtex系列FPGA是Xilinx公司推出的一系列可实现动态局部重构的FPGA芯片,也是基于查找表的,相较常规FPGA其内部结构有一些不同。如图8所示,内部主要包含有可编程逻辑块(CLB0、输入输出模块(IOB)、SelectRAM模块、18×18bit乘法器模块(Multiplier)、时钟管理模块(DCM)等。CLB是FPGA的核心,同样也是基于查找表(LUT)的,可完成组合逻辑和同步逻辑电路功能。最新推出的Virtex-ⅡPro内部嵌有IBM的控制部分是一个标准的8051微处理器。复位后,8051核首先对可编程元胞进行配置,配置完毕后可以当作一个通用的微处理器使用。为了更好的支持FIPSOC的动态重构特性,已对其指令和功能单元做了一些改进。③MIT提出的DPGADPGA是麻省理工大学的Transit工程提出的划分结构为二维阵列单元的DR2FPGA,如图6所示。AE由4个输入查寻表格(LUT)和通道触发器(FF)组成。Context是指用来配置的n个存储单元[8]块。AE经过各个context编程后执行相应的逻辑功能。这种结构的动态重构实际是context间的切换对于规划好的电路每个context对应一个时段的电路功能AE也就是一个缓冲节点。每个AE通过FF与下一个context中对应的AE实现通信。虽和常规FPGA的AE一样,都是基于可编程查找表格(LUT)结构,但是,DPGA的阵列单元内部的LUT是成对出现的。一个LUT用于配置数据,

第2期         覃祥菊,朱明程等:FPGA动态可重构技术原理及实现方法分析            281元实现新的功能。这样,重构时间的长短仅仅取决于context间的切换速度,从而可以大大减少重构时间,一般仅需几ns。这种重构方式的实现是动态重构技术发展的主要标志。312 动态重构系统的CAD工具、任务调度和cont2ext管理图8 Virtex-ⅡFPGA基本结构动态重构技术的实现过程中,除DR2FPGA器件外,还需要相应的综合实现工具,对于这种粗粒度的基于多重context结构的FPGA,还涉及任务调度和context管理等问题。①CAD综合工具的实现不同结构的FPGA器件,其综合实现工具不尽相同,最基本的有两种实现方法:一种是从并行结[12]构编译器中派生而来。其特点是:从器件内部结构出发,借鉴并行系统常用的编译技术,利用多指令多数据(MIMD)或超常指令(VLIW)并行机制的研究成果,同时考虑单指令多数据流(SIMD)模型,提出介于两者之间适于动态重构实现的编译方案。还有一种方法是对传统的综合工具(包括高层综合和逻辑综合)作进一步扩展和改变,使其适合于动态重构实现[13]PowerPC-RISC核(PPC),更易于实现重构。PPC是一种采用哈佛结构的处理器模块,内部有5条数据流水线通道,集成有硬件乘除单元、32bit通用寄存器、存储器管理单元等,可对FPGA的资源进行动态配置。3 动态重构实现方法的研究  即使有了适应动态可重构设计需求的具有新的构造的器件,也还不等于动态可重构系统的实现。与现有的系统设计方法一样,动态可重构系统的实现,从根本上而言,还涉及到与之相应的一系列设计、优化的软件和方法。311 动态重构的两种基本实现方式。典型CAD工具的设计流程如图9不同结构的动态重构FPGA芯片内部实现动态重构的方法也不同,目前常见的有以下两种:①Off2Chip重构[11]:通过串口或并口将配置信息传送到芯片的配置存储器中来实现的一种重构方式。FPGA内部的逻辑元胞(LC)可实现多种子电路的功能,配置存储器(CM)用于装载重构部分的各种配置信息。重构时,在外部逻辑的控制下,配置信息通过串口或并口电路传送到CM,配置存储器再将配置信息装载到FPGA内部的逻辑元胞中,对芯片逻辑进行全局或局部的功能修改。这种方式在实现重构时,首先需要把新的配置信息传送到CM中,然后再将配置信息装载到FPGA芯片内部图9 典型编译流程所示,将时间划分和空间划分(对多片级联系统)合并,把计算任务划分适于一种器件实现的子系统,目的在于将不同分割区间的移动量减到最少,使并行性增加到最大。分割完成后再用器件厂家提供的综合工具,进行高层综合和逻辑综合。对空间分割问题,已提出一种用遗传算法来解决多芯片系统[4]的空间划分问题的方案,对时间划分问题则已经[4]形成一个相对成熟的整型线性规划(ILP)模型,可以通过ILP求解程序来解决。②任务、可重构核的调度和context管理现今研究的DR2FPGA一般都是采用的粗粒度结构,内部有多层context和可重构核,任务、可重构核的调度和context管理是一系列的重要问题。静[14][15]态列表、分级调度(level2based)算法均是有效的逻辑元胞,因而重构时间比较长。②Context重构:对于多重context结构的DR2FPGA,通过交换配置存储器和片上context存储器的部分或全部的配置数据来实现重构的方式。一个context存储器可以存储多种配置信息(如M1可存储32种context信息),事先将多种配置信息下载到片上的context存储器中,直接通过context间的部分或全部内容切换来改变配置信息,控制阵列单

 电子器件                    第27卷28                    2的任务调度方法。搜索算法可对重构核进行最优排序,把执行时间减少到最小。对context的管理直[16]接影响到重构时间的长短,预先存取配置信息等策略可大大减少重构时间。puting:TaskSchedulingandContextManagement[J].IEEETranscationOnVLSISystems,2001,9(6).[5] LeeMing2Hauqs,andImplementationoftheMorphoSysReconfigurableComputingProcessor/morphosys/docs/.[6] ionofSelf2RepairingandEvolu2ableHardwareStructuresbyMeansofImplicitSelf2Configu2ration[J].IEEE1999,182-187.[7] MadrenasJ,MorenoJM,CantoE,CabestanyJ,FauraJ,rototypingofEletronicSystemUsingFIPSOC[M].[8] 2CoupledMicroprocessors[Z]:Com2modityIcsfortheEarly21CenturyFCCM’94April10-13.[9] /~rabinkin/.[10]RolfEnzlerTheCurrentStatusofRecongurableComputing[R].SwissFederalInstituteofTechnologyElectronicsLab2oratory.[11]PatrickLysaght,ationToolforDy2namicallyReconfigarableFPGA[M].[12]YeA,ShenoyN,HauckS,lerforaprocessorwithaRFU[C].In:er2AidedDesign,SanJose,CA,Nov.1999.[13]GovindarajanS,OuaissI,KaulM,c2tivedesignapproachfordynamicallyreconfigurablearchitec2tures[C].In:’9),Napa,CA,Apr.1998.[14]SchedulingfordynamicallyreconfigurableFPGAs[C].In:opLogicandArchitectureSynthesis,Grenoble,France,Dec.1995:328-336.[15]alpartitioningandschedulingforreconfigurablecomputing[C].In:orCustomComputingMachines,1998:329-330.[16]urationprefetchforsinglecontextreconfigu2rablCoprocessors[C].In:FCM/-ProgrammableGateArrays,Monterey,CA,Feb.1998:4 结 语  从上面对几种动态可重构FPGA器件结构和特点的分析,可以看出动态重构FPGA是介于ASIC和DSPs之间的又一种硬件实现,可在系统运行中对电路功能进行动态配置,实现硬件的时分复用,节省资源。就其结构特点和发展来看,主要适用于如下系统设计:①最新通信系统:DR-FPGA的动态重构特性正好可以适应不同制式和不同标准的通信要求,满足软件无线电技术的发展和第三代移动通信系统(3G)的需要;②重构计算机:DR-FP2GA具有一定的并行处理能力和动态配置能力,促使了一种全新概念的,可自动改变硬件来适应正在运行的程序计算机的产生。③容错系统:DR-FP2GA可在芯片内自动实现多次不同的布局布线,容易实现片内的故障纠错。④进化电路:DR-FPGA的动态配置性能很适合于实现数字逻辑的自适应进化。综合来看,动态重构技术是一个新兴领域,有很高的研究和实用价值,是目前的一个研究热点。而对FPGA重构器件的研究更是意义深远,可满足目前一些研究和相关课题的应用需求,更可以节省逻辑资源,提高利用率。参考文献:[1] 朱明程.FPGA动态可重构数字电路容错系统的研究[J].东南大学学报,2000(7).[2] 鲍哓宇、施克仁.可重构信息处理[J].计算机自动测量与控制2000,(8).[3] 黄海鹰、黄华.动态重构逻辑及现状[J]微处理机1998,(4).[4] RafaelMaestreect,AFrameworkforReconfigurableCom2