本发明属于fpga远程配置,特别是涉及一种fpga多镜像启动与远程配置方法。
背景技术:
1、在当前的产品体系中,fpga的应用越来越广泛,包括国产和国外的fpga芯片在嵌入式产品中都得到的大量使用。
2、fpga主要基于sram工艺,具有良好的可编程性和可定制性。其功能程序存储在外部的flash中,上电后,fpga在特定的加载逻辑和指令下读取外部flash中的程序代码,对fpga内部的逻辑门阵列和内部连线进行功能例化,从而实现对应的程序功能。
3、在常规的技术实现中,将功能程序烧写到flash的途径主要是通过jtag接口实现,发现下载错误可以重复烧写以保证flash中的程序正确性。
4、在某些复杂的应用环境中,fpga不能提供jtag接口来实现fpga软件的修改或更新。此时,就需要采用远程配置方法来实现,采用uart接口、网口等具备远程通信能力的接口通过fpga的远程配置功能读写flash的方式进行flash内部程序数据的修改。
5、这些远程配置方法采用fpga的远程配置功能来实现flash的读写,而fpga的远程配置功能程序也存在的同一片flash中,这就带来一个问题:一旦flash中的程序数据的修改发生错误,fpga在上电后将不能加载正确的功能程序代码,这样fpga整个系统无法正常工作,远程配置功能程序也无法运行。
6、因此提供了一种multiboot的技术方法,在flash中配置两个或以上的程序代码区:安全程序区和功能程序区,分别存储安全程序镜像和功能程序镜像,如图1所示。fpga上电后multiboot在完成引导镜像后直接跳过安全程序镜像,有选择性地从存储于flash中的多个配置镜像中加载其中的一个,对fpga进行重配置,以实现不同的功能,如图2所示。
7、常用的远程配置方法可以在安全程序镜像和功能程序镜像中均设计远程配置模块来更新功能程序区的程序数据,正常情况下由功能程序镜像中的远程配置模块来更新功能程序区的程序。在某些异常情况下功能程序镜像错误无法正常加载,则通过multiboot的fallback功能跳回到安全程序镜像执行功能程序镜像的修复和更新功能。该远程配置方法需要在功能程序的功能模块外添加远程更新功能模块,增加了功能程序的复杂度,对功能程序的时序、资源等均会带来不利影响。
8、或者是将远程配置模块和功能程序模块分别设计为独立的安全程序镜像和功能程序镜像,在安全程序镜像工作后执行跳转功能加载功能程序镜像,这样会增加fpga系统的功能程序启动时间,不适用于某些对启动时间要求较高的应用环境。
技术实现思路
1、本发明的目的是针对现有技术不足,提供了一种fpga多镜像启动与远程配置方法,可以将远程配置功能和fpga需要正常运行的功能进行镜像隔离,可避免远程配置功能对功能程序在时序、资源等方面的影响。
2、为了实现上述目的,本发明所采用的技术方案是:
3、在flash中配置两个分区,第一分区存储安全程序镜像,第二分区存储功能程序镜像;
4、所述安全程序镜像包括远程配置模块,所述安全程序镜像的起始引导区设置同步跳转指令集,所述安全程序镜像的尾部预设地址上设置第一看门狗指令;
5、所述功能程序镜像包括icap镜像跳转功能模块、功能程序模块和第二看门狗指令;
6、fpga上电后识别到同步跳转指令集,跳转到安全程序镜像的尾部预设地址,开启看门狗定时器,加载功能程序镜像;
7、若功能程序镜像加载成功,则执行功能程序;功能程序执行过程中,若收到远程配置请求,则通过icap镜像跳转功能跳转到安全程序镜像,执行远程配置功能;否则继续执行功能程序;
8、若功能程序镜像未加载成功或看门狗定时器超时,则跳转到安全程序镜像,执行远程配置功能。
9、本发明将远程配置模块和功能程序模块分别存储于flah不同分区,fpga上电后直接运行功能程序,在需要重新配置时才跳转到安全程序镜像,执行远程配置;可以将远程配置功能和fpga需要正常运行的功能进行镜像隔离,相互之间独立互不干扰,既方便功能程序的软件维护和管理,又可避免远程配置功能对功能程序在时序、资源等方面的影响。
10、进一步地,所述第一看门狗指令的定时时间大于或等于功能程序镜像的加载时间。以保证fpga在加载功能程序镜像错误的情况下能触发fallback以加载安全程序镜像。
11、优选地,所述同步跳转指令集依次包括八组无效字、一组总线宽度字、两组无效字、一组同步字、一组空操作字、一组跳转位置字、一组跳转指令字和一组空操作字。
12、相比于现有技术,本发明的有益效果:
13、本发明将远程配置模块和功能模块分别存储于flash不同分区,fpga上电后直接运行功能程序,在需要重新配置时才跳转到安全程序镜像,执行远程配置;可以将远程配置功能和fpga需要正常运行的功能进行镜像隔离,相互之间独立互不干扰,既方便功能程序的软件维护和管理,又可避免远程配置功能对功能程序在时序、资源等方面的影响。
1.一种fpga多镜像启动与远程配置方法,其特征在于,包括以下实现过程:
2.根据权利要求1所述的fpga多镜像启动与远程配置方法,其特征在于,所述第一看门狗指令的定时时间大于或等于功能程序镜像的加载时间。
3.根据权利要求1所述的fpga多镜像启动与远程配置方法,其特征在于,所述同步跳转指令集依次包括八组无效字、一组总线宽度字、两组无效字、一组同步字、一组空操作字、一组跳转位置字、一组跳转指令字和一组空操作字。