Educoder计算机数据表示实验(HUST)第5关:16位海明编码电路设计

我们首先要理解海明编码的原理。海明编码是设置多个奇偶校验位来实现纠错能力的。
每一个检验位都在特点的位置上。
一般有一个公式来算我们需要多少个检验位。
K+r <= 2^r - 1
k是多少位信息,r是需要的检验位.
这道题目k=16,所以我们需要5位检验位+1位总检验位。
所以一共是22位海明编码。
而且检验位的位置一般是2^i-1(1,2,4,8,……)
所以
Educoder计算机数据表示实验(HUST)第5关:16位海明编码电路设计
p1,p2,p3……都是检验位,而B1,B2,B3……都是数据位.
每一个数据位都由最少两位检验位检验。
例如
B1:P1,P2(3=1+2)
B2:P1,P3(5=1+4)
B3:P2,P3
B4:P1,P2,P4
B5:P1,P4
B6:P2,P4
B7:P1,P2,P4
B8:P3,P4
B9:P1,P3,P4
B10:P2,P3,P4
B11:P1,P2,P3,P4
B12:P1,P5
B13:P2,P5
B14:P1,P2,P5
B15:P3,P5
B16:P1,P3,P5
所以我们可以知道P1~P6分别检验的是什么数据位
Educoder计算机数据表示实验(HUST)第5关:16位海明编码电路设计
然后我们就可以用异或电路来实现了。
电路图如下:
Educoder计算机数据表示实验(HUST)第5关:16位海明编码电路设计
然后保存文件,用记事本打开,复制代码,粘贴到educoder中,测试就好啦!

Educoder计算机数据表示实验(HUST)第5关:16位海明编码电路设计