>
首页 » 技术文章 » FPGA动态可重构技术原理及实现方法分析

FPGA动态可重构技术原理及实现方法分析

作者:覃祥菊 朱明程  时间:2006-12-03 22:01  来源:电子设计信息网-www.edires.net
摘要:FPGA 动态重构技术主要是指对于特定结构的FPGA芯片,在一定的控制逻辑的驱动下,对芯片的全部或部分逻辑资源实现在系统的高速的功能变换,从而实现硬件的时分复用,节省逻辑资源。本文以SRAM FPGA的可重配置特性为基础,结合几种新型的动态重构FPGA芯片结构,分析了FPGA 动态重构技术的原理,讨论了其实现方法。

关键词:FPGA; 静态重构; 动态重构; 全局重构; 局域重构

自九十年代以来,FPGA的发展与应用引起了人们广泛的关注,应用范围逐步扩大,芯片规模成倍增加。一直以来,都是通过对现有的FPGA作简单累加来扩大芯片规模,这种方法主要面临如下瓶颈问题:
① 芯片内部布线有很大困难,随着FPGA门电路总数Ngate增加,内部的布线连接几乎与Ngate成平方增长;
②随着容量的快速增加,布线复杂度增加,FPGA 的损坏率也随之增加;
③ 随着系统规模的扩大,单片资源的利用率反而下降。
FPGA 动态可重构技术则是通过实现资源的时分复用,对功能进行动态配置,来满足大规模应用需要。这样,大大提高了FPGA 的资源利用率,同时降低器件的损坏率,是FPGA器件的一个发展方向。本文首先分析了常规FPGA的结构特点及存在的缺陷,对几种典型动态可重构FPGA(DR - FPGA)内部结构作了详细分析,阐述了动态可重构技术实现中的关键问题。

1  常规FPGA 的结构特点和资源利用率缺陷

从FPGA 的结构来看,主要有两种:一是基于反熔丝技术的FPGA,二是基于SRAM 编程的FPGA 。用反熔丝开关作基本元件,具有非易失性。编程完成后,即使撤除工作电压,FPGA 的配置数据仍然保留,不能重构。而基于SRAM 编程的FPGA通过阵列中的SRAM单元对FPGA 进行编程。

SRAM单元由一个RAM和一个PIP晶体管组成,RAM中储着PIP晶体管的通断信息,系统上电时, 这些信息码由外部电路写入到FPGA内部的RAM中,电源断开后, RAM中的数据将丢失。因此SRAM编程型FPGA是易失性的,每次重新加电,FPGA都要重组数据。这一特点可以实现数据的静态重载,即在一次加电完成FPGA 要实现的功能,掉电后可以重新下载新的配置数据,用以完成不同的功能。这一特点成为FPGA 在许多新领域获得广泛应用的关键,并成为了可重构系统发展的持续驱动力量。从FPGA 的内部集成来看, FPGA 内部由大量的可编程逻辑块(CLB) 、输入输出模块( IOB) 和连线(PI) 组成,如图1 所示。

图1  常规SRAM FPGA 的内部结构

连线、组成CLB和IOB 的门电路都有一定的带宽限制fmax ,或者说都有一个必要的操作时间tmin=1/fmax。设FPGA 内部的门单元数为Ngate ,门单元的必要操作时间为tmin_gate ,理论上计算得到单位时间T 内可操作的最大门单元数为:

按照公式(1) 还可以计算出单位时间内可操作的最大连线数Fwire 。门、转换开关和连线之间还有一定的传导延迟。为简化起见,假设FPGA 有一个最小的重用时间tmin_cycle ,资源总数为Nresource ,计算FPGA的最大资源利用率为:



仅当时钟频率达到最大fmax =1/tmin - cycle时,资源利用率可达到最大,此时每个门电路都发挥作用。而当FPGA 为处理更深层次的逻辑线路工作频率小于此最大值,或器件有一段时间空闲时,FPGA 就没有最大限度的发挥作用。设时钟周期tclk内有N resource_used资源发挥作用,资源利用率为:


由于tclk > t min_cycle , N resource_used < Nresource ,因此利用率低于最大值。当tclk = 4 ×t min_cycle ,即使所有的门单元都被利用,其利用率也只是最大值C gate_peak 的四分之一。正是由于常规FPGA 不能充分利用其时间资源,又具有可重构的SRAM FPGA 的结构特点,就引出动态可重构FPGA 器件的出现。

2  动态可重构FPGA 结构及原理
  
所谓FPGA 动态可重构技术,就是要对基于SRAM编程技术FPGA 的全部或部分逻辑资源实现在系统的动态的功能变换。动态可重构FPGA 则是基于动态重构技术的一种可在系统实现动态配置的新型FPGA 芯片。

2.1  重构方式及其定义
重构可分为静态重构和动态重构两种,前者是指断开先前的电路功能后重新下载存贮器中不同的目标数据来改变目标系统逻辑功能,后者则在改变电路的功能同时仍然保证电路的动态接续。常规SRAM FPGA 都可实现静态重构,随着其产品和技术的相对成熟,动态重构FPGA 的设计理论和设计方法已经逐渐成为新的研究热点。

动态重构技术目前主要是指对于特定的基于SRAM结构的FPGA ,在一定的控制逻辑的驱动下,对芯片的全部或部分逻辑资源实现在系统的高速的功能变换和时分复用。就其实现重构的面积不 ,又可以分为全局重构和局部重构。

①全局重构:对FPGA 器件或系统能且只能进行全部的重新配置,在配置过程中,计算的中间结果必须取出存放在额外的存储区,直到新的配置功能全部下载完为止,重构前后电路相互独立,没有关联。通常,可以给FPGA 串连一个EPROM 来存储配置数据,实现前后功能的转化。
②局部重构:对重构器件或系统的一部分进行重新配置,而在此过程中,其余部分的工作状态不受影响。这种重构方式减小了重构范围和单元数目,从而可以大大缩短重构时间,占有相当的优势。

2.2  几种典型的动态可重构FPGA 结构分析
期望在FPGA 内部完成动态重构过程,必须借助可动态重构的FPGA ,动态可重构FPGA 在器件编程结构上具有专门的特征。现已经提出好几种动态可重构FPGA 结构,比较有代表性的主要有以下几种。

①M1 芯片
所谓M1芯片是美国California 大学的Morphoing System工程提出的一种粗粒度、多重context 可重构结构。如图2 所示,它由可重构元胞阵列(RC) ,处理器核(Tiny_RISC) ,帧缓冲器(FB) 及数据存储器(DM) 组成。

图2  M1的内部结构

其核心是一个由64 个RC 排成网格状RC 阵列,每个RC 的结构就和处理器的数据通道一样, 只是本身没有控制单元,其控制信息包含在Context中。如图3 所示,每个RC 一个乘法运算单元(ALU_MULT) 、两个多路选通器(MUXA 、MUXB) 和一个移位单元。两个多路选通器为运算单元选择输入信号,移位寄存后输出,并产生一个寄存文件,反馈给多路选通器。Contex 实际是一些二进制代码,其内容决定了RC 要完成的功能。

图3  RC内部结构

控制部分是一种精简指令集计算机处理器Ti-yRISC,控制着整个芯片的配置和全局的数据流,为了实现对本芯片上的特殊控制,对其指令系统已经做了扩展。

运行中,在指令控制下将要执行相应功能的context 信息从CM 装载到RC 中,并调用相应的单元动态的配置数据, 同时, 装载下一配置数据到context 存储器。FB 分为两个组,当RC 阵列在处理FB 中的一组数据时,DMA 控制器交换外部存储器和另外一组间的数据。如果计算和数据的转移(RAM- > FB) 在FB 的不同组间执行,则他们在时间上相互覆盖。DMA 控制器同样也能够实现外部RAM和context 存储器间的数据转移。现已经提出M1 的一种改进结构M2 ,在内部扩充了其存储空间,比M1 的速度更快、消耗的功率更小。这种可重构芯片有DSP 器件的灵活性,同时又能达到与ASIC 芯片相当的高性能,可广泛应用于并行计算系统,多媒体数据处理,高质量图像处理中。

②SIDSA FIPSOC 结构
FIPSOC是SIDNA 工程提出的一种粗粒度结构FPGA ,如图4 所示,由五个部分组成:微控制器,可编程数字部分,可配置模拟部分(包括四条不同的放大通道,比较器, A/D 和D/A 模块等) ,不同功能模块间的接口模块。其核心部分是可编程数字部分,由一个两维的可编程元胞阵列DMC(Digital Macro Cell ) 组成。DMC的内部结构如图5 所示,分为组合逻辑和时序逻辑两大部分,组合逻辑部分由四个4 输入的LUT组成,可实现多种功能。时序逻辑部分也有多重context 的动态重构功能,主要由四个触发器模块组成,并通过内部路由器与组合逻辑部分关联,为了实现动态重构,每个寄存器中的数据都是可复制的

图4  FIPSOC内部结构框图 图5  DMC 的内部结构

控制部分是一个标准的8051 微处理器。复位后,8051 核首先对可编程元胞进行配置,配置完毕后可以当作一个通用的微处理器使用。为了更好的支持FIPSOC 的动态重构特性,已对其指令和功能单元做了一些改进。

③MIT提出的DPGA
DPGA 是麻省理工大学的Transit工程提出的划分结构为二维阵列单元的DR-FPGA,如图6 所示。

图6  DPGA 的结构划分

其中,AE由4 个输入查寻表格(LUT) 和通道触发器(FF) 组成。Context 是指用来配置的n个存储单元块。AE经过各个context 编程后执行相应的逻辑功能。这种结构的动态重构实际是context 间的切换对于规划好的电路每个context 对应一个时段的电路功能AE 也就是一个缓冲节点。每个AE 通过FF与下一个context 中对应的AE 实现通信。虽和常规FPGA 的AE 一样,都是基于可编程查找表格(LUT) 结构,但是,DPGA 的阵列单元内部的LUT 是成对出现的。一个LUT 用于配置数据, 还有一个LUT 映射可传播的配置数据本地配置中,基本的原理如图7 所示。

图7  DPGA 内部的阵列单元

右边的LUT识别全局的Context 标识符后,产生相应的控制指令,并存储在指令存储器中,在适当时刻输出到左边的LUT。左边LUT 接受到的指令后,按指令要求来配置相应的数据,并输出到本地的状态存储器或其他AE 中。从这里也可以看出,DPGA 器件实现时间上的重配置时,AE 内部要能实现多种功能以供配置,而不是象常规FPGA 仅能实现固定单一功能,所谓的重构只是对FPGA 重复配置同一功能。

④Virtex 系列FPGA 的结构
Virtex系列FPGA 是Xilinx 公司推出的一系列可实现动态局部重构的FPGA 芯片,也是基于查找表的,相较常规FPGA 其内部结构有一些不同。如图8 所示,内部主要包含有可编程逻辑块(CLB0、输入输出模块( IOB) 、SelectRAM 模块、18 ×18 bit 乘法器模块(Multiplier) 、时钟管理模块(DCM) 等。CLB是FPGA 的核心,同样也是基于查找表(LUT) 的,可完成组合逻辑和同步逻辑电路功能。

最新推出的Virtex-ⅡPro 内部嵌有IBM 的PowerPC - RISC 核(PPC) ,更易于实现重构。PPC 是一种采用哈佛结构的处理器模块,内部有5 条数据流水线通道,集成有硬件乘除单元、32bit 通用寄存器、存储器管理单元等,可对FPGA 的资源进行动态配置。

图8  Virtex - Ⅱ FPGA 基本结构

3  动态重构实现方法的研究

即使有了适应动态可重构设计需求的具有新的构造的器件,也还不等于动态可重构系统的实现。与现有的系统设计方法一样,动态可重构系统的实现,从根本上而言,还涉及到与之相应的一系列设计、优化的软件和方法。

3.1  动态重构的两种基本实现方式
不同结构的动态重构FPGA 芯片内部实现动态重构的方法也不同,目前常见的有以下两种:

①Off-Chip 重构:通过串口或并口将配置信息传送到芯片的配置存储器中来实现的一种重构方式。FPGA 内部的逻辑元胞(LC) 可实现多种子电路的功能,配置存储器(CM) 用于装载重构部分的各种配置信息。重构时,在外部逻辑的控制下,配置信息通过串口或并口电路传送到CM,配置存储器再将配置信息装载到FPGA 内部的逻辑元胞中,对芯片逻辑进行全局或局部的功能修改。这种方式在实现重构时,首先需要把新的配置信息传送到CM中,然后再将配置信息装载到FPGA 芯片内部的逻辑元胞,因而重构时间比较长。

②Context 重构: 对于多重context 结构的DR-FPGA ,通过交换配置存储器和片上context 存储器的部分或全部的配置数据来实现重构的方式。一个context 存储器可以存储多种配置信息(如M1 可存储32 种context 信息) ,事先将多种配置信息下载到片上的context 存储器中,直接通过context 间的部分或全部内容切换来改变配置信息,控制阵列单元实现新的功能。这样,重构时间的长短仅仅取决于context 间的切换速度,从而可以大大减少重构时间,一般仅需几ns。这种重构方式的实现是动态重构技术发展的主要标志。

3.2  动态重构系统的CAD 工具、任务调度和cont2ext 管理
动态重构技术的实现过程中,除DR2FPGA 器件外,还需要相应的综合实现工具,对于这种粗粒度的基于多重context 结构的FPGA ,还涉及任务调度和context 管理等问题。

① CAD 综合工具的实现
不同结构的FPGA 器件,其综合实现工具不尽相同,最基本的有两种实现方法:一种是从并行结构编译器中派生而来。其特点是:从器件内部结构出发,借鉴并行系统常用的编译技术,利用多指令多数据(MIMD) 或超常指令(VLIW) 并行机制的研究成果,同时考虑单指令多数据流(SIMD) 模型,提出介于两者之间适于动态重构实现的编译方案。还有一种方法是对传统的综合工具(包括高层综合和逻辑综合) 作进一步扩展和改变,使其适合于动态重构实现。典型CAD 工具的设计流程如图9所示,将时间划分和空间划分(对多片级联系统) 合并,把计算任务划分适于一种器件实现的子系统,目的在于将不同分割区间的移动量减到最少,使并行性增加到最大。分割完成后再用器件厂家提供的综合工具,进行高层综合和逻辑综合。对空间分割问题,已提出一种用遗传算法来解决多芯片系统的空间划分问题的方案,对时间划分问题则已经形成一个相对成熟的整型线性规划( ILP) 模型可以通过ILP 求解程序来解决。


图9  典型编译流程

②任务、可重构核的调度和context 管理
现今研究的DR-FPGA 一般都是采用的粗粒度结构,内部有多层context 和可重构核,任务、可重构核的调度和context 管理是一系列的重要问题。静态列表、分级调度(level-based) 算法均是有效的任务调度方法。搜索算法可对重构核进行最优排序,把执行时间减少到最小。对context 的管理直接影响到重构时间的长短,预先存取配置信息等策略可大大减少重构时间。

4  结 语

从上面对几种动态可重构FPGA 器件结构和特点的分析,可以看出动态重构FPGA 是介于ASIC和DSPs之间的又一种硬件实现,可在系统运行中对电路功能进行动态配置,实现硬件的时分复用,节省资源。就其结构特点和发展来看,主要适用于如下系统设计:
①最新通信系统:DR - FPGA 的动态重构特性正好可以适应不同制式和不同标准的通信要求,满足软件无线电技术的发展和第三代移动通信系统(3G) 的需要;
②重构计算机:DR - FPGA 具有一定的并行处理能力和动态配置能力,促使了一种全新概念的,可自动改变硬件来适应正在运行的程序计算机的产生。
③容错系统:DR - FPGA 可在芯片内自动实现多次不同的布局布线,容易实现片内的故障纠错。
④进化电路:DR - FPGA的动态配置性能很适合于实现数字逻辑的自适应进化。综合来看,动态重构技术是一个新兴领域,有很高的研究和实用价值,是目前的一个研究热点。而对FPGA 重构器件的研究更是意义深远,可满足目前一些研究和相关课题的应用需求,更可以节省逻辑资源,提高利用率。

相关推荐

没有退路的FPGA与晶圆代工业者

FPGA  晶圆代工  2014-01-03

采用FPGA的可编程电阻的设计结构分析

FPGA  电阻  2013-09-24

从FPGA的制程竞赛看英特尔与Fabless的后续变化

FPGA  Fabless  2013-07-16

物联网融合自动化推动高效生产模式变革

物联网  FPGA  SoC  2013-07-09

14纳米FPGA展现突破性优势

14纳米  FPGA  2013-06-20

高清视频监控FPGA应用迎来小高峰

视频监控  FPGA  2013-06-20
在线研讨会
焦点