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

文档序号:9810319阅读:来源:国知局
行启动,满足装置应用的多样性,避免不同应用过程中反复升级程序的操作。
【附图说明】
[0048]图1是一种基于软核处理器的FPGA多镜像升级加载装置组成示意图;
[0049]图2是一种基于软核处理器的FPGA多镜像升级加载装置另一组成示意图。
[0050]结合附图在其上标记以下附图标记:1-上位机、2-接口收发模块、3-FPGA模块、4-外部缓存模块、5-外部存储模块、6-CPLD模块。
【具体实施方式】
[0051]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0052]一方面,本发明提供一种基于软核处理器的FPGA多镜像升级加载方法,所述方法包括如下步骤:
[0053]上位机选择需要升级的镜像文件,通过接口下发升级开始命令,FPGA内部的协议栈解析出命令信息后发送给FPGA的软核处理器模块,所述FPGA的软核处理器模块根据命令得到升级镜像的文件名和文件长度,然后发送FPGA已经准备好升级的消息包给所述上位机;
[0054]所述上位机收到回包后,开始下发镜像文件数据;
[0055]所述FPGA的软核处理器模块通过设置FPGA的控制模块,将所述上位机下发的镜像文件数据通过控制模块存储到外部缓存模块中;
[0056]镜像文件数据下发完成后,所述FPGA的软核处理器模块通过控制模块通知CPLD的软核处理器模块,并将镜像文件的文件名、文件长度传给CPLD;
[0057]CPLD就绪后,所述FPGA的软核处理器模块通过所述FPGA的控制模块将需要升级的镜像文件数据从FPGA的外部缓存模块读出,然后通过主外部总线接口发送给CPLD,所述CPLD的软核处理器模块通过外部总线接口读取数据,然后发给存储控制块,完成升级镜像文件的存储;
[0058]所有数据都写入CPLD外部存储模块后,CPLD设置当前镜像文件为下次的加载文件,并更新升级完成寄存器的状态,所述FPGA的软核处理器模块查询到该寄存器状态后,通过接口通知上位机升级操作完成;
[0059]升级完成后,实现FPGA的加载。
[0060]进一步地,所述FPGA的软核处理器模块通过设置FPGA控制模块中的主控制块,将所述上位机下发的镜像文件数据通过控制模块中的缓存控制块存储到外部缓存模块中。
[0061]进一步地,镜像文件数据下发完成后,所述FPGA的软核处理器模块通过控制模块中的主外部存储接口控制块通知CPLD的软核处理器模块。
[0062]进一步地,所述升级完成后,实现FPGA的加载的方法具体包括:
[0063]FPGA镜像文件升级完成后,CPLD主动从外部存储模块中读取刚升级的镜像文件,将镜像文件发送给FPGA的配置模块,实现FPGA的加载。
[0064]本技术方案中,软核处理器包括N1sII系列产品。
[0065]另一方面,如图1所示,图1是一种基于软核处理器的FPGA多镜像升级加载装置组成示意图,所述升级加载装置包括:上位机1、接口收发模块2、FPGA模块3、外部缓存模块4、外部存储模块5、CPLD模块6;其中,
[0066]所述上位机I,用于人机交互,进行程序升级和镜像切换控制;
[0067]所述接口收发模块2,用于上位机I和FPGA模块3之间的双向通信交互;可选地,接口包括以太网接口、串口、USB接口;
[0068]所述FPGA模块3,用于内部集成软核处理器和各自定义功能模块;
[0069]所述外部缓存模块4,用于临时存放系统待处理的数据;可选地,外部缓存模块包括DDR系列存储器;
[0070]所述外部存储模块5,用于保存FPGA的程序文件数据;可选地,外部存储模块包括nand flash、nor flash;
[0071 ]所述CPLD模块6,外部挂载存储器用来存储FPGA的程序文件,与FPGA模块3进行通信完成程序升级。
[0072]进一步地,所述FPGA模块3包括:协议栈模块31、控制模块32、、软核处理器模块33、配置模块34;其中,
[0073]所述协议栈模块31,用于解析接口传输的数据,将命令数据传输给软核处理器模块33,将镜像文件数据传输给控制模块32;
[0074]所述控制模块32,用于与协议栈模块31、软核处理器模块33、外部缓存模块4、CPLD模块6进行数据交换与控制;
[0075]所述软核处理器模块33,用于FPGA内部任务的调度、文件系统管理、控制命令的解析和分发以及工作流程控制;
[0076]所述配置模块34,用于接收到FPGA的程序文件数据后,进入初始化状态,然后进入用户状态,执行相应的用户应用操作。
[0077]进一步地,所述CPLD模块6包括:存储控制块61、软核处理器模块62、加载模块63;其中,
[0078]所述存储控制块61,用于与软核处理器模块62、加载模块63、FPGA模块3、外部存储模块5进行数据交互,对升级程序文件数据和升级命令数据进行控制、转发、存储;
[0079]所述软核处理器模块62,用于CPLD内部任务的调度、文件系统管理、控制命令的解析和分发以及工作流程控制;
[0080]所述加载模块63,用于接收存储控制块发送的FPGA程序文件数据,控制外部总线,发送程序文件数据给FPGA内部的配置模块。
[0081]图2是一种基于软核处理器的FPGA多镜像升级加载装置另一组成示意图。如图2所示,所述升级加载装置包括:上位机1、接口收发模块2、FPGA模块3、外部缓存模块4、外部存储模块5、CPLD模块6;其中,
[0082]所述上位机I,用于人机交互,进行程序升级和镜像切换控制;
[0083]所述接口收发模块2,用于上位机I和FPGA模块3之间的双向通信交互;可选地,接口包括以太网接口、串口、USB接口;
[0084]所述FPGA模块3,用于内部集成软核处理器和各自定义功能模块;
[0085]所述外部缓存模块4,用于临时存放系统待处理的数据;可选地,外部缓存模块包括DDR系列存储器;
[0086]所述外部存储模块5,用于保存FPGA的程序文件数据;可选地,外部存储模块包括nand flash、nor flash;
[0087]所述CPLD模块6,外部挂载存储器用来存储FPGA的程序文件,与FPGA模块3进行通信完成程序升级。
[0088]进一步地,所述FPGA模块3包括:协议栈模块31、控制模块32、、软核处理器模块33、配置模块34;其中,
[0089]所述协议栈模块31,用于解析接口传输的数据,将命令数据传输给软核处理器模块33,将镜像文件数据传输给控制模块32;
[0090]所述控制模块32,用于与协议栈模块31、软核处理器模块33、外部缓存模块4、CPLD模块6进行数据交换与控制;
[0091]所述软核处理器模块33,用于FPGA内部任务的调度、文件系统管理、控制命令的解析和分发以及工作流程控制;
[0092]所述配置模块34,用于接收到FPGA的程序文件数据后,进入初始化状态,然后进入用户状态,进入用户状态后执行相应的用户应用操作。
[0093]进一步地,所述CPLD模块6包括:存储控制块61、软核处理器模块62、加载模块63;其中,
[0094]所述存储控制块61,用于与软核处理器模块62、加载模块63、FPGA模块3、外部存储模块5进行数据交互,对升级程序文件数据和升级命令数据进行控制、转发、存储;
[0095]所述软核处理器模块62,用于CPLD内部任务的调度、文件系统管理、控制命令的解析和分发以及工作流程控制;
[0096]所述加载模块63,用于接收存储控制块发送的FPGA程序文件数据,控制外部总线,发送程序文件数据给FPGA内部的配置模块。
[0097]更进一步地,所述FPGA模块的控制模块32包括:主控制块321、缓存控制块322、主外部存储接口控制块323;其中,
[0098]所述主控制块321,用于大数据量传输,总线的切换和复用;
[0099]所述缓存控制块322,用于与主控制块321数据交互,对外部缓存模块4进行读写访问;
[0100]所述主外部存储接口控制块323,用于与主控制块321进行数据交互,控制外部总线与CPLD进行
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1