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
    +关注

    关注

    1629

    文章

    21729

    浏览量

    602987
  • 总线技术
    +关注

    关注

    3

    文章

    80

    浏览量

    40763
  • 可编程逻辑
    +关注

    关注

    7

    文章

    515

    浏览量

    44083
  • 硬核处理器
    +关注

    关注

    0

    文章

    3

    浏览量

    6791
收藏 人收藏

    评论

    相关推荐

    AUTOSAR通信协议解析 如何实现AUTOSAR通信

    通信协议栈是一个复杂的系统,它涵盖了多种通信方式和模块,以实现车内ECU之间的高效、可靠的数据交换。以下是对AUTOSAR通信协议的解析实现AUTOSAR通信的方法: 一、AUTOS
    的头像 发表于 12-17 14:54 333次阅读

    基于相变材料的可重构超构表面用于图像处理

    动态重构处理的能力是超构表面用于实际计算系统的关键。 据麦姆斯咨询报道,美国纽约市立大学(City University of New York)、罗切斯特大学(University
    的头像 发表于 11-13 10:24 218次阅读
    基于相变材料的可<b class='flag-5'>重构</b>超构表面用于图像处理

    深入解析:纯净IP如何重构互联网环境

    纯净IP作为互联网环境中的一个重要概念,正在逐步重构整个网络环境的面貌。
    的头像 发表于 10-25 07:36 235次阅读

    LabVIEW波形图截取局部数据

    在一个简单数采项目中往往需要“数据显示”功能模块,在数据采集后进行数据的显示和分析。本期小编给大家带来一个放大局部数据以后拿到目标数据的小功能,可以在数据量较大或者想详细查看并分析某一段波形数据时用这个方法获取到局部数据。
    的头像 发表于 10-21 10:31 689次阅读
    LabVIEW波形图截取<b class='flag-5'>局部</b>数据

    选择性唤醒如何实现局部联网

    电子发烧友网站提供《选择性唤醒如何实现局部联网.pdf》资料免费下载
    发表于 09-12 10:29 0次下载
    选择性唤醒如何<b class='flag-5'>实现局部</b>联网

    自动售货机MDB协议中文解析(七)MDB-RS232控制纸币器的详细流程和解析

    自动售货机MDB协议中文解析(七)MDB-RS232控制纸币器的详细流程和解析
    的头像 发表于 09-09 10:04 548次阅读

    局部放电检测装置 局部放电检测系统

    局部放电检测系统采用嵌入式ARM系统作为中央处理单元,控制12位分辨率的高速模数转换芯片进行数据采集,将采集到的数据存放在双端口RAM中,实现从模拟到数字的跨越,使用26万色高分辨率T
    的头像 发表于 09-03 10:06 248次阅读
    <b class='flag-5'>局部</b>放电检测装置 <b class='flag-5'>局部</b>放电检测<b class='flag-5'>系统</b>

    重构:改善既有代码的设计」实战篇

    代码层面的整理,它更是一种软件开发的哲学,强调持续改进和适应变化的重要性。    书中通过详细的案例分析和代码示例,将理论与实践巧妙地融合在一起。我尤其赞赏作者 如何将复杂的重构任务拆解成一系列的小步骤 ,每一步都
    的头像 发表于 08-14 10:42 248次阅读
    「<b class='flag-5'>重构</b>:改善既有代码的设计」实战篇

    闭环增益对系统动态性能的影响

    在自动控制系统中,闭环控制作为一种重要的控制方式,通过引入反馈机制来调整系统的输出,使其更好地适应外部环境的变化。闭环增益作为闭环控制系统中的一个核心参数,对系统
    的头像 发表于 07-30 10:05 2428次阅读

    基于COOT算法的局部阴影下光伏阵列MPPT控制研究

    针对光伏阵列在局部阴影下会产生多个功率峰值,可能出现跟踪到错误的功率峰值的情况,将白冠鸡优化算法(COOT)应用于局部阴影MPPT控制,通过动态调整太阳能电池板输出电压和电流,使得太阳能电池
    的头像 发表于 07-23 11:28 258次阅读
    基于COOT算法的<b class='flag-5'>局部</b>阴影下光伏阵列MPPT控制研究

    开关柜局部放电综合在线监测系统原理——每日了解电力知识

    今天武汉摩恩智能电气有限公司带大家了解一下MOEORW-5085K开关柜局部放电综合在线监测系统。 MOEORW-5085K开关柜局部放电综合在线监测系统基本原理: 在高压设备有
    的头像 发表于 06-04 09:39 841次阅读
    开关柜<b class='flag-5'>局部</b>放电综合在线监测<b class='flag-5'>系统</b>原理——每日了解电力知识

    局部放电检测系统如何接线

    今天武汉摩恩智能电气有限公司带大家了解一下 MOEORW-2080B局部放电检测系统。 MOEORW-2080B局部放电检测系统接线: 局部
    的头像 发表于 06-03 09:22 963次阅读
    <b class='flag-5'>局部</b>放电检测<b class='flag-5'>系统</b>如何接线

    APD系列高压开关柜局部放电监测装置

    APD系列高压开关柜局部放电监测装置通过检测伴随局部放电而产生的电磁波辐射,实时监测的开关柜内局部放电的放电次数和放电频次等数据,对电气设备绝缘状况进行评估,发现设备潜伏性故障,最终实现
    的头像 发表于 03-21 14:58 517次阅读
    APD系列高压开关柜<b class='flag-5'>局部</b>放电监测装置

    瑞萨发布下一代动态重构人工智能处理器加速器

    瑞萨最新发布的动态重构人工智能处理器(DRP-AI)加速器,在业界引起了广泛关注。这款加速器拥有卓越的10 TOPS/W高功率效率,相比传统技术,效率提升了惊人的10倍。其独特之处在于,它能在低功耗的传统嵌入式处理器(MPU)上运行复杂的图像AI模型,不再需要依赖高功耗
    的头像 发表于 03-08 13:45 766次阅读

    什么是动态线程池?动态线程池的简单实现思路

    因此,动态可监控线程池一种针对以上痛点开发的线程池管理工具。主要可实现功能有:提供对 Spring 应用内线程池实例的全局管控、应用运行时动态变更线程池参数以及线程池数据采集和监控阈值报警。
    的头像 发表于 02-28 10:42 639次阅读