CN107015880A - 一种fpga电路和其配置文件处理方法 - Google Patents
一种fpga电路和其配置文件处理方法 Download PDFInfo
- Publication number
- CN107015880A CN107015880A CN201610059947.9A CN201610059947A CN107015880A CN 107015880 A CN107015880 A CN 107015880A CN 201610059947 A CN201610059947 A CN 201610059947A CN 107015880 A CN107015880 A CN 107015880A
- Authority
- CN
- China
- Prior art keywords
- configuration file
- configuration
- ecc
- fpga
- error correction
- 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
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)
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种FPGA电路和配置文件处理方法。在一个实施例中,FPGA电路包括配置存储器,用于存储有FPGA配置文件,配置文件包括配置数据和ECC码;硬件ECC解码器,利用ECC码对配置数据进行纠错和检错;单粒子翻转控制器,用于回读配置文件,并且利用硬件ECC解码器对回读的配置文件进行检查和纠错。通过使用该电路,可使FPGA支持单粒子翻转的能力得到大大的增强,从而使FPGA可以应用到宇航、航空或其他对设备出错比较敏感的领域,因此具有广泛和重大的意义。
Description
技术领域
本发明涉及一种集成电路,特别涉及FPGA电路和其配置文件处理方法。
背景技术
随着技术的进步,对星载信号处理能力的要求越来越高,FPGA也越来越多地应用到航天领域,成为星载信号处理和控制的关键部件。目前,从FPGA在星载型号产品中的使用情况来看,单粒子效应成为了影响大规模FPGA可用性和可靠性的主要因素。
宇航级大规模FPGA都是基于SRAM型,SRAM型FPGA在应用于可靠性有较高要求的场合时必须通过配置文件回读的方式进行检错,但是其内部寄存器易受单例子效应影响而产生错误。因此,针对大规模FPGA进行抗单粒子效应的研究非常重要且迫切。
发明内容
在第一方面,本发明实施例提供一种FPGA电路。该电路包括配置存储器,用于存储有FPGA配置文件,配置文件包括配置数据和ECC码;硬件ECC解码器,利用ECC码对配置数据进行纠错和检错;单粒子翻转控制器,用于回读配置文件,并且利用硬件ECC解码器对回读的配置文件进行检查和纠错。
优选地,单粒子翻转控制器从配置存储器中按块读取配置文件,传输到ECC解码器中进行ECC检测或纠错;配置文件进过ECC检测或纠错后,被写回到配置存储器中。
ECC码可以是汉明、BCH、RS码或其它形式的编码。
优选地,配置文件包括多组数据和ECC编码的校验位。
在第二方面,本发明实施例提供一种FPGA电路的配置文件处理方法,该方法包括从配置存储器中按块读取配置文件,将配置文件进行ECC检测或纠错;配置文件进行ECC检测或纠错后,被写回到配置存储器中。
通过使用ECC检查和纠错,可使FPGA支持单粒子翻转的能力得到大大的增强,从而使FPGA可以应用到宇航、航空或其他对设备出错比较敏感的领域,因此具有广泛和重大的意义。
附图说明
图1是带有ECC校验码的一种配置文件结构;
图2示意了根据本发明实施例的带有ECC纠错校验功能的FPGA芯片;
图3示意了带有ECC校验功能的FPGA设计及下载流程;
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
本发明实施例在FPGA配置文件中添加ECC码的配置架构,并且FPGA器件在运行过程中基于ECC码执行FPGA配置文件的回读、检查并纠错。通过使用该架构,可使FPGA支持单粒子翻转的能力得到大大的增强。
图1描述了带有ECC校验码的一种配置文件结构。其中FPGA配置文件以配置链的长度为单位,加入ECC校验码。在图1中,每一个组数据Data对应了每一条配置存储器链,每一条配置存储器链有一个ECC编码的校验位。整个配置FPGA芯片的配置文件包含了若干组数据和对应的配置存储器链。
图2是本发明实施例的FPGA芯片原理示意图。如图2所示,FPGA芯片包括配置存储器、硬件ECC(Error Correcting Code,即错误检查和纠正)解码器和单粒子翻转(single event upset,下文简称SEU)控制器。
配置存储器可以存储有如图1所示的FPGA配置文件。配置文件是定制FPGA器件功能的二进制文件,用于控制FPGA内部可编程的内部逻辑、内部寄存器和I/O寄存器初始化,I/O驱动器使能等。用户用图形或者语言描述所需要的功能,开发系统把它转成最后的配置文件。在一个例子中,FPGA使用SRAM单元来存储配置文件,通常FPGA中的SRAM是易失的,尤其在航天等领域中受单粒子效应影响FPGA芯片而产生错误。每次上电之前,配置文件必须重新下载到FPGA中。在运行过程中也有必要回读配置文件进行检查并纠错。为此,配置文件中除配置数据外,还预先结合有ECC码,以便在写入或回读过程中对配置文件进行ECC纠错。
ECC解码器基于配置文件中的ECC码,对回读的配置数据检测和纠错。ECC码例如有汉明码及其改进码。ECC码解码的原理是在配置文件中加入一些冗余码,使这些数据源码与冗余码之间根据某种规则建立一定的关系,一旦回读时配置文件因为某种原因(例如单粒子效应)而出现某些错误时,数据源码与检验码之间的关系被破坏,就形成非法编码。ECC解码方式具有纠正单比特翻转和检测多比特翻转的能力。
SEU控制器用于在运行过程中执行FPGA配置文件的回读、检查并纠错。在一个例子中,SEU控制器可以包括FPGA配置文件回读控制器、FPGA配置文件比较、判断控制器和FPGA配置文件写回控制器等。
在操作中,SEU控制器进入检测纠错模式,对配置存储器中发出读指令(参见图标1)。
配置存储器中第一条配置链的配置数据和其相应的校验码被读出,送到硬件ECC解码器进行检测或纠错(参见图标2)。若经过ECC硬件检测后,发现该条配置链数据或ECC检验码中有1比特错误,则进入流程3(参见图标3);若没有错误或者有2比特及以上的错误,则进入流程4(参见图标4)。
将纠错过的配置链的配置数据按照读取的地址,写回到配置存储器中(参见图标3)。
若ECC硬件解码器发送无错信号,SEU控制器则调整状态,对下一条配置链数据进行同样的操作;若发送2比特及以上的错误,SEU控制器会向系统级发出相应的警报,可对FPGA进行重配置或加载(参见图标4),对下一个配置文件块进行同样的检测;如此时依然检测有错误发生,则表明这个出错的配置文件块已经超出了ECC编码的纠错能力范围,错误被误纠了,没有真正的解决出错问题,这时会向SEU控制器发出状态结果(参见图标4),控制器会根据这一结果向系统级发出相应的请求。
通过使用这种新型的FPGA配置架构,可使基于SRAM的FPGA器件在运行过程中一直执行FPGA配置文件的回读、检查并纠错的过程。通过使用ECC的方式,确保每一块FPGA配置文件都是正确的。通过使用该架构,可使FPGA支持单粒子翻转的能力得到大大的增强,从而使FPGA可以应用到宇航、航空或其他对设备出错比较敏感的领域,因此具有广泛和重大的意义。
图3示意了带有ECC校验功能的FPGA设计及下载流程图。如图3所示,FPGA的设计流程大致包括电路设计与输入、功能仿真、综合、综合后仿真、实现。
首先在电路设计与输入阶段,利用硬件描述语言HDL将所设计的功能描述给EDA软件。
在综合阶段,将HDL语言等设计输入翻译为由与、或、非门、RAM以及寄存器等基本逻辑单元组成的逻辑连接(网表),并根据设计约束对速度和面积进行逻辑优化。
在实现阶段,根据所选芯片的型号,将综合输出的逻辑网表适配到FPGA器件上。
在码流生成的过程中,根据配置文件的块、组的信息加入与之相应的ECC的检验码。以配置链的长度为单位,加入ECC校验码。
最后,加入了ECC校验码的配置文件,基于例如JTAG的配置方式下载到配置芯片中。
FPGA上电以后首先进入配置模式(configuration),在最后一个配置数据载入到FPGA以后,进入初始化模式(initialization),在初始化完成后进入用户模式(user-mode)。在配置模式和初始化模式下,FPGA的用户I/O处于高阻态(或内部弱上拉状态),当进入用户模式下,用户I/O就按照用户设计的功能工作。
前文结合汉明码叙述了本发明的实施例,汉明码的特点在于纠错一比特,检测两比特。显然,本发明不限于此,还可以扩展到可纠错多比特的编码方式,如BCH、RS或其它纠错编码。BCH码是用于校正多个随机错误模式的多级、循环、错误校正、变长数字编码。RS(Reed-Solomon)码是一类纠错能力很强的特殊的非二进制BCH码。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种FPGA电路,包括:
配置存储器,用于存储有FPGA配置文件,配置文件包括配置数据和ECC码;
硬件ECC解码器,利用ECC码对配置数据进行纠错和检错;
单粒子翻转控制器,用于回读配置文件,并且利用硬件ECC解码器对回读的配置文件进行检查和纠错。
2.如权利要求1所述的FPGA电路,其中单粒子翻转控制器从配置存储器中按块读取配置文件,传输到ECC解码器中进行ECC检测或纠错;配置文件进过ECC检测或纠错后,被写回到配置存储器中。
3.如权利要求1所述的FPGA电路,其中ECC码是汉明、BCH或RS码。
4.如权利要求1所述的FPGA电路,其中配置文件包括多组数据和ECC编码的校验位。
5.一种FPGA电路的配置文件处理方法,包括:
从配置存储器中按块读取配置文件,将配置文件进行ECC检测或纠错;配置文件进行ECC检测或纠错后,被写回到配置存储器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610059947.9A CN107015880B (zh) | 2016-01-28 | 2016-01-28 | 一种fpga电路和其配置文件处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610059947.9A CN107015880B (zh) | 2016-01-28 | 2016-01-28 | 一种fpga电路和其配置文件处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107015880A true CN107015880A (zh) | 2017-08-04 |
CN107015880B CN107015880B (zh) | 2020-06-30 |
Family
ID=59439420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610059947.9A Active CN107015880B (zh) | 2016-01-28 | 2016-01-28 | 一种fpga电路和其配置文件处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107015880B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110941510A (zh) * | 2019-11-14 | 2020-03-31 | 中国航空工业集团公司西安航空计算技术研究所 | 一种fpga的在线重加载电路及方法 |
CN111597073A (zh) * | 2020-06-24 | 2020-08-28 | 上海安路信息科技有限公司 | Fpga单粒子翻转纠错方法及电路 |
CN112052113A (zh) * | 2020-08-26 | 2020-12-08 | 国电南瑞科技股份有限公司 | 一种通信链路层报文单粒子效应容错方法及装置 |
CN113655745A (zh) * | 2021-08-19 | 2021-11-16 | 无锡中微亿芯有限公司 | 一种实现配置码流自动检纠错的fpga |
CN114996050A (zh) * | 2022-08-01 | 2022-09-02 | 中科亿海微电子科技(苏州)有限公司 | 一种参数可配置的自动检纠错电路及检纠错方法 |
CN117278176A (zh) * | 2023-11-23 | 2023-12-22 | 中科亿海微电子科技(苏州)有限公司 | 一种具有纠错功能的fpga配置文件生成装置及方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080072120A1 (en) * | 2006-08-31 | 2008-03-20 | Micron Technology, Inc. | Variable Strength ECC |
US7408381B1 (en) * | 2006-02-14 | 2008-08-05 | Xilinx, Inc. | Circuit for and method of implementing a plurality of circuits on a programmable logic device |
US7576557B1 (en) * | 2008-03-26 | 2009-08-18 | Xilinx, Inc. | Method and apparatus for mitigating one or more event upsets |
US8516339B1 (en) * | 2011-04-01 | 2013-08-20 | Xilinx, Inc. | Method of and circuit for correcting adjacent bit errors in a memory |
CN105280239A (zh) * | 2015-10-22 | 2016-01-27 | 湖南国科微电子股份有限公司 | 一种动态实现固态硬盘ecc校验码的方法和装置 |
CN105304143A (zh) * | 2014-07-21 | 2016-02-03 | 群联电子股份有限公司 | 解码方法、存储器控制电路单元及存储器存储装置 |
-
2016
- 2016-01-28 CN CN201610059947.9A patent/CN107015880B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7408381B1 (en) * | 2006-02-14 | 2008-08-05 | Xilinx, Inc. | Circuit for and method of implementing a plurality of circuits on a programmable logic device |
US20080072120A1 (en) * | 2006-08-31 | 2008-03-20 | Micron Technology, Inc. | Variable Strength ECC |
US7576557B1 (en) * | 2008-03-26 | 2009-08-18 | Xilinx, Inc. | Method and apparatus for mitigating one or more event upsets |
US8516339B1 (en) * | 2011-04-01 | 2013-08-20 | Xilinx, Inc. | Method of and circuit for correcting adjacent bit errors in a memory |
CN105304143A (zh) * | 2014-07-21 | 2016-02-03 | 群联电子股份有限公司 | 解码方法、存储器控制电路单元及存储器存储装置 |
CN105280239A (zh) * | 2015-10-22 | 2016-01-27 | 湖南国科微电子股份有限公司 | 一种动态实现固态硬盘ecc校验码的方法和装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110941510A (zh) * | 2019-11-14 | 2020-03-31 | 中国航空工业集团公司西安航空计算技术研究所 | 一种fpga的在线重加载电路及方法 |
CN110941510B (zh) * | 2019-11-14 | 2023-05-05 | 中国航空工业集团公司西安航空计算技术研究所 | 一种fpga的在线重加载电路及方法 |
CN111597073A (zh) * | 2020-06-24 | 2020-08-28 | 上海安路信息科技有限公司 | Fpga单粒子翻转纠错方法及电路 |
CN112052113A (zh) * | 2020-08-26 | 2020-12-08 | 国电南瑞科技股份有限公司 | 一种通信链路层报文单粒子效应容错方法及装置 |
CN112052113B (zh) * | 2020-08-26 | 2022-11-11 | 国电南瑞科技股份有限公司 | 一种通信链路层报文单粒子效应容错方法及装置 |
CN113655745A (zh) * | 2021-08-19 | 2021-11-16 | 无锡中微亿芯有限公司 | 一种实现配置码流自动检纠错的fpga |
CN113655745B (zh) * | 2021-08-19 | 2023-04-07 | 无锡中微亿芯有限公司 | 一种实现配置码流自动检纠错的fpga |
CN114996050A (zh) * | 2022-08-01 | 2022-09-02 | 中科亿海微电子科技(苏州)有限公司 | 一种参数可配置的自动检纠错电路及检纠错方法 |
CN117278176A (zh) * | 2023-11-23 | 2023-12-22 | 中科亿海微电子科技(苏州)有限公司 | 一种具有纠错功能的fpga配置文件生成装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107015880B (zh) | 2020-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107015880A (zh) | 一种fpga电路和其配置文件处理方法 | |
CN107710325A (zh) | 一种fpga电路和其配置文件处理方法 | |
CN107799151B (zh) | 固态盘SSD及高可用性PCIe SSD的方法和系统 | |
US8914687B2 (en) | Providing test coverage of integrated ECC logic en embedded memory | |
CN104798047B (zh) | 错误检测和校正装置及方法 | |
US20030093252A1 (en) | Message packet logging in a distributed simulation system | |
Straka et al. | SEU simulation framework for Xilinx FPGA: First step towards testing fault tolerant systems | |
CN107943609A (zh) | 存储器模块、存储器控制器和系统及其相应操作方法 | |
Straka et al. | Fault tolerant system design and SEU injection based testing | |
CN102356383B (zh) | 用于确定集成电路中的容错性的方法和系统 | |
CN111459712B (zh) | Sram型fpga单粒子翻转纠错方法及单粒子翻转纠错电路 | |
CN105320579A (zh) | 面向sparc v8处理器的自修复双冗余流水线及容错方法 | |
CN103413571B (zh) | 存储器和利用该存储器实现检错纠错的方法 | |
Ahilan et al. | Improving lifetime of memory devices using evolutionary computing based error correction coding | |
CN105320575B (zh) | 一种双模冗余流水线的自校验及恢复装置与方法 | |
CN111597073B (zh) | Fpga单粒子翻转纠错方法及电路 | |
CN1896959A (zh) | 一种静态数据存储的纠错编码装置 | |
Psarakis et al. | Design and implementation of a self-healing processor on SRAM-based FPGAs | |
Xie et al. | Soft error mitigation and recovery of SRAM-based FPGAs using brain-inspired hybrid-grained scrubbing mechanism | |
CN205193785U (zh) | 一种双模冗余流水线的自校验及恢复装置 | |
Baraza-Calvo et al. | Proposal of an adaptive fault tolerance mechanism to tolerate intermittent faults in RAM | |
JP3139738B2 (ja) | 論理回路 | |
US20150278010A1 (en) | Digital device | |
Bonnoit et al. | Using error correcting codes without speed penalty in embedded memories: Algorithm, implementation and case study | |
Kuo et al. | Symbiotic controller design using a memory-based FSM model |
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 |