本发明涉及计算机应用技术领域,具体提供一种在线更新fpga配置芯片的方法及系统。
背景技术:
随着社会经济的飞速发展,社会各个领域的技术都有了长足的进步。目前,随着数字通信协议的增多,现场可编程门阵列(fieldprogrammablegatearray,fpga)的应用越来越广泛,fpga作为一种重要的可编程逻辑器件,具有丰富的逻辑资源和i/o资源,设计周期短,开发费用低,风险小,能够提高数字系统的集成度,可靠性高,在数据系统中应用较为广泛。此外由于其易编程与快速升级架构的特性,在电子设备中得到了广泛的应用。
然而通用的fpga芯片一般基于掉电易失性存储器而设计,在掉电后不能保存配置文件,为了保证上电后能够正常工作,必须通过外部非易失性存储器存储配置文件,在上电时再将配置文件导入fpga芯片以正常加载。
常见的fpga更新升级通常采用fpga厂商提供的jtag(jointtestactiongroup,联合测试行为组织标准)方式下载到fpga以后,再固化到fpga的非易失性存储器中,这种方法更新速度不快,一旦需要系统规模较大,则重复性工作量将非常大,并且繁琐。
技术实现要素:
本发明的技术任务是针对上述存在的问题,提供一种不需要专门的下载工具,即能够实现快速的更新fpga配置芯片,提高更新效率,简化操作过程的在线更新fpga配置芯片的方法。
本发明进一步的技术任务是提供一种在线更新fpga配置芯片的系统。
为实现上述目的,本发明提供了如下技术方案:
一种在线更新fpga配置芯片的方法,所述方法利用fpga和cpld的可编程性,将fpga配置为slaveselectmap模式,将fpga和cpld相连,cpld外挂fpga配置芯片的flash,fpga与pc机相连,通过pc机上的logicprogrammer工具进行fpga配置芯片内容更新,其中pc机上设置有pcie槽。
该在线更新fpga配置芯片的方法可以在pc机上通过应用软件进行fpga配置芯片内容更新,更新完后,板卡重新上电加载的代码就是更新的代码,不需要专用的xilinxjtag下载工具,只需要将板卡经过pcie接口挂载到pc机上,通过软件进行更新。所述在线更新fpga配置芯片的方法可以应用在计算机领域、云终端、物联网终端等带有pcie接口的fpga板卡的应用场景中,应用领域广泛。
作为优选,该方法在fpga内部例化pcieendpointip核,通过pc机的pcie槽对应的pcieendpointip核驱动进行开发,做成logicprogrammer工具;pcie转wishbonemaster模块负责把logicprogrammer工具发送的命令和数据从pcie数据格式转换成wishbone接口格式;带wishboneslave接口的loader模块接收wishbonemaster数据,通过wishboneslaveloader模块将命令和数据送到挂接的cpld上,cpld将数据写入外挂的flash,通过pc机上的logicprogrammer工具进行配置芯片内容更新。
作为优选,fpga接入pc机后,将fpga第一次上电通过专用的jtag工具下载可用的fpga代码到fpga配置芯片中。
作为优选,重新上电,在pc机端打开logicprogrammer工具,将生成的带有测试功能的fpga代码文件放入logicprogrammer工具内,点击下载进行fpga配置芯片内容更新。
作为优选,fpga配置芯片更新完成后,对fpga板卡进行重新上电加载fpga配置芯片的程序,验证在线更新fpga配置芯片成功。
一种在线更新fpga配置芯片的系统,包括fpga板卡和pc机,fpga板卡上设置有pcieendpoint模块、pcie转wishbonemaster模块和wishboneslaveloader模块,fpga板卡通过pcieendpoint模块与pc机相连,pcieendpoint模块与pcie转wishbonemaster模块相连,pcie转wishbonemaster模块与wishboneslaveloader模块相连,fpga板卡通过wishboneslaveloader模块与cpld相连,cpld外挂fpga配置芯片的flash。
该在线更新fpga配置芯片的系统的应用过程为:在fpga内部例化pcieendpointip核,通过pc机的pcie槽对应的pcieendpointip核驱动进行开发,做成logicprogrammer工具;pcie转wishbonemaster模块负责把logicprogrammer工具发送的命令和数据从pcie数据格式转换成wishbone接口格式;带wishboneslave接口的loader模块接收wishbonemaster数据,通过wishboneslaveloader模块将命令和数据送到挂接的cpld上,cpld将数据写入外挂的flash,通过pc机上的logicprogrammer工具进行配置芯片内容更新。
将fpga接入pc机后,上电通过专用的jtag工具下载可用的fpga代码到fpga配置芯片中。重新上电,在pc机端打开logicprogrammer工具,将生成的带有测试功能的fpga代码文件放入logicprogrammer工具内,点击下载进行fpga配置芯片内容更新。fpga配置芯片更新完成后,对fpga板卡进行重新上电加载fpga配置芯片的程序,验证在线更新fpga配置芯片成功。
作为优选,所述pc机上做成有logicprogrammer工具,logicprogrammer工具进行配置芯片内容更新;fpga的第一次代码下载是通过专用的jtag工具下载可用的fpga代码到fpga配置芯片中。
作为优选,第一次通过专用的jtag工具下载可用的fpga代码后,以后代码更新是在pc机端打开logicprogrammer工具,将生成的带有测试功能的fpga代码文件放入logicprogrammer工具内,点击下载进行fpga配置芯片内容更新。
与现有技术相比,本发明的在线更新fpga配置芯片的方法具有以下突出的有益效果:所述在线更新fpga配置芯片的方法,在fpga内部利用pcie接口在pc机上开发出logicprogrammer工具,利用应用软件进行配置芯片内容的更新,不需要专门的jtag烧录工具,并且可以应用到计算机领域、云终端、物联网终端等带有pcie接口的fpga板卡的应用场景中,应用领域广泛,具有良好的推广应用价值。
附图说明
图1是本发明所述在线更新fpga配置芯片的系统的拓扑图。
具体实施方式
下面将结合附图和实施例,对本发明的在线更新fpga配置芯片的方法及系统作进一步详细说明。
实施例1
本发明的在线更新fpga配置芯片的方法,该方法利用fpga和cpld的可编程性,将fpga配置为slaveselectmap模式,将fpga和cpld相连,cpld外挂fpga配置芯片的flash。
fpga与pc机相连,通过pc机上的logicprogrammer工具进行fpga配置芯片内容更新。其中pc机上设置有pcie槽。
实施例2
在实施例一的基础上,本发明的在线更新fpga配置芯片的方法,在fpga内部例化pcieendpointip核,通过pc机的pcie槽对应的pcieendpointip核驱动进行开发,做成logicprogrammer工具。pcie转wishbonemaster模块负责把logicprogrammer工具发送的命令和数据从pcie数据格式转换成wishbone接口格式。带wishboneslave接口的loader模块接收wishbonemaster数据,通过wishboneslaveloader模块将命令和数据送到挂接的cpld上,cpld将数据写入外挂的flash,通过pc机上的logicprogrammer工具进行配置芯片内容更新。
其中,将fpga第一次上电通过专用的jtag工具下载可用的fpga代码到fpga配置芯片中,后续不需要专用下载工具就能进行代码更新。重新上电,在pc机端打开logicprogrammer工具,将生成的带有测试功能的fpga代码文件放入logicprogrammer工具内,点击下载进行fpga配置芯片内容更新。fpga配置芯片更新完成后,对fpga板卡进行重新上电加载fpga配置芯片的程序,验证在线更新fpga配置芯片成功。
该在线更新fpga配置芯片的方法可以在pc机上通过应用软件进行fpga配置芯片内容更新,更新完后,板卡重新上电加载的代码就是更新的代码,不需要专用的xilinxjtag下载工具,只需要将板卡经过pcie接口挂载到pc机上,通过软件进行更新。所述在线更新fpga配置芯片的方法可以应用在计算机领域、云终端、物联网终端等带有pcie接口的fpga板卡的应用场景中,应用领域广泛。
实施例3
如图1所示,本发明的在线更新fpga配置芯片的系统,包括fpga板卡和pc机,fpga板卡上设置有pcieendpoint模块、pcie转wishbonemaster模块和wishboneslaveloader模块,fpga板卡通过pcieendpoint模块与pc机相连,pcieendpoint模块与pcie转wishbonemaster模块相连,pcie转wishbonemaster模块与wishboneslaveloader模块相连,fpga板卡通过wishboneslaveloader模块与cpld相连,cpld外挂fpga配置芯片的flash。
其中,pc机上做成有logicprogrammer工具,logicprogrammer工具进行配置芯片内容更新,fpga板卡接入pc机后,fpga的第一次代码下载是通过专用的jtag工具下载可用的fpga代码到fpga配置芯片中。第一次通过专用的jtag工具下载可用的fpga代码后,以后代码更新是在pc机端打开logicprogrammer工具,将生成的带有测试功能的fpga代码文件放入logicprogrammer工具内,点击下载进行fpga配置芯片内容更新。fpga配置芯片更新完成后,对fpga板卡进行重新上电加载fpga配置芯片的程序,验证在线更新fpga配置芯片成功。
该在线更新fpga配置芯片的系统的工作过程为:在fpga内部例化pcieendpointip核,通过pc机的pcie槽对应的pcieendpointip核驱动进行开发,做成logicprogrammer工具;pcie转wishbonemaster模块负责把logicprogrammer工具发送的命令和数据从pcie数据格式转换成wishbone接口格式;带wishboneslave接口的loader模块接收wishbonemaster数据,通过wishboneslaveloader模块将命令和数据送到挂接的cpld上,cpld将数据写入外挂的flash,通过pc机上的logicprogrammer工具进行配置芯片内容更新。
以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。