高效切换FPGA加载逻辑版本的方法与系统与流程

专利2025-06-17  15


本发明涉及fpga设备,具体而言涉及一种高效切换fpga加载逻辑版本的方法。


背景技术:

1、fpga设备在上电启动时,会将存储在flash中的程序加载至fpga中。待程序加载完毕,fpga设备方可正常使用。如图1所示的fpga与flash的连接关系,从flash中加载的程序决定fpga设备所具备的功能。在当前的使用场景中,通常在flash中存储一个fpga版本,在设备上电时,fpga从flash中将程序读出加载后即可工作。

2、在此基础之上,现有技术提出了更加优化的加载方案,即在flash中存储两个fpga配置文件:版本a和版本b,当设备上电之后,加载版本a,若版本a加载失败,则加载版本b,通过该优化设计增加了fpga从flash中加载程序过程的稳定性。但此方案在正常加载情况下只具备版本a的功能,当版本a加载失败之后,才具备版本b的功能,即此方案并不具备加载版本的确定性。

3、当遇到需要更换fpga设备的功能时,只能对flash中的程序进行重新更新。比如,当前flash中存储的为版本a,上电后fpga从flash中加载完成后将具备版本a的功能,若此时需要fpga设备具有版本b的功能,则需要将flash中的版本a进行擦除操作,擦除之后重新写入版本b,在下一次上电时,fpga将从flash中加载版本b,从而使得fpga设备具备版本b的功能。

4、以上更换方案灵活性较差,若需要更换fpga设备功能,则需要重新对flash内容进行擦除后写入,操作时间较长,且若擦除或写入过程中遇到意外情况,比如断电,将会造成fpga设备无法工作的问题。


技术实现思路

1、鉴于现有技术存在的技术问题与缺陷,根据本发明目的的第一方面,提出一种高效切换fpga加载逻辑版本的方法,包括以下步骤:

2、在flash中写入配置字段以及能够被加载到fpga的m个逻辑配置文件版本,并配置多个逻辑配置文件版本中的一个作为默认加载版本,所述默认加载版本的flash地址被写入配置字段中的跳转地址,m为大于等于2的正整数;

3、fpga在上电后从所述flash中读取配置字段,并加载所述配置字段中配置的默认加载版本,并在加载完成后使得fpga将能够实现默认加载版本对应的fpga功能;

4、响应于fpga的功能切换并需要加载所述多个逻辑配置文件版本中的第i个版本,所述fpga读取flash中的配置字段并将其存储在存储器内;

5、fpga将flash中存储的配置字段进行擦除操作;

6、fpga读出所述存储器内的配置字段,将其中的跳转地址修改为第i个版本的地址,然后将修改之后的配置字段重新写入flash中,使得flash中更新存储修改之后的配置字段,其中i≤m;

7、fpga下电重启,并在重新上电后从所述flash中读取修改之后的配置字段,读取跳转地址并加载所述第i个版本,并在加载完成后使得fpga能够实现第i个版本对应的fpga功能,实现fpga的功能切换。

8、根据本发明目的的第二方面,提出一种高效切换fpga加载逻辑版本的系统,包括:

9、flash,被设置与fpga连接,并用于存储配置字段以及能够被加载到fpga的m个逻辑配置文件版本,所述多个逻辑配置文件版本中的一个被配置作为默认加载版本,所述默认加载版本的flash地址被写入配置字段中的跳转地址,其中m为大于等于2的正整数;

10、fpga,被配置能够从所述flash读取配置字段以获取其中默认加载版本的地址,完成默认加载版本的加载,并且能够存储并修改所述配置字段,将其中的跳转地址修改为需要切换加载的第i个逻辑配置文件版本的flash地址,然后通过擦除flash中的配置字段并将修改后的配置字段重新写入flash中,使得flash中更新存储修改之后的配置字段;

11、其中,所述fpga在完成对flash重新写入修改之后的配置字段后,通过下电重启再次读取flash中的配置字段,读取跳转地址并加载所述第i个版本,在加载完成后使得fpga能够实现第i个版本对应的fpga功能,实现fpga的功能切换。

12、由以上本发明提出的高效切换fpga加载逻辑版本的系统与方法,在flash中写入多个版本,可实现多个fpga逻辑配置文件版本之间的灵活切换,并且操作简单高效,且操作风险较整片flash擦写明显降低,能够适用于fpga设备功能切换的复杂场景。

13、与现有技术相比,本发明的高效切换fpga加载逻辑版本的系统与方法的显著优点在于:

14、1.提供快速切换和恢复能力:允许fpga在不同的逻辑配置文件之间快速切换,通过在flash中预先存储多个配置版本,并在需要时fpga能够通过修改配置字段中的跳转地址来选择不同的配置,可以迅速切换fpga的功能,适用于需要快速响应外部变化或故障恢复的应用;

15、2.增强fpga设备的灵活性:通过存储多个配置文件,用户可以根据不同的应用需求选择不同的逻辑配置,并且维护和更新过程简单,更新fpga加载的逻辑版本可通过fpga修改flash中的配置字段并擦除和重新写入flash即可,使得维护和升级过程更加快速、高效;同时,对flash擦除和重新写入的部分仅限于配置文件,操作过程简单、快速、安全,提高系统的可靠性和稳定性。



技术特征:

1.一种高效切换fpga加载逻辑版本的方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的高效切换fpga加载逻辑版本的方法,其特征在于,所述配置字段中包含同步头、加载时间寄存器地址、加载时间值、跳转地址寄存器地址以及跳转地址,所述跳转地址被配置用于写入逻辑配置文件版本所对应存储的flash地址。

3.根据权利要求1所述的高效切换fpga加载逻辑版本的方法,其特征在于,所述m个逻辑配置文件版本中的每一个版本均被独立存储在所述flash中,并记录每个逻辑配置文件版本存储在flash中的首行地址以及结尾标记。

4.根据权利要求1所述的高效切换fpga加载逻辑版本的方法,其特征在于,所述fpga在上电后从所述flash中读取配置字段,并加载所述配置字段中配置的默认加载版本,包括以下过程:

5.根据权利要求1所述的高效切换fpga加载逻辑版本的方法,其特征在于,所述fpga下电重启,并在重新上电后从所述flash中读取修改之后的配置字段,读取跳转地址并加载所述第i个版本,包括以下过程:

6.一种高效切换fpga加载逻辑版本的系统,其特征在于,包括:

7.根据权利要求6所述的高效切换fpga加载逻辑版本的系统,其特征在于,所述配置字段中包含同步头、加载时间寄存器地址、加载时间值、跳转地址寄存器地址以及跳转地址,所述跳转地址被配置用于写入逻辑配置文件版本所对应存储的flash地址。

8.根据权利要求6所述的高效切换fpga加载逻辑版本的系统,其特征在于,所述m个逻辑配置文件版本中的每一个版本均被独立存储在所述flash中,并记录每个逻辑配置文件版本存储在flash中的首行地址以及结尾标记。

9.根据权利要求6所述的高效切换fpga加载逻辑版本的系统,其特征在于,所述fpga被设置按照以下方式完成从flash读取配置字段以获取其中默认加载版本的地址,完成默认加载版本的加载的操作:

10.根据权利要求6所述的高效切换fpga加载逻辑版本的系统,其特征在于,所述fpga被设置按照以下方式完成通过下电重启再次读取flash中的配置字段,读取跳转地址并加载所述第i个版本的操作:


技术总结
本发明提供一种高效切换FPGA加载逻辑版本的方法与系统,该方法包括:在flash中写入配置字段和多个逻辑配置文件版本;FPGA从flash读取配置字段以获取默认加载版本的地址,完成默认加载版本加载,并能够存储并修改配置字段,将其中的跳转地址修改为需要切换加载的第i个版本的flash地址,然后擦除flash中的配置字段并将修改后的配置字段重新写入flash中,使flash中更新存储修改之后的配置字段。FPGA在完成对flash的配置字段重写后,下电重启再次读取flash中的配置字段,读取跳转地址并加载修改的版本,加载完成后,实现FPGA的功能切换。本发明可实现多个FPGA逻辑配置文件版本之间的灵活切换,并且操作简单高效,操作风险较整片flash擦写明显降低,适用于FPGA设备功能切换的复杂场景。

技术研发人员:连璐,王志刚
受保护的技术使用者:南京全信传输科技股份有限公司
技术研发日:
技术公布日:2024/12/17
转载请注明原文地址:https://xbbs.6miu.com/read-25441.html