0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于EAPR的局部动态自重构系统的实现详细解析

电子工程师 来源:广西大学 作者:王 烈,许晓洁,陈 2021-04-21 14:32 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

摘要: 在早期获取部分可重构EAPR(Early Access Partial Reconfiguration)方法的基础上,研究实现局部动态自重构系统的方法和流程。设计的系统有两个可重构区域,每个区域有两个重构模块,利用Virtex-4上集成的PowerPC硬核微处理器控制内部配置访问端口ICAP(Internal Configuration Access Port)完成自重构。通过在Xilinx ML403开发板上进行验证,实现了系统的自重构功能。系统对部分资源的分时复用提高了系统的资源利用率,高的配置速率缩短了系统的配置时间。

Implementation of partial dynamic self-reconfiguration based on EAPR

Wang Lie,Xu Xiaojie,Chen Jian

School of Computer and Electronics Information,Guangxi University,Nanning 530004,China

Abstract: The design method and flow of the partial dynamic self-reconfiguration system were studied and implemented based on the reconfiguration design of EAPR.The system included two reconfigurable regions, each with two reconfigurable modules. The PowerPC hard core microprocessor that was integrated in the Virtex-4 was used to control the ICAP to complete self-reconfigurable. Through ML403 board of Xilinx, the function of self-reconfiguration was verified. The time devision multiplexing of part of the resource improves the resouce utilization, and the high configuration speed shortens the configuration time.

Key words : FPGA;EAPR;self-reconfiguration;microprocessor

局部动态自重构系统是一种新型的可重构计算系统。实现自重构系统的可编程器件必须具有局部动态可重构能力。局部动态可重构是指系统在运行过程中可以对部分资源进行重新配置,而其余资源仍保持正常运行,分时复用可重构硬件上的资源实现不同的逻辑功能。目前,Xilinx公司Virtex系列和Spartan系列的FPGA芯片支持局部动态可重构技术[1]。自重构系统以可重构逻辑器件内嵌的微处理器实现对动态重构的控制和调配[2]。自重构系统具有从器件内部访问配置数据的接口。Xilinx Virtex-Ⅱ以后的FPGA提供了ICAP,其主要作用就是按照特定时序将配置数据重新配置到重构区域中[3]。

Xilinx公司于2006年提出EAPR动态可重构设计方法[4]。这种方法的本质是对基于模块的动态可重构设计方法的改进,支持高端Virtex-4以上的Virtex系列芯片,任意矩形的局部重构区域使有限的资源得到充分利用;静态模块的全局信号直接穿过可重构区域,静态模块与重构模块使用基于Slice的总线宏进行通信,使得系统时序性能好,总线密度大。本文结合现有的基于FPGA的嵌入式系统开发流程和基于EAPR的动态可重构设计方法研究自重构系统的架构及开发流程,设计一个局部动态自重构系统,该系统有2个可重构区域,每个可重构区域有2个可重构模块。

1 局部动态自重构系统架构

本文提出的局部动态自重构系统架构如图1所示。PowerPC405处理器控制重构过程,两个重构区域分别通过通用I/O设备(GPIO)和OPB_DCR_Socket模块使能总线宏。System ACE 和ICAP配合完成系统重构,并将重构过程中的一些提示信息通过UART串口在超级终端上显示。系统的各个主要组成部分说明如下。

3052681222604.gif

(1)可编程逻辑门阵列FPGA

ML403的主芯片XC4VFX12-FF668-10C属于Virtex-4 FX系列。Virtex-4 FX系列器件针对嵌入式处理和高速串行连接,采用90 nm工艺,密度高达20万逻辑单元[5];将8位ICAP扩展到32位,时钟频率可达100 MHz,而且支持二维区域的局部动态可重构。在重构设计过程中,将FPGA划分为可重构区域和固定区域,固定区域在系统运行过程中保持不变,通过处理器控制重构区域的重新配置实现新的逻辑功能。本文划分为固定区域和2个可重构区域(PRR_Math和PRR_LED),每个区域有2个重构模块,分别实现加法和乘法、LED灯向左和向右流水点亮的重构。

(2)基于Slice的总线宏

FPGA划分的多个区域之间通过基于Slice的总线宏进行通信。总线宏是事先布好线的用来精确布线轨道的宏,其位置固定,重构时保持不变,包括基于三态缓冲器TBUF(Tri- state Buffer)的总线宏和基于Slice的总线宏。基于TBUF的总线宏结构简单,可控制信号的传输方向,但不能控制信号的通断。而在重构过程中,来自重构区域的不稳定信号可能会影响其他模块的正常运行,所以需要在重构过程关闭总线宏,这就要求总线宏有个使能控制端口。Virtex-4以后的芯片使用基于Slice的总线宏解决了这个问题,它利用FPGA内部用作静态路由的预留连线作为模块之间的通信通路,在设计时,重构模块不能使用这些资源。

(3)PowerPC硬核处理器

Virtex-4集成了一个32位的PowerPC405硬核处理器。PowerPC405经过综合、布局布线后集成到FPGA内部的固定位置,不占用FPGA内部的任何逻辑资源和存储单元,运行速度可达到芯片标称值,且不影响其周边逻辑的布局布线[3]。PowerPC采用精简指令哈佛结构,支持5级标量流水线,具有独立的指令和数据缓存、32个32位通用寄存器、内存管理单元和片内存储器接口,是本文系统的核心部件之一,用于对重构过程进行控制。

(4)总线技术

PowerPC处理器支持IBM CoreConnect总线技术。本文使用的3种总线,包括处理器本地总线PLB(Process Local Bus)、片上外设总线OPB(On-chip Peripheral Bus)和设备控制寄存器DCR(Device Control Register)总线。PLB总线连接高速外设,本文中用于连接PowerPC处理器与Block RAM控制器;OPB总线用于处理器与其他低速外设之间的互连;DCR总线连接控制总线宏的寄存器。

(5)SystemACE CF

System ACE是Xilinx公司为解决多片大规模FPGA的应用而提出的一套解决方案。外部存储器CF卡用来保存FPGA的配置文件,可直接插拔,具有非易失性。采用SystemACE CF配置方案实现动态重构具有升级速度快、配置数据安全性好等优点。重构时,首先将生成的全局初始.bit配置文件转换成.ace文件,然后将.ace文件和部分配置文件存储在CF卡中;开发板上电后,System ACE控制器通过JTAG端口读取CF卡的.ace全局配置文件,对FPGA进行初始配置,PowerPC微处理器通过内部访问配置端口 ICAP读取重构模块的比特流文件实现重构。

(6)ICAP

ICAP是Xilinx公司在Virtex-Ⅱ之后的FPGA中提供的一个内部配置访问端口,HWICAP IP核将ICAP、BRAM及相关的控制器封装在内部,挂载到OPB总线上。ICAP可以读写FPGA的配置数据帧。ICAP控制器负责ICAP的读写状态及ICAP与BRAM之间的数据传输。BRAM用来保存从CF中读取的重构模块的比特流配置文件或者从配置存储器中读回的配置数据。采用ICAP方案实现自重构过程是基于“读-修改-写”机制的[6]。重构时,首先通过ICAP端口将需要修改的数据帧从配置存储器读到BRAM中;然后处理器修改这些数据帧;最后再通过ICAP将其写回到配置存储器中。处理器利用ICAP直接控制FPGA的重构过程,重构速度快,系统效率高。

2 系统开发流程

本文设计的自重构系统有2个可重构区域。可重构区域PRR_Math以IP核的形式实现加法和乘法的重构,重构过程通过OPB-DCR Socket模块使能总线宏;可重构区域PRR_LED实现开发板上的4个LED灯向左和向右流水点亮的重构。这2个模块通过ISE生成网表,完成布局布线,以GPIO作为总线宏的使能端口。静态模块实现对LED灯的控制,当按下暂定键时,LED暂停流水点亮;当按下开始键时,LED开始流水点亮。系统上电后,首先System ACE控制器通过JTAG端口读取存储在CF卡中的.ace文件对FPGA进行初始全局配置,初始的全局配置实现乘法和向右流水点亮LED。开发板通过串口UART与PC通信,并通过超级终端进行显示和调试。重构时,在超级终端键入命令,处理器接受命令后,通过ICAP读取相应的重构模块对FPGA重新配置,通过在超级终端上测试和观察开发板LED的变化验证重构是否实现。本文采用基于EAPR的局部动态重构设计方法进行系统设计,开发流程如图2所示。

3052896352793.gif

(1)设计输入和综合

系统包括静态模块、可重构模块和顶层模块。静态模块是除了重构模块以外的所有模块,包括处理器模块。静态模块实现对LED灯的控制,处理器模块控制重构过程。2个重构区域分别有2个重构模块,同一重构区域的可重构模块具有相同的端口定义和实体名,要放在不同目录下分别进行综合。静态模块和所有的重构模块在综合时都不添加I/O端口。顶层模块只进行各个模块的例化,即只定义模块的端口信号,而不进行具体的行为描述,包括处理器模块、静态模块、重构模块、总线宏、时钟及一些信号声明等。顶层模块在综合时要添加I/O端口。完成这一步骤将产生所有模块的.ngc网表文件。

(2)软硬件设计

在XPS中搭建系统硬件平台,添加所需IP核,硬件平台如图3所示。在SDK上进行软件编程和调试,生成executable.elf可执行文件。

3053025217698.gif

(3)添加约束

利用PlanAhead添加约束,如区域约束、时序约束和引脚、时钟、总线宏的位置约束等。添加各约束之后运行DCR检查是否满足设计要求。

(4)实现模块

静态模块和重构模块的实现包括转换、映射和布局布线3个步骤。重构模块必须在静态模块成功实现之后才可进行。

(5)合并

运行PR Assemble将各个模块合并,产生各重构模块的.bit文件、各区域的空位流文件和一个包含静态模块及动态模块的全配置文件static_full.bit。生成的static_full.bit文件只含有硬件信息,需要将此文件和system_stub.bmm、executable.elf文件合并成包含软硬件完整信息的download.bit文件。

(6)转换文件

系统上电后,通过读取CF卡中的.ace文件对FPGA芯片进行初始配置,将上一步生成的download.bit转换为CF可执行的.ace文件。

(7)设计验证

将生成的system.ace、重构配置文件和空位流文件下载到CF卡的根目录下,连接开发板与PC进行设计验证和调试。

3 实验结果

在Xilinx XC4VFX12FF668-10 ML403开发板上进行验证,开发板的配置模式设计为JTAG方式,配置资源选择开关打向System ACE端,串口线连接开发板与PC,打开超级终端,超级终端设置波特率为115 200 b/s,8 bit数据位,无奇偶校验,这里的设置和创建硬件平台系统的设置要保持一致。系统上电后,读取system.ace文件完成初始配置后,开发板上的DONE指示灯变为绿色,说明配置成功完成,这时激活的乘法模块和右移模块开始工作。观察到4个LED灯向右流水点亮,当按下暂停键时,LED停止流水点亮;当按下开始键时,LED开始向右流水点亮。超级终端显示提示信息,输入O后系统提示要输入两个操作数,完成乘法运算。结果显示如图4所示。

3053186358820.gif

根据提示命令,输入a或A命令实现加法运算,输入l或L命令实现向左流水点亮LED灯;输入o或O命令,系统接收两个操作数后执行加法运算,并将运算结果显示在超级终端上。观察开发板的4个LED灯变成向左流水点亮,按下暂停键,LED停止流水点亮;按下开始键,LED开始向左流水点亮。超级终端显示如图5所示。

3053293842012.gif

当系统不需要执行重构模块的功能时,可根据提示输入空白配置文件的相应命令使系统处于待机模式。当需要时再输入相应命令进行配置。这样可减少系统的功耗。

重构时间是重构系统的一个关键指标。理论上,重构时间等于配置文件大小与配置速率的比值。实际上,还需要考虑总线的传输速率和HWICAP的配置速率。本文只从理论上分析重构时间,而重构时间和配置文件大小成正比,生成的配置文件大小如表1所示。从表中可以看出,重构模块的配置文件比全局配置文件大幅度减小,采用局部动态配置时,只需下载重构模块的配置模块,重构时间也将大幅度缩短。另外,本文系统通过ICAP配置,ICAP数据位宽为32 bit,时钟频率为100 MHz,配置速率很高,所以在重构时间上具有一定的优势。

3053476983812.gif

本文采用EAPR方法,利用ML403开发板集成的PowerPC405微处理器设计验证系统的自重构功能。在系统运行过程中,可以替换或停止某一不需要或出错的功能模块来保证系统不间断地运行。系统采用软硬件协同设计,使设计流程并行化,开发周期短,硬件分时复用,资源利用率高。基于EAPR的局部动态自重构技术已经成为业界的研究热点,随着技术不断成熟,将逐步应用到实际产品中。
编辑:lyn

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1655

    文章

    22283

    浏览量

    630267
  • 总线技术
    +关注

    关注

    3

    文章

    83

    浏览量

    41280
  • 可编程逻辑
    +关注

    关注

    7

    文章

    526

    浏览量

    45307
  • 硬核处理器
    +关注

    关注

    0

    文章

    3

    浏览量

    6871
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    电缆线路局部放电监测装置的技术解析与价值应用

    文章由山东华科信息技术有限公司提供在电力系统中,电缆线路作为电能传输的重要载体,其绝缘状态直接影响供电可靠性。局部放电作为绝缘劣化的早期信号,通过暂态地电压(TEV)检测技术实现在线监测,已成为
    的头像 发表于 10-14 09:54 239次阅读
    电缆线路<b class='flag-5'>局部</b>放电监测装置的技术<b class='flag-5'>解析</b>与价值应用

    CherryUSB怎样实现U盘动态加载?

    ,致使二者不能同时工作。使用CherryUSB怎样实现U盘动态挂载和卸载呢?即在不插USB线时,挂载文件系统,应用可正常使用文件系统,当插入USB线时,
    发表于 10-14 07:31

    电磁干扰自适应抑制系统平台全面解析

    电磁干扰自适应抑制系统平台精简解析 北京华盛恒辉电磁干扰自适应抑制系统平台,是针对复杂电磁环境下电子设备稳定运行需求设计的综合性解决方案,通过整合多元技术实现
    的头像 发表于 09-17 16:11 277次阅读

    开关柜体局部放电检测装置

    文章由山东华科信息技术有限公司提供在电力系统中,开关柜作为电能分配的核心设备,其运行稳定性直接关系到供电可靠性。然而,绝缘劣化引发的局部放电现象如同隐形的“健康杀手”,可能逐步破坏设备绝缘性能,最终
    的头像 发表于 07-14 11:56 375次阅读
    开关柜体<b class='flag-5'>局部</b>放电检测装置

    电缆局部放电的监测及预防

    针对电缆局部放电的监测,不仅需要结合多种技术手段,如在线监测中应用广泛的高频电流法、超声波检测法与特高频法等,同时还需采取有效的预防措施,从材料优化、制造工艺控制、运行环境维护及智能监测系统应用等
    的头像 发表于 07-07 13:57 427次阅读
    电缆<b class='flag-5'>局部</b>放电的监测及预防

    电力中压电缆局部放电在线监测系统:构建智能电网的感知神经

    局部放电在线监测系统,通过实时感知与数据分析,为电力设备健康管理提供了智能化解决方案。技术原理:多维度信号捕捉与解析中压电缆局部放电在线监测系统
    的头像 发表于 07-07 11:47 710次阅读
    电力中压电缆<b class='flag-5'>局部</b>放电在线监测<b class='flag-5'>系统</b>:构建智能电网的感知神经

    技术干货 | ATX7006线性计算与AD/DA动态分析解析

    想知道如何在ATX7006上进行高精度线性度计算?如何通过傅里叶变换分析AD/DA转换器的动态性能?本文详细解析了线性计算的命令配置、结果获取方法,以及动态测试中的信噪比、谐波失真等关
    的头像 发表于 06-30 10:13 918次阅读
    技术干货 | ATX7006线性计算与AD/DA<b class='flag-5'>动态</b>分析<b class='flag-5'>解析</b>

    实现局部放电在线监测的不同

    局部放电(PD)是电气设备绝缘劣化的重要征兆,其在线监测主要是通过捕捉放电产生的物理效应实现,如脉冲电流法、超声波测量法以及特高频/超高频(UHF)测量法等,通过综合运用多物理场监测技术、智能算法
    的头像 发表于 06-13 11:08 414次阅读

    ​数字孪生热管理:NTC热敏电阻阵列与热场重构算法的动态适配

    本文以东莞市平尚电子科技有限公司(平尚科技)的NTC热敏电阻阵列与热场重构算法为核心,探讨其在车载数字孪生热管理系统中的动态适配技术。通过高精度NTC阵列、多物理场耦合模型及实时反馈控制算法,
    的头像 发表于 06-06 17:59 619次阅读
    ​数字孪生热管理:NTC热敏电阻阵列与热场<b class='flag-5'>重构</b>算法的<b class='flag-5'>动态</b>适配

    电磁环境动态监测与分析平台软件全面解析

    电磁环境动态监测与分析平台软件全面解析
    的头像 发表于 04-28 16:28 524次阅读
    电磁环境<b class='flag-5'>动态</b>监测与分析平台软件全面<b class='flag-5'>解析</b>

    深控技术不需要点表的工业数采动态产线重构支持方案

    深控技术不需要点表的工业数采网关“动态产线重构支持”方案通过语义化建模、多Agent系统、协议自适应等核心技术,解决了传统MES系统在柔性制造场景下的刚性瓶颈。其价值不仅体现在维护成本
    的头像 发表于 03-18 15:16 597次阅读
    深控技术不需要点表的工业数采<b class='flag-5'>动态</b>产线<b class='flag-5'>重构</b>支持方案

    充电桩负载测试系统技术解析

    设备。本文将深入解析系统的技术架构与核心功能。 一、系统技术架构 现代充电桩负载测试系统采用模块化设计,主要由功率负载单元、数据采集系统
    发表于 03-05 16:21

    汽车排气系统点焊技术解析与应用

    的稳定性和耐久性。本文将对汽车排气系统中的点焊技术进行详细解析,并探讨其具体应用。 首先,点焊技术是一种利用电极施加压力并通电加热,使金属局部熔化形成焊接点的方
    的头像 发表于 02-27 09:44 571次阅读

    奶泡棒专用芯片详细解析

    奶泡棒专用芯片详细解析
    的头像 发表于 02-24 11:23 592次阅读

    硅谷云平台详细解析

     硅谷云平台作为硅谷地区领先的云计算服务提供商,在数字化时代发挥着举足轻重的作用。主机推荐小编为您整理发布硅谷云平台的详细解析
    的头像 发表于 01-24 09:24 623次阅读