一种基于USB转SPI的FPGA升级系统及方法与流程

文档序号:22757259发布日期:2020-10-31 09:54阅读:297来源:国知局
一种基于USB转SPI的FPGA升级系统及方法与流程

本发明属于服务器技术领域,具体涉及一种基于usb转spi的fpga升级系统及方法。



背景技术:

随着数据中心的崛起,fpga因动态可重配且性能功耗比高的优点,适合在云端数据中心进行部署,fpga的应用越来越广泛,fpga的灵活性是因为同一套硬件,通过修改不同的fpga程序实现不同的功能,同时也可以通过在线升级fpga程序,解决在使用过程中bug,增加产品的功能,因此在线升级fpga的方法变得越来越重要。

目前提升fpga的在线升级的速率显得尤为重要,大部分通过jtag接口升级fpga,可以完成擦除和读写等功能,但是由于jtag通常读写速度只有1.5mbit/s,所以升级时间较长,效率低,随着fpga的功能越来越强大,需要升级的文件越来越大,读写速度慢的问题,越来越影响fpga的升级效率;此外通过jtag串联方式实现多个不同板卡的fpga升级,每个板卡之间的走线较长,并且由于走线分叉的原因,会保留很长的残桩,jtag的读写速率将受到严重限制。



技术实现要素:

针对现有技术的上述不足,本发明提供一种基于usb转spi的fpga升级系统及方法,以解决上述技术问题。

第一方面,本发明提供一种基于usb转spi的fpga升级系统,包括:若干个设置fpga芯片的板卡、管理控制单元和usb总线,所述管理控制单元与usb集线器通信连接,所述板卡上还包括:交换机、usb转spi芯片和spiflash芯片;所述usb总线与所述usb转spi芯片通信连接;所述usb转spi芯片与所述交换机通信连接;所述交换机与fpga芯片和spiflash芯片分别通信连接;

所述管理控制单元用于进行fpga芯片升级和控制整个系统;

所述usb总线用于集成多个板卡的fpga芯片同时进行升级;

所述spiflash芯片用于以spi接口实现fpga升级;

所述usb转spi芯片用于将usb信号转换为spi信号;

所述交换机切换系统升级导通的线路。

进一步的,所述板卡包括:交换主板和若干数据接口模块;所述管理控制单元和usb总线设置在交换主板上;所述usb总线连接交换主板和若干数据接口模块上的usb转spi芯片。

进一步的,所述管理控制单元包括bmc;

第二方面,本发明提供一种基于usb转spi的fpga升级方法,包括:

bmc发出升级指令,所述升级指令包括至少一个进行需升级板卡的标记;

解析所述升级指令,根据所述标记选择需升级的板卡作为当前处理板卡;

在当前处理板卡内导通usb转spi芯片和spiflash芯片之间的线路,对spiflash芯片进行升级;

在当前处理板卡内导通spiflash芯片和fpga芯片之间的线路,对fpga芯片升级。

进一步的,在所述对fpga芯片升级后,所述方法还包括:返回升级完成信号。

进一步的,所述方法还包括:监测bmc是否收到升级完成信号:若无,则fpga芯片重新加载内部程序,并重新升级fpga芯片。

进一步的,所述方法还包括:对若干个设置fpga芯片的板卡进行唯一标记。

本发明的有益效果在于,

本发明提供的一种基于usb转spi的fpga升级系统及方法,通过usb转spi接口实现快速在线升级fpga程序,利用spi提升fpga芯片升级速度,从而提高了工作效率;解决了jtag的升级方式由于走线分叉的问题,方便了使用多个不同板卡的fpga升级。

此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例的系统的结构示意图。

图2是本发明一个实施例的方法的示意性流程框图。

图3是本发明一个实施例的方法的指令下发的示意性流程框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。

下面对本发明中出现的关键术语进行解释。

fpga(fieldprogrammablegatearray):一种现场可编程逻辑门阵列集成电路。

bmc(baseboardmanagementcontroller):基板管理控制器。

smb(switchmainboard):交换主板。

pim(portinterfacemodule),是一种数据接口模块。

jtag(jointtestactiongroup):联合测试工作组,是一种国际标准测试协议,主要用于芯片内部测试。

下面将参考附图并结合实施例来详细说明本发明。

实施例1

如图1所示,本实施例提供一种基于usb转spi的fpga升级系统,包括:交换主板和四个数据接口模块,所述交换主板设置bmc和usb集线器;若干个所述数据接口单元上分别设置升级模块,所述升级模块包括:fpga芯片、交换机、usb转spi芯片和spiflash芯片;所述usb转spi芯片与所述交换机通信连接;所述交换机与fpga芯片和spiflash芯片分别通信连接;所述usb集线器与若干个所述usb转spi芯片通信连接;所述交换主板上还设置升级模块,用于实现交换主板上fpga芯片的升级。基于本实施例可实现包括四个数据接口模块和一个交换主板,总五个板卡的fpga升级;所述升级模块用于以spi转换方式实现fpga升级。

图2是本发明一个实施例的方法的示意性流程图。其中,图2执行主体可以为一种基于usb转spi的fpga升级系统。

如图2所示,该方法100包括:

步骤110,bmc发出升级指令,所述升级指令包括至少一个进行需升级板卡的标记;

步骤120,解析所述升级指令,根据所述标记选择需升级的板卡作为当前处理板卡;

步骤130,在当前处理板卡内导通usb转spi芯片和spiflash芯片之间的线路,对spiflash芯片进行升级;

步骤140,在当前处理板卡内导通spiflash芯片和fpga芯片之间的线路,对fpga芯片升级。

可选地,作为本发明一个实施例,在所述对fpga芯片升级后,所述方法还包括:返回升级完成信号。

可选地,作为本发明一个实施例,所述方法还包括:监测bmc是否收到升级完成信号:若无,则fpga芯片重新加载内部程序,并重新升级fpga芯片。

可选地,作为本发明一个实施例,所述方法还包括:对若干个设置fpga芯片的板卡进行唯一标记。

基于上述实施例1所述的系统由一块smb和四块pim组成,本实施例以其中一块pim为例提供一种fpga在线升级的流程图,如图3所示,下面将图3中使用到的信号进行解释:

1.pim1_cs:pim1的交换机的选通信号;

2.pim1_s:pim1的交换机的选择导通信号,当pim1_s定义为0时,usb转spiflash芯片和spiflash芯片之间的spi接口导通,当pim1_s定义为1时,fpga芯片和spiflash芯片之间的spi接口导通;

3.pim1_up_flash:pim1的spiflash文件更新情况,当pim1_up_flash定义为0时,表示未更新完成,pim1_up_flash定义为1时,表示spiflash更新完成;

4.pim1_program_b:pim1的fpga是否重新加载程序,当pim1_program_b定义为0时,重新加载fpga程序,当pim1_program_b定义为1时,不重新加载程序;

5.pim1_done:pim1的fpga升级程序是否成功,当pim1_done定义为0时,加载fpga程序失败,当pim1_done定义为1时,加载fpga程序成功。

具体的工作流程如下:

(1)当bmc发出fpga在线升级的命令时,系统会判断pim的数值,不同的数值代表不同的pim,本实施例中pim=1,表示对pim1的fpga进行升级;

(2)此时bmc通过gpio分别将pim1_cs置为0,选通pim1的spiswitch;

(3)将pim1_s置为0,选通usb转spiflash芯片和spiflash芯片之间的spi接口,然后bmc通过usb总线转换为spi总线对spiflash进行升级;

(4)等待bmc完成对spiflash的升级,会将pim1_up_flash置为1,表示spiflash升级完成,将会继续向下进行,否则将返回上一动作,流程继续执行;

(5)bmc将pim1_program_b置为0,表示将fpga程序重新加载;

(6)将pim1_cs置为0,选通pim1的spiswitch,将pim1_s置为1,导通fpga芯片和spiflash芯片之间的spi接口,然后fpga通过spi接口完成升级;

(7)升级完成时,fpga将pim1_done置为1,表示fpga在线升级完成,否则将返回(5)。

尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1