本发明涉及fpga,具体而言涉及一种在线安全升级fpga逻辑配置文件版本的方法与系统。
背景技术:
1、通过fpga进行逻辑版本的在线升级是目前较为常用的升级方式。flash与fpga连接,需要进行版本升级时,通过fpga将flash相关区域进行擦除,并通过fpga将升级内容写入flash相关区域中。当下电后重新启动设备后,fpga将会从flash中加载升级之后的逻辑版本。
2、通过在线升级的方式,由fpga对flash内容进行升级,避免了额外的外接线操作flash,且操作简单高效。但在线升级过程中一旦出现意外情况,造成flash中内容破坏或是版本不完整,将会导致下电后fpga无法加载,设备失效。为避免此种问题产生,常用的方案是在flash中存储两个版本,即golden版本和update版本,如图1所示。为区分golden版本与update版本,通常golden版本不具备具体功能,但能够支持在线升级功能。在flash头部地址的配置字段中,设置跳转地址为update版本的首行地址,在上电启动时,fpga从flash中加载数据,当检测到跳转地址时,将直接跳转到update版本所在位置进行加载,直至检测到update版本结尾,结束本次加载,此时fpga将具备update版本功能。若update版本出现问题,在update版本加载失败时,fpga会跳转至flash首行地址处重新加载golden版本,此时fpga将具备golden版本功能。
3、基于此设计,在线升级过程中,仅升级update版本,而不更新golden版本。若在线升级过程出现意外导致update版本故障,则下电重启之后,fpga将从flash中加载golden版本,此版本具备在线升级功能,可重新对update版本进行刷新。
4、通过此设计可避免在线升级失败导致的fpga无法工作的问题,但由于golden版本不具备具体功能,因此若update版本故障后,若不能通过在线升级对update版本进行修复,则fpga仍然无法正常工作。
技术实现思路
1、本发明目的在于提供一种在线安全升级fpga逻辑配置文件版本的方法,可提升在线升级fpga逻辑版本的可靠性和安全性,避免在线升级过程中出现异常造成的fpga功能丢失,无法正常运行。
2、根据本发明目的的第一方面,提出一种在线安全升级fpga逻辑配置文件版本的方法,包括以下步骤:
3、在flash中存储配置字段以及不同版本的逻辑配置文件,所述逻辑配置文件包括能够加载到fpga的基础版本、正式版本和备用版本,其中基础版本仅具备在线升级功能,不具备具体逻辑功能;正式版本和备用版本完全相同,均具备在线升级功能及具体逻辑功能;
4、fpga上电启动,从flash中首先加载正式版本,加载完成后通过正式版本进行在线升级:
5、-在先升级优先更新备用版本,若备用版本更新成功,则将配置字段中的跳转地址修改至更新后的备用版本的首行地址;
6、-修改完成之后,通过在线升级更新正式版本,若更新成功,则将配置字段中的跳转地址修改至更新后的正式版本的首行地址;
7、在完成正式版本和备用版本的在线升级后,flash中的正式版本和备用版本均更新为升级版本,且配置字段中的跳转地址为正式版本的首行地址,当fpga下电重启之后,fpga从flash读取内容,通过读取配置字段中的跳转地址,从正式版本的首行地址开始加载升级版本,直至加载完成,实现fpga逻辑功能更新。
8、根据本发明目的的第二方面,提出一种在线安全升级fpga逻辑配置文件版本的系统,包括:
9、flash,与fpga相连接,用于存储配置字段以及不同版本的逻辑配置文件,所述逻辑配置文件包括能够加载到fpga的基础版本、正式版本和备用版本,其中基础版本仅具备在线升级功能,不具备具体逻辑功能;正式版本和备用版本完全相同,均具备在线升级功能及具体逻辑功能;
10、fpga,被设置能够在上电启动后,从flash中首先加载正式版本,并在加载完成后通过正式版本进行在线升级,包括:
11、-在先升级优先更新备用版本,若备用版本更新成功,则将配置字段中的跳转地址修改至更新后的备用版本的首行地址;
12、-修改完成之后,通过在线升级更新正式版本,若更新成功,则将配置字段中的跳转地址修改至更新后的正式版本的首行地址;
13、其中,在完成正式版本和备用版本的在线升级后,所述flash中的正式版本和备用版本均更新为升级版本,且配置字段中的跳转地址设置为正式版本的首行地址,当fpga下电重启之后,fpga从flash读取内容,通过读取配置字段中的跳转地址,从正式版本的首行地址开始加载升级版本,直至加载完成,实现fpga逻辑功能更新。
14、结合以上本发明的系统与方法,在flash中存储有基础版本、正式版本和备用版本三个版本,在线升级时先更新备用版本,若更新成功,则将配置字段中的跳转地址修改至备用版本首行地址;修改完成之后,通过在线升级更新正式版本,若更新成功,则将配置字段中的跳转地址修改至正式版本首行地址。由此,本发明通过上述操作能够大大提升在线升级fpga逻辑版本的可靠性,即使在线升级失败,也可保证再次上电后的fpga具备正常功能,因此能够提升在线升级过程的可靠性和安全性,能够有效避免在线升级失败对fpga功能的影响。
1.一种在线安全升级fpga逻辑配置文件版本的方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的在线安全升级fpga逻辑配置文件版本的方法,其特征在于,所述配置字段中包含跳转地址,当fpga读取flash内容并检测到跳转地址时,跳转至跳转地址进行版本加载,直至检测到版本结尾标记,本次加载完成。
3.根据权利要求2所述的在线安全升级fpga逻辑配置文件版本的方法,其特征在于,所述配置字段中的跳转地址默认配置为正式版本的首行地址。
4.根据权利要求2所述的在线安全升级fpga逻辑配置文件版本的方法,其特征在于,若跳转至跳转地址加载版本故障,则回到flash首行地址继续读取,进行基础版本加载。
5.根据权利要求1所述的在线安全升级fpga逻辑配置文件版本的方法,其特征在于,若在线升级更新备用版本过程出现异常,导致备用版本故障,fpga下电重启后,从flash中读取内容,此时flash中存储的正式版本能够正常加载,备用版本为故障版本,通过读取flash配置字段中的跳转地址,获取到正式版本的首行地址,跳转至正式版本的首行地址开始加载正式版本,直至检测到正式版本的结尾标记,结束加载;加载完毕后,fpga具备正式版本的逻辑功能。
6.根据权利要求1所述的在线安全升级fpga逻辑配置文件版本的方法,其特征在于,
7.一种在线安全升级fpga逻辑配置文件版本的系统,其特征在于,包括:
8.根据权利要求7所述的在线安全升级fpga逻辑配置文件版本的系统,其特征在于,所述配置字段中包含跳转地址,当fpga读取flash内容并检测到跳转地址时,跳转至跳转地址进行版本加载,直至检测到版本结尾标记,本次加载完成;其中所述配置字段中的跳转地址默认配置为正式版本的首行地址。
9.根据权利要求7所述的在线安全升级fpga逻辑配置文件版本的系统,其特征在于,若跳转至跳转地址加载版本故障,则回到flash首行地址继续读取,进行基础版本加载。
10.根据权利要求7所述的在线安全升级fpga逻辑配置文件版本的系统,其特征在于,若在线升级更新备用版本过程出现异常,导致备用版本故障,fpga下电重启后,从flash中读取内容,此时flash中存储的正式版本能够正常加载,备用版本为故障版本,通过读取flash配置字段中的跳转地址,获取到正式版本的首行地址,跳转至正式版本的首行地址开始加载正式版本,直至检测到正式版本的结尾标记,结束加载;加载完毕后,fpga具备正式版本的逻辑功能。
11.根据权利要求7所述的在线安全升级fpga逻辑配置文件版本的系统,其特征在于,若在线升级更新正式版本过程出现异常,导致正式版本故障,fpga下电重启后,从flash中读取内容,此时flash中存储的备用版本为更新成功的升级版本,能够正常加载,正式版本为故障版本,fpga通过读取flash配置字段中的跳转地址,获取到更新后的备用版本的首行地址即更新成功后的升级版本的首行地址,跳转至备用版本的首行地址开始加载升级版本,直至检测到备用版本的结尾标记,结束加载;加载完毕后,fpga具备升级版本的逻辑功能。
