一种基于FPGA的数据处理方法及装置与流程

文档序号:12664743阅读:200来源:国知局
一种基于FPGA的数据处理方法及装置与流程

本发明涉及通信技术领域,具体涉及一种基于FPGA的数据处理方法及装置。



背景技术:

现场可编程门阵列FPGA由于其高速性和灵活性,成为当今嵌入式系统开发中最热门的关键技术之一,被广泛应用于各个行业领域。FPGA大都基于易失性RAM结构的,下电后配置文件会丢失,所以需要一个非易失性存储器事先将配置文件存储起来,每次上电时加载到FPGA里面去。加载时间通常取决于配置文件的大小,FPGA器件越大,配置文件越大,加载时间也就越长。

在众多当代应用中,嵌入式系统必须满足及其苛刻的时序要求,其中之一就是启动时间,例如计算机设备上的PCI Express(PCIe)接口,系统上电后100ms,系统的根组件就开始扫描总线以便弄清拓扑结构,并在这一过程中进行初始化配置,如果PCIe设备没有准备好响应配置请求,根组件就找不到此PCIe设备,并认为它不存在,该设备将无法加入PCIe总线系统。

目前市场上很多FPGA器件带有PCIe IP核,可以轻松在FPGA内部实现PCIe功能,减少PCB面积。根据计算机PCIe设备的启动时序要求,需要FPGA在100ms内完成配置,针对带有PCIe功能的FPGA快速配置方法目前是将FPGA配置文件放入外部非易失性存储器中,每次上电主动或被动加载配置文件。主动即是FPGA自行读取外部非易失性存储器内部的配置文件并写入内部易失性存储器中;被动即是通过微处理器从外部非易失性存储器读取FPGA配置文件,然后模拟FPGA的加载时序,写入到FPGA内部易失性存储器中。

然而因为使用单个非易失性存储器,这就需要对非易失性存储器带宽要求很高。非易失性存储器分类包括EEPROM和闪存flash,EEPROM容量小、速度慢通常作为硬件设置数据存储器,配置文件的存储需要使用闪存flash;闪存flash分为norflash和nandflash,nandflash容量大通常作为U盘、硬盘等存储工具,而配置文件的存储需要使用norflash;nor flash分为串行SPI flash和并行CFI flash,SPI flash因为是串行的,带宽很低,无法满足快速配置的需求,只有高速的并行CFI flash可以满足需求,但是这类flash价格昂贵,管脚巨多。



技术实现要素:

本发明提供了一种基于FPGA的数据处理方法及装置,能够有效解决现场可编程门阵列FPGA加载配置文件时间过长导致计算机无法识别FPGA内部PCIE的问题。

本发明中一种基于FPGA的数据处理方法包括:

接收FPGA发送的第一配置文件;

按预定规则,对所述第一配置文件进行拆分,得到N个第一配置文件的子文件,并将N个子文件存入对应的N个非易失性存储器中;

并行处理N个非易失性存储器中的子文件,得到N个处理子文件;

将所述N个处理子文件进行合并,得到第二配置文件;

向所述FPGA发送所述第二配置文件,控制所述FPGA进行读取;

其中N为自然数。

可选的,

将所述第一配置文件设置为第一升级配置文件和第一出厂配置文件;

将所述第二配置文件设置为第二升级配置文件和第二出厂配置文件。

可选的,

将所述非易失性存储器设置为具有升级存储区和出厂存储区;

所述升级存储区用于存储第一升级配置文件的子文件;

所述出厂存储区用于存储第一出厂配置文件的子文件。

可选的,

步骤所述向所述FPGA发送所述第二配置文件之后还包括:

判断FPGA是否成功读取第二升级文件;

若是,则结束加载进程;

若否,则向所述FPGA发送所述第二出厂配置文件,控制所述FPGA进行读取。

可选的,

步骤所述按预定规则,对所述第一配置文件进行拆分,得到N个第一配置文件的子文件,并将N个子文件存入对应的N个非易失性存储器中包括:

将所述第一配置文件被拆分为由字节Byte组成的文件,1个字节Byte由8个bit组成;

将所有字节Byte的bit0和bit1组合成第一子文件,存入第一非易失性存储器;

将所有字节Byte的bit2和bit3组合成第二子文件,存入第二非易失性存储器;

将所有字节Byte的bit4和bit5组合成第三子文件,存入第三非易失性存储器;

将所有字节Byte的bit6和bit7组合成第四子文件,存入第四非易失性存储器。

本发明还提供了一种基于FPGA的数据处理装置,包括:

接收单元,用于接收FPGA发送的第一配置文件;

拆分单元,用于按预定规则,对所述第一配置文件进行拆分,得到N个第一配置文件的子文件;

存储单元,用于将N个子文件存入对应的N个非易失性存储器中;

并行处理单元,用于并行处理N个非易失性存储器中的子文件,得到N个处理子文件;

合并单元,用于将所述N个处理子文件进行合并,得到第二配置文件;

发送单元,用于向所述FPGA发送所述第二配置文件,控制所述FPGA进行读取;

其中N为自然数。

可选的,

所述装置还包括:

第一设置单元,用于将所述第一配置文件设置为第一升级配置文件和第一出厂配置文件;

第二设置单元,用于将所述第二配置文件设置为第二升级配置文件和第二出厂配置文件。

可选的,

所述装置还包括:

第三设置单元,用于将所述非易失性存储器设置为具有升级存储区和出厂存储区;

所述升级存储区用于存储第一升级配置文件的子文件;

所述出厂存储区用于存储第一出厂配置文件的子文件。

可选的,

所述装置还包括:

判断单元:

用于在所述向所述FPGA发送所述第二配置文件之后,判断FPGA是否成功读取第二升级文件;

第二发送单元,用于向所述FPGA发送所述第二出厂配置文件。

可选的,

所述拆分单元,用于将所述第一配置文件被拆分为由字节Byte组成的文件,1个字节Byte由8个bit组成;

所述存储单元包括:

第一存储子单元,用于将所有字节Byte的bit0和bit1组合成第一子文件,存入第一非易失性存储器;

第二存储子单元,用于将所有字节Byte的bit2和bit3组合成第二子文件,存入第二非易失性存储器;

第三存储子单元,用于将所有字节Byte的bit4和bit5组合成第三子文件,存入第三非易失性存储器;

第四存储子单元,用于将所有字节Byte的bit6和bit7组合成第四子文件,存入第四非易失性存储器。

下面对本发明提供的基于FPGA的数据处理方法及装置所带来的核心有益效果进行描述:

该基于FPGA的数据处理方法包括:接收FPGA发送的第一配置文件;按预定规则,对所述第一配置文件进行拆分,得到N个第一配置文件的子文件,并将N个子文件存入对应的N个非易失性存储器中;并行处理N个非易失性存储器中的子文件,得到N个处理子文件;将所述N个处理子文件进行合并,得到第二配置文件;向所述FPGA发送所述第二配置文件,控制所述FPGA进行读取。由于将配置文件拆分后分别存储,从而配置时间缩短至单独一个非易失性存储器的N分之一,例如将配置文件大小设置为6MB,单个非易失性存储器为串行SPI nor flash,带宽为20MB/s,通过对四个非易失性存储器并行处理,带宽为80MB/s。在短时间内完成加载解决现场可编程门阵列FPGA加载配置文件时间过长导致计算机无法识别FPGA内部PCIE的问题。

附图说明

图1为本发明中一种基于FPGA的数据处理方法第一实施例的流程图;

图2为本发明中一种基于FPGA的数据处理方法第二实施例的流程图;

图3为本发明中一种基于FPGA的数据处理装置实施例的结构示意图。

具体实施方式

本发明提供了一种基于FPGA的数据处理方法及装置,能够有效解决现场可编程门阵列FPGA加载配置文件时间过长导致计算机无法识别FPGA内部PCIE的问题。

下面请参阅图1,本发明提供的一种基于FPGA的数据处理方法,包括:

101、接收FPGA发送的第一配置文件;

在本实施例中,接收FPGA发送的第一配置文件,目的是为了防止FPGA下电后配置文件丢失。该FPGA可以为带有PCIE功能现场可编程门阵列。使用配置PCIEIP核的FPGA能够实现PCIE功能,有效减少PCB的占据面积。

需要说明的是,由于FPGA大都基于易失性RAM结构,因此FPGA下电后配置文件容易丢失。

需要说明的是,此类第一和第二等描述仅仅表示对对象的区分,不起到限制作用,这里仅作为对处理动作前后对象的差异进行区分,不对配置文件等实质内容构成限定。

102、按预定规则,对所述第一配置文件进行拆分,得到N个第一配置文件的子文件,并将N个子文件存入对应的N个非易失性存储器中;

在本实施例中,第一配置文件被拆分为N个第一配置文件的子文件,这里所指的子文件可以这样定义,即所有子文件的总和能够还原该第一配置文件。用集合的角度解释可以认为第一配置文件构成所有第一配置文件的子文件的集合。前面已经介绍过由于FPGA大都基于易失性RAM结构,FPGA下电后配置文件容易丢失,因此需要非易失性存储器事先将配置文件存储起来,每次上电时,将配置文件加载到FPGA中。具体拆分的规则及储存规则将在后续实施例中进行说明。

103、并行处理N个非易失性存储器中的子文件,得到N个处理子文件;

104、将所述N个处理子文件进行合并,得到第二配置文件;

在本实施例中,N个非易失性存储器中的子文件被并行处理,配置文件配置时间缩短至单独一个非易失性存储器的N分之一,N个处理子文件进行合并后得到第二配置文件。

105、向所述FPGA发送所述第二配置文件,控制所述FPGA进行读取。

本实施例中,首先接收FPGA发送的第一配置文件;接着按预定规则,对所述第一配置文件进行拆分,得到N个第一配置文件的子文件,并将N个子文件存入对应的N个非易失性存储器中;然后并行处理N个非易失性存储器中的子文件,得到N个处理子文件;再将所述N个处理子文件进行合并,得到第二配置文件;最后向所述FPGA发送所述第二配置文件,控制所述FPGA进行读取。由于将配置文件拆分后分别存储,从而配置时间缩短至单独一个非易失性存储器的N分之一,例如将配置文件大小设置为6MB,单个非易失性存储器为串行SPI nor flash,带宽为20MB/s,通过对四个非易失性存储器并行处理,带宽为80MB/s。在短时间内完成加载解决现场可编程门阵列FPGA加载配置文件时间过长导致计算机无法识别FPGA内部PCIE的问题。

本发明提供的一种基于FPGA的数据处理方法第一实施例的变形例,和第一实施例不同在于用第一升级配置文件替换第一配置文件。即实现配置文件的一个作用为触发系统升级处理,从而加快系统升级速度。

接收FPGA发送的第一升级配置文件;

按预定规则,对所述第一升级配置文件进行拆分,得到N个第一升级配置文件的子文件,并将N个子文件存入对应的N个非易失性存储器中;

并行处理N个非易失性存储器中的子文件,得到N个处理子文件;

将所述N个处理子文件进行合并,得到第二升级配置文件;

向所述FPGA发送所述第二升级配置文件,控制所述FPGA进行读取。

本实施例为本发明的一个实际应用。

本发明提供的一种基于FPGA的数据处理方法第一实施例的另一个变形例,和第一实施例不同在于用第一出厂配置文件替换第一配置文件。即实现配置文件的一个作用为触发系统出厂配置处理,从而加快系统恢复出厂设置速度。

接收FPGA发送的第一出厂配置文件;

按预定规则,对所述第一出厂配置文件进行拆分,得到N个第一出厂配置文件的子文件,并将N个子文件存入对应的N个非易失性存储器中;

并行处理N个非易失性存储器中的子文件,得到N个处理子文件;

将所述N个处理子文件进行合并,得到第二出厂配置文件;

向所述FPGA发送所述第二出厂配置文件,控制所述FPGA进行读取。

本实施例为本发明的另一个实际应用。

本发明提供的一种基于FPGA的数据处理方法第二实施例包括:

201、接收FPGA发送的第一升级配置文件和第一出厂配置文件;

在本实施例中,接收FPGA发送第一升级配置文件和第一出厂配置文件的动作不限定在同一时间内完成,可以先接收第一出厂配置文件,也可以先接收第一升级配置文件。

202、按预定规则,对所述第一升级配置文件进行拆分,得到N个第一升级配置文件的子文件,并将N个子文件存入对应的N个非易失性存储器升级存储区中;对所述第一出厂配置文件进行拆分,得到N个第一出厂配置文件的子文件,并将N个子文件存入对应的N个非易失性存储器出厂存储区中;

203、并行处理N个非易失性存储器升级存储区中的子文件,得到N个处理子文件;将所述N个处理子文件进行合并,得到第二升级配置文件;并行处理N个非易失性存储器出厂存储区中的子文件,得到N个处理子文件;将所述N个处理子文件进行合并,得到第二出厂配置文件;

204、向所述FPGA发送所述第二配置文件,控制所述FPGA进行读取;

205、判断FPGA是否成功读取第二升级文件;

若是,则结束加载进程;若否,则进行步骤206;

206、向所述FPGA发送所述第二出厂配置文件,控制所述FPGA进行读取。

需要说明的是,步骤“并行处理N个非易失性存储器出厂存储区中的子文件,得到N个处理子文件;将所述N个处理子文件进行合并,得到第二出厂配置文件;”也可以在步骤205之后、步骤206之前。

在实际应用中,出厂配置文件可以在出厂时通过编程器固化进非易失性存储器的出厂存储区,这样可靠性更好;只有升级配置文件才会按以上方法存入非易失性存储器,受外部干扰可靠性较差,所以才会有当升级配置文件加载失败时会切换到出厂配置文件。

本实施例中,非易失性存储器被划分为两个区,所述升级存储区用于存储第一升级配置文件的子文件;出厂存储区用于存储第一出厂配置文件的子文件。当发生FPGA未成功加载升级配置文件的情况时,可以通过加载出厂配置文件来避免上电后首先读取升级区域的配置文件对FPGA进行加载,然后判断是否加载成功,如果加载失败则重新读取出厂区域的配置文件对FPGA进行加载,也就是说,即使升级区域的配置文件异常导致加载失败,依然可以从出厂区域启动并且再次进行升级,防止设备产生故障。升级容错功能解决了当升级过程中出现异常导致系统无法工作而需要返厂维修的问题。

下面以一个前述实施例中的拆分实例进行说明:将所述第一配置文件被拆分为由字节Byte组成的文件,1个字节Byte由8个bit组成;

将所有字节Byte的bit0和bit1组合成第一子文件,存入第一非易失性存储器;

将所有字节Byte的bit2和bit3组合成第二子文件,存入第二非易失性存储器;

将所有字节Byte的bit4和bit5组合成第三子文件,存入第三非易失性存储器;

将所有字节Byte的bit6和bit7组合成第四子文件,存入第四非易失性存储器。

将配置文件大小设置为6MB,单个非易失性存储器为串行SPI nor flash,带宽为20MB/s,通过对四个非易失性存储器并行处理,带宽为80MB/s。在短时间内完成加载解决现场可编程门阵列FPGA加载配置文件时间过长导致计算机无法识别FPGA内部PCIE的问题。

下面请参阅图3,本发明还提供了一种基于FPGA的数据处理装置实施例包括:

接收单元301,用于接收FPGA发送的第一配置文件;

拆分单元302,用于按预定规则,对所述第一配置文件进行拆分,得到N个第一配置文件的子文件;

存储单元303,用于将N个子文件存入对应的N个非易失性存储器中;

并行处理单元304,用于并行处理N个非易失性存储器中的子文件,得到N个处理子文件;

合并单元305,用于将所述N个处理子文件进行合并,得到第二配置文件;

第一发送单元306,用于向所述FPGA发送所述第二配置文件,控制所述FPGA进行读取。

下面以实际应用中的例子对上述单元之间的通信关系进行说明:

接收单元301接收FPGA发送的第一配置文件;

在本实施例中,接收单元301接收FPGA发送的第一配置文件,目的是为了防止FPGA下电后配置文件丢失。该FPGA可以为带有PCIE功能现场可编程门阵列。使用配置PCIEIP核的FPGA能够实现PCIE功能,有效减少PCB的占据面积。

需要说明的是,由于FPGA大都基于易失性RAM结构,因此FPGA下电后配置文件容易丢失。

需要说明的是,此类第一和第二等描述仅仅表示对对象的区分,不起到限制作用,这里仅作为对处理动作前后对象的差异进行区分,不对配置文件等实质内容构成限定。

拆分单元302按预定规则,对所述第一配置文件进行拆分,得到N个第一配置文件的子文件,并由存储单元303将N个子文件存入对应的N个非易失性存储器中;

在本实施例中,第一配置文件被拆分为N个第一配置文件的子文件,这里所指的子文件可以这样定义,即所有子文件的总和能够还原该第一配置文件。用集合的角度解释可以认为第一配置文件构成所有第一配置文件的子文件的集合。前面已经介绍过由于FPGA大都基于易失性RAM结构,FPGA下电后配置文件容易丢失,因此需要非易失性存储器事先将配置文件存储起来,每次上电时,将配置文件加载到FPGA中。具体拆分的规则及储存规则将在后续实施例中进行说明。

并行处理单元304并行处理N个非易失性存储器中的子文件,得到N个处理子文件;

合并单元305将所述N个处理子文件进行合并,得到第二配置文件;

在本实施例中,N个非易失性存储器中的子文件被并行处理,配置文件配置时间缩短至单独一个非易失性存储器的N分之一,N个处理子文件进行合并后得到第二配置文件。

第一发送单元306向所述FPGA发送所述第二配置文件,控制所述FPGA进行读取。

本实施例中,首先接收FPGA发送的第一配置文件;接着按预定规则,对所述第一配置文件进行拆分,得到N个第一配置文件的子文件,并将N个子文件存入对应的N个非易失性存储器中;然后并行处理N个非易失性存储器中的子文件,得到N个处理子文件;再将所述N个处理子文件进行合并,得到第二配置文件;最后向所述FPGA发送所述第二配置文件,控制所述FPGA进行读取。由于将配置文件拆分后分别存储,从而配置时间缩短至单独一个非易失性存储器的N分之一,例如将配置文件大小设置为6MB,单个非易失性存储器为串行SPI nor flash,带宽为20MB/s,通过对四个非易失性存储器并行处理,带宽为80MB/s。在短时间内完成加载解决现场可编程门阵列FPGA加载配置文件时间过长导致计算机无法识别FPGA内部PCIE的问题

需要说明的是,所述装置还包括:

第一设置单元,用于将所述第一配置文件设置为第一升级配置文件和第一出厂配置文件;

第二设置单元,用于将所述第二配置文件设置为第二升级配置文件和第二出厂配置文件。

所述装置还包括:

第三设置单元,用于将所述非易失性存储器设置为具有升级存储区和出厂存储区。

所述装置还包括:

判断单元307用于在所述向所述FPGA发送所述第二配置文件之后,判断FPGA是否成功读取第二升级文件;

第二发送单元308,用于向所述FPGA发送所述第二出厂配置文件。

所述拆分单元,用于将所述第一配置文件被拆分为由字节Byte组成的文件,1个字节Byte由8个bit组成;

所述存储单元包括:

第一存储子单元,用于将所有字节Byte的bit0和bit1组合成第一子文件,存入第一非易失性存储器;

第二存储子单元,用于将所有字节Byte的bit2和bit3组合成第二子文件,存入第二非易失性存储器;

第三存储子单元,用于将所有字节Byte的bit4和bit5组合成第三子文件,存入第三非易失性存储器;

第四存储子单元,用于将所有字节Byte的bit6和bit7组合成第四子文件,存入第四非易失性存储器。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不处理。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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