新闻中心

EEPW首页>电源与新能源>设计应用> 一种抗SEU存储器电路的FPGA设计

一种抗SEU存储器电路的FPGA设计

作者: 时间:2010-11-18 来源:网络 收藏


对于图2所示的内存配置方案,当系统工作在TMR模式时,所有的片选信号都被相同的信号驱动,这样就构成了TMR需要的3个16位内存空间;而当系统工作在汉明码模式时,它们则ah、al、bh为一组,bl、ch、cl为另一组,并分别被相同的片选信号驱动,从而构成了两个独立的(16+8)位的内存空间。本设计采用了3片128 K×16bit的SRAM,如果设置每片SRAM的低4K×16bit空间工作在TMR模式,则从图中可以看出,该SRAM芯片组中还有两个124 K×(16+8) bit的空间可以工作于扩展汉明码模式。

3 电路设计
基于上述内存配置方案,本文设计了如图3所示的抗SEU存储器电路。该电路包含了4个功能模块。


3.1 TMR模块
在TMR工作模式下可完成数据的写入操作和读取操作中的冗余判决。如果在读取过程中发现有一片RAM中的数据与其它三片不同,则对该片RAM进行正确数据的回写;如果发现三片RAM中的数据都不相同,则产生中断信号。
3.2 扩展汉明码模块
在扩展汉明码工作模式下,当写入数据时,则对其进行编码;当读取数据时,则对其进行相应的解码,并判断数据是否出错。如果一位错则自动回写正确值,如果两位以上的错误,则产生中断信号。
3.3 模式选择模块
在该模块内部设置有一个32位的模式配置寄存器。通过给模式配置寄存器的低18位进行预先置数,可以设置检错纠错电路的工作模式,同时也就设置了RAM的内存配置情况。根据CPU的不同应用要求,模式控制模块可以让检错纠错电路在扩展汉明码方式与TMR方式二者之间进行灵活的切换。
3.4 控制逻辑模块
该电路模块可根据电路所处的检错纠错模式来控制相应的读写信号和内存片选信号,以便正确访问RAM内容。

4 FPGA的编程与实现
接下来对每个模块在设计过程的具体考虑进行重点介绍。
4.1 TMR模块
对于TMR模块的设计较为简单。需要特别指出的是,考虑到对电路有效性的验证,在写通道上另外添加了错误注入模块。图4所示是其设计框图,图中,ctrl_err为错误注入控制信号,当ctrl_err为0时,表示不注入错误;当ctrl_err为1时,表示注入错误。这样可以通过对ct-rl_err信号的控制来实现对SEU效应的模拟。add_err[7..0]为注错数据信号。将add_err的低四位用0000~1111表示,可用于表示给数据添加错误的位置,它的高四位甩XX01~XX11表示,则可分别表示要给RAM组中的某个RAM添加错误。


4.2 扩展汉明码模块
扩展汉明码模块的设计主要包括编码模块、伴随式生成模块以及差错校验模块等。编码模块可使用式(1)进行编码,可生成r个校验位。并将它们依次添加到码元序列的第2i-1(其中i=0,…,r-1)个位置上。伴随式生成模块使用式(2)进行解码,可对应生成校验子S。差错控制模块可根据生成的校验子S来判断数据是否出错,以及出错的位数,并用sef与def表示。如果数据没有出现错误,则直接送出;如果数据中有一位出现错误,则对其进行回写,同时将修正的数据送出;如果两位出现错误,则输出中断信号int。



关键词:编解码器

评论


相关推荐

技术专区

关闭