动态局部可重构.ppt_第1页
动态局部可重构.ppt_第2页
动态局部可重构.ppt_第3页
动态局部可重构.ppt_第4页
动态局部可重构.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

Dynamic Partial Reconfiguration 局部动态可重构,Yongfu Feng,主要内容,动态可重构系统的提出 FPGA基本理论 FPGA动态可重构基础理论,可重构系统,最早的可重构计算机出现在20世纪60年代早期,是由UCLA大学(University of California at Los Angeles)的Gerald Estrin提出并设计实现的固定+可变结构计算机(Fixed Plus Variable/F+V Structure Computer). 核心是一个不可更改的可编程处理器和一个可更改的数字逻辑组件。F+V体系结构及其软件系统成为现代可重构系统原型 限于当时的技术条件,Estrin只实现了一个粗糙的原型系统,但这种结构奠定了以后可重构系统的核心基础.,动态可重构系统的提出,随着数字逻辑系统功能复杂化的需求,单片系统的芯片正朝着超大规模、高密度的方向发展,一直以来 ,芯片规模都是通过对现有的 FPGA 作累加来扩大 ,这种方法主要面临如下瓶颈: 芯片内部布线有很大困难 ,随着 FPGA门电路总数N增加 ,内部的布线连接几乎与 N成平方增长; 随着容量的快速增加 ,布线复杂度增加 ,FPGA 的损坏率也随之增加; 随着系统规模的扩大 ,单片资源的利用率反而下降。,动态可重构系统的提出,从时间轴上来看,系统规模是基于各种逻辑功能模块的组合,各个功能模块并不是时时刻刻都在工作的,而是根据系统外部的整体要求,轮流、循环地被激活来工作。因此,系统设计从传统的追求大规模、高密度的方向,转向了如何提高资源利用率,用有限的资源去实现更大规模的逻辑设计的方向上来。 FPGA 动态可重构技术则是通过资源的时分复用 ,对功能进行动态配置 ,来满足大规模应用需要。这样 ,大大提高了FPGA的资源利用率 ,同时降低器件的损坏率 ,这是 FPGA器件的一个新发展方向。,典型的FPGA动态可重构原理示意图。,重构配置器,正在进行的任务,正在配置的任务,挂起或执行完的任务,FPGA,一般系统布局,功能模块1,功能模块2,功能模块3,功能执行顺序,动态局部重构系统布局,功能模块1,功能模块2,功能模块3,不可重构域,可重构域,总线宏,局部动态重构系统布局,执行顺序,配置数据流,重构粒度概念,重构粒度:指系统中可重构基核单元操作数的位宽。 可重构系统大致可以分为两类: 粗粒度:基核单元为乘法器、算术逻辑单元ALU等完整功能单元。对于乘法器、算术逻辑单元这些基本的功能单元来说,它们都工作在总线级,因此粗粒度的可重构系统进行字(Word,由多个位构成)级的操作。总线级的操作方式非常高效,适合计算密集型的应用。 细粒度:基核单元为逻辑门、触发器、查找表等。对于逻辑门、触发器这些基本的逻辑单元来说,它们都工作在bit级,因此细粒度的重构操作都是属于bit级的操作,相当具有灵活性,能够更好的控制重构过程,但配置数据多,配置时间长。,FPGA动态可重构技术及设计思想,FPGA动态可重构技术: 指基于静态存储器(SRAM)编程和专门结构的FPGA,在一定的控制逻辑的驱动下,不仅能实现系统重新配置电路功能,同时还能对芯片逻辑功能实现高速动态变换。 设计思想: 按功能或时序将整体分解为不同的组合,并根据实际需要,可在系统运行中对电路功能进行动态配置,分时对芯片进行动态重构,器件外部特征不变,而内部逻辑时间上交替变换,以小规模硬件逻辑资源来实现大规模系统时序功能,共同在时间空间上构成系统整体逻辑功能。,FPGA动态重构结构上必须满足以下要求:,不仅具有可重新编程能力,同时可动态进行系统资源地重新配置,而不会破坏器件中全局或局部逻辑操作能力。 FPGA内部配置信息对称,即在任何时刻、任何通用的基本逻辑功能可以配置于器件地任何一个位置,运用模型组合去实现设计中的复杂功能。 基于SRAM结构,由于SRAM的各单元能够单独访问配置,即部分重构。它们的功能互不影响,因而具有部分重构的特征。,动态可重构系统,配置,可重构逻辑,执行,对于时序变化的数字逻辑系统,其时序逻辑的发生不是通过调用芯片内不同区域 、不同逻辑资源组合而成的,而是通过对具有专门缓存逻辑资源的 FPGA 进行局部或全局的芯片逻辑的动态重构而快速实现的 。 动态系统结构的 FPGA 具有缓存逻辑 (Cache Logic) , 在外部逻辑的控制下 , 通过缓存逻辑对芯片逻辑进行全局或局部的快速修改 , 通过有控制重新布局布线的资源配置来加速实现系统的动态重构 。,按面积动态重构分类,就动态重构实现面积的不同 ,又可以分为全局重构和局部重构。 全局重构 : 对 FPGA 器件或系统能且只能进行全部的重新配置 。 在配置过程中计算的中间结果必须取出存放在额外的存储区,直到新的配置功能全部下载完为止,重构前后电路相互独立,没有关联。 局部重构: 对重构器件或系统的局部重新配置,与此同时,其余局部的工作状态不受影响。局部重构对减小重构的范围和单元数目,大大缩短重构时间,占有相当的优势。,Xilinx发布的两个动态局部重构的方法,基于差异(Difference-based)的局部可重构设计:只是比较重构前后的电路差别,产生一个只包含重构前后设计差别的比特流。 基于模块(Module-based)的局部可重构设计:将电路功能划分成一个个的模块,这些模块包括可重构模块(可以实现重构的特殊区域)和固定模块(功能不变不能实现重构的区域)。,软硬件平台,Xilinx ISE的ProjectNavigator,直接将硬件描述语言综合、绘制、布局、布线从而产生下载文件,整个过程已经进行了优化,不能实现动态可重构。必须使用ISE的单独工具Constraints Editor,Floorplanner,FPGA Editor,iMPACT等来实现可重构,在此软硬件基础上就可以进行FPGA的动态可重构研究了。 Xilinx ISE已经更新到第四代部分重配置功能,可以在FPGA运行的情况下,加载部分bit文件,而改变其功能,这能大幅扩展 FPGA 的功能,因为包括 BRAM、DSP模块和 IO等在内的几乎 FPGA 所有资源都是可重配置的。除了减小可编程系统的尺寸、重量、功耗和成本之外,部分重配置技术还能支持多种不同的高级 FPGA 应用,如设计安全性和加速可配置计算等新技术。,ISE 部分重配置流程现在可利用Xilinx业经验证的 PlanAhead 工具及分区技术来实现时序收敛、设计管理与平面规划和设计保存功能。构建可重配置设计的全部细节都在 PlanAhead 环境中管理,而 ISE Partitions则确保多种设计配置常见的逻辑和布线(静态的和可重配置的)绝对相同。 这种灵活的工作环境加强了用户控制,改进了对其他自动化特性的访问,如网表分区和 CORE Generator IP 流程等。面向 Virtex-4、Virtex-5 和Virtex-6 LXT/CXT FPGA 设计的部分重配置得到 ISE 12.1 版本软件的支持,而对 Virtex-6 HXT/SXT FPGA 系列的支持将分别随 12.2 版本和 12.3版本而推出。,FPGA基础,岛状模型上个世纪80年代末由Jonason Jose等首先提出的一种FPGA设计架构。 这种FPGA架构的特点就是结构简单,映射模型标准化以及对实际设计的逻辑资源需求的预见性强。 目前,Xinlinx公司提供的FPGA芯片以及其提供的动态插入技术(DynamicHardware Plug-in)可以实现可重构系统的设计。 大多数FPGA都是基于SRAM查找表结构,但是SRAM的各单元能够单独访问配置,它们的功能互不影响,因而具有部分重构的特征。,Virtex-II系列FPGA基本结构(岛型),IOB:输入输出模块,CLB:可配置逻辑功能块, 每个逻辑块被布线轨道包围,CB:可编程连接开关 (连接块),SB:可编程布线开关 (开关块),CLB与CB 短线,SB与SB 长线,可配置逻辑功能块(CLB)的结构,CLB,据LUT的输出是否通过寄存器,基本逻辑元素输出可以是寄存器类型或不寄存类型。这样可以实现各种各样的组合电路或者时序逻辑。,基本逻辑元素BLE,基于SRAM的FPGA三种可编程开关,FPGA的可编程通过三种方式来实现,使用最多的是利用SRAM单元 来控制传输门、多路选择器和三态缓冲器把可编程布线和逻辑块配置成所需要的形式。大多数的Xilinx FPGA、Altera器件、Actel FPGA、Lucent技术FPGA和Vantis VFI FPGA都是基于SRAM的。,FPGA的CAD流程,基于差异动态重构方法,可以使用两种方法来改变设计、产生重构前后的差别: 前端改变(HDL描述):设计必须重新综合,创建一个新的布局布线好的NCD文件。 后端改变(NCD文件):只需要改变NCD文件,不必重新综合,可以通过FPGA Editor工具来修改。使用BitGen就可以生成电路可重构部分内开关状态差别的可下载差异文件。,基于差异动态重构设计流程,初始化设计,布局布线结果,初始配置数据,针对修改的部分动态 重构配置数据,局部修改,修改后的布局 布线结果,比较,基于差异的局部动态可重构局限性,基于差异重构系统的重构文件大小可以减少60%,极大的减少了重构的配置时间。但是基于差异的重构方式所需要存储的副本太多,虽然减少了系统重构时间,但是需要大量的存储空间。 下载这个配置文件必然比整个配置文件节约大量的时间,但是这种设计流程只适合不太复杂的电路设计,因为电路复杂,人工的修改配置信息很容易发生配置错误,甚至导致电路的损坏。,基于模块的局部可重构,可重构区域:局部可重构定义了一些特殊的区域,这些区域可以在器件的其他部分还在运行的情况下进行重构,这些特殊区域称作可重构区域。 基于模块的部分可重构就是将电路功能划分成一个个的模块,这些模块包括可重构模块(可以实现重构的特殊区域)和固定模块(功能不变不能实现重构的区域)。,具有两个可重构模块的设计布局图,各模块间都是通过总线宏 来进行通信的。,总线宏 BUS MACRO,为了促进可重构模块之间的通信,需要保证穿过可重构模块边界的布线资源是完全固定而且必须是静态的,这就需要一种特殊的总线宏。 它是一个事先已经布线好的用来确定精确布线轨道的宏,并且在编辑改变的时候保持不变。对于每个不同的设计应用来说,它是一个绝对固定不变的总线宏。 总线宏是两个模块间的一个固定的布线桥。,总线宏的通讯,左边的A是一个模块,右边的B是另一个模块,A或者B是可重构模块,或者AB全是 可重构模块。A和B中间的总线宏,就是支持AB之间通信的特殊总线宏。它保证 AB间布线资源的不变性,也就是说当一个模块进行重构时模块内部信号用到的 布线资源不能改变。,总线宏是两个模块间 的一个固定的布线桥,总线宏的物理执行,总线宏由8个三态缓冲器组成4bits的宽度,总线宏允许信息双向传递,一个比特的信息使用一个三态缓冲器的长线。 virtex器件的每一行支持一个总线宏的四个比特。总线宏的位置精确的跨骑在模A和模块B之间,其中四栅三态缓冲器在A内,另外四栅三态缓冲器在B内。 由三态缓冲器长线输出所组成的固定桥确保两个模块问固定的通信。总线宏的信息通讯是双向的,既可以从左到右也可以从右到左。但是对于这个设计来说,一旦信息通信方向确定以后就不能再改变。,总线宏的设计工具,总线宏的设计工具是使用FPGA底层编辑器FPGA Editor。 FPGA Editor是一个手工布局布线设计工具,需要设计者具有一定设计经验才能完成设计,但是FPGA Editor的使用灵活性也更高。 通过FPGA Editor可以编辑或者查看可配置逻辑功能块(CLB),I/O功能块等一些FPGA内部的基本单元。,总线宏的优缺点,使用总线宏约束重构模块和固定模块之间的布线资源使其不被改变。 总线宏的设计需要消耗额外的硬件资源,造成一些资源浪费; 总线宏固定了重构模块和固定模块之间的布线,即固定模块之间的通信,模块之间不再可以进行任意通信,这在一定程度市内过降低了部分重构系统在实现上的灵活性。 但是在当前技术条件下,基于模块的部分重构设计使用总线宏的通讯机制是目前最佳的解决方案。,基于模块的动态可重构设计流程概述,基于模块的部分可重构设计允许设计者独立综合每个模块,全部综合完毕后再将所有模块一起编译,这种并行方法即节省时间又允许每个模块独立终止运行。 基于模块的部分可重构设计还需要设计者确保模块分区正确,并且在最终编译时能够一起正常工作。 这种模块设计最好用做可以分区成自我控制模块的大型设计,分区后的模块数量越少越好。,基于模块的动态可重构设计流程,流水线可重构结构工作方式,流水线可重构中重构时隙问题,功能1,r+2级,功能2,配置文件流,r+1级,r级,配置时间,数据传输时间,时钟,缓存形式解决重构时隙,功能1,r+2级,功能2,配置文件流,r+1级,r-1级,配置时间,时钟,缓存器,缓存器,r级,较少的硬件资源实现更多的硬件功能相违背。,配置形式解决重构时隙,功能1,r+2级,功能2,配置文件流,r+1级,r-1级,配置时间,时钟,空数据,空数据,r级,增加配置

温馨提示

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

评论

0/150

提交评论