[发明专利]基于软核处理器的FPGA多镜像升级加载方法及装置有效
申请号: | 201510937954.X | 申请日: | 2015-12-16 |
公开(公告)号: | CN105573789B | 公开(公告)日: | 2017-08-08 |
发明(设计)人: | 叶金平;付文明 | 申请(专利权)人: | 武汉精测电子技术股份有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 430070 湖北省武汉*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 处理器 fpga 多镜像 升级 加载 方法 装置 | ||
技术领域
本发明涉及FPGA升级加载领域,尤其涉及一种FPGA多镜像升级加载方法及装置。
背景技术
目前,FPGA(Field Programmable Gate Array,现场可编程门阵列)的程序升级方式主要有两种:使用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模块包括:协议栈模块、控制模块、软核处理器模块、配置模块;其中,
所述协议栈模块,用于解析接口传输的数据,将命令数据传输给软核处理器模块,将镜像文件数据传输给控制模块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉精测电子技术股份有限公司,未经武汉精测电子技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510937954.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于机载显示器的嵌入式引导方法
- 下一篇:一种完全卸载CRS的方法