首页> 中国专利> 基于软核处理器的FPGA多镜像升级加载方法及装置

基于软核处理器的FPGA多镜像升级加载方法及装置

摘要

本发明公开了一种基于软核处理器的FPGA多镜像升级加载方法,采用单FPGA的方式,内部嵌入软核处理器和各控制块来实现接口功能、实现程序文件缓存功能、实现同CPLD完成芯片级的互联总线接口功能,升级加载方法由FPGA和CPLD共同完成;本发明还公开了一种基于软核处理器的FPGA多镜像升级加载装置,所述装置包括:上位机、接口收发模块、FPGA模块、外部缓存模块、外部存储模块、CPLD模块。从而实现基于不同应用场景的FPGA多镜像快速升级及灵活加载。

著录项

  • 公开/公告号CN105573789A

    专利类型发明专利

  • 公开/公告日2016-05-11

    原文格式PDF

  • 申请/专利权人 武汉精测电子技术股份有限公司;

    申请/专利号CN201510937954.X

  • 发明设计人 叶金平;付文明;

    申请日2015-12-16

  • 分类号G06F9/445(20060101);

  • 代理机构

  • 代理人

  • 地址 430070 湖北省武汉市洪山区南湖大道53号洪山创业中心4楼

  • 入库时间 2023-12-18 15:12:16

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-02-27

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F9/445 变更前: 变更后: 申请日:20151216

    专利权人的姓名或者名称、地址的变更

  • 2017-08-08

    授权

    授权

  • 2016-06-08

    实质审查的生效 IPC(主分类):G06F9/445 申请日:20151216

    实质审查的生效

  • 2016-05-11

    公开

    公开

说明书

技术领域

本发明涉及FPGA升级加载领域,尤其涉及一种FPGA多镜像升 级加载方法及装置。

背景技术

目前,FPGA(FieldProgrammableGateArray,现场可编程门 阵列)的程序升级方式主要有两种:使用FPGA编程器通过FPGA的 烧录软件对FPGA进行程序升级;通过应用软件将FPGA的程序文件 下发给FPGA,FPGA通过内部RSU功能进行程序自升级。

这两种方式都存在一定的局限性,第一种升级方式的缺点:升级 速度非常慢、不能进行远程升级、只支持单镜像程序文件升级;第 二种升级方式的优缺点:优点支持远程升级、缺点是升级速度慢, 只支持单镜像程序文件升级。

随着FPGA的技术不断的发展,FPGA能够完成的外设功能越来越 丰富,在同一片FPGA中可以完成不同功能的应用,但是受FPGA自 身资源的限制,不能把FPGA自身所支持的功能完全放在同一个镜像 程序中,而且在同一个镜像程序中包含过多功能时,对整个系统的 稳定性、时序、功耗均有较大的影响。为了解决上述问题,可按不 同的应用场景进行功能划分,在同一FPGA中采用不同的镜像文件来 完成不同的功能,达到优化时序、降低功耗、提高系统的稳定性等 目的。

发明内容

为了解决当前FPGA程序升级速度慢和镜像个数少的问题,实 现基于不同应用场景的FPGA多镜像快速升级及灵活加载,本发明 提供了一种基于软核处理器的FPGA多镜像升级加载方法及装置。

一方面,本发明提供一种基于软核处理器的FPGA多镜像升级 加载方法,所述方法包括如下步骤:

上位机选择需要升级的镜像文件,通过接口下发升级开始命令, FPGA内部的协议栈解析出命令信息后发送给FPGA的软核处理器 模块,所述FPGA的软核处理器模块根据命令得到升级镜像的文件 名和文件长度,然后发送FPGA已经准备好升级的消息包给所述上 位机;

所述上位机收到回包后,开始下发镜像文件数据;

所述FPGA的软核处理器模块通过设置FPGA的控制模块,将 所述上位机下发的镜像文件数据通过控制模块存储到外部缓存模块 中;

镜像文件数据下发完成后,所述FPGA的软核处理器模块通过 控制模块通知CPLD的软核处理器模块,并将镜像文件的文件名、 文件长度传给CPLD;

CPLD就绪后,所述FPGA的软核处理器模块通过所述FPGA的 控制模块将需要升级的镜像文件数据从FPGA的外部缓存模块读出, 然后通过主外部总线接口发送给CPLD,所述CPLD的软核处理器模 块通过外部总线接口读取数据,然后发给存储控制块,完成升级镜 像文件的存储;

所有数据都写入CPLD外部存储模块后,CPLD设置当前镜像文 件为下次的加载文件,并更新升级完成寄存器的状态,所述FPGA 的软核处理器模块查询到该寄存器状态后,通过接口通知上位机升 级操作完成;

升级完成后,实现FPGA的加载。

进一步地,所述FPGA的软核处理器模块通过设置FPGA控制 模块中的主控制块,将所述上位机下发的镜像文件数据通过控制模 块中的缓存控制块存储到外部缓存模块中。

进一步地,镜像文件数据下发完成后,所述FPGA的软核处理 器模块通过控制模块中的主外部存储接口控制块通知CPLD的软核 处理器模块。

进一步地,所述升级完成后,实现FPGA的加载的方法具体包 括:

FPGA镜像文件升级完成后,CPLD主动从外部存储模块中读取 刚升级的镜像文件,将镜像文件发送给FPGA的配置模块,实现 FPGA的加载。

另一方面,本发明提供一种基于软核处理器的FPGA多镜像升 级加载装置,所述装置包括:上位机、接口收发模块、FPGA模块、 外部缓存模块、外部存储模块、CPLD模块;其中,

所述上位机,用于人机交互,进行程序升级和镜像切换控制;

所述接口收发模块,用于上位机和FPGA模块之间的双向通信 交互;

所述FPGA模块,用于内部集成软核处理器和各自定义功能模 块;

所述外部缓存模块,用于临时存放系统待处理的数据;

所述外部存储模块,用于保存FPGA的程序文件数据;

所述CPLD模块,外部挂载存储器用来存储FPGA的程序文件, 与FPGA模块进行通信完成程序升级。

进一步地,所述FPGA模块包括:协议栈模块、控制模块、软 核处理器模块、配置模块;其中,

所述协议栈模块,用于解析接口传输的数据,将命令数据传输 给软核处理器模块,将镜像文件数据传输给控制模块;

所述控制模块,用于与协议栈模块、软核处理器模块、外部缓 存模块、CPLD模块进行数据交换与控制;

所述软核处理器模块,用于FPGA内部任务的调度、文件系统 管理、控制命令的解析和分发以及工作流程控制;

所述配置模块,用于接收到FPGA的程序文件数据后,进入初 始化状态,然后进入用户状态,执行相应的用户应用操作。

进一步地,所述FPGA的控制模块包括:主控制块、缓存控制 块、主外部存储接口控制块;其中,

所述主控制块,用于大数据量传输,总线的切换和复用;

所述缓存控制块,用于与主控制块数据交互,对外部缓存模块 进行读写访问;

所述主外部存储接口控制块,用于与主控制块进行数据交互, 控制外部总线与CPLD进行数据传输。

进一步地,所述CPLD模块包括:存储控制块、软核处理器模 块、加载模块;其中,

所述存储控制块,用于与软核处理器模块、加载模块、FPGA模 块、外部存储模块进行数据交互,对升级程序文件数据和升级命令 数据进行控制、转发、存储;

所述软核处理器模块,用于CPLD内部任务的调度、文件系统 管理、控制命令的解析和分发以及工作流程控制;

所述加载模块,用于接收存储控制块发送的FPGA程序文件数 据,控制外部总线,发送程序文件数据给FPGA内部的配置模块。

进一步地,所述存储控制块包括:从外部存储接口控制子块、 存储控制子块;其中,

所述从外部存储接口控制子块,用于与FPGA进行总线交互, 接收FPGA的升级程序文件数据和升级命令数据,将程序文件数据 转发给存储控制子块,将命令数据转发给CPLD的软核处理器模块;

所述存储控制子块,用于接收从外部存储接口控制子块的数据, 将数据存储到外部存储模块中,并接收软核处理器模块的控制命令, 从外部存储模块中读取FPGA的程序文件数据,将程序文件数据发 送给加载模块。

本技术方案中,基于软核处理器的FPGA多镜像升级加载方法 及装置是采用单FPGA的方式,内部嵌入软核处理器和各控制块来 实现接口功能、实现程序文件缓存功能、实现同CPLD完成芯片级 的互联总线接口功能等。采用单CPLD实现FPGA的多镜像程序文 件升级管理和FPGA程序文件选择加载启动功能等。

本技术方案中,远程升级实现方法由FPGA和CPLD共同完成。

本技术方案中,基于软核处理器的FPGA多镜像升级加载方法 及装置的主要功能是完成FPGA的多镜像程序升级,以及根据相关 配置选择相应的镜像文件给FPGA进行加载。加载方法为:

FPGA的多镜像加载主要由CPLD协助完成,首先CPLD正常运 行后,CPLD通过读取外部存储存储器的配置信息选择相应的FPGA 镜像文件,然后将镜像文件数据从外部存储模块中读出,发送给 FPGA的配置模块,实现FPGA的加载启动。

本发明与现有技术相比,具有以下优点:

(1)、远程升级时间大大缩短,单个镜像文件升级过程在2秒内 完成。而以前采用编程器对FPGA进行程序升级方法大约在3分钟 左右,采用带有RSU功能的远程升级方式大约在40秒左右。

(2)、该装置支持多镜像功能,根据外部存储空间的大小支持2 个和2个以上的FPGA镜像文件。实现将多个FPGA的应用程序一 次性烧写到装置中,在实际应用中可以通过设置来选择不同的镜像 文件进行启动,满足装置应用的多样性,避免不同应用过程中反复 升级程序的操作。

附图说明

图1是一种基于软核处理器的FPGA多镜像升级加载装置组成示 意图;

图2是一种基于软核处理器的FPGA多镜像升级加载装置另一组 成示意图。

结合附图在其上标记以下附图标记:1-上位机、2-接口收发模 块、3-FPGA模块、4-外部缓存模块、5-外部存储模块、6-CPLD模块。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结 合附图及实施例,对本发明进行进一步详细说明。应当理解,此处 所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

一方面,本发明提供一种基于软核处理器的FPGA多镜像升级 加载方法,所述方法包括如下步骤:

上位机选择需要升级的镜像文件,通过接口下发升级开始命令, FPGA内部的协议栈解析出命令信息后发送给FPGA的软核处理器 模块,所述FPGA的软核处理器模块根据命令得到升级镜像的文件 名和文件长度,然后发送FPGA已经准备好升级的消息包给所述上 位机;

所述上位机收到回包后,开始下发镜像文件数据;

所述FPGA的软核处理器模块通过设置FPGA的控制模块,将 所述上位机下发的镜像文件数据通过控制模块存储到外部缓存模块 中;

镜像文件数据下发完成后,所述FPGA的软核处理器模块通过 控制模块通知CPLD的软核处理器模块,并将镜像文件的文件名、 文件长度传给CPLD;

CPLD就绪后,所述FPGA的软核处理器模块通过所述FPGA的 控制模块将需要升级的镜像文件数据从FPGA的外部缓存模块读出, 然后通过主外部总线接口发送给CPLD,所述CPLD的软核处理器模 块通过外部总线接口读取数据,然后发给存储控制块,完成升级镜 像文件的存储;

所有数据都写入CPLD外部存储模块后,CPLD设置当前镜像文 件为下次的加载文件,并更新升级完成寄存器的状态,所述FPGA 的软核处理器模块查询到该寄存器状态后,通过接口通知上位机升 级操作完成;

升级完成后,实现FPGA的加载。

进一步地,所述FPGA的软核处理器模块通过设置FPGA控制 模块中的主控制块,将所述上位机下发的镜像文件数据通过控制模 块中的缓存控制块存储到外部缓存模块中。

进一步地,镜像文件数据下发完成后,所述FPGA的软核处理 器模块通过控制模块中的主外部存储接口控制块通知CPLD的软核 处理器模块。

进一步地,所述升级完成后,实现FPGA的加载的方法具体包 括:

FPGA镜像文件升级完成后,CPLD主动从外部存储模块中读取 刚升级的镜像文件,将镜像文件发送给FPGA的配置模块,实现 FPGA的加载。

本技术方案中,软核处理器包括NiosII系列产品。

另一方面,如图1所示,图1是一种基于软核处理器的FPGA多镜 像升级加载装置组成示意图,所述升级加载装置包括:上位机1、接 口收发模块2、FPGA模块3、外部缓存模块4、外部存储模块5、 CPLD模块6;其中,

所述上位机1,用于人机交互,进行程序升级和镜像切换控制;

所述接口收发模块2,用于上位机1和FPGA模块3之间的双向 通信交互;可选地,接口包括以太网接口、串口、USB接口;

所述FPGA模块3,用于内部集成软核处理器和各自定义功能模 块;

所述外部缓存模块4,用于临时存放系统待处理的数据;可选地, 外部缓存模块包括DDR系列存储器;

所述外部存储模块5,用于保存FPGA的程序文件数据;可选地, 外部存储模块包括nandflash、norflash;

所述CPLD模块6,外部挂载存储器用来存储FPGA的程序文件, 与FPGA模块3进行通信完成程序升级。

进一步地,所述FPGA模块3包括:协议栈模块31、控制模块 32、、软核处理器模块33、配置模块34;其中,

所述协议栈模块31,用于解析接口传输的数据,将命令数据传输给 软核处理器模块33,将镜像文件数据传输给控制模块32;

所述控制模块32,用于与协议栈模块31、软核处理器模块33、外部 缓存模块4、CPLD模块6进行数据交换与控制;

所述软核处理器模块33,用于FPGA内部任务的调度、文件系 统管理、控制命令的解析和分发以及工作流程控制;

所述配置模块34,用于接收到FPGA的程序文件数据后,进入 初始化状态,然后进入用户状态,执行相应的用户应用操作。

进一步地,所述CPLD模块6包括:存储控制块61、软核处理 器模块62、加载模块63;其中,

所述存储控制块61,用于与软核处理器模块62、加载模块63、 FPGA模块3、外部存储模块5进行数据交互,对升级程序文件数据 和升级命令数据进行控制、转发、存储;

所述软核处理器模块62,用于CPLD内部任务的调度、文件系 统管理、控制命令的解析和分发以及工作流程控制;

所述加载模块63,用于接收存储控制块发送的FPGA程序文件数据, 控制外部总线,发送程序文件数据给FPGA内部的配置模块。

图2是一种基于软核处理器的FPGA多镜像升级加载装置另一 组成示意图。如图2所示,所述升级加载装置包括:上位机1、接口 收发模块2、FPGA模块3、外部缓存模块4、外部存储模块5、CPLD 模块6;其中,

所述上位机1,用于人机交互,进行程序升级和镜像切换控制;

所述接口收发模块2,用于上位机1和FPGA模块3之间的双向 通信交互;可选地,接口包括以太网接口、串口、USB接口;

所述FPGA模块3,用于内部集成软核处理器和各自定义功能模 块;

所述外部缓存模块4,用于临时存放系统待处理的数据;可选地, 外部缓存模块包括DDR系列存储器;

所述外部存储模块5,用于保存FPGA的程序文件数据;可选地, 外部存储模块包括nandflash、norflash;

所述CPLD模块6,外部挂载存储器用来存储FPGA的程序文件, 与FPGA模块3进行通信完成程序升级。

进一步地,所述FPGA模块3包括:协议栈模块31、控制模块 32、、软核处理器模块33、配置模块34;其中,

所述协议栈模块31,用于解析接口传输的数据,将命令数据传 输给软核处理器模块33,将镜像文件数据传输给控制模块32;

所述控制模块32,用于与协议栈模块31、软核处理器模块33、 外部缓存模块4、CPLD模块6进行数据交换与控制;

所述软核处理器模块33,用于FPGA内部任务的调度、文件系 统管理、控制命令的解析和分发以及工作流程控制;

所述配置模块34,用于接收到FPGA的程序文件数据后,进入 初始化状态,然后进入用户状态,进入用户状态后执行相应的用户 应用操作。

进一步地,所述CPLD模块6包括:存储控制块61、软核处理 器模块62、加载模块63;其中,

所述存储控制块61,用于与软核处理器模块62、加载模块63、 FPGA模块3、外部存储模块5进行数据交互,对升级程序文件数据 和升级命令数据进行控制、转发、存储;

所述软核处理器模块62,用于CPLD内部任务的调度、文件系 统管理、控制命令的解析和分发以及工作流程控制;

所述加载模块63,用于接收存储控制块发送的FPGA程序文件数据, 控制外部总线,发送程序文件数据给FPGA内部的配置模块。

更进一步地,所述FPGA模块的控制模块32包括:主控制块321、 缓存控制块322、主外部存储接口控制块323;其中,

所述主控制块321,用于大数据量传输,总线的切换和复用;

所述缓存控制块322,用于与主控制块321数据交互,对外部缓存模 块4进行读写访问;

所述主外部存储接口控制块323,用于与主控制块321进行数据 交互,控制外部总线与CPLD进行数据传输。

更进一步地,所述CPLD模块的存储控制模块61包括:从外部 存储接口控制子块611、存储控制子块612;其中,

所述从外部存储接口控制子块611,用于与FPGA进行总线交互, 接收FPGA的升级程序文件数据和升级命令数据,将程序文件数据 转发给存储控制子块612,将命令数据转发给CPLD的软核处理器模 块62;

所述存储控制子块612,用于接收从外部存储接口控制子块611 的数据,将数据存储到外部存储模块5中,并接收软核处理器模块 62的控制命令,从外部存储模块5读取FPGA的程序文件数据,将 程序文件数据发送给加载模块63。

本技术方案中,加载方式有两种应用,在线加载和上电加载两 种:

1)在线加载

在线加载有两种情况,第一种情况是FPGA镜像文件升级完成 后,CPLD会主动从外部存储模块中读取刚升级的镜像文件,将镜像 文件发送给FPGA的配置模块,实现FPGA的加载启动。

第二种情况是程序正在运行过程中,通过改变上位机的应用场 景后(即选择不同的功能),应用软件将改变后的应用场景通过接口发 给FPGA的软核处理器,软核处理器根据接收到的应用场景自动查 找合适的应用镜像,然后将需要切换的镜像文件名通过主外部总线 接口发送给CPLD的软核处理器,并发送切换镜像命令,CPLD的软 核处理器根据FPGA的软核处理器发送的文件名从外部存储器中读 出要加载的镜像文件,发送给FPGA的配置模块,实现FPGA的加 载启动。

2)上电加载

上电加载主要应用于电时的FPGA加载。主要流程是CPLD上 电完成后,CPLD根据当前加载镜像的配置信息,选择需要加载的镜 像文件,从外部存储器中读出要加载的镜像文件,发送给FPGA的 配置模块,实现FPGA的加载启动。

本技术方案中,多镜像文件是指多个不同功能的FPGA程序, 每次升级只能升级一个程序,不能同时升级,但能够依次升级。每 次升级一个文件2s内能完成。

最后应说明的是:以上所述仅为本发明的优选实施例而已,并 不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说 明,对于本领域的技术人员来说,其依然可以对前述各实施例所记 载的技术方案进行修改,或者对其中部分技术特征进行等同替换。 凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进 等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号