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

文档序号:9810319阅读:来源:国知局
数据传输。
[0101]更进一步地,所述CPLD模块的存储控制模块61包括:从外部存储接口控制子块611、存储控制子块612;其中,
[0102]所述从外部存储接口控制子块611,用于与FPGA进行总线交互,接收FPGA的升级程序文件数据和升级命令数据,将程序文件数据转发给存储控制子块612,将命令数据转发给CPLD的软核处理器模块62;
[0103]所述存储控制子块612,用于接收从外部存储接口控制子块611的数据,将数据存储到外部存储模块5中,并接收软核处理器模块62的控制命令,从外部存储模块5读取FPGA的程序文件数据,将程序文件数据发送给加载模块63。
[0104]本技术方案中,加载方式有两种应用,在线加载和上电加载两种:
[0105]I)在线加载
[0106]在线加载有两种情况,第一种情况是FPGA镜像文件升级完成后,CPLD会主动从外部存储模块中读取刚升级的镜像文件,将镜像文件发送给FPGA的配置模块,实现FPGA的加载启动。
[0107]第二种情况是程序正在运行过程中,通过改变上位机的应用场景后(即选择不同的功能),应用软件将改变后的应用场景通过接口发给FPGA的软核处理器,软核处理器根据接收到的应用场景自动查找合适的应用镜像,然后将需要切换的镜像文件名通过主外部总线接口发送给CPLD的软核处理器,并发送切换镜像命令,CPLD的软核处理器根据FPGA的软核处理器发送的文件名从外部存储器中读出要加载的镜像文件,发送给FPGA的配置模块,实现FPGA的加载启动。
[0108]2)上电加载
[0109]上电加载主要应用于电时的FPGA加载。主要流程是CPLD上电完成后,CPLD根据当前加载镜像的配置信息,选择需要加载的镜像文件,从外部存储器中读出要加载的镜像文件,发送给FPGA的配置模块,实现FPGA的加载启动。
[0110]本技术方案中,多镜像文件是指多个不同功能的FPGA程序,每次升级只能升级一个程序,不能同时升级,但能够依次升级。每次升级一个文件2s内能完成。
[0111]最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于软核处理器的FPGA多镜像升级加载方法,其特征在于,所述方法包括如下步骤: 上位机选择需要升级的镜像文件,通过接口下发升级开始命令,FPGA内部的协议栈解析出命令信息后发送给FPGA的软核处理器模块,所述FPGA的软核处理器模块根据命令得到升级镜像的文件名和文件长度,然后发送FPGA已经准备好升级的消息包给所述上位机; 所述上位机收到回包后,开始下发镜像文件数据; 所述FPGA的软核处理器模块通过设置FPGA的控制模块,将所述上位机下发的镜像文件数据通过控制模块存储到外部缓存模块中; 镜像文件数据下发完成后,所述FPGA的软核处理器模块通过控制模块通知CPLD的软核处理器模块,并将镜像文件的文件名、文件长度传给CPLD; CPLD就绪后,所述FPGA的软核处理器模块通过所述FPGA的控制模块将需要升级的镜像文件数据从FPGA的外部缓存模块读出,然后通过主外部总线接口发送给CPLD,所述CPLD的软核处理器模块通过外部总线接口读取数据,然后发给存储控制块,完成升级镜像文件的存储; 所有数据都写入CPLD外部存储模块后,CPLD设置当前镜像文件为下次的加载文件,并更新升级完成寄存器的状态,所述FPGA的软核处理器模块查询到该寄存器状态后,通过接口通知上位机升级操作完成; 升级完成后,实现FPGA的加载。2.如权利要求1所述的升级加载方法,其特征在于,所述FPGA的软核处理器模块通过设置FPGA的控制模块,将所述上位机下发的镜像文件数据通过控制模块存储到外部缓存模块中的具体实现方法为: 所述FPGA的软核处理器模块通过设置FPGA控制模块中的主控制块,将所述上位机下发的镜像文件数据通过控制模块中的缓存控制块存储到外部缓存模块中。3.如权利要求1所述的升级加载方法,其特征在于,所述镜像文件数据下发完成后,所述FPGA的软核处理器模块通过控制模块通知CPLD的软核处理器模块的具体实现方法为: 镜像文件数据下发完成后,所述FPGA的软核处理器模块通过控制模块中的主外部存储接口控制块通知CPLD的软核处理器模块。4.如权利要求1所述的升级加载方法,其特征在于,所述升级完成后,实现FPGA的加载的方法具体包括: FPGA镜像文件升级完成后,CPLD主动从外部存储模块中读取刚升级的镜像文件,将镜像文件发送给FPGA的配置模块,实现FPGA的加载。5.一种基于软核处理器的FPGA多镜像升级加载装置,其特征在于,所述装置包括:上位机、接口收发模块、FPGA模块、外部缓存模块、外部存储模块、CPLD模块;其中, 所述上位机,用于人机交互,进行程序升级和镜像切换控制; 所述接口收发模块,用于上位机和FPGA模块之间的双向通信交互; 所述FPGA模块,用于内部集成软核处理器和各自定义功能模块; 所述外部缓存模块,用于临时存放系统待处理的数据; 所述外部存储模块,用于保存FPGA的程序文件数据; 所述CPLD模块,外部挂载存储器用来存储FPGA的程序文件,与FPGA模块进行通信完成程序升级。6.如权利要求5所述的升级加载装置,其特征在于,所述FPGA模块包括:协议栈模块、控制模块、软核处理器模块、配置模块;其中, 所述协议栈模块,用于解析接口传输的数据,将命令数据传输给软核处理器模块,将镜像文件数据传输给控制模块; 所述控制模块,用于与协议栈模块、软核处理器模块、外部缓存模块、CPLD模块进行数据交换与控制; 所述软核处理器模块,用于FPGA内部任务的调度、文件系统管理、控制命令的解析和分发以及工作流程控制; 所述配置模块,用于接收到FPGA的程序文件数据后,进入初始化状态,然后进入用户状态,执行相应的用户应用操作。7.如权利要求6所述的升级加载装置,其特征在于,所述控制模块包括:主控制块、缓存控制块、主外部存储接口控制块;其中, 所述主控制块,用于大数据量传输,总线的切换和复用; 所述缓存控制块,用于与主控制块数据交互,对外部缓存模块进行读写访问; 所述主外部存储接口控制块,用于与主控制块进行数据交互,控制外部总线与CPLD进行数据传输。8.如权利要求5所述的升级加载装置,其特征在于,所述CPLD模块包括:存储控制块、软核处理器模块、加载模块;其中, 所述存储控制块,用于与软核处理器模块、加载模块、FPGA模块、外部存储模块进行数据交互,对升级程序文件数据和升级命令数据进行控制、转发、存储; 所述软核处理器模块,用于CPLD内部任务的调度、文件系统管理、控制命令的解析和分发以及工作流程控制; 所述加载模块,用于接收存储控制块发送的FPGA程序文件数据,控制外部总线,发送程序文件数据给FPGA内部的配置模块。9.如权利要求8所述的升级加载装置,其特征在于,所述存储控制块包括:从外部存储接口控制子块、存储控制子块;其中, 所述从外部存储接口控制子块,用于与FPGA进行总线交互,接收FPGA的升级程序文件数据和升级命令数据,将程序文件数据转发给存储控制子块,将命令数据转发给CPLD的软核处理器模块; 所述存储控制子块,用于接收从外部存储接口控制子块的数据,将数据存储到外部存储模块中,并接收软核处理器模块的控制命令,从外部存储模块中读取FPGA的程序文件数据,将程序文件数据发送给加载模块。
【专利摘要】本发明公开了一种基于软核处理器的FPGA多镜像升级加载方法,采用单FPGA的方式,内部嵌入软核处理器和各控制块来实现接口功能、实现程序文件缓存功能、实现同CPLD完成芯片级的互联总线接口功能,升级加载方法由FPGA和CPLD共同完成;本发明还公开了一种基于软核处理器的FPGA多镜像升级加载装置,所述装置包括:上位机、接口收发模块、FPGA模块、外部缓存模块、外部存储模块、CPLD模块。从而实现基于不同应用场景的FPGA多镜像快速升级及灵活加载。
【IPC分类】G06F9/445
【公开号】CN105573789
【申请号】CN201510937954
【发明人】叶金平, 付文明
【申请人】武汉精测电子技术股份有限公司
【公开日】2016年5月11日
【申请日】2015年12月16日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1