抗SEU存储器的FPGA设计实现
O 引言
随着我国航空航天事业的迅猛发展,卫星的应用越来越广泛。然而,太空环境复杂多变,其中存在着各种宇宙射线与高能带电粒子,它们对运行于其中的电子器件会产生各种辐射效应。辐射效应对电子器件的影响不可忽视,因为辐射会使器件的性能参数发生退化,以至失效,从而影响卫星的可靠运行,缩短卫星的使用寿命。辐射效应对电子器件的影响很多,其中最主要的有总剂量效应(TID)和单粒子效应(S-EE)。SEE按产生的影响主要包括单粒子翻转(SEU)、单粒子闩锁(SEL)和单粒子烧毁(SEB)等三种类型,其中以SEU最为常见。在各种辐射效应当中,存储器对SEU最为敏感,所以,对存储器的抗辐射设计首先要考虑的就是抗SEU设计。
事实上,不同的空间环境和应用需求,对存储器的数量与质量也有不同的要求。例如:在上传指令与下载星载仪器仪表的状态时,要求数据有很高的可靠性,此时对内存容量则没有特别的要求;而在处理某些用途的图像数据时,对数据可靠性的要求则相应较低,此时则需要较大的内存容量。所以在采用具体的抗SEU方法时,也要因其不同情况而做出适合的选择。
本文将采用扩展汉明码编码(Extended Hamming Code)与三模冗余(Triple Modular Redundancy,TMR)相结合的方法,并利用二者检错纠错的不同特点,来对SRAM进行检错纠错模式可调的抗SEU设计。这样既可实现存储器的抗SEU设计。又可满足对存储器使用灵活性的要求。
1 扩展汉明码与TMR检错纠错原理
1.1 扩展汉明码检错纠错原理
扩展汉明码是一种常用的能检测两位错同时能纠正一位错的编码方法。它是在汉明码的基础上.在码字上再加入一个对所有码元都进行校验的校验位而得到的,故称为扩展汉明码。
扩展汉明码是线性分组码的一种,其信息位和监督位的关联可由一组线性代数方程组表示。(n,k)线性分组码的编码就是去建立由r(其中r=n-k)个生成冗余位的方程式构成的方程组,再由此方程组转化为kxn的生成矩阵G。编码时,可将信息位向量(k维)乘以生成矩阵G,从而得到码字向量(n维),如下式所示:
![](../img/eep/emb/emb-312775etzgurj1ng.jpg)
将式(1)表示的方程组作移位变换,可以得到式(2),通常称H为监督矩阵。
![](../img/eep/emb/emb-312781gwxrtyj1e3.jpg)
解码时,通过监督矩阵H与读出的码字向量C的乘积结果可判断该码字是否出错。若读出的码字向量C乘上监督矩阵H后得到一个零向量,则表示没有出错;否则表示码字在存储之后受到了单粒子效应的影响,有错误发生。通常将监督矩阵与读出的码字向量C的乘积记作S,称为校验子。当码字中某一位发生错误时,就会得到唯一的S向量,该向量只与码字出错的位置有关,而与码字C无关。通过S向量可以定位出错的位置,并对出错数据进行改正。
作为线性分组码的一种,扩展汉明码的分组编码总长为2r位,信息位长度为2r-1-r位,即(2r,2r-l-r)扩展汉明码。本设计采用了16位RAM存储器,所以对应使用(22,16)扩展汉明码。
1.2 TMR检错纠错原理
TMR是一种常见的硬件冗余技术。它的原理是在相同的一组硬件单元上同时发生错误的概率要比在单一硬件单元上发生错误的概率小。它的基本方法是将所需容错的硬件单元增加到三倍或更多,并将各个单元的输出连接到一个表决器上,由表决器选择所有硬件单元中的绝大多数输出值作为整体的输出值。图1所示为三模冗余系统结构图。
![](../img/eep/emb/emb-31279hhvwuqfybxk.jpg)
图1中,A1、A2、A3三个模块同时执行同样的操作,并将其输出送给表决器,然后由表决器对接收到的三路数据进行比较。如果三个模块同时给出三个相同的输出,则表决器输出任何一路作为正确输出。如果其中任一模块出错,其输出不同于其它两个模块,则表决器依然输出正确结果。如果有两个模块同时出错,且变成相同的状态,表决器则会误认为这是正确的结果并输出,不过这种情况的出现虽然可能,但概率非常小。当然,如果这两个模块同时出错,但出错状态不同,则表决器此时将无法做出选择,但可以产生中断。
2 内存配置方案
通过上面对扩展汉明码与TMR两种检错纠错方式的介绍,可以发现其二者各有优势,分别适用于不同的环境条件和应用需求。但是,这两种方案对于内存配置的要求是不同的,所以在对整个电路的设计之前,首先要对内存作如下配置。
本设计中使用了3片16bit的SRAM。并分别采用(22,16)汉明码和TMR两种检错纠错方法。对于(22,16),一般采用(16+8)位的存储器来实现,而TMR,则采用16位的存储器来实现。若要支持这两种方法,则必须首先为存储器设计一种特别的内存配置方式。本设计采用如图2所示的内存配置方案。
![](../img/eep/emb/emb-31280baw0btha1fo.jpg)
对于图2所示的内存配置方案,当系统工作在TMR模式时,所有的片选信号都被相同的信号驱动,这样就构成了TMR需要的3个16位内存
- 3DES算法的FPGA高速实现(06-21)
- 基于DSP的Max-Log-MAP算法实现与优化(05-27)
- DSP中DMA操作的无阻塞请求实现(06-18)
- 二维DCT编码的DSP实现与优化(09-08)
- 基于DSP处理器上并行实现ATR算法(01-29)
- 基于DSP的H.324终端设计(05-27)