Fpga外挂存储器校验方法及装置制造方法

文档序号:6541227阅读:165来源:国知局
Fpga外挂存储器校验方法及装置制造方法
【专利摘要】本发明实施例提供一种FPGA外挂存储器校验方法及装置,该方法包括:FPGA获取写入所述FPGA的外挂存储器的第一数据和所述第一数据对应的第一地址;根据所述第一地址获取与所述第一数据的位数相同的第一待校验地址;将所述第一数据和所述第一待校验地址进行异或,获取第一异或结果;将所述第一异或结果与初始校验值进行异或,获取第一校验值。本发明实施例中,第一数据和第一待校验地址进行异或,并将异或结果与初始校验值进行异或,来获取校验值,实现了对FPGA外挂存储器写入的地址和数据的混合校验,即不仅完成了对数据的校验,也完成了对地址的校验,可以及时发现地址的错误。
【专利说明】FPGA外挂存储器校验方法及装置
【技术领域】
[0001]本发明涉及通信技术,尤其涉及一种FPGA外挂存储器校验方法及装置。
【背景技术】
[0002]当前现场可编程门阵列(Field Programmable Gate Array,简称FPGA)芯片的容量越来越大,完成的功能越来越强。另外,随着外挂存储器的规模越来越大,外挂存储器失效概率也在增加,外挂存储器的失效对上述FPGA的功能影响越来越严重,随着大规模FPGA的发展,越来越多的应用开始关注FPGA的外挂存储器的应用可靠性。
[0003]现有技术中,对FPGA的外挂存储器的校验方法主要是对该外挂存储器的数据进行校验,具体地,可以是根据校验命令中的起始地址、结束地址以及启动标识对存储器中的数据读取并校验,校验完成后将校验结果保存。
[0004]但是,采用现有技术,如果地址线出现错误时,无法进行校验。

【发明内容】

[0005]本发明实施例提供一种FPGA外挂存储器校验方法及装置,用于解决现有技术中地址线出错时,无法校验的问题。
[0006]本发明实施例第一方面提供一种FPGA外挂存储器校验方法,包括:
[0007]A、现场可编程门阵列FPGA获取写入所述FPGA的外挂存储器的第一数据和所述第一数据对应的第一地址;
[0008]B、所述FPGA根据所述第一地址获取与所述第一数据的位数相同的第一待校验地址;
[0009]C、所述FPGA将所述第一数据和所述第一待校验地址进行异或,获取第一异或结果;
[0010]D、所述FPGA将所述第一异或结果与初始校验值进行异或,获取第一校验值;
[0011]E、所述FPGA将所述第一校验值作为所述初始校验值,执行A-D,直到校验结束。
[0012]结合第一方面,在第一方面的第一种可能的实施方式中,所述第一数据和所述第一待校验地址按照编号顺序排列,所述初始校验值和所述第一校验值按照编号逆序排列。
[0013]结合第一方面,在第一方面的第二种可能的实施方式中,所述FPGA根据所述第一地址获取与所述第一数据的位数相同的第一待校验地址,包括:
[0014]所述FPGA判断所述第一地址的位数是否和所述第一数据的位数相同;
[0015]若所述第一地址的位数与所述第一数据的位数相同,则将所述第一地址作为第一待校验地址;
[0016]若所述第一地址的位数小于所述第一数据的位数,则将所述地址进行补齐,获取与所述第一数据的位数相同的第一待校验地址。
[0017]结合第一方面,在第一方面的第三种可能的实施方式中,所述FPGA获取写入所述FPGA的外挂存储器的第一数据和所述第一数据对应的第一地址之前,还包括:[0018]所述FPGA获取写入所述FPGA的外挂存储器的初始数据和所述初始数据对应的初始地址;
[0019]所述FPGA根据所述初始地址获取与所述初始数据的位数相同的初始待校验地址;
[0020]所述FPGA将所述初始数据和所述初始待校验地址进行异或,获取初始异或结果;
[0021]所述FPGA将所述初始异或结果作为初始校验值。
[0022]结合第一方面,在第一方面的第四种可能的实施方式中,所述校验结束之后,还包括:
[0023]所述FPGA生成读地址;
[0024]所述FPGA根据所述读地址从所述FPGA的外挂存储器中读取数据以及所述数据对应的校验值;
[0025]所述FPGA根据所述校验值进行解异或校验,根据所述解异或校验结果判断所述FPGA的外挂存储器中地址和/或数据是否故障。
[0026]结合第一方面的第四种可能的实施方式,在第一方面的第五种可能的实施方式中,若所述校验值按照编号逆序排列,
[0027]所述FPGA根据所述校验值进行解异或校验之前,还包括:
[0028]所述FPGA根据读取所述校验值的顺序,将读出的校验值进行逆序。
[0029]本发明实施例第二方面提供一种FPGA外挂存储器校验装置,包括:
[0030]获取模块,用于获取写入现场可编程门阵列FPGA的外挂存储器的第一数据和所述第一数据对应的第一地址;根据所述第一地址获取与所述第一数据的位数相同的第一待校验地址;
[0031]校验模块,用于将所述第一数据和所述第一待校验地址进行异或,获取第一异或结果;将所述第一异或结果与初始校验值进行异或,获取第一校验值;将所述第一校验值作为所述初始校验值。
[0032]结合第二方面,在第二方面的第一种可能的实施方式中,所述第一数据和所述第一待校验地址按照编号顺序排列,所述初始校验值和所述第一校验值按照编号逆序排列。
[0033]结合第二方面,在第二方面的第二种可能的实施方式中,所述获取模块,具体用于判断所述第一地址的位数是否和所述第一数据的位数相同;若所述第一地址的位数与所述第一数据的位数相同,则将所述第一地址作为第一待校验地址;若所述第一地址的位数小于所述第一数据的位数,则将所述地址进行补齐,获取与所述第一数据的位数相同的第一待校验地址。
[0034]结合第二方面,在第二方面的第三种可能的实施方式中,所述获取模块,还用于获取写入所述FPGA的外挂存储器的初始数据和所述初始数据对应的初始地址;根据所述初始地址获取与所述初始数据的位数相同的初始待校验地址;
[0035]所述校验模块,还用于将所述初始数据和所述初始待校验地址进行异或,获取初始异或结果;将所述初始异或结果作为初始校验值。
[0036]结合第二方面,在第二方面的第四种可能的实施方式中,所述装置还包括:
[0037]解校验模块,用于生成读地址;根据所述读地址从所述FPGA的外挂存储器中读取数据以及所述数据对应的校验值;根据所述校验值进行解异或校验,根据所述解异或校验结果判断所述FPGA的外挂存储器中地址和/或数据是否故障。
[0038]结合第二方面的第四种可能的实施方式,在第二方面的第五种可能的实施方式中,所述解校验模块,用于当所述校验值按照编号逆序排列时,在根据所述校验值进行解异或校验之前,根据读取所述校验值的顺序,将读出的校验值进行逆序。
[0039]本发明实施例中,第一数据和第一待校验地址进行异或,并将异或结果与初始校验值进行异或,来获取校验值,实现了对FPGA外挂存储器写入的地址和数据的混合校验,即不仅完成了对数据的校验,也完成了对地址的校验,可以及时发现地址的错误。
【专利附图】

【附图说明】
[0040]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0041]图1为本发明提供的FPGA外挂存储器校验方法实施例一的应用场景示意图;
[0042]图2为本发明提供的FPGA外挂存储器校验方法实施例二的流程示意图;
[0043]图3为本发明提供的FPGA外挂存储器校验方法实施例三的流程示意图;
[0044]图4为本发明提供的FPGA外挂存储器校验方法实施例三的流程示意图;
[0045]图5为本发明提供的FPGA外挂存储器校验装置实施例一的结构示意图;
[0046]图6为本发明提供的FPGA外挂存储器校验装置实施例二的结构示意图;
[0047]图7为本发明提供的FPGA外挂存储器校验装置实施例三的结构示意图。
【具体实施方式】
[0048]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0049]图1为本发明提供的FPGA外挂存储器校验方法实施例一的应用场景示意图,该方法应用与FPGA中,如图1所示,该FPGA包括:FPGA用户侧装置01、控制器02以及外挂存储器03,其中:FPGA用户侧装置01通过控制器02和外挂存储器03连接。
[0050]本发明实施例中,具体地,FPGA用户侧装置01向外挂存储器03进行写访问时,FPGA对预设时间段内的写数据和写地址进行异或校验。该预设时间可以是一个计算机时钟,即一拍。
[0051]图2为本发明提供的FPGA外挂存储器校验方法实施例二的流程示意图,如图2所示,该方法包括:
[0052]S201、FPGA获取写入该FPGA的外挂存储器的第一数据和该第一数据对应的第一地址。
[0053]一般地,FPGA会获取预设时间内写入该FPGA的外挂存储器的第一数据和该第一数据对应的第一地址,该预设时间可以是一个计算机时钟,即一拍。需要说明的是,FPGA外挂存储器中有多根数据线,假设FPGA外挂存储器数据总线位宽为16比特(bit),即有16根数据线,则一拍写入16位(16bit)数据,即每根数据线在每一拍写入一个数据,那么上述第一数据就是16位。
[0054]S202、FPGA根据该第一地址获取与该第一数据的位数相同的第一待校验地址。
[0055]具体实现过程中,可以是,FPGA判断第一地址的位数是否和上述第一数据的位数相同;若第一地址的位数与上述第一数据的位数相同,则将上述第一地址作为第一待校验地址;若第一地址的位数小于上述第一数据的位数,则将上述地址进行补齐,获取与上述第一数据的位数相同的第一待校验地址。
[0056]S203、FPGA将上述第一数据和上述第一数据对应的第一待校验地址进行异或,获取第一异或结果。
[0057]由于第一数据和第一待校验地址的位数相同,就可以一一对应进行异或,例如第一数据的第一位和第一待校验地址的第一位进行异或,第一数据的第二位和第一待校验地址的第二位进行异或,以此类推。这样获取的异或结果也与第一数据的位数相同。
[0058]S204、FPGA将上述第一异或结果与初始校验值进行异或,获取第一校验值。
[0059]S205、FPGA将上述第一校验值作为初始校验值,执行上述S201~S204,直到校验结束。即循环执行前述步骤,每次新获取的第一校验值作为初始校验值带入下一次循环中进行校验,即不断地累计进行异或校验。一般地,以校验完一个数据包的数据为结束。
[0060]其中,获取的校验值也存储在该FPGA的外挂存储器中。
[0061]本实施例中,第一数据和第一待校验地址进行异或,并将异或结果与初始校验值进行异或,来获取校验值,实现了对FPGA外挂存储器写入的地址和数据的混合校验,即不仅完成了对数据的校验,也完成了对地址的校验,可以及时发现地址的错误。
[0062]图3为本发明提供的FPGA外挂存储器校验方法实施例三的流程示意图,需要说明的是,上述初始校验地址也是FPGA根据写入FPGA外挂存储器的数据以及对应地址获取的。具体地,如图3所示,上述FPGA获取写入该FPGA的外挂存储器的第一数据和该第一数据对应的第一地址之前,还包括:
[0063]S301、FPGA获取写入该FPGA的外挂存储器的初始数据和该初始数据对应的初始地址。
[0064]S302、FPGA根据该初始地址获取与该初始数据的位数相同的初始待校验地址。
[0065]具体地,可参见前述方法实施例,若初始地址的位数与上述初始数据的位数相同,则将上述初始地址作为初始待校验地址;若初始地址的位数小于上述初始数据的位数,则将上述地址进行补齐,获取与上述初始数据的位数相同的初始待校验地址。
[0066]S303、FPGA将初始数据和该初始待校验地址进行异或,获取初始异或结果。
[0067]S304、FPGA将该初始异或结果作为初始校验值。
[0068]即该初始校验值是根据最初写入FPGA外挂存储器的数据以及对应地址获得的。
[0069]举例说明,以预设时间内(一拍内)向外挂存储器写16bit的数据,对应一个IObit的地址为例。如表1所示,其中,Dn表示第n bit的数据,Amn表示地址m的第nbit:地址I(作为初始地址)的第O~9bit (Al0~Al9)对应数据I (作为初始数据)的第O~15bit(D0~D15),为FPGA在第I拍获取到的写入FPGA外挂存储器的数据,由于地址I只有10比特,所以在高位补充6bit的O和数据位宽对齐,获取初始待校验地址,进而,初始待校验地址和数据I进行异或,获取初始校验值。地址2的第O~gbitU〗。~A29)对应数据2的第16~31bit (D16~D31)为FPGA的控制器在第2拍获取到的数据,同样,对地址在高位补充6bit的O和数据位宽对齐,获取待校验地址2,进而,将待校验地址2与数据2进行异或,获取第一异或结果,再将第一异或结果与初始校验值进行异或,获取第一校验值,并依照前述方法依次累积校验。地址3的第O~9bit (A3。~A39)对应数据3的第32~47bit (D32~D47)为FPGA的控制器在第3拍获取到的数据,同样,对地址在高位补充6bit的O和数据位宽对齐,获取待校验地址3,进而,数据3与待校验地址3进行异或,获取第二异或结果,该第二异或结果与前述第一校验值进一步异或,获取第二校验值,不断累积进行校验,最后获取最终校验值,以使FPGA用户侧装置读数据的时候将该最终校验值读出。
[0070]具体地,以其中一根数据线的校验为例,Dtl与Altl的异或结果作为初始校验值的第一位Po ;然后D16与M0进行异或,获取第一异或结果的第一位,该第一异或结果的第一位与P0进行异或,获取第一校验值,即更新后的Ptl ;接下来D32与A3。进行异或,获取第二异或结果的第一位,该第二异或结果的第一位与进行Ptl异或,获取的新校验值作为更新后的Ptl,以此类推累计进行校验。
[0071]表1
[0072]
【权利要求】
1.一种FPGA外挂存储器校验方法,其特征在于,包括: A、现场可编程门阵列FPGA获取写入所述FPGA的外挂存储器的第一数据和所述第一数据对应的第一地址; B、所述FPGA根据所述第一地址获取与所述第一数据的位数相同的第一待校验地址; C、所述FPGA将所述第一数据和所述第一待校验地址进行异或,获取第一异或结果; D、所述FPGA将所述第一异或结果与初始校验值进行异或,获取第一校验值; E、所述FPGA将所述第一校验值作为所述初始校验值,执行A-D,直到校验结束。
2.根据权利要求1所述的方法,其特征在于,所述第一数据和所述第一待校验地址按照编号顺序排列,所述初始校验值和所述第一校验值按照编号逆序排列。
3.根据权利要求1所述的方法,其特征在于,所述FPGA根据所述第一地址获取与所述第一数据的位数相同的第一待校验地址,包括: 所述FPGA判断所述第一地址的位数是否和所述第一数据的位数相同; 若所述第一地址的位数与所述第一数据的位数相同,则将所述第一地址作为第一待校验地址; 若所述第一地址的位数小于所述第一数据的位数,则将所述地址进行补齐,获取与所述第一数据的位数相同的第 一待校验地址。
4.根据权利要求1所述的方法,其特征在于,所述FPGA获取写入所述FPGA的外挂存储器的第一数据和所述第一数据对应的第一地址之前,还包括: 所述FPGA获取写入所述FPGA的外挂存储器的初始数据和所述初始数据对应的初始地址; 所述FPGA根据所述初始地址获取与所述初始数据的位数相同的初始待校验地址; 所述FPGA将所述初始数据和所述初始待校验地址进行异或,获取初始异或结果; 所述FPGA将所述初始异或结果作为初始校验值。
5.根据权利要求1所述的方法,其特征在于,所述校验结束之后,还包括: 所述FPGA生成读地址; 所述FPGA根据所述读地址从所述FPGA的外挂存储器中读取数据以及所述数据对应的校验值; 所述FPGA根据所述校验值进行解异或校验,根据所述解异或校验结果判断所述FPGA的外挂存储器中地址和/或数据是否故障。
6.根据权利要求5所述的方法,其特征在于,若所述校验值按照编号逆序排列, 所述FPGA根据所述校验值进行解异或校验之前,还包括: 所述FPGA根据读取所述校验值的顺序,将读出的校验值进行逆序。
7.—种FPGA外挂存储器校验装置,其特征在于,包括: 获取模块,用于获取写入现场可编程门阵列FPGA的外挂存储器的第一数据和所述第一数据对应的第一地址;根据所述第一地址获取与所述第一数据的位数相同的第一待校验地址; 校验模块,用于将所述第一数据和所述第一待校验地址进行异或,获取第一异或结果;将所述第一异或结果与初始校验值进行异或,获取第一校验值;将所述第一校验值作为所述初始校验值。
8.根据权利要求7所述的装置,其特征在于,所述第一数据和所述第一待校验地址按照编号顺序排列,所述初始校验值和所述第一校验值按照编号逆序排列。
9.根据权利要求7所述的装置,其特征在于,所述获取模块,具体用于判断所述第一地址的位数是否和所述第一数据的位数相同;若所述第一地址的位数与所述第一数据的位数相同,则将所述第一地址作为第一待校验地址;若所述第一地址的位数小于所述第一数据的位数,则将所述地址进行补齐,获取与所述第一数据的位数相同的第一待校验地址。
10.根据权利要求7所述的装置,其特征在于,所述获取模块,还用于获取写入所述FPGA的外挂存储器的初始数据和所述初始数据对应的初始地址;根据所述初始地址获取与所述初始数据的位数相同的初始待校验地址; 所述校验模块,还用于将所述初始数据和所述初始待校验地址进行异或,获取初始异或结果;将所述初始异或结果作为初始校验值。
11.根据权利要求7所述的装置,其特征在于,还包括: 解校验模块,用于生成读地址;根据所述读地址从所述FPGA的外挂存储器中读取数据以及所述数据对应的校验值;根据所述校验值进行解异或校验,根据所述解异或校验结果判断所述FPGA的外挂存储器中地址和/或数据是否故障。
12.根据权利要求11所述的装置,其特征在于,所述解校验模块,用于当所述校验值按照编号逆序排列时,在根据所述校验值进行解异或校验之前,根据读取所述校验值的顺序,将读出的校验值进行逆序。
【文档编号】G06F11/10GK103838638SQ201410105880
【公开日】2014年6月4日 申请日期:2014年3月20日 优先权日:2014年3月20日
【发明者】石仔良, 王 琦, 张璐娜 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1