现场可编程逻辑门阵列的配置系统和方法与流程

文档序号:22255623发布日期:2020-09-18 13:37阅读:155来源:国知局
现场可编程逻辑门阵列的配置系统和方法与流程

本发明涉及现场可编程逻辑门阵列技术领域,具体涉及现场可编程逻辑门阵列的配置系统和方法。



背景技术:

现场可编程逻辑门阵列(fieldprogrammablegatearray,fpga)作为灵活可配置器件,随着信息产业以及微电子的发展,越来越多的应用于视频图像处理、通信领域、数字信号处理等领域,并要求fpga具备多种功能和更强的数据处理能力。

传统的fpga系统,需要与配置存储器和数据存储器连接,配合使用。其结构如图1所示,配置存储器一般采用nor存储器,用于存储fpga配码,上电后将配码传输给fpga,完成上电配置。数据存储器一般采用nand存储器,用于存放fpga访问数据。

然而,上述现有技术存在如下技术缺陷:

上述传统方案中,在板级布局时,需要布置两颗存储器芯片,增加了板级面积开销和设计复杂度。并且nor存储器的容量较小,在几十至几百兆比特范围,而且与fpga配套的nor存储器一般只够存放一个版本配码。



技术实现要素:

本发明的目的是提供现场可编程逻辑门阵列的配置系统和方法,以解决现有技术中需要通过nor存储器存储fpga配码文件的技术问题。

本发明实施例提供了以下方案:

依据本发明的第一个方面,本发明实施例提供现场可编程逻辑门阵列的配置系统,包括:nand存储器和fpga;

所述nand存储器包括:数据阵列、配码阵列、第一配置接口和nand控制器,所述fpga包括:第二配置接口和nand接口,所述第二配置接口与所述第一配置接口连接,所述nand接口与所述nand控制器连接;

所述配码阵列,用于存储多个版本的配码文件;

所述第一配置接口,用于在上电之后,从所述配码阵列中读取第一配码,并将所述第一配码发送至所述第二配置接口,以使所述fpga进行配置;

所述数据阵列,用于存储所述fpga的访问数据;

所述fpga,用于通过所述nand接口向所述nand控制器发送数据读写指令;

所述nand控制器,用于根据所述数据读写指令对所述数据阵列进行读写操作。

优选的,所述nand存储器,还包括:版本切换模块;

所述fpga,用于通过所述nand接口将版本切换指令发送至所述nand控制器;

所述nand控制器,还用于将所述版本切换指令发送至所述版本切换模块;

所述版本切换模块,用于从所述版本切换指令中提取第二配码的版本信息,并根据所述版本信息更改所述第一配置接口中访问的配码地址;

所述第一配置接口,还用于根据所述配码地址从所述配码阵列中读取所述第二配码,并将所述第二配码发送至所述第二配置接口,以使所述fpga进行配置。

优选的,所述配码阵列,还用于存储所述配码文件的备份配码;

所述版本切换模块,还用于检测所述第一配置接口是否接收到所述第二配置接口返回的配置成功信号;若所述第一配置接口未接收到所述配置成功信号,则向所述第一配置接口发送二次配置指令;

所述第一配置接口,还用于根据所述二次配置指令从所述配码阵列中读取所述第一配码的备份配码,并将所述第一配码的备份配码发送至所述第二配置接口,以使所述fpga进行二次配置。

优选的,所述配码阵列,还用于存储所述配码文件的冗余配码;所述nand存储器,还包括:

配码保护模块,用于对所述配码文件进行错误检查和纠正ecc校验,以及对所述冗余配码进行控制。

优选的,所述nand存储器,还包括:

第一jtag接口,用于将所述多个版本的配码文件烧写入所述配码阵列中。

优选的,所述fpga,还包括:

第二jtag接口,用于对所述fpga进行初始配置;

所述fpga,还用于通过所述nand接口访问外部存储器,将所述外部存储器中的配码文件烧写至所述配码阵列中。

依据本发明的第二个方面,提供了现场可编程逻辑门阵列的配置方法,基于现场可编程逻辑门阵列的配置系统,所述系统包括:nand存储器和fpga;所述nand存储器包括:数据阵列、配码阵列、第一配置接口和nand控制器,所述fpga包括:第二配置接口和nand接口;所述方法包括:

所述nand存储器在上电之后,通过所述第一配置接口从所述配码阵列中读取第一配码,并将所述第一配码发送至所述fpga的所述第二配置接口,以使所述fpga进行配置,所述配码阵列中存储有多个版本的配码文件;

所述fpga通过所述nand接口向所述nand控制器发送数据读写指令;

所述nand控制器根据所述数据读写指令对所述数据阵列进行读写操作,所述数据阵列中存储有所述fpga的访问数据。

优选的,所述方法还包括:

所述fpga通过所述nand接口将版本切换指令发送至所述nand存储器的版本切换模块;

所述版本切换模块从所述版本切换指令中提取第二配码的版本信息,并根据所述版本信息更改所述第一配置接口中访问的配码地址;

所述第一配置接口根据所述配码地址从所述配码阵列中读取所述第二配码,并将所述第二配码发送至所述第二配置接口,以使所述fpga进行配置。

优选的,所述将所述第二配码发送至所述第二配置接口之后,所述方法还包括:

所述版本切换模块若未接收到所述fpga返回的配置成功信号,则通过所述第一配置接口从所述配码阵列中读取所述第一配码的备份配码,并将所述第一配码的备份配码发送至所述第二配置接口,以使所述fpga进行配置,所述配码阵列中存储有所述配码文件的备份配码。

优选的,所述方法还包括:

所述nand存储器的配码保护模块对所述配码文件进行错误检查和纠正ecc校验,以及对所述配码文件的冗余配码进行控制,所述配码阵列中存储有所述配码文件的冗余配码。

本发明与现有技术相比,具有如下的优点和有益效果:

本发明的现场可编程逻辑门阵列的配置系统,包括:nand存储器和fpga;所述nand存储器包括:数据阵列、配码阵列、第一配置接口和nand控制器,所述fpga包括:第二配置接口和nand接口,所述第二配置接口与所述第一配置接口连接,所述nand接口与所述nand控制器连接;所述配码阵列,用于存储多个版本的配码文件;所述第一配置接口,用于在上电之后,从所述配码阵列中读取第一配码,并将所述第一配码发送至所述第二配置接口,以使所述fpga进行配置;所述fpga,用于通过所述nand接口将访问数据发送至所述nand控制器;所述nand控制器,用于将所述访问数据传输至所述数据阵列;所述数据阵列,用于存储所述fpga的访问数据。本发明将配码文件和访问数据均存储在nand存储器中,实现了所述fpga的配置和存储一体化,取消了现有技术中的nor存储器,整个系统只需要一颗外部存储器,节省了单独的fpga配置存储器电路开销,节约了板级面积,减少了板级开发难度。同时,nand存储器的大容量特点可为fpga存储多个配置版本,提高了fpga配置的灵活性。

附图说明

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

图1为现有技术中现场可编程逻辑门阵列系统的结构示意图;

图2为本发明实施例中现场可编程逻辑门阵列的配置系统的结构示意图;

图3为本发明实施例中现场可编程逻辑门阵列的配置方法的流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明实施例保护的范围。

第一实施例

参照图2,图2为本发明实施例中现场可编程逻辑门阵列的配置系统的结构示意图。

在本实施例中,所述现场可编程逻辑门阵列的配置系统包括:nand存储器和fpga。

所述nand存储器包括:数据阵列、配码阵列、第一配置接口和nand控制器,所述fpga包括:第二配置接口和nand接口,所述第二配置接口与所述第一配置接口连接,所述nand接口与所述nand控制器连接。

所述配码阵列,用于存储多个版本的配码文件。

所述第一配置接口,用于在上电之后,从所述配码阵列中读取第一配码,并将所述第一配码发送至所述第二配置接口,以使所述fpga进行配置。

本实施例取消配置存储器,在nand存储器控制电路中,增加fpga配置控制电路,将配码文件和访问数据一同存储在nand存储器中,使nand存储器同时具有fpga配置和数据存储的功能,整个系统只需要一颗外部存储器,节省了单独的fpga配置存储器电路开销,符合目前的应用场景,并节约了板级面积,减少了板级开发难度。而且,本实施例易于实现,可更新迭代。目前一些nand控制器采用fpga或者软硬件结合的方式实现。基于nand控制器的灵活可迭代性质,在其中嵌入fpga配置功能逻辑,容易实现。

具体地,所述nand存储器包括:数据阵列、配码阵列,其中,所述配码阵列用于存储多个版本的配码文件,所述数据阵列用于存储所述fpga的访问数据。

在所述nand存储器上电之后,所述第一配置接口将从所述配码阵列中读取第一配码,所述第一配码为默认版本的配码文件,并将所述第一配码发送至所述fpga的第二配置接口,以使所述fpga根据所述第一配码进行配置。

所述数据阵列,用于存储所述fpga的访问数据;所述fpga,用于通过所述nand接口向所述nand控制器发送数据读写指令;所述nand控制器,用于根据所述数据读写指令对所述数据阵列进行读写操作。

在配置完成之后,所述fpga将进行工作,并将工作中产生的访问数据存储在所述数据阵列中,还能将存储在所述数据阵列中的数据读取出来,具体为:所述fpga通过所述nand接口向所述nand控制器发送数据读写指令;所述nand控制器接收所述数据读写指令,当所述数据读写指令为数据写入指令时,将所述数据写入指令携带的数据写入所述数据阵列中;当所述数据读写指令为数据读取指令时,从所述数据阵列中读取相应的数据,并传输至所述fpga,从而实现了所述fpga的配置和存储一体化,提高了fpga系统性能。

在一种可能的实施方式中,所述nand存储器,还包括:版本切换模块。所述fpga,用于通过所述nand接口将版本切换指令发送至所述nand控制器;所述nand控制器,还用于将所述版本切换指令发送至所述版本切换模块;所述版本切换模块,用于从所述版本切换指令中提取第二配码的版本信息,并根据所述版本信息更改所述第一配置接口中访问的配码地址;所述第一配置接口,还用于根据所述配码地址从所述配码阵列中读取所述第二配码,并将所述第二配码发送至所述第二配置接口,以使所述fpga进行配置。

传统方案中,与fpga配套的nor存储器容量一般只够存放一个版本配码,配置存储器只支持fpga配置功能,无法实现fpga多个配码切换功能,导致fpga的灵活性较低。为了提高所述fpga的灵活性,在所述nand存储器中设置版本切换模块,结合所述配码阵列中存储的多个版本的配码文件,对所述fpga的功能进行更新。当需要更新所述fpga的功能时,即需要更新所述fpga的配码版本时,所述fpga通过所述nand接口将版本切换指令发送至所述版本切换模块,以使所述版本切换模块在接收到所述版本切换指令时,从所述版本切换指令中提取第二配码的版本信息,并将所述第一配置接口中访问的配码地址修改为所述版本信息中的地址;所述第二配码为所述fpga更新所需的配码,所述第二配码与所述第一配码的版本不同,所述版本信息包括所述第二配码的版本名称和所述第二配码的配码地址。所述第一配置接口将根据所述配码地址从所述配码阵列中读取所述第二配码,并将所述第二配码发送至所述第二配置接口,以使所述fpga进行配置,从而实现将所述fpga的配码从所述第一配码切换至所述第二配码。

在一种可能的实施方式中,所述配码阵列,还用于存储所述配码文件的备份配码或者冗余配码;所述版本切换模块,还用于检测所述第一配置接口是否接收到所述第二配置接口返回的配置成功信号;若所述第一配置接口未接收到所述配置成功信号,则向所述第一配置接口发送二次配置指令;所述第一配置接口,还用于根据所述二次配置指令从所述配码阵列中读取所述第一配码的备份配码或者冗余配码,并将所述第一配码的备份配码或者冗余配码发送至所述第二配置接口,以使所述fpga进行二次配置。

考虑到所述fpga可能出现上电配置不成功的情形,所述版本切换模块还具有反复上电配置功能,具体为:在向所述第二配置接口发送第一配码后,若所述fpga配置成功,则所述fpga将通过所述第二配置接口向所述第一配置接口返回配置成功信号;若fpga配置失败,则所述fpga不会向所述第一配置接口返回配置成功信号。在所述第一配置接口向所述第二配置接口发送所述第一配码之后,所述版本切换模块等待预设时间后将检测所述第一配置接口是否接收到所述配置成功信号,若所述第一配置接口未接收到所述配置成功信号,则向所述第一配置接口发送二次配置指令。所述第一配置接口在接收到所述二次配置指令之后,将根据所述二次配置指令从所述配码阵列中读取所述第一配码的备份配码或者冗余配码,并将所述第一配码的备份配码或者冗余配码发送至所述第二配置接口,以使所述fpga进行二次配置。

当然,在向所述第二配置接口发送所述第一配码的备份配码后,若预设时间内仍未接收到所述fpga返回的配置成功信号,则认为配置失败,所述版本切换模块将向所述第一配置接口发送三次配置指令,以使所述第一配置接口从所述配码阵列中读取第三配码,所述第三配码与所述第一配码的版本不同,并将所述第三配码发送至所述第二配置接口,以使所述fpga根据所述第三配码进行配置。以此类推,依次读取所述配码阵列中的各个配码文件或备份配码,直至所述版本切换模块接收到所述fpga返回的配置成功信号或者遍历所有配码文件,从而解决所述fpga上电配置不成功的问题,提高了所述fpga的可靠性。

在一种可能的实施方式中,所述nand存储器,还包括:配码保护模块,用于对所述配码文件进行错误检查和纠正(errorcorrectingcode,ecc)校验,以及对所述冗余配码进行控制。由于传统方案中,配置存储器在数据保护和数据恢复方面功能有限,配码是fpga非常重要的数据,一旦数据发生错误将直接导致fpga的功能失效,而且所述nand存储器相比nor存储器容易出现坏块,因此,为了提高配码的可靠性,所述nand控制器中设置有该控制器本身的坏块管理、垃圾回收等管理策略,并且,在所述nand存储器中还设置有所述配码保护模块,用于实现对所述配码文件进行错误检查和纠正(ecc)校验,或者冗余配码控制。

例如,所述配码阵列包括:三个存储单元,均用于存储所述多个版本的配码文件,即每个配码文件具有相同的三份文件;所述配码保护模块,具体用于对所述三个存储单元中的配码文件进行三模冗余处理。投票表决电路是一种电路处理机制,其基本思想是三个模块同时执行相同的操作,以多数相同的输出作为表决系统的正确输出,通常称为三取二,所述三个模块中只要不同时出现两个相同的错误,就能掩蔽掉故障模块的错误,保证系统正确的输出,由于三个模块是互相独立的,两个模块同时出现错误是极小概率事件,故可以大大提高系统的可信性。本实施例从该三个存储单元中同时读取第一配码,通过所述投票表决电路对来自三个存储单元中的第一配码进行投票表决,以三模冗余裁决的结果为目标配码,并将所述目标配码发送至所述第二配置接口,以供所述fpga根据所述目标配码进行配置,从而在某个配码文件出现错误时,仍能获得正确的配码文件,提高了配码的可靠性。

在一种可能的实施方式中,所述nand存储器还包括:第一jtag接口,用于将所述多个版本的配码文件写入所述配码阵列中,此为将所述配码文件烧写至所述配码阵列中的第一种方式。

在一种可能的实施方式中,所述fpga,还包括:第二jtag接口,用于对所述fpga进行初始配置,给fpga加载一个初始版本;所述fpga,还用于在初始配置完成之后,通过所述nand接口访问外部存储器,并将所述外部存储器中的配码文件烧写至所述配码阵列中,此为将所述配码文件烧写至所述配码阵列中的第二种方式。

本申请实施例中提供的技术方案,至少具有如下技术效果或优点:

本实施例的现场可编程逻辑门阵列的配置系统,包括:nand存储器和fpga;所述nand存储器包括:数据阵列、配码阵列、第一配置接口和nand控制器,所述fpga包括:第二配置接口和nand接口,所述第二配置接口与所述第一配置接口连接,所述nand接口与所述nand控制器连接;所述配码阵列,用于存储多个版本的配码文件;所述第一配置接口,用于在上电之后,从所述配码阵列中读取第一配码,并将所述第一配码发送至所述第二配置接口,以使所述fpga进行配置;所述fpga,用于通过所述nand接口将访问数据发送至所述nand控制器;所述nand控制器,用于将所述访问数据传输至所述数据阵列;所述数据阵列,用于存储所述fpga的访问数据。本实施例将配码文件和访问数据一同存储在nand存储器中,实现了所述fpga的配置和存储一体化,取消了现有技术中的nor存储器,整个系统只需要一颗外部存储器,节省了单独的fpga配置存储器电路开销,节约了板级面积,减少了板级开发难度。同时,nand存储器的大容量特点可为fpga存储多个配置版本,提高了fpga配置的灵活性。

第二实施例

基于同一发明构思,如图3所示,本发明实施例还提供现场可编程逻辑门阵列的配置方法,该方法基于现场可编程逻辑门阵列的配置系统,所述系统包括:nand存储器和fpga;其中,所述nand存储器包括:数据阵列、配码阵列、第一配置接口和nand控制器,所述fpga包括:第二配置接口和nand接口,所述第二配置接口与所述第一配置接口连接,所述nand接口与所述nand控制器连接。所述方法包括:

步骤s10:所述nand存储器在上电之后,通过所述第一配置接口从所述配码阵列中读取第一配码,并将所述第一配码发送至所述fpga的所述第二配置接口,以使所述fpga进行配置,所述配码阵列中存储有多个版本的配码文件。

步骤s20:所述fpga通过所述nand接口向所述nand控制器发送数据读写指令。

步骤s30:所述nand控制器根据所述数据读写指令对所述数据阵列进行读写操作,所述数据阵列中存储有所述fpga的访问数据。

在一种可能的实施方式中,所述方法还包括:

所述fpga通过所述nand接口将版本切换指令发送至所述nand存储器的版本切换模块;

所述版本切换模块从所述版本切换指令中提取第二配码的版本信息,并根据所述版本信息更改所述第一配置接口中访问的配码地址;

所述第一配置接口根据所述配码地址从所述配码阵列中读取所述第二配码,并将所述第二配码发送至所述第二配置接口,以使所述fpga进行配置。

在一种可能的实施方式中,所述将所述第二配码发送至所述第二配置接口之后,所述方法还包括:

所述版本切换模块若未接收到所述fpga返回的配置成功信号,则通过所述第一配置接口从所述配码阵列中读取所述第一配码的备份配码,并将所述第一配码的备份配码发送至所述第二配置接口,以使所述fpga进行配置,所述配码阵列中存储有所述配码文件的备份配码。

在一种可能的实施方式中,所述方法还包括:

所述nand存储器的配码保护模块对所述配码文件进行错误检查和纠正ecc校验,以及对所述配码文件的冗余配码进行控制,所述配码阵列中存储有所述配码文件的冗余配码。

在一种可能的实施方式中,所述nand存储器还包括:第一jtag接口;所述步骤s10之前,所述方法还包括:

通过所述第一jtag接口将多个版本的配码文件烧写入所述配码阵列中。

在一种可能的实施方式中,所述fpga还包括:第二jtag接口;在所述步骤s10之前,所述方法还包括:

通过所述第二jtag接口对所述fpga进行初始配置;

所述fpga在初始配置之后,通过所述nand接口访问外部存储器,并将所述外部存储器中的配码文件烧写至所述配码阵列中。

本发明实施例与现有技术相比,具有如下的优点和有益效果:

本实施例通过nand存储器在上电之后,通过第一配置接口从配码阵列中读取第一配码,并将所述第一配码发送至fpga的第二配置接口,以使所述fpga进行配置,所述配码阵列中存储有多个版本的配码文件;所述fpga通过所述nand接口向所述nand控制器发送数据读写指令;所述nand控制器根据所述数据读写指令对所述数据阵列进行读写操作,所述数据阵列中存储有所述fpga的访问数据。本实施例将配码文件和访问数据一同存储在nand存储器中,实现了所述fpga的配置和存储一体化,取消了现有技术中的nor存储器,整个系统只需要一颗外部存储器,节省了单独的fpga配置存储器电路开销,节约了板级面积,减少了板级开发难度。同时,nand存储器的大容量特点可为fpga存储多个配置版本,提高了fpga配置的灵活性。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、装置(模块、系统)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。

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