一种现场可编程门阵列程序加载系统和方法技术方案

技术编号:14930670 阅读:96 留言:0更新日期:2017-03-31 12:33
本发明专利技术公开了一种现场可编程门阵列程序加载系统和方法,属于现场可编程门阵列领域。所述系统包括:FPGA芯片和ARM芯片,FPGA芯片与ARM芯片连接,并在FPGA芯片与ARM芯片之间配置有PS接口,FPGA芯片还包括双口RAM模块;FPGA芯片包括第一传输模块,用于在FPGA芯片运行程序的过程中,向ARM芯片发送指令;ARM芯片包括第二传输模块,第二传输模块与双口RAM模块连接,用于在接收到指令后,从双口RAM模块中读取SOF;ARM芯片还包括处理模块,用于通过PS接口将SOF加载到FPGA芯片中;FPGA芯片还包括执行模块,用于执行SOF并运行SOF中的Bootloader程序;第二传输模块,还用于将ELF文件写入双口RAM模块中;执行模块,还用于通过Bootloader程序加载运行ELF文件。

【技术实现步骤摘要】

本专利技术涉及FPGA(FieldProgrammableGateArray,现场可编程门阵列)领域,特别涉及一种FPGA程序加载系统和方法。
技术介绍
FPGA芯片上运行的程序分为配置程序(SOF(SRAMObjectFile,静态随机存取存储器对象文件))和软件程序(ELF(ExecutableandLinkableFormat,可执行与可链接格式)文件),在运行程序时,先加载SOF,再加载ELF文件。FPGA芯片的程序加载分为2种加载模式:片内加载和片外加载。传统的片外加载模式是将待运行程序代码存储在FPGA芯片外部的EPCS(Erasableprogrammableconfigurableserial,可擦除可编程配置串口)芯片上,通过两者之间的专用串行接口实现FPGA芯片上电后的程序加载,由于EPCS芯片能提供相对较大的程序存储空间和较快的程序加载速度,目前大部分FPGA芯片的程序加载都采用这样的加载模式。但是这种传统的片外加载模式的局限性在于只能实现FPGA芯片上电后程序的一次性加载。程序加载完成后,如果需要给FPGA芯片加载新的程序,必须给FPGA芯片重新上电,这种局限性无法满足某些应用系统对于FPGA芯片运行程序在非掉电情况下多次加载的需求。
技术实现思路
为了解决现有技术在给FPGA芯片加载新的程序时,需要重新上电的问题,本专利技术实施例提供了一种FPGA程序加载系统和方法。所述技术方案如下:第一方面,本专利技术实施例提供了一种现场可编程门阵列程序加载系统,所述系统包括:现场可编程门阵列FPGA芯片和高级精简指令集处理器ARM芯片,所述FPGA芯片与所述ARM芯片连接,并在所述FPGA芯片与所述ARM芯片之间配置有被动串行配置模式PS接口,所述FPGA芯片还包括双口随机存取存储器RAM模块;所述FPGA芯片包括第一传输模块,用于在所述FPGA芯片运行程序的过程中,向所述ARM芯片发送指令;所述ARM芯片包括第二传输模块,所述第二传输模块与所述双口RAM模块连接,用于在接收到所述指令后,从所述双口RAM模块中读取静态随机存取存储器对象文件SOF;所述ARM芯片还包括处理模块,用于通过PS接口将所述SOF加载到所述FPGA芯片中;所述FPGA芯片还包括执行模块,用于执行所述SOF并运行SOF中的引导加载Bootloader程序,所述SOF包括所述Bootloader程序;所述第二传输模块,还用于将可执行与可链接格式ELF文件写入所述双口RAM模块中;所述执行模块,还用于通过所述Bootloader程序加载运行所述ELF文件。在本专利技术实施例的一种实现方式中,所述第一传输模块,还用于接收服务器发送的第一部分SOF;所述FPGA芯片还包括合成模块,用于将所述第一部分SOF与存储在所述FPGA芯片内部的第二部分SOF进行合成,得到所述SOF。在本专利技术实施例的另一种实现方式中,所述系统还包括与所述FPGA芯片连接的随机存取存储器RAM,所述第一传输模块,还用于将所述双口RAM模块中的所述ELF文件存储到所述RAM中;所述执行模块,用于通过所述Bootloader程序加载所述RAM中的所述ELF文件。在本专利技术实施例的另一种实现方式中,所述处理模块,还用于在读取到所述SOF后,确定出待加载的ELF文件,所述ARM芯片中存储有至少两个ELF文件。在本专利技术实施例的另一种实现方式中,所述处理模块,用于根据所述FPGA芯片的指令,确定出待加载的ELF文件;或者,根据读取SOF的次数,确定出待加载的ELF文件。第二方面,本专利技术实施例还提供了一种现场可编程门阵列程序加载方法,所述FPGA芯片与所述ARM芯片连接,并在所述FPGA芯片与所述ARM芯片之间配置有PS接口,所述FPGA芯片包括双口RAM模块,所述方法包括:所述FPGA芯片在运行程序的过程中,向所述ARM芯片发送指令,以使所述ARM芯片从所述双口RAM模块中读取SOF,并通过PS接口将所述SOF加载到所述FPGA芯片中;执行所述SOF并运行SOF中的Bootloader程序,所述SOF包括所述Bootloader程序;通过所述Bootloader程序加载运行ELF文件,所述ELF文件由所述ARM芯片写入到所述双口RAM模块中。在本专利技术实施例的一种实现方式中,所述方法还包括:接收服务器发送的第一部分SOF;将所述第一部分SOF与存储在所述FPGA芯片内部的第二部分SOF进行合成,得到所述SOF。在本专利技术实施例的另一种实现方式中,所述FPGA芯片还与RAM连接,所述方法还包括:将所述双口RAM模块中的所述ELF文件存储到所述RAM中;所述通过所述Bootloader程序加载运行ELF文件,包括:通过所述Bootloader程序加载所述RAM中的所述ELF文件。第三方面,本专利技术实施例还提供了一种现场可编程门阵列程序加载方法,所述FPGA芯片与所述ARM芯片连接,并在所述FPGA芯片与所述ARM芯片之间配置有PS接口,所述FPGA芯片包括双口RAM模块,所述方法包括:所述ARM芯片接收所述FPGA芯片运行程序的过程中发送的指令;从所述双口RAM模块中读取SOF;通过PS接口将所述SOF加载到所述FPGA芯片中,以使所述FPGA芯片执行所述SOF并运行SOF中的Bootloader程序,所述SOF包括所述Bootloader程序;将ELF文件写入所述双口RAM模块中,以使所述FPGA芯片通过所述Bootloader程序加载运行所述ELF文件。在本专利技术实施例的一种实现方式中所述方法还包括:在读取到所述SOF后,确定出待加载的ELF文件,所述ARM芯片中存储有至少两个ELF文件。本专利技术实施例提供的技术方案带来的有益效果是:通过将FPGA芯片与ARM芯片连接,在运行程序的过程中,如果需要运行新的程序,则FPGA芯片向ARM芯片发送指令,ARM芯片接收到该指令后,读取双口RAM模块中的SOF,并由ARM芯片通过PS模式(采用PS接口实现)加载到FPGA芯片中,FPGA芯片在加载SOF后,执行所述SOF并运行SOF中的Bootloader程序,然后通过Bootloader程序执行ARM芯片写入到双口RAM模块中的ELF文件,完成新的程序加载运行;在上述程序加载过程中,无需重新上电,满足了某些应用系统对于FPGA芯片运行程序在非掉电情况下多次加载的需求;另一方面,将ELF文件存储在ARM芯片中,实现了片外加载,解决了FPGA芯片存储空间小的问题。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的一种FPGA程序加载系统的结构示意图;图2是本专利技术实施例提供的一种FPGA程序加载方法的流程图;图3是本专利技术实施例提供的另一种FPGA程序加载方法的流程图;图4是本专利技术实施例提供的另一种FPGA程序加载方法的流程图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。图1是本专利技术实施例提供的一种FPGA程序加载系统的结构本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/55/201610946997.html" title="一种现场可编程门阵列程序加载系统和方法原文来自X技术">现场可编程门阵列程序加载系统和方法</a>

【技术保护点】
一种现场可编程门阵列程序加载系统,其特征在于,所述系统包括:现场可编程门阵列FPGA芯片和高级精简指令集处理器ARM芯片,所述FPGA芯片与所述ARM芯片连接,并在所述FPGA芯片与所述ARM芯片之间配置有被动串行配置模式PS接口,所述FPGA芯片包括双口随机存取存储器RAM模块;所述FPGA芯片还包括第一传输模块,用于在所述FPGA芯片运行程序的过程中,向所述ARM芯片发送指令;所述ARM芯片包括第二传输模块,所述第二传输模块与所述双口RAM模块连接,用于在接收到所述指令后,从所述双口RAM模块中读取静态随机存取存储器对象文件SOF;所述ARM芯片还包括处理模块,用于通过PS接口将所述SOF加载到所述FPGA芯片中;所述FPGA芯片还包括执行模块,用于执行所述SOF并运行SOF中的引导加载Bootloader程序,所述SOF包括所述Bootloader程序;所述第二传输模块,还用于将可执行与可链接格式ELF文件写入所述双口RAM模块中;所述执行模块,还用于通过所述Bootloader程序加载运行所述ELF文件。

【技术特征摘要】
1.一种现场可编程门阵列程序加载系统,其特征在于,所述系统包括:现场可编程门阵列FPGA芯片和高级精简指令集处理器ARM芯片,所述FPGA芯片与所述ARM芯片连接,并在所述FPGA芯片与所述ARM芯片之间配置有被动串行配置模式PS接口,所述FPGA芯片包括双口随机存取存储器RAM模块;所述FPGA芯片还包括第一传输模块,用于在所述FPGA芯片运行程序的过程中,向所述ARM芯片发送指令;所述ARM芯片包括第二传输模块,所述第二传输模块与所述双口RAM模块连接,用于在接收到所述指令后,从所述双口RAM模块中读取静态随机存取存储器对象文件SOF;所述ARM芯片还包括处理模块,用于通过PS接口将所述SOF加载到所述FPGA芯片中;所述FPGA芯片还包括执行模块,用于执行所述SOF并运行SOF中的引导加载Bootloader程序,所述SOF包括所述Bootloader程序;所述第二传输模块,还用于将可执行与可链接格式ELF文件写入所述双口RAM模块中;所述执行模块,还用于通过所述Bootloader程序加载运行所述ELF文件。2.根据权利要求1所述的系统,其特征在于,所述第一传输模块,还用于接收服务器发送的第一部分SOF;所述FPGA芯片还包括合成模块,用于将所述第一部分SOF与存储在所述FPGA芯片内部的第二部分SOF进行合成,得到所述SOF。3.根据权利要求1或2所述的系统,其特征在于,所述系统还包括与所述FPGA芯片连接的随机存取存储器RAM,所述第一传输模块,还用于将所述双口RAM模块中的所述ELF文件存储到所述RAM中;所述执行模块,用于通过所述Bootloader程序加载所述RAM中的所述ELF文件。4.根据权利要求1或2所述的系统,其特征在于,所述处理模块,还用于在读取到所述SOF后,确定出待加载的ELF文件,所述ARM芯片中存储有至少两个ELF文件。5.根据权利要求4所述的系统,其特征在于,所述处理模块,用于根据所述FPGA芯片的指令,确定出待加载的ELF文件;或者,根据读取SOF的次数,确定出待加载的ELF文件。6...

【专利技术属性】
技术研发人员:郑映张步龚智潘峰邓超伍力伟范月霞
申请(专利权)人:武汉船舶通信研究所
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1