CN111143107A - 一种fpga单粒子反转校验电路和方法 - Google Patents
一种fpga单粒子反转校验电路和方法 Download PDFInfo
- Publication number
- CN111143107A CN111143107A CN201911106828.4A CN201911106828A CN111143107A CN 111143107 A CN111143107 A CN 111143107A CN 201911106828 A CN201911106828 A CN 201911106828A CN 111143107 A CN111143107 A CN 111143107A
- Authority
- CN
- China
- Prior art keywords
- fpga
- error correction
- check code
- storage module
- configuration file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明公开一种FPGA单粒子反转校验电路和方法。本技术方案中,FPGA的内部集成有编程与纠错控制模块、纠错编码器、校验码存储模块、配置存储模块、以及纠错译码器,编程与纠错控制模块从FPGA外部读取FPGA配置文件,纠错编码器根据FPGA配置文件生成校验码,校验码存储模块写入校验码,纠错译码器利用校验码存储模块写入的校验码和配置存储模块写入的FPGA配置文件进行单粒子反转校验。由FPGA的内部产生校验码,FPGA配置文件中并不包含额外的校验码,无需对额外的校验码进行处理,FPGA配置文件变小,缩短FPGA配置时间,提高FPGA配置效率,满足系统实时性要求。
Description
技术领域
本发明涉及FPGA技术领域,尤其涉及一种FPGA单粒子反转校验电路和方法。
背景技术
现场可编程逻辑门阵列(Field-Programmable Gate Array,FPGA)被广泛地应用到各个领域中,如工业控制、嵌入式系统、密码学、航空飞船、网络等。FPGA具有性能高、一次性工程费用成本低的特点,适用于大电路的实现以及快速研发新产品。随着系统性能和容量的指数增长,集成电路的噪声容限减少,电源电压降低,低能量的粒子诱发单粒子反转(Single Event Upset,SEU)的可能性增大,使得FPGA内部的FPGA配置文件容易受SEU影响而发生软错误。单粒子反转亦称单粒子翻转。
针对SEU问题,现有技术公开采用ECC(Error Checking and Correcting,错误检查和纠正)校验来改善系统稳定性。首先,在FPGA外部的处理模块使用软件生成FPGA配置文件的ECC校验码,然后,把ECC校验码写到FPGA配置文件中,再把包含ECC校验码的FPGA配置文件写入FPGA内部。由于FPGA配置文件中包含额外的ECC校验码,FPGA需要先对FPGA配置文件中额外的ECC校验码进行处理,FPGA配置文件较大,增加FPGA配置时间,降低FPGA配置效率;特别是在FPGA设计规模较大、FPGA配置文件较复杂的应用场景下,现有技术的FPGA配置效率下降明显。
发明内容
本发明实施例提供一种提高FPGA配置效率的FPGA单粒子反转校验电路和方法。
本发明实施例采用以下技术方案:
第一方面,本发明实施例提供一种FPGA单粒子反转校验电路,包括:集成在FPGA内部的编程与纠错控制模块、纠错编码器、校验码存储模块、配置存储模块、以及纠错译码器;
编程与纠错控制模块,用于从FPGA外部读取FPGA配置文件;
纠错编码器,用于根据FPGA配置文件生成校验码;
校验码存储模块,用于写入校验码;
配置存储模块,用于写入FPGA配置文件;
纠错译码器,用于利用校验码存储模块写入的校验码和配置存储模块写入的FPGA配置文件进行单粒子反转校验。
作为一个可选实施例,FPGA为SRAM型FPGA,FPGA内部的SRAM包括用于系统配置使用的配置SRAM和用于用户控制使用的分布式SRAM;
FPGA配置文件中包含配置SRAM比特信息和分布式SRAM比特信息;
电路还包括:集成在FPGA内部的分布式SRAM编码保护模块、以及分布式SRAM校验保护模块;
分布式SRAM编码保护模块,用于将编程与纠错控制模块从FPGA外部读取的FPGA配置文件中的分布式SRAM比特信息修改为预置值;
纠错编码器,具体用于利用分布式SRAM编码保护模块修改后的FPGA配置文件生成校验码;
分布式SRAM校验保护模块,用于将配置存储模块写入的FPGA配置文件中的分布式SRAM比特信息修改为预置值;
纠错译码器,具体用于利用校验码存储模块写入的校验码,和分布式SRAM校验保护模块修改后的配置存储模块写入的FPGA配置文件进行单粒子反转校验。
作为一个可选实施例,纠错译码器,还用于在校验出错误结果时,向编程与纠错控制模块上报错误结果。
作为一个可选实施例,编程与纠错控制模块,具体用于,从FPGA外部读取FPGA配置文件;控制配置存储模块写入FPGA配置文件;把FPGA配置文件传输给纠错编码器,接收纠错编码器根据FPGA配置文件生成的校验码时,控制纠错编码器写入校验码;在校验时,控制校验码存储模块把写入的校验码传输给纠错译码器,控制配置存储模块把写入的FPGA配置文件传输给纠错译码器;在接收到纠错译码器上报的错误结果时,进行单粒子反转纠错,控制配置存储模块重新写入FPGA配置文件和/或控制校验码存储模块重新写入校验码。
作为一个可选实施例,校验码存储模块为从SRAM中划出来的存储模块、或单独的存储模块;纠错编码器为ECC编码器,纠错译码器为ECC译码器。
第二方面,本发明实施例提供一种FPGA单粒子反转校验方法,FPGA的内部集成有编程与纠错控制模块、纠错编码器、校验码存储模块、配置存储模块、以及纠错译码器,包括步骤:
编程与纠错控制模块从FPGA外部读取FPGA配置文件;
纠错编码器根据FPGA配置文件生成校验码;
校验码存储模块写入校验码;
配置存储模块写入FPGA配置文件;
纠错译码器利用校验码存储模块写入的校验码和配置存储模块写入的FPGA配置文件进行单粒子反转校验。
作为一个可选实施例,FPGA为SRAM型FPGA,FPGA内部的SRAM包括用于系统配置使用的配置SRAM和用于用户控制使用的分布式SRAM;FPGA配置文件中包含配置SRAM比特信息和分布式SRAM比特信息;FPGA的内部还集成有分布式SRAM编码保护模块、以及分布式SRAM校验保护模块;
纠错编码器根据FPGA配置文件生成校验码,之前还包括:
分布式SRAM编码保护模块将编程与纠错控制模块从FPGA外部读取的FPGA配置文件中的分布式SRAM比特信息修改为预置值;
纠错编码器根据FPGA配置文件生成校验码,具体为,纠错编码器利用分布式SRAM编码保护模块修改后的FPGA配置文件生成校验码;
纠错译码器利用校验码存储模块写入的校验码和配置存储模块写入的FPGA配置文件进行单粒子反转校验,之前还包括:
分布式SRAM校验保护模块将配置存储模块写入的FPGA配置文件中的分布式SRAM比特信息修改为预置值;
纠错译码器利用校验码存储模块写入的校验码和配置存储模块写入的FPGA配置文件进行单粒子反转校验,具体为,纠错译码器利用校验码存储模块写入的校验码,和分布式SRAM校验保护模块修改后的配置存储模块写入的FPGA配置文件进行单粒子反转校验。
作为一个可选实施例,纠错译码器利用校验码存储模块写入的校验码和配置存储模块写入的FPGA配置文件进行单粒子反转校验,之后包括:纠错译码器在校验出错误结果时,向编程与纠错控制模块上报错误结果。
作为一个可选实施例,编程与纠错控制模块从FPGA外部读取FPGA配置文件,之后包括:把FPGA配置文件传输给纠错编码器;
纠错编码器根据FPGA配置文件生成校验码,之后包括:编程与纠错控制模块接收纠错编码器根据FPGA配置文件生成的校验码;
校验码存储模块写入校验码,具体为,编程与纠错控制模块控制校验码存储模块写入校验码;
配置存储模块写入FPGA配置文件,具体为,编程与纠错控制模块控制配置存储模块写入FPGA配置文件;
纠错译码器利用校验码存储模块写入的校验码和配置存储模块写入的FPGA配置文件进行单粒子反转校验,之前包括:编程与纠错控制模块在校验时,控制校验码存储模块把写入的校验码传输给纠错译码器,控制配置存储模块把写入的FPGA配置文件传输给纠错译码器;
纠错译码器在校验出错误结果时,向编程与纠错控制模块上报错误结果,之后包括:编程与纠错控制模块在接收到纠错译码器上报的错误结果时,进行单粒子反转纠错,控制配置存储模块重新写入FPGA配置文件和/或控制校验码存储模块重新写入校验码。
作为一个可选实施例,校验码存储模块为从SRAM中划出来的存储模块、或单独的存储模块;纠错编码器为ECC编码器,纠错译码器为ECC译码器。
与现有技术相比,本发明实施例具有以下有益效果:
本技术方案中,FPGA的内部集成有编程与纠错控制模块、纠错编码器、校验码存储模块、配置存储模块、以及纠错译码器,编程与纠错控制模块从FPGA外部读取FPGA配置文件,纠错编码器根据FPGA配置文件生成校验码,校验码存储模块写入校验码,纠错译码器利用校验码存储模块写入的校验码和配置存储模块写入的FPGA配置文件进行单粒子反转校验。FPGA的内部集成纠错编码器,由FPGA的内部产生校验码,FPGA配置文件中并不包含额外的校验码,无需对额外的校验码进行处理,FPGA配置文件变小,缩短FPGA配置时间,提高FPGA配置效率,满足系统实时性要求;特别是在FPGA设计规模较大、FPGA配置文件较复杂的应用场景下,本技术方案能够克服FPGA配置效率下降明显的技术缺陷。此外,纠错编码器集成在FPGA内部,无需使用FPGA外部的处理模块生成校验码、及把校验码写到FPGA配置文件中,故可降低FPGA外部处理模块的程式设计难度。
进一步,本技术方案的一实施例中,FPGA为SRAM型FPGA,FPGA内部的SRAM包括用于系统配置使用的配置SRAM和用于用户控制使用的分布式SRAM;在FPGA内部还集成有的分布式SRAM编码保护模块、以及分布式SRAM校验保护模块;分布式SRAM编码保护模块将编程与纠错控制模块从FPGA外部读取的FPGA配置文件中的分布式SRAM比特信息修改为预置值;纠错编码器利用分布式SRAM编码保护模块修改后的FPGA配置文件生成校验码;分布式SRAM校验保护模块将配置存储模块写入的FPGA配置文件中的分布式SRAM比特信息修改为预置值;纠错译码器利用校验码存储模块写入的校验码,和分布式SRAM校验保护模块修改后的配置存储模块写入的FPGA配置文件进行单粒子反转校验。本技术方案FPGA内部SRAM包括用于系统配置使用的配置SRAM和用于用户控制使用的分布式SRAM,将分布式SRAM编码保护模块和分布式SRAM校验保护模块集成在FPGA内部,在实现抗SEU功能的同时,有效提高FPGA内部SRAM资源的利用率。本技术方案把分布式SRAM比特信息修改为预置值,从而消除分布式SRAM比特信息对校验的影响,提高校验效率;即使低能量的粒子对分布式SRAM中的分布式SRAM比特信息诱发单粒子反转,仍不会影响到校验结果,减少纠错频率,提升兼容性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的FPGA单粒子反转校验电路示意图;
图2是本发明实施例公开的另一FPGA单粒子反转校验电路示意图;
图3是本发明实施例公开的FPGA单粒子反转校验方法流程图;
图4是本发明实施例公开的另一FPGA单粒子反转校验方法流程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明实施例公开的FPGA单粒子反转校验电路示意图,该图示模块、部件为FPGA内部结构的一部分。
本实施例的电路,包括:集成在FPGA内部的编程与纠错控制模块10、纠错编码器11、校验码存储模块12、配置存储模块13、以及纠错译码器14,上面这些模块、部件(把纠错编码器和纠错译码器称之为部件)均集成在FPGA内部。
编程与纠错控制模块10,用于从FPGA外部读取FPGA配置文件。FPGA配置文件用于对FPGA进行配置。编程与纠错控制模块10可通过编程IO接口与外部处理模块连接,外部处理模块包括不限于单片机、CPU、其他FPGA等能够处理信息的模块。外部处理模块可产生该FPGA配置文件。
纠错编码器11,用于根据FPGA配置文件生成校验码。生成校验码的技术包括不限于以下技术任意之一:ECC校验、奇偶校验、CRC校验。根据FPGA配置文件生成校验码,包括不限于以下情况的任意之一:利用FPGA配置文件的原文,生成校验码;以及,先对FPGA配置文件进行修改,利用修改后的FPGA配置文件生成校验码。
校验码存储模块12,用于写入校验码。可由编程与纠错控制模块10或其他模块控制校验码存储模块12写入和读出信息。
配置存储模块13,用于写入FPGA配置文件。可由编程与纠错控制模块10或其他模块控制配置存储模块13写入和读出信息。
纠错译码器14,用于利用校验码存储模块12写入的校验码和配置存储模块13写入的FPGA配置文件进行单粒子反转校验。通过校验判断FPGA中信息是否被低能量的粒子诱发单粒子反转。纠错编码器11与纠错译码器14使用算法相关,他们是配合使用的;编码器与译码器的配合原理可参考现有技术。纠错译码器14校验的时机,可根据运行策略设置,比如,可以为定期校验,可以为FPGA配置后马上检验,可以为FPGA配置后启动再检验。
上述利用校验码存储模块12写入的校验码和配置存储模块13写入的FPGA配置文件进行单粒子反转校验,包括不限于以下情况任意之一:利用校验码存储模块12写入的校验码、和配置存储模块13写入的FPGA配置文件的原文,进行单粒子反转校验;以及,利用校验码存储模块12写入的校验码、和修改后的配置存储模块13写入的FPGA配置文件,进行单粒子反转校验。该修改后的配置存储模块13写入的FPGA配置文件为:对配置存储模块13写入的FPGA配置文件进行修改,得到的修改后的FPGA配置文件。
作为一个可选的运行过程:编程与纠错控制模块10从FPGA外部读取FPGA配置文件;纠错编码器11根据FPGA配置文件生成校验码;校验码存储模块写入校验码;配置存储模块13写入FPGA配置文件;纠错译码器14利用校验码存储模块12写入的校验码和配置存储模块13写入的FPGA配置文件进行单粒子反转校验。
本技术方案中,FPGA的内部集成纠错编码器11,由FPGA的内部产生校验码,FPGA配置文件中并不包含额外的校验码,无需对额外的校验码进行处理,FPGA配置文件变小,缩短FPGA配置时间,提高FPGA配置效率;特别是在FPGA设计规模较大、FPGA配置文件较复杂的应用场景下,本技术方案能够克服FPGA配置效率下降明显的技术缺陷。此外,纠错编码器11集成在FPGA内部,无需使用FPGA外部的处理模块生成校验码、及把校验码写到FPGA配置文件中,故可降低FPGA外部处理模块的程式设计难度。
需要指出的是,FPGA外部相关模生成校验码、把校验码写到FPGA配置文件中、FPGA内部再对FPGA配置文件包含额外校验码进行处理的现有方案,与通过FPGA内部的纠错编码器11生成检验码、把检验码写入校验码存储模块12的本发明方案,是两种完全不同的思路,不可能由现有方案容易想到本发明方案,本发明方案可提高配置效率。
需要说明的是,本发明实施例对多个模块、部件定义了名称,在实施本技术方案时,本领域普通技术人员可对该名称进行修改;只要修改名称后的模块、部件的实现功能与本发明实施例的模块、部件的实现功能相同或等同,均属于本发明保护的范围。
参见图2,是本发明实施例公开的另一FPGA单粒子反转校验电路示意图,该图示模块、部件为FPGA内部结构的一部分。
本实施例的电路,FPGA为SRAM(Static Random-Access Memory,静态随机存取存储器)型FPGA,FPGA内部的SRAM包括用于系统配置使用的配置SRAM和用于用户控制使用的分布式(Distributed)SRAM;FPGA配置文件中包含配置SRAM比特信息和分布式SRAM比特信息。本实施例电路包括,集成在FPGA内部的编程与纠错控制模块10、纠错编码器11、校验码存储模块12、配置存储模块13、以及纠错译码器14,上面这些模块均集成在FPGA内部;本实施例电路还包括,集成在FPGA内部的分布式SRAM编码保护模块15、以及分布式SRAM校验保护模块16,这两个模块均集成在FPGA内部。
编程与纠错控制模块10,用于从FPGA外部读取FPGA配置文件。
分布式SRAM编码保护模块15,用于将编程与纠错控制模块10从FPGA外部读取的FPGA配置文件中的分布式SRAM比特信息修改为预置值。预置值可以预设为0,即把全部分布式SRAM比特信息修改为0;预置值也可以预设为1,即把全部分布式SRAM比特信息修改为1。在FPGA配置文件中,可包含分布式SRAM的标志位(称之为Distributed SRAM flag),用于判断FPGA配置文件中哪些比特信息(称之为Distributed SRAM data)属于分布式SRAM;根据标志位信息,可找出相应的分布式SRAM比特信息。
上述将编程与纠错控制模块10从FPGA外部读取的FPGA配置文件中的分布式SRAM比特信息修改为预置值,包括:获取编程与纠错控制模块10从FPGA外部读取的FPGA配置文件中的分布式SRAM标识位,把分布式SRAM标识位对应的分布式SRAM比特信息修改为预置值。
纠错编码器11,用于利用分布式SRAM编码保护模块15修改后的FPGA配置文件生成校验码。
校验码存储模块12,用于写入校验码。
配置存储模块13,用于写入FPGA配置文件。配置存储模块13可为从SRAM中划出来的存储模块。对于校验码存储模块12,作为一个实施方式,可为从SRAM中划出来的存储模块,即共享SRAM,该方式便于统一管理;作为另一个实施方式,可为单独的存储模块;即单独设置,不共享SRAM,该方式可减少对SRAM的影响。
分布式SRAM校验保护模块16,用于将配置存储模块13写入的FPGA配置文件中的分布式SRAM比特信息修改为预置值。分布式SRAM校验保护模块16与分布式SRAM编码保护模块15修改的预置值保持一致。
上述将配置存储模块13写入的FPGA配置文件中的分布式SRAM比特信息修改为预置值,包括:获取配置存储模块13写入的FPGA配置文件中的分布式SRAM标识位,把分布式SRAM标识位对应的分布式SRAM比特信息修改为预置值。
纠错译码器14,用于利用校验码存储模块12写入的校验码,和分布式SRAM校验保护模块16修改后的配置存储模块13写入的FPGA配置文件进行单粒子反转校验。
本实施例中,纠错编码器11为ECC编码器;即使用ECC校验的编码器。纠错译码器14为ECC译码器;即使用ECC校验的译码器。
以下介绍汉明码ECC。本发明实施例不仅适于汉明码,还可适于其他编码。
汉明码是一种线性分组码,线性分组码是将信息序列划分为长度对k的序列段,在每一段的后面附加r位校验码,且校验码与信息码之间构成线性关系,即它们之间可有线性方程组联系。这样构成的码字称为线性分组码。标准汉明码可实现1bit的纠错或2bit的检错。
生成矩阵G=(Ik|CT),信息序列与G相乘即可得到编码序列(编码码字前4位为信息位,后三位为校验位)。校验矩阵H=(C|Ik)。生成矩阵G与校验矩阵H必须满足:G·HT=0。下面以(7,4,3)汉明码为例介绍:
若已知信息序列m,通过等式C=m·G计算可得到相应的编码码字;同样的,若已知译码器接受序列n,通过等式s=n·H计算可得到译码校验子。
因为汉明码的最小汉明距离dmin=3,根据分组码的纠错定理可知,汉明码最多可实现1bit的纠错或2bit的检错。为实现更多的纠错能力可对标准汉明码进行扩展,增加一位全校验位。因此,若原来码字的重量为奇数,加上全校验位后码字重量增加1,变为偶数;当然码长也相应的增加1位,由原来的n变成n+1。若原来码字重量为偶数,则加上全校验位后,码字重量没有变化。所以扩展汉明码的最小汉明距离为dmin=4,可实现1位纠错和2位检错。
若原汉明码的校验矩阵为H,则扩展汉明码的校验矩阵为
设码长为n,信息序列长度为k,校验序列长度为r=n-k。如果需要纠正一位误码,因为长度为n的序列上每一位都可能出错,一共有n种情况,另外还有不出错的情况,所以我们必须用长度为r的校验码表示出n+1种情况。而长度为r的校验码一共可以表示2r种情况。因此2r≥n+1=k+r+1,所以以64位数据信息为例,我们要为k=64位的信息序列编码,至少需要7位校验码,但是这样的汉明码只能实现1bit误码的纠正,我们要实现1bit的纠错和2bit的检错可以增加1位全校验位,变成扩展汉明码。
ECC编码器介绍。首先确定校验码位置,校验位必须在2n位置,如1、2、4、8、16、32…位(对应20、21、22、23、24、25…),于是信息码就依次放置在非2n位置,而第0个位置不放数据,空置。而对扩展汉明码,可将全校验位写到第0个位置上。
根据校验码与信息码的位置对其进行分组,分组原则为根据位置号码第一位是1的所有码字分为第一组;第二位是1的码字分为第二组;第三位是1的码字分为第三组;……。然后对各组码字进行偶校验,这样各组中数据位相互异或就可得到对应的校验位,以64比特数据编码为例,我们将得到8比特的CB[7:0]校验位。
ECC译码器介绍。因为我们编码时对每组采用的是偶校验,所以译码器需要对各组的数据以及编码器得到的校验位再次进行偶校验计算得到校验子,以8比特校验位为例,得到S[7:0]校验子,通过校验子的值就可判断接收到的码字是否出错。
如果校验子S[6:0]=0且S7=0,说明接收方的校验码与发送方校验码相同,接收码字没有误码。
如果S7=1,S[6:0]只有一位为1或S[6:0]=0,说明1位校验码错误,数据位没有误码。可以根据S[6:0]的值查找出误码位置并纠正错误。
如果S7=1,S[6:0]中至少2位为1,说明1位数据位出错,且根据S[6:0]的值查找出误码位置并纠正错误。
如果S7=0,S[6:0]至少一位为1,则说明接收到的码字检测出2比特错误。
作为一个可选实施例,纠错译码器14还用于在校验出错误结果时,向编程与纠错控制模块上报错误结果。作为一个可选方式,纠错译码器14向编程与纠错控制模块10上报错误,由编程与纠错控制模块10对错误进行纠正,重新写入FPGA配置文件和校验码;除编程与纠错控制模块10,亦可有其他模块、部件纠错。对于校验正确的情况,纠错译码器14可不做任何处理,也可记录并上报校验正确的相关信息。
作为一个可选实施例,编程与纠错控制模块10,具体用于,从FPGA外部读取FPGA配置文件;控制配置存储模块13写入FPGA配置文件;把FPGA配置文件传输给纠错编码器11,接收纠错编码器11根据FPGA配置文件生成的校验码时,控制校验码存储模块12写入校验码;在校验时,控制校验码存储模块12把写入的校验码传输给纠错译码器14,控制配置存储模块13把写入的FPGA配置文件传输给纠错译码器14;在接收到纠错译码器14上报的错误结果时,进行单粒子反转纠错,控制配置存储模块13重新写入FPGA配置文件和/或控制校验码存储模块12重新写入校验码。
上述控制配置存储模块13重新写入FPGA配置文件和/或控制校验码存储模块12重新写入校验码,为,根据错误结果进行单粒子反转纠错,根据错误结果可能出现以下三种情况之一:控制配置存储模块13重新写入FPGA配置文件,控制校验码存储模块12重新写入校验码,控制配置存储模块13重新写入FPGA配置文件和控制校验码存储模块12重新写入校验码。
在控制配置存储模块13写入FPGA配置文件时,编程与纠错控制模块10可根据FPGA配置文件中的配置信息的相对位置按顺序输出其所在地址并产生相应的写使能信号,写使能有效时配置信息会根据地址信息写入相应的存储位置。在控制配置存储模块13把FPGA配置文件传输给纠错译码器14、即控制配置信息读出时,编程与纠错控制模块10会根据配置信息的相对位置按顺序输出其所在地址并产生相应的读使能信号,读使能有效时配置信息会根据地址信息从相应的存储位置读出。可以理解的是,除使用编程与纠错控制模块10外,还可以用其他模块来控制写入和读出。
可见,编程与纠错控制模块10作为FPGA内部的核心部件,从外部读取FPGA配置文件,统一控制、协调FPGA内部的校验相关的模块、部件,有利于提高FPGA内部的运行效率、校验效率,提升FPGA的性能。
作为一个可选的运行过程:编程与纠错控制模块10从FPGA外部读取FPGA配置文件;分布式SRAM编码保护模块15将编程与纠错控制模块10从FPGA外部读取的FPGA配置文件中的分布式SRAM比特信息修改为预置值;纠错编码器11利用分布式SRAM编码保护模块15修改后的FPGA配置文件生成校验码;校验码存储模块12写入校验码;配置存储模块13写入FPGA配置文件;分布式SRAM校验保护模块16将配置存储模块13写入的FPGA配置文件中的分布式SRAM比特信息修改为预置值。S;纠错译码器14利用校验码存储模块12写入的校验码,和分布式SRAM校验保护模块16修改后的配置存储模块13写入的FPGA配置文件进行单粒子反转校验。
本技术方案的FPGA内部SRAM包括用于系统配置使用的配置SRAM和用于用户控制使用的分布式SRAM,将分布式SRAM编码保护模块和分布式SRAM校验保护模块集成在FPGA内部,在实现抗SEU功能的同时,有效提高FPGA内部SRAM资源的利用率。本技术方案增加对分布式SRAM的保护功能,把分布式SRAM比特信息修改为预置值,从而消除分布式SRAM比特信息对校验的影响,提高校验效率;即使低能量的粒子对分布式SRAM中的分布式SRAM比特信息诱发单粒子反转,仍不会影响到校验结果,减少纠错频率,提升兼容性,具有较好的抗SEU能力。
参见图3,是本发明实施例公开的FPGA单粒子反转校验方法流程图。本实施例与图1实施例相关联,本实施例未详述内容,可参考上述实施例。
本实施例的方法,FPGA的内部集成有编程与纠错控制模块10、纠错编码器11、校验码存储模块12、配置存储模块13、以及纠错译码器14,包括步骤:
S31.编程与纠错控制模块10从FPGA外部读取FPGA配置文件。
S32a.纠错编码器11根据FPGA配置文件生成校验码。
S33.校验码存储模块12写入校验码。
S32b.配置存储模块13写入FPGA配置文件。S32a和S32b之间并不限定先后顺序关系,他们可以是并行处理的两个过程,也可以是任一个步骤先处理、另一个步骤后处理。S32a与S33之间有先后顺序关系。
S34.纠错译码器14利用校验码存储模块12写入的校验码和配置存储模块13写入的FPGA配置文件进行单粒子反转校验。
本技术方案由FPGA的内部产生校验码,无需对额外的校验码进行处理,FPGA配置文件变小,缩短FPGA配置时间,提高FPGA配置效率,并可降低FPGA外部处理模块的程式设计难度。
参见图4,是本发明实施例公开的另一FPGA单粒子反转校验方法流程图。本实施例以图2实施例相关联,本实施例未详述内容,可参考上述实施例。
实施例的方法,FPGA的内部集成有编程与纠错控制模块10、纠错编码器11、校验码存储模块12、配置存储模块13、以及纠错译码器14,FPGA的内部还集成有分布式SRAM编码保护模块15、以及分布式SRAM校验保护模块16。该方法包括步骤:
S41.编程与纠错控制模块10从FPGA外部读取FPGA配置文件。
S42a.分布式SRAM编码保护模块15将编程与纠错控制模块10从FPGA外部读取的FPGA配置文件中的分布式SRAM比特信息修改为预置值。
S43a.纠错编码器11利用分布式SRAM编码保护模块15修改后的FPGA配置文件生成校验码。
S44a.校验码存储模块12写入校验码。
S42b.配置存储模块13写入FPGA配置文件。
S43b.分布式SRAM校验保护模块16将配置存储模块13写入的FPGA配置文件中的分布式SRAM比特信息修改为预置值。S42a与S42b之间并不限定先后顺序关系,他们可以是并行处理的两个过程,也可以是任一个步骤先处理、另一个步骤后处理。S42a、S43a、S44a之间有先后顺序关系。S42b与S43b之间有先后顺序关系。
S45.纠错译码器14利用校验码存储模块12写入的校验码,和分布式SRAM校验保护模块16修改后的配置存储模块13写入的FPGA配置文件进行单粒子反转校验。
作为一个可选实施例,纠错译码器14利用校验码存储模块12写入的校验码和配置存储模块13写入的FPGA配置文件进行单粒子反转校验,之后包括:纠错译码器14在校验出错误结果时,向编程与纠错控制模块上报错误结果。
作为一个可选实施例,在该实施例中,编程与纠错控制模块10作为FPGA内部的核心部件,从外部读取FPGA配置文件,统一控制、协调FPGA内部的校验相关的模块、部件,有利于提高FPGA内部的运行效率、校验效率,提升FPGA的性能。该实施例如下:
编程与纠错控制模块10从FPGA外部读取FPGA配置文件,之后包括:把FPGA配置文件传输给纠错编码器11;
纠错编码器11根据FPGA配置文件生成校验码,之后包括:编程与纠错控制模块10接收纠错编码器11根据FPGA配置文件生成的校验码;
校验码存储模块12写入校验码,具体为,编程与纠错控制模块10控制校验码存储模块12写入校验码;
配置存储模块13写入FPGA配置文件,具体为,编程与纠错控制模块10控制配置存储模块13写入FPGA配置文件;
纠错译码器14利用校验码存储模块12写入的校验码和配置存储模块13写入的FPGA配置文件进行单粒子反转校验,之前包括:编程与纠错控制模块10在校验时,控制校验码存储模块12把写入的校验码传输给纠错译码器14,控制配置存储模块13把写入的FPGA配置文件传输给纠错译码器14;
纠错译码器14在校验出错误结果时,向编程与纠错控制模块上报错误结果,之后包括:编程与纠错控制模块10在接收到纠错译码器14上报的错误结果时,进行单粒子反转纠错,控制配置存储模块13重新写入FPGA配置文件和/或控制校验码存储模块12重新写入校验码。
作为一个可选实施例,校验码存储模块12为从SRAM中划出来的存储模块、或单独的存储模块;纠错编码器11为ECC编码器,纠错译码器14为ECC译码器。
本技术方案增加对分布式SRAM的保护功能,把分布式SRAM比特信息修改为预置值,从而消除分布式SRAM比特信息对校验的影响,提高校验效率,具有较好的抗SEU能力。
以上内容仅为本发明的较佳实施例,对于本领域的普通技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种FPGA单粒子反转校验电路,其特征在于,包括:集成在FPGA内部的编程与纠错控制模块、纠错编码器、校验码存储模块、配置存储模块、以及纠错译码器;
编程与纠错控制模块,用于从FPGA外部读取FPGA配置文件;
纠错编码器,用于根据所述FPGA配置文件生成校验码;
校验码存储模块,用于写入所述校验码;
配置存储模块,用于写入所述FPGA配置文件;
纠错译码器,用于利用校验码存储模块写入的所述校验码和配置存储模块写入的所述FPGA配置文件进行单粒子反转校验。
2.根据权利要求1所述的电路,其特征在于:
所述FPGA为SRAM型FPGA,FPGA内部的SRAM包括用于系统配置使用的配置SRAM和用于用户控制使用的分布式SRAM;所述FPGA配置文件中包含配置SRAM比特信息和分布式SRAM比特信息;
所述电路还包括:集成在FPGA内部的分布式SRAM编码保护模块、以及分布式SRAM校验保护模块;
分布式SRAM编码保护模块,用于将编程与纠错控制模块从FPGA外部读取的所述FPGA配置文件中的分布式SRAM比特信息修改为预置值;
所述纠错编码器,具体用于利用分布式SRAM编码保护模块修改后的所述FPGA配置文件生成校验码;
分布式SRAM校验保护模块,用于将配置存储模块写入的FPGA配置文件中的分布式SRAM比特信息修改为所述预置值;
所述纠错译码器,具体用于利用校验码存储模块写入的所述校验码,和分布式SRAM校验保护模块修改后的配置存储模块写入的所述FPGA配置文件进行校验。
3.根据权利要求1所述的电路,其特征在于:
纠错译码器,还用于在校验出错误结果时,向编程与纠错控制模块上报错误结果。
4.根据权利要求3所述的电路,其特征在于:
编程与纠错控制模块,具体用于,从FPGA外部读取FPGA配置文件;控制配置存储模块写入FPGA配置文件;把FPGA配置文件传输给纠错编码器,接收纠错编码器根据所述FPGA配置文件生成的校验码时,控制校验码存储模块写入校验码;在校验时,控制校验码存储模块把写入的所述校验码传输给纠错译码器,控制配置存储模块把写入的所述FPGA配置文件传输给纠错译码器;在接收到纠错译码器上报的错误结果时,进行单粒子反转纠错,控制配置存储模块重新写入FPGA配置文件和/或控制校验码存储模块重新写入校验码。
5.根据权利要求2所述的电路,其特征在于:
所述校验码存储模块为从所述SRAM中划出来的存储模块、或单独的存储模块;
所述纠错编码器为ECC编码器,所述纠错译码器为ECC译码器。
6.一种FPGA单粒子反转校验方法,所述FPGA的内部集成有编程与纠错控制模块、纠错编码器、校验码存储模块、配置存储模块、以及纠错译码器,其特征在于,包括步骤:
编程与纠错控制模块从FPGA外部读取FPGA配置文件;
纠错编码器根据所述FPGA配置文件生成校验码;
校验码存储模块写入所述校验码;
配置存储模块写入所述FPGA配置文件;
纠错译码器利用校验码存储模块写入的所述校验码和配置存储模块写入的所述FPGA配置文件进行单粒子反转校验。
7.根据权利要求6所述的方法,其特征在于:所述FPGA为SRAM型FPGA,FPGA内部的SRAM包括用于系统配置使用的配置SRAM和用于用户控制使用的分布式SRAM;所述FPGA配置文件中包含配置SRAM比特信息和分布式SRAM比特信息;所述FPGA的内部还集成有分布式SRAM编码保护模块、以及分布式SRAM校验保护模块;
所述纠错编码器根据所述FPGA配置文件生成校验码,之前还包括:
分布式SRAM编码保护模块将编程与纠错控制模块从FPGA外部读取的所述FPGA配置文件中的分布式SRAM比特信息修改为预置值;
所述纠错编码器根据所述FPGA配置文件生成校验码,具体为,纠错编码器利用分布式SRAM编码保护模块修改后的所述FPGA配置文件生成校验码;
所述纠错译码器利用校验码存储模块写入的所述校验码和配置存储模块写入的所述FPGA配置文件进行单粒子反转校验,之前还包括:
分布式SRAM校验保护模块将配置存储模块写入的FPGA配置文件中的分布式SRAM比特信息修改为所述预置值;
所述纠错译码器利用校验码存储模块写入的所述校验码和配置存储模块写入的所述FPGA配置文件进行单粒子反转校验,具体为,纠错译码器利用校验码存储模块写入的所述校验码,和分布式SRAM校验保护模块修改后的配置存储模块写入的所述FPGA配置文件进行单粒子反转校验。
8.根据权利要求6所述的方法,其特征在于:
所述纠错译码器利用校验码存储模块写入的所述校验码和配置存储模块写入的所述FPGA配置文件进行单粒子反转校验,之后包括:纠错译码器在校验出错误结果时,向编程与纠错控制模块上报错误结果。
9.根据权利要求8所述的方法,其特征在于:
所述编程与纠错控制模块从FPGA外部读取FPGA配置文件,之后包括:把FPGA配置文件传输给纠错编码器;
所述纠错编码器根据所述FPGA配置文件生成校验码,之后包括:编程与纠错控制模块接收纠错编码器根据所述FPGA配置文件生成的校验码;
所述校验码存储模块写入所述校验码,具体为,编程与纠错控制模块控制校验码存储模块写入所述校验码;
所述配置存储模块写入所述FPGA配置文件,具体为,编程与纠错控制模块控制配置存储模块写入所述FPGA配置文件;
所述纠错译码器利用校验码存储模块写入的所述校验码和配置存储模块写入的所述FPGA配置文件进行单粒子反转校验,之前包括:编程与纠错控制模块在校验时,控制校验码存储模块把写入的所述校验码传输给纠错译码器,控制配置存储模块把写入的所述FPGA配置文件传输给纠错译码器;
所述纠错译码器在校验出错误结果时,向编程与纠错控制模块上报错误结果,之后包括:编程与纠错控制模块在接收到纠错译码器上报的错误结果时,进行单粒子反转纠错,控制配置存储模块重新写入FPGA配置文件和/或控制校验码存储模块重新写入校验码。
10.根据权利要求7所述的方法,其特征在于,所述校验码存储模块为从所述SRAM中划出来的存储模块、或单独的存储模块;所述纠错编码器为ECC编码器,所述纠错译码器为ECC译码器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911106828.4A CN111143107B (zh) | 2019-11-13 | 2019-11-13 | 一种fpga单粒子反转校验电路和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911106828.4A CN111143107B (zh) | 2019-11-13 | 2019-11-13 | 一种fpga单粒子反转校验电路和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111143107A true CN111143107A (zh) | 2020-05-12 |
CN111143107B CN111143107B (zh) | 2022-06-17 |
Family
ID=70517078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911106828.4A Active CN111143107B (zh) | 2019-11-13 | 2019-11-13 | 一种fpga单粒子反转校验电路和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111143107B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579333A (zh) * | 2020-11-30 | 2021-03-30 | 上海航天控制技术研究所 | 空间站太阳翼控制的高可靠自修复在轨可编程系统和方法 |
CN113655745A (zh) * | 2021-08-19 | 2021-11-16 | 无锡中微亿芯有限公司 | 一种实现配置码流自动检纠错的fpga |
CN114996050A (zh) * | 2022-08-01 | 2022-09-02 | 中科亿海微电子科技(苏州)有限公司 | 一种参数可配置的自动检纠错电路及检纠错方法 |
CN115297071A (zh) * | 2022-07-15 | 2022-11-04 | 中国航空无线电电子研究所 | 一种arinc664交换机交换引擎对seu和mbu容错设计方法 |
WO2023019742A1 (zh) * | 2021-08-19 | 2023-02-23 | 无锡中微亿芯有限公司 | 具有对可编程逻辑模块自动检纠错功能的fpga |
US11604692B2 (en) | 2021-08-19 | 2023-03-14 | Wuxi Esiontech Co., Ltd. | Field programmable gate array (FPGA) with automatic error detection and correction function for programmable logic modules |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040124876A1 (en) * | 2002-12-30 | 2004-07-01 | Actel Corporation | Apparatus and method of error detection and correction in a radiation-hardened static random access memory field-programmable gate array |
US6772387B1 (en) * | 1998-03-16 | 2004-08-03 | Actel Corporation | Cyclic redundancy checking of a field programmable gate array having an SRAM memory architecture |
CN102356383A (zh) * | 2009-03-17 | 2012-02-15 | 国际商业机器公司 | 集成电路中的容错性 |
CN102751995A (zh) * | 2012-07-20 | 2012-10-24 | 天津工大瑞工光电技术有限公司 | 一种基于fpga的抗多位错误翻转rs码检错纠错系统 |
CN103984630A (zh) * | 2014-05-27 | 2014-08-13 | 中国科学院空间科学与应用研究中心 | 一种基于at697处理器的单粒子翻转故障处理方法 |
CN104051002A (zh) * | 2014-06-06 | 2014-09-17 | 中国科学院长春光学精密机械与物理研究所 | 抗单粒子翻转的sram型fpga刷新电路及刷新方法 |
CN104461764A (zh) * | 2014-12-16 | 2015-03-25 | 北京控制工程研究所 | 一种内置crc校验码的fpga配置文件生成方法 |
CN104484214A (zh) * | 2014-12-30 | 2015-04-01 | 华中科技大学 | 一种sram型fpga的配置、刷新与程序上注一体化系统 |
CN104579313A (zh) * | 2014-12-30 | 2015-04-29 | 北京控制工程研究所 | 一种基于配置帧的在轨sram型fpga故障检测与修复方法 |
CN105760250A (zh) * | 2016-02-04 | 2016-07-13 | 北京时代民芯科技有限公司 | 一种具有码流纠检错功能的单粒子加固fpga配置电路 |
US20180067810A1 (en) * | 2016-09-02 | 2018-03-08 | Alibaba Group Holding Limited | Method and system of high-availability pcie ssd with software-hardware jointly assisted implementation to enhance immunity on multi-cell upset |
-
2019
- 2019-11-13 CN CN201911106828.4A patent/CN111143107B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6772387B1 (en) * | 1998-03-16 | 2004-08-03 | Actel Corporation | Cyclic redundancy checking of a field programmable gate array having an SRAM memory architecture |
US20040124876A1 (en) * | 2002-12-30 | 2004-07-01 | Actel Corporation | Apparatus and method of error detection and correction in a radiation-hardened static random access memory field-programmable gate array |
CN102356383A (zh) * | 2009-03-17 | 2012-02-15 | 国际商业机器公司 | 集成电路中的容错性 |
CN102751995A (zh) * | 2012-07-20 | 2012-10-24 | 天津工大瑞工光电技术有限公司 | 一种基于fpga的抗多位错误翻转rs码检错纠错系统 |
CN103984630A (zh) * | 2014-05-27 | 2014-08-13 | 中国科学院空间科学与应用研究中心 | 一种基于at697处理器的单粒子翻转故障处理方法 |
CN104051002A (zh) * | 2014-06-06 | 2014-09-17 | 中国科学院长春光学精密机械与物理研究所 | 抗单粒子翻转的sram型fpga刷新电路及刷新方法 |
CN104461764A (zh) * | 2014-12-16 | 2015-03-25 | 北京控制工程研究所 | 一种内置crc校验码的fpga配置文件生成方法 |
CN104484214A (zh) * | 2014-12-30 | 2015-04-01 | 华中科技大学 | 一种sram型fpga的配置、刷新与程序上注一体化系统 |
CN104579313A (zh) * | 2014-12-30 | 2015-04-29 | 北京控制工程研究所 | 一种基于配置帧的在轨sram型fpga故障检测与修复方法 |
CN105760250A (zh) * | 2016-02-04 | 2016-07-13 | 北京时代民芯科技有限公司 | 一种具有码流纠检错功能的单粒子加固fpga配置电路 |
US20180067810A1 (en) * | 2016-09-02 | 2018-03-08 | Alibaba Group Holding Limited | Method and system of high-availability pcie ssd with software-hardware jointly assisted implementation to enhance immunity on multi-cell upset |
Non-Patent Citations (2)
Title |
---|
顾义坤等: "Xilinx FPGA自主配置管理容错设计研究", 《宇航学报》 * |
顾义坤等: "Xilinx FPGA自主配置管理容错设计研究", 《宇航学报》, 31 October 2012 (2012-10-31), pages 1 - 9 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579333A (zh) * | 2020-11-30 | 2021-03-30 | 上海航天控制技术研究所 | 空间站太阳翼控制的高可靠自修复在轨可编程系统和方法 |
CN113655745A (zh) * | 2021-08-19 | 2021-11-16 | 无锡中微亿芯有限公司 | 一种实现配置码流自动检纠错的fpga |
WO2023019742A1 (zh) * | 2021-08-19 | 2023-02-23 | 无锡中微亿芯有限公司 | 具有对可编程逻辑模块自动检纠错功能的fpga |
US11604692B2 (en) | 2021-08-19 | 2023-03-14 | Wuxi Esiontech Co., Ltd. | Field programmable gate array (FPGA) with automatic error detection and correction function for programmable logic modules |
CN113655745B (zh) * | 2021-08-19 | 2023-04-07 | 无锡中微亿芯有限公司 | 一种实现配置码流自动检纠错的fpga |
CN115297071A (zh) * | 2022-07-15 | 2022-11-04 | 中国航空无线电电子研究所 | 一种arinc664交换机交换引擎对seu和mbu容错设计方法 |
CN115297071B (zh) * | 2022-07-15 | 2023-10-27 | 中国航空无线电电子研究所 | 一种arinc664交换机交换引擎对seu和mbu容错设计方法 |
CN114996050A (zh) * | 2022-08-01 | 2022-09-02 | 中科亿海微电子科技(苏州)有限公司 | 一种参数可配置的自动检纠错电路及检纠错方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111143107B (zh) | 2022-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111143107B (zh) | 一种fpga单粒子反转校验电路和方法 | |
US11108408B2 (en) | Memory controller and method of accessing flash memory | |
US20200162104A1 (en) | Memory controller and method of data bus inversion using an error detection correction code | |
US20180167088A1 (en) | Error-Correcting Code Method and System with Hybrid Block Product Codes | |
CN102017425B (zh) | 用于执行级联纠错的方法和系统 | |
JP2001358702A (ja) | 誤り訂正符号の検査装置 | |
CN111628780A (zh) | 数据编码、解码方法及数据处理系统 | |
JP2019125910A (ja) | メモリシステム | |
US10191801B2 (en) | Error correction code management of write-once memory codes | |
US10514980B2 (en) | Encoding method and memory storage apparatus using the same | |
KR20200133823A (ko) | 점진적 길이 에러 제어 코드 | |
US20160049962A1 (en) | Method and apparatus of ldpc encoder in 10gbase-t system | |
US20040088497A1 (en) | Methods and apparatus for exchanging data using cyclic redundancy check codes | |
US10860415B2 (en) | Memory architecture including response manager for error correction circuit | |
CN105575439B (zh) | 一种存储单元失效纠错的方法及存储器 | |
US8977936B2 (en) | Strong single and multiple error correcting WOM codes, coding methods and devices | |
US9361180B2 (en) | Storing data by an ECC memory | |
US11126500B2 (en) | Error detection and correction with integrity checking | |
Sim et al. | Design of Two Interleaved Error Detection and Corrections Using Hsiao Code and CRC | |
CN108170554B (zh) | 一种nand的数据编码方法和装置 | |
EP4369201A1 (en) | Data processing method and apparatus | |
CN110289863B (zh) | 译码设备、方法及信号传输系统 | |
US20240106462A1 (en) | G-ldpc decoder and g-ldpc decoding method | |
US11088711B2 (en) | Memory apparatus and data accessing method thereof | |
US11876535B1 (en) | Memory controller and method for controlling data in decoding pipeline |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |