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

文档序号:9810319阅读:461来源:国知局
基于软核处理器的fpga多镜像升级加载方法及装置的制造方法
【技术领域】
[0001 ]本发明涉及FPGA升级加载领域,尤其涉及一种FPGA多镜像升级加载方法及装置。
【背景技术】
[0002]目前,FPGA(Field Programmable Gate Array,现场可编程门阵列)的程序升级方式主要有两种:使用FPGA编程器通过FPGA的烧录软件对FPGA进行程序升级;通过应用软件将FPGA的程序文件下发给FPGA,FPGA通过内部RSU功能进行程序自升级。
[0003]这两种方式都存在一定的局限性,第一种升级方式的缺点:升级速度非常慢、不能进行远程升级、只支持单镜像程序文件升级;第二种升级方式的优缺点:优点支持远程升级、缺点是升级速度慢,只支持单镜像程序文件升级。
[0004]随着FPGA的技术不断的发展,FPGA能够完成的外设功能越来越丰富,在同一片FPGA中可以完成不同功能的应用,但是受FPGA自身资源的限制,不能把FPGA自身所支持的功能完全放在同一个镜像程序中,而且在同一个镜像程序中包含过多功能时,对整个系统的稳定性、时序、功耗均有较大的影响。为了解决上述问题,可按不同的应用场景进行功能划分,在同一FPGA中采用不同的镜像文件来完成不同的功能,达到优化时序、降低功耗、提尚系统的稳定性等目的。

【发明内容】

[0005]为了解决当前FPGA程序升级速度慢和镜像个数少的问题,实现基于不同应用场景的FPGA多镜像快速升级及灵活加载,本发明提供了一种基于软核处理器的FPGA多镜像升级加载方法及装置。
[0006]一方面,本发明提供一种基于软核处理器的FPGA多镜像升级加载方法,所述方法包括如下步骤:
[0007]上位机选择需要升级的镜像文件,通过接口下发升级开始命令,FPGA内部的协议栈解析出命令信息后发送给FPGA的软核处理器模块,所述FPGA的软核处理器模块根据命令得到升级镜像的文件名和文件长度,然后发送FPGA已经准备好升级的消息包给所述上位机;
[0008]所述上位机收到回包后,开始下发镜像文件数据;
[0009]所述FPGA的软核处理器模块通过设置FPGA的控制模块,将所述上位机下发的镜像文件数据通过控制模块存储到外部缓存模块中;
[0010]镜像文件数据下发完成后,所述FPGA的软核处理器模块通过控制模块通知CPLD的软核处理器模块,并将镜像文件的文件名、文件长度传给CPLD;
[0011 ] CPLD就绪后,所述FPGA的软核处理器模块通过所述FPGA的控制模块将需要升级的镜像文件数据从FPGA的外部缓存模块读出,然后通过主外部总线接口发送给CPLD,所述CPLD的软核处理器模块通过外部总线接口读取数据,然后发给存储控制块,完成升级镜像文件的存储;
[0012]所有数据都写入CPLD外部存储模块后,CPLD设置当前镜像文件为下次的加载文件,并更新升级完成寄存器的状态,所述FPGA的软核处理器模块查询到该寄存器状态后,通过接口通知上位机升级操作完成;
[0013]升级完成后,实现FPGA的加载。
[0014]进一步地,所述FPGA的软核处理器模块通过设置FPGA控制模块中的主控制块,将所述上位机下发的镜像文件数据通过控制模块中的缓存控制块存储到外部缓存模块中。
[0015]进一步地,镜像文件数据下发完成后,所述FPGA的软核处理器模块通过控制模块中的主外部存储接口控制块通知CPLD的软核处理器模块。
[0016]进一步地,所述升级完成后,实现FPGA的加载的方法具体包括:
[0017]FPGA镜像文件升级完成后,CPLD主动从外部存储模块中读取刚升级的镜像文件,将镜像文件发送给FPGA的配置模块,实现FPGA的加载。
[0018]另一方面,本发明提供一种基于软核处理器的FPGA多镜像升级加载装置,所述装置包括:上位机、接口收发模块、FPGA模块、外部缓存模块、外部存储模块、CPLD模块;其中,
[0019]所述上位机,用于人机交互,进行程序升级和镜像切换控制;
[0020]所述接口收发模块,用于上位机和FPGA模块之间的双向通信交互;
[0021 ]所述FPGA模块,用于内部集成软核处理器和各自定义功能模块;
[0022]所述外部缓存模块,用于临时存放系统待处理的数据;
[0023]所述外部存储模块,用于保存FPGA的程序文件数据;
[0024]所述CPLD模块,外部挂载存储器用来存储FPGA的程序文件,与FPGA模块进行通信完成程序升级。
[0025]进一步地,所述FPGA模块包括:协议栈模块、控制模块、软核处理器模块、配置模块;其中,
[0026]所述协议栈模块,用于解析接口传输的数据,将命令数据传输给软核处理器模块,将镜像文件数据传输给控制模块;
[0027]所述控制模块,用于与协议栈模块、软核处理器模块、外部缓存模块、CPLD模块进行数据交换与控制;
[0028]所述软核处理器模块,用于FPGA内部任务的调度、文件系统管理、控制命令的解析和分发以及工作流程控制;
[0029]所述配置模块,用于接收到FPGA的程序文件数据后,进入初始化状态,然后进入用户状态,执行相应的用户应用操作。
[0030]进一步地,所述FPGA的控制模块包括:主控制块、缓存控制块、主外部存储接口控制块;其中,
[0031]所述主控制块,用于大数据量传输,总线的切换和复用;
[0032]所述缓存控制块,用于与主控制块数据交互,对外部缓存模块进行读写访问;
[0033]所述主外部存储接口控制块,用于与主控制块进行数据交互,控制外部总线与CPLD进行数据传输。
[0034]进一步地,所述CPLD模块包括:存储控制块、软核处理器模块、加载模块;其中,
[0035]所述存储控制块,用于与软核处理器模块、加载模块、FPGA模块、外部存储模块进行数据交互,对升级程序文件数据和升级命令数据进行控制、转发、存储;
[0036]所述软核处理器模块,用于CPLD内部任务的调度、文件系统管理、控制命令的解析和分发以及工作流程控制;
[0037]所述加载模块,用于接收存储控制块发送的FPGA程序文件数据,控制外部总线,发送程序文件数据给FPGA内部的配置模块。
[0038]进一步地,所述存储控制块包括:从外部存储接口控制子块、存储控制子块;其中,
[0039]所述从外部存储接口控制子块,用于与FPGA进行总线交互,接收FPGA的升级程序文件数据和升级命令数据,将程序文件数据转发给存储控制子块,将命令数据转发给CPLD的软核处理器模块;
[0040]所述存储控制子块,用于接收从外部存储接口控制子块的数据,将数据存储到外部存储模块中,并接收软核处理器模块的控制命令,从外部存储模块中读取FPGA的程序文件数据,将程序文件数据发送给加载模块。
[0041 ]本技术方案中,基于软核处理器的FPGA多镜像升级加载方法及装置是采用单FPGA的方式,内部嵌入软核处理器和各控制块来实现接口功能、实现程序文件缓存功能、实现同CPLD完成芯片级的互联总线接口功能等。采用单CPLD实现FPGA的多镜像程序文件升级管理和FPGA程序文件选择加载启动功能等。
[0042]本技术方案中,远程升级实现方法由FPGA和CPLD共同完成。
[0043]本技术方案中,基于软核处理器的FPGA多镜像升级加载方法及装置的主要功能是完成FPGA的多镜像程序升级,以及根据相关配置选择相应的镜像文件给FPGA进行加载。加载方法为:
[0044]FPGA的多镜像加载主要由CPLD协助完成,首先CPLD正常运行后,CPLD通过读取外部存储存储器的配置信息选择相应的FPGA镜像文件,然后将镜像文件数据从外部存储模块中读出,发送给FPGA的配置模块,实现FPGA的加载启动。
[0045]本发明与现有技术相比,具有以下优点:
[0046](1)、远程升级时间大大缩短,单个镜像文件升级过程在2秒内完成。而以前采用编程器对FPGA进行程序升级方法大约在3分钟左右,采用带有RSU功能的远程升级方式大约在40秒左右。
[0047](2)、该装置支持多镜像功能,根据外部存储空间的大小支持2个和2个以上的FPGA镜像文件。实现将多个FPGA的应用程序一次性烧写到装置中,在实际应用中可以通过设置来选择不同的镜像文件进
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1