在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3345|回复: 7

关于Hamming码的问题

[复制链接]
发表于 2008-11-7 12:05:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
关于Hamming码的问题依照Micron的一篇关于Hamming码实现的technique noteHamming编解码,结果发现数据有单比特错误时能够准确纠错,但是多于1-bit错误时就会误报为单错或无错,请大家帮忙看看。

按照这篇文档,计算8-bit数据的ECC码时按以下步骤进行:
1)计算ECCe[2:0] = {^bit[3:0], ^{bit[5:4], bit[1:0]}, ^{bit[6], bit[4], bit[2], bit[0]};
2)计算ECCo[2:0] = {^bit[7:4], ^{bit[7:6], bit[3:2]}, ^{bit[7], bit[5], bit[3], bit[1]};
验证时按以下步骤,
3)先按1)和2)计算数据的ECCe_new, ECCo_new
4)然后计算ECC_ver = ECCe_new ^ ECCo_new ^ ECCe_old ^ ECCo_old如果ECC_ver结果为3'b000则数据没错;如果为3'b111则是单bit错,ECCo_new ^ ECCo_old的值就是错误bit的位置;如果为其他值则是多于1-bit错误。

比如信息码是8'b0000_0000;
这样ECC_o是3'b000; ECC_e也是3'b000;

如果接收到的信息码在bit[0]出现误码,即变成8'b0000_0001,则
ECC_o_new是3'b000; ECC_e_new是3'b111;
ECC_e ^ ECC_e_new ^ ECC_o ^ ECC_o_new = 3'b111,表示有1-bit的错误,
错误位置在 ECC_o ^ ECC_o_new = 3'b000,即bit[0],能正确纠错;

但是如果接收到的信息码在bit[0]和bit[7]出现误码,即变成8'b1000_0001,则
ECC_o_new是3'b111; ECC_e_new也是3'b111;
ECC_e ^ ECC_e_new ^ ECC_o ^ ECC_o_new = 3'b000,表示没有错误,
这样就出现了不能探测2-bit错误的问题。

[ 本帖最后由 jamyce 于 2008-11-11 13:38 编辑 ]

tn2908.rar

336.13 KB, 下载次数: 48 , 下载积分: 资产 -2 信元, 下载支出 2 信元

 楼主| 发表于 2008-11-11 14:01:36 | 显示全部楼层
弄清楚了,是文档错误,第4)步错误判定部分应该是ECC_ver = {ECCe_new ^ ECCo_old,  ECCe_new ^ ECCo_old},如果为全“0”则没错误;如果有一半个为“1”的bit位则是单bit错,如果为'h1则是ECC错(当然是1bit的ECC错,两个以上的ECC位错有可能探测不出来);如果为其他值则是两个或以上bit出错。
发表于 2008-12-30 09:03:12 | 显示全部楼层
下载下来看看.
发表于 2009-3-23 21:50:46 | 显示全部楼层
呵呵 谢谢
发表于 2010-3-29 18:31:12 | 显示全部楼层
TN-29-08: Hamming Codes for NAND Flash Memory Devices Overview。不错
发表于 2011-4-21 17:50:46 | 显示全部楼层
谢谢分享
发表于 2011-5-1 06:09:38 | 显示全部楼层
HHAHAHAH
发表于 2011-5-3 11:00:01 | 显示全部楼层
下载了借鉴一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-16 13:39 , Processed in 0.026441 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表