错误示范:
推荐连法:
注意:
1.当然也可以使用xor异或逻辑表达式自动生成,同样推荐。
2.出现偶数个错误位的时候检验不出来,不是你的电路连错了。
做好这个实验的基础是理解海明码。
表1.7竖过来之后就是二进制数据了填表就行。
把这个表填完电路也出来了
校验位 | 被检验的数据位 |
---|---|
P1 | D1 D2 D4 D5 D7 D9 D11 D12 D14 D16 |
P2 | D1 D3 D4 D6 D7 D10 D11 D13 D14 |
P3 | D2 D3 D4 D8 D9 D10 D11 D15 D16 |
P4 | D5 D6 D7 D8 D9 D10 D11 |
P5 | D12 D13 D14 D15 D16 |
海明编码:
海明解码
注意:
1.实际上,总校验码不报错是0,海明码不报错是1;海明码不报错,总码报错说明是两位错;总码报错就说明是1位错,不用管海明码。
2.此处使用了复用器库的译码器(原理就是二进制和十进制的转换),使能端禁用,下面的选择端决定了第几位出错了(海明校验原理,将海明码校验位和新产生的校验位做异或后得到的数据转换为二进制再转换十进制,是多少就是第几位错了)。
3.译码器0位是1表示校验位没有出现错误
4.p1-p5都需要再次做异或,p6不需要因为已经包含在海明码中了
5.可以优化,比如左边布局可以好看一点,右边用一个分线器也能完成相应功能
6.感谢老师的指导