一种纠错编解码电路的设计与实现

2012-12-05 02:00顾展弘
电子与封装 2012年7期
关键词:数据位源码编解码

顾展弘,罗 晟,徐 睿

(中国电子科技集团公司第58研究所,江苏 无锡 214035)

1 引言

星载计算机是卫星控制系统的核心,它担负着航天器的姿态及轨道控制、数据处理与传输、控制各种操作的执行,航天任务能否顺利完成很大程度上取决于星载计算机的工作情况。其中的静态存储器作为星载计算机的重要组成部分,直接影响整机的可靠性,因此必须采用各种手段来提高其可靠性。

2 编解码原理与逻辑实现

汉明码是由R.Hamming在1950年提出的一种线性分组码[1],由于其简单高效的特性,目前仍被广泛应用[2]。汉明码是一种可以纠正单个错误的常用校验码[3],其实现原理是在传输的数据源码中加入一些冗余码,使这些数据源码与冗余码之间根据某种规则建立一定的关系,一旦合法数据编码出现某些错误时,数据源码与检验码之间的关系被破坏,就形成非法编码,而接收端可以通过检测编码的合法性来发现错误直至纠正错误[4]。

本电路中采用的纠错编码是[12,8]汉明码,源码8位,冗余码4位,能够实现检测并纠正任意一位错误的功能。

2.1 编码算法

[12,8]汉明码的编码算法主要由异或逻辑构成,令c为编码后的码字,m为编码前的信息位,则编码逻辑为:

2.2 解码算法

[12,8]汉明码的解码逻辑包括计算伴随式s,查找错误图样e和纠错三个步骤。其中,计算伴随式s的主要逻辑为:

伴随式s计算完成后,错误图样e根据表1查找得到。在逻辑实现时,错误图样e采用译码实现,纠错步骤采用异或操作进行。

3 电路实现

3.1 功能概况

该电路的主要功能是完成CPU对外部SRAM的数据存取和SEU的检测及纠错,同时还负责实现对接口信号的产生。电路采用EDAC技术可以简单有效地提高系统的容错能力,无需软件初始化,具有实时性和自动完成的特点。

表1 伴随式与错误图样的关系

该电路的核心部分即为EDAC(Error Detection and Correction错误检测与纠正)编解码模块,实现纠正SRAM存储数据发生的单粒子翻转错误,图1为该模块功能框图。

图1 编解码模块功能框图

总体设计思想是当CPU向SRAM写入数据时,数据位DB经过ASIC生成校验位CB,数据位与校验位同时写入静态存储器SRAM中。当CPU从SRAM中读取数据时,数据位和校验位均读到EDAC中,使用刚刚读入的数据位重新生成校验位,新生成的校验位与原来写入时的校验位做异或运算,其结果就是校验子。由生成的校验子控制纠错单元,哪一位出错就将相应位的数据取反,实现纠错。

3.2 设计实现

该电路采用半定制标准单元正向设计,包括系统设计、逻辑设计、布局布线、版图提取与验证、后仿真等工作。前端网表综合使用Design Compiler,功能仿真使用NCSim,后端布局布线使用Silicon Ensemble,时序验证使用PrimeTime,后仿真使用Hsim,参数提取和版图验证使用Dracula。

该电路电源电压5V,最高工作频率33MHz,芯片面积9.5mm×9.5mm,CPGA181封装,采用0.5μm单多晶三铝N阱CMOS工艺制造,经电路测试及系统试用,各项性能指标达到设计要求。

4 结束语

本文介绍了一种纠错编解码电路的设计,该电路可在空间辐射条件下有效完成CPU对外部SRAM的数据存取和SEU的检测及纠错,可应用于星载计算机的数据管理系统。

[1] 王新梅.纠错码——原理与方法[M].西安:西安电子科技大学出版社,2001. 30-36.

[2] 曹雪虹,张宗橙.信息论与编码[M].北京:清华大学出版社,2004. 60-65.

[3] 王海波,等.纠错编码技术在俄罗斯深空测控通信系统中的应用和发展[J].遥测遥控,2009, 30(4):6-10.

[4] 刘淑芬,崔星.计算机RAM检错纠错电路的设计与实现[J].航天控制,2003(4): 59-67.

猜你喜欢
数据位源码编解码
A320飞机大气数据的采集和计算在排故中的应用
面向数据可靠传输的高译码率带反馈的LT码
国内一站式工程设备租赁平台众能联合完成C2、C3两轮融资
浅谈开源操作系统的历史
企业如何保护源码
1553B总线控制器编解码设计
为多重编解码世界做好准备
大型民机试飞遥测视频编解码方法研究
微弱GPS信号避开比特跳变的捕获算法
一种适用于FPGA系统中的变速箱电路设计