动态可重构基本理论_第1页
动态可重构基本理论_第2页
动态可重构基本理论_第3页
动态可重构基本理论_第4页
动态可重构基本理论_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、论文阅读理论方法总结1 FPGA动态可重构基础理论 严格来讲,系统重构的概念可分为静念系统重构和动态系统重构。静态系统重构是指目标系统的逻辑功能静态重载,即FPGA芯片功能在外部逻辑的控制下,通过存贮于存贮器中不同的目标系统数据重新下载,而实现芯片逻辑功能的改变。也就是指系统中PLD逻辑的静态重载,在系统空闲期间通过各种方式进行在线编程,而不是在其他部分动态运行时重载。1. 1动态可重构概念及原理 动态重构系统概念的提出早于FPGA动态可重构技术的提出。动态重构系统指对于时序变化的数字逻辑系统,其时序逻辑的发生,不是通过调用芯片内不同区域、不同逻辑资源来组合而成的,而可通过对具有专门缓存逻辑资

2、源的FPGA,进行局部的和全局的芯片逻辑的动态重构而快速实现。也就是指在系统实时运行当中对FPGA的逻辑功能实时地进行动态配置,能够只对其内部需要修改的逻辑单元进行重新配置,没有被修改的逻辑单元将不受影响,正常工作。一般由传统处理器执行主程序,特定的任务赋给以FPGA为基础的协处理器以加速它们的执行。事实上,在大部分处理时间内,只有相对较小的一部分用来计算内部任务,而硬件可以显著加速执行的时间。在重构的过程中,根据需要,任务可以交换进入协处理器进行处理。 所谓FPGA动态可重构技术,是指基于静态存储器(SRAM)编程和专门结FPGA,在一定的控制逻辑的驱动下,不仅能实现系统重新配置电路功能,还

3、能对芯片逻辑功能实现系统的高速动态变换。大多数FPGA都是基于SRAM查找表结构,它们一般只适用于静态重构,向SRAM一次下载全部配置数据而设定FPGA的逻辑功能。根据FPGA的、配置方式等不同,全部重构时间为几毫秒到几秒不等。过去大家普遍进行重构研究的FPGA主要有,Xilinx的XC6200系列、以及Atmel的AT6000等。它们也是基于SRAM结构,但是SRAM的各单元能够单独访问配置,分重构。它们的功能互不影响,因而具有部分重构的特征。这样做的优点显但也会付出增大硬件电路规模和功耗的代价。要最终实现电子系统的完全实构,应采用结构上具有动态部分重构功能的FPGA器件,如现在Xilinx

4、的VirtexII系列。从动态可重构的特征可以引出一种新的设计思想:1,以小规模硬件逻辑资源来实现大规模系统时序功能,将传统设计的空间分布的硬件逻辑,分为器件外部特征不变,而内部逻时间上交替变换,并共同在时问空间上构成系统整体逻辑功能。FPGA动态可重构技术主要特征是将整体按功能或按时序分解为不同的组合,并根据实际需要,分时对芯片进行动态重构,以较少的硬件资源,去实现较大的时序系统整体功能。图1给出了一种典型的FPGA动态可重构原理示意图。从图1中可以看出,在外部逻辑的控制下,可以实时动态地对芯片逻辑实现全部重构或局部重构,通过控制布局、布线的资源,来实现系统的动态重构。图1.1典型的FPGA

5、动态可重构原理图要使FPGA有效地实现实时系统动态重构, FPGA结构上必须满足以下要求:1,不仅具有可重新编程能力,同时可动态进行系统资源地重新配置,而不会破坏器件中全局或局部逻辑操作能力。2,FPGA内部配置信息对称,即在任何时刻、任何通用的基本逻辑功能可以配置于器件地任何一个位置,运行用简单模型组合去实现设计中的复杂功能。1.2 FPGA配置架构FPGA的配置文件通过数据总线传输到FPGA的数据缓冲区,下载处理器处理缓冲区中每一帧配置数据,并把其下载到FPGA的配置RAM中,也就是逻辑配置层。逻辑配置层的中RAM的取值决定了FPGA的功能。也就是说,在常见的FPGA中,其配置电路的结构原

6、理图如图12 FPGA配置电路结构图从上图中反映的配置过程我们不难发现,制约FPGA配置速度的因素有两个;一个是配置数据的下载速度;一个是FPGA内部的数据处理速度。FPGA的配置速度是动态可重构系统中一个非常重要的指标,快速高效的下电路设计是可重构系统的一个关键问题。一般说来,加快重配置过程方法有三种:第一、优化FPGA配置电路总线,使配置文件能够以更快的速度下载到FPGA配置单元当中;第二、减小配置文件,在配置速度不变的情况下这也是一个十分有效的办法;第三、优化FPGA的重配置流程,简化FPGA的配置步骤,减少不必要的时间开销。二动态部分可重构的两种模式 Xilinx Virtex系列一个

7、最重要的特性就是动态可重构。当器件的同一个区域要载入不同的设计功能并且又不需要重新配置整个电路,也不影响其他电路的行时就需要部分动态可重构。这样既可以降低电路能量消耗又可以提高板子利率、加快下载速度。Virtex器件的有效部分动态可重构可以使用Selectmap模式或者Boundary scan(JTAG)模式下载。不需要重新配置器件也不需要下载完整的配置,新的据只需下载到器件的可重构部分。对于目前的FPGA器件来说,数据是以栅(column)为基础下载,最小的可下载单元是一帧(frame)的配置比特流,它据目标器件的不同而有不同的大小。FPGA的动态可重构有两种不同的方式:u 基于模块(Mo

8、dule-based)的部分可重构。u 基于差异(Difference-based)的部分动态可重构。21基于模块的部分可重构 部分可重构定义了一些特殊的区域,这些区域可以在器件的其他部分还在运行的情况下进行重构,这些特殊区域称作可重构区域。基于模块的部分可重构就是将电路功能划分成一个个的模块,这些模块包括可重构模块(可以实现重构的特殊区域)和固定模块(功能不变不能实现重构的区域)。可重构模块具有以下的一些特性:1 重构模块的高度是整个器件的高度。2 重构模块的宽度最小可以是四个slice最大可以到整个器件的宽度,但必须以四的整数倍的slice增加。3 重构模块放置的水平坐标必须是四的整数倍的

9、slice的边界,例如:左边边界可以放置在x-0,4,8,4 模块宽度范围内包括的所有逻辑资源都被看作是可重构模块的一部分,包括slice、TBUF、RAM块、乘法器、lOB和布线资源。5 时钟逻辑和可重构模块是相互分离的,时钟和比特流是相互独立的。6 可重构模块上部和下部的IOB是可重构模块资源的一部分。7 如果一个可重构模块贯穿了整个板子的左部和右部,那么每一边的IOB都是可重构模块资源的一部分。8 为了降低设计难度,要尽量减少可重构模块的个数(理想状况下,如果可能的话,最好只有一个可重构模块),所以说slice的数目能被四整除是可重构模块区域的唯一约束。9 可重构模块的边界不能改变。任何

10、一个可重构模块的位置、所占据的区域都是固定的。10可重构模块和其他模块之间的通信(包括可重构模块和普通固定模块之间、可重构模块和可重构模块之间)都是通过使用特殊的总线宏,如图21。图21线宏用作模块内部通信11 为了保证重构的时候实现合适的操作,需要外在的握手逻辑。在可重构过程之前和之后,要保存可重构模块内的存储元素的状态。如图22所示,是一个具有两个部分可重构模块的设计,各模块间都是通过总线宏来进行通信的。图22具有两个可重构模块的设计布局图图23 可重构模块的设计流程图 图53基于模块化的配置文件生成流程 基于模块化的配置文件生成流程与模块化设计方法紧密联系,并要求系统是按照模块化设计方法

11、开发的。在模块化设计方法中,系统首先被划分为一些具有特定功能、相互之间比较独立的模块,并且模块之间的接口和互连关系已经被预先定义好。随后,各个模块被不同的开发人员并行地设计并实现。最后,各个模块按照最初定义的互连关系被组装起来,形成一个完整的系统。当需要动态改变某个模块的功能时,开发人员仍然需要按照模块化设计方法的流程得到该模块的布局布线文件,但是不需要进行模块的组装工作。取而代之的是:直接根据布局布线文件得到该模块所对应的硬件区域的配置数据文件。21.1总线宏的通讯 为了促进可重构模块之间的通信,需要保证穿过可重构模块边界的布线资源是完全固定而且必须是静态的,这就需要一种特殊的总线宏。总线宏

12、的主要作用足保证穿过可重构模块边界的布线资源固定,使可晕构模块边界的布线资源不被改变。目前使用如图2.3就是所需的这种总线宏:其中,左边的A是一个模块,右边的B是另一个模块,A或者B是可重构模块,或者AB全是可重构模块。A和B中间的总线宏,就是支持AB之间通信的特殊总线宏。它保证AB间布线资源的不变性。也就是说当一个模块进行重构时模块内部信号用到的布线资源不能改变。如图23,总线宏是两个模块问的一个固定的布线桥。它是一个事先已经布线好的用来确定精确布线轨道的宏,并且在编辑改变的时候保持不变。对于每个不同的设计应用来说,它是一个绝对固定不变的总线宏。目前使用的总线宏由八个三态缓冲器(TBUF)组

13、成,能够实现4个比特宽度的数据通路。其如图24。图2.4总线宏图2.5总线宏的物理执行总线宏允许信息双向传递,一个比特的信息使用一个三态缓冲器的长线。Virtex器件的每一行支持一个总线宏的四个比特。总线宏的位置精确的跨骑在模块A和模块B之间,其中四栅三态缓冲器在A内,另外四栅三态缓冲器在B内。由三态缓冲器长线输出所组成的固定桥确保两个模块问固定的通信。总线宏的信息通讯是双向的,既可以从左到右也可以从右到左。但是对于这个设计来说,一旦信息通信方向确定以后就不能再改变。21.2 总线宏的基本设计方式总线宏的基本设计方式为:1) 在设计初期将可重构硬件资源规划好,重构模块和固定模块划分好.2) 在

14、模块功能划分好后,将总线宏的位置锁定在固定模块和重构模块的边界.3) 总线宏的设计工具是使用FPGA底层编辑器FPGA Editor。FPGA Editor是一个手工布局布线设计工具,需要设计者具有一定设计经验才能完成设计,单是FPGA Editor的使用灵活性也更高。通过FPGA Editor可以编辑或者查看可配置逻辑功能块(CLB),IO功能块等一些FPGA内部的基本单元。使用总线宏约束重构模块和固定模块之间的布线资源使其不被改变。总线宏的设计需要消耗额外的硬件资源,造成一些资源浪费;另外总线宏固定了重构模块和固定模块之间的布线,即固定模块之间的通信,模块之间不再可以进行任意通信,这在一定

15、程度市内过降低了部分重构系统在实现上的灵活性。但是在当前技术条件下,基于模块的部分重构设计使用总线宏的通讯机制是目前最佳的解决方案。22 基于差异的部分可重构 基于差异的部分可重构只是比较重构前后的电路差别,产生一个只包含重构前后设计差别的比特流。可以使用两种方法来改变设计、产生重构酊后的差别。分别是前端改变(HDL描述)和后端改变(NCD文件)。对于前端改变来说,设计必须重新综合,创建一个新的布局布线好的NCD文件。而对于后端设计来说只需要改变NCD文件,不必重新综合,可以通过FPGA Editor工具来修改。使用BitGen就可以生成电路可重构部分内开关状态差别的可下载差异文件。可重构前后

16、开关配置的改变非常迅速比重新配置整个电路要快很多,就像差异比特流比整个电路的比特流小很多一样。差异比特流很小,所以能够迅速而简单的下载到电路中。如果设计中可重构的逻辑块很大、功能很复杂,则需要使用基于模块的部分可重构。然而,有很多电路只需要修改比较少的内容,或许只需要修改一个LUT内容、BRAM的内容或者一个I/O口等,这种类型的修改可以轻松的通过Xilinx FPGA Editor修改布局布线后的NCD文件来实现。一旦修改完成后,利用BitGen来产生重构前后差异的下载文件,即可实现部分重构。然而,要完成以上操作要很好的理解如何使用FPGAEditor来修改逻辑以及BitGen相关选项的选择

17、。在FFGA Editor中可以进行三种方式的修改:u 改变I/O标准u 改变BRAM内容u 改变LUT设计。其中可以选择的最小逻辑元素是slice。使用FPGAEditor修改设计时,首先要打开NCD文件,看到逻辑块后找到可选择的最小逻辑元素slice,打开片slice的结构图窗口。要修改BRAM的内容时,首先打开NCD文件找到BRAM后,打开BRAM的结构图可进行BRAM修改。同样对I/O标准的修改也一样,打开NCD文件找到I/O后,打开I/O构图进行I/O标准的修改。以上三种修改都符合有效的重构流程。除了这三种方式还有其他的修改方式,比如:颠倒极性、振荡器的初始化和重新设置值、上拉、下拉

18、外部管脚或者RAM写方式。所有这些特性都能够在实际的slice、RAM逻辑块或IOB中修改。但是,最好不要进行任何有可能影响布线或者产生内部连接冲突的修改行为。图2.6 计差异的设计流程23 基于模块与基于差异部分的可重构比较 基于模块的部分态可重构将设计分解成模块,对一个设计来说,每个模块都是完全独立的。如模块之间需要交流通信,就需要一种特殊的总线宏,它允许信号穿过部分可重的边界。总线宏为设计的内部通信提供了一个固定的总线。每次实现部分可重时,总线宏就用来确定模块间的布线通道没有改变,保证正确的连接。 基于差异的部分可重构只是基于比较重构前后的电路差别,产生一个只包含重构前后设计差别的比特流

19、。差异比特流比整个电路的比特流小很多,所以能够迅速下载到电路中。但是如果电路功能比较复杂则差异文件会非常庞大,所以基于差异的部分可重构只适用于功能简单的电路,对于功能复杂的电路需要使用基于模块的部分可重构。三动态重构FPGA电路设计流程 静态重构FPGA电路设计是一种自顶向下的设计流程,先进行行为级电路描述,然后转化为寄存器传输级的逻辑电路,然后结合FPGA器件厂家的工艺库,经过逻辑综合生成网表文件,然后进行布局、布线并通过相应软件产生FPGA的配置文件,最后将配置文件下载至FPGA中,即完成FPGA的整个电路设计,还要在各个不同层次进行仿真验证,以保证设计的正确性。 动态重构FPGA系统的设

20、计流程与静态重构FPGA不同,在逻辑设计阶段针对同一个器件设计多个功能电路Fl,F2,Fn,这些电路的配置文件都预先生成好,存储在存储器件中,称为重构件。根据电路的调用顺序来定义重构状态图。在系统运行过程中,根据重构状态图,结台系统的当前状态,将相应的重构件配置到FPGA中,实现某一时刻所需的硬件功能。重构件可以是某个特定的算法电路,比如FIR,IIR,也可以仅仅是完成输入、输出间的某种特定连接,也可以实现其他电路功能。3.1动态重构FPGA系统的设计流程 动态重构FPGA系统的设计流程由三个阶段组成:1) 设计阶段: 需要经过逻辑设计、器件综合、器件布局布线等步骤,并在不同层次进行仿真验证,

21、保证设计的J下确性,为了尽可能减小重构件的数据量,在逻辑设计和器件布局布线过程中,要采用一些特殊的设计方法,并需要更为详尽的考虑和控制。2) 编译阶段: 动态重构FPGA系统预先生成多个重构件,构成一个重构件数据库,生成重构状态图,对各重构件的载入顺序进行定义,重构状态图中的节点代表目前系统FPGA所处的配件状态,节点间的有向边则代表重构件的下载操作。3) 运行阶段: 主要是对动态重构系统的重构操作进行管理与监控,根据系统的运行状态和重构状态图,进行重构件的调用和下载操作,实现FPGA器件功能的动态重构。因为FPGA动态可重构在实现小型化、集成化和高可靠的同时,减少了风险,降低了成本,缩短了周

22、期,提高了硬件的利用率,能在广泛的应用项目中发挥其优势,具有极强的竞争能力。所以FPGA动态可重构技术已引起研究领域和应用领域的广泛关注和兴趣。3.2 基于模块的局部动态可重构设计流程概述 基于模块的部分可重构设计允许设计者独立综合每个模块,全部综合完毕后有模块一起编译,这种并行方法即节省时间又允许每个模块独立终止运于模块的部分可重构设计还需要设计者确保模块分区正确,并且在最终编够一起正常工作。这种模块设计最好用做可以分区成自我控制模块的大型分区后的模块数量越少越好。图31基于模块的部分可重构流程基于模块的部分可重构流程如图31所示,该设计流程主要包括两个阶段:u 第一阶段:模块设计入口(模块

23、顶层设计)和模块设计综合。u 第二阶段:模块设计实现(初始预算、模块实现和最终编译)。这两个阶段设计,可以产生整个电路功能和动态可重构部分的下载文件,该文件下载到实验板Virtex2中,并通过内部控制器对内部时合理控制,就可实现动态可重构,并且能够通过实验板观察相关结果。3.2.1 模块设计入口和综合在这一阶段,要用硬件描述语言实现电路功能并综合,要同时做顶层设计和设计。u 顶层设计:在进行模块设计执行阶段之前,设计者要首先完成顶层设计的设计入口和综合。u 模块设计:在激活模块执行阶段之前。设计者要先完成该模块的设计入口和综合工作,各个模块的综合可以并行进行。 设计者使用HDL语言创建一个顶层设计文件并对其综合。顶层设计包括所有全局逻辑,I/O和所有的模块。这些模块被例示为“黑匣”结构,只有端口、指向、连接模块的信号和IO端口。这步是在模块设计运行之前所必需的。设计者要使用HDL语言创建每个独立的模块设计并练合这些设计,但是这一步不一定必须在模块设计运行之前。可以在设计模块的同时进行初始是要开始激活模块运行之时,一定要将独立模块设计综合完毕。可以使用文字输入工具进行Vedlog或者VHDL语吉的功能编写。为了综合计,可以使用Xilinx的工具或者Xilinx支持的第三方工具。比如用Xilinx

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论