在逻辑电路中,我有一个 8 位数据向量,该向量被馈送到 ECC IC 中,我应该为其开发逻辑,并且包含 5 个奇偶校验位的向量。我开发逻辑(使用逻辑门,XOR)的第一步是找出哪个奇偶校验位将检查哪些数据位(因为它们是交错的)。我使用偶校验,并遵循一般汉明码规则(每 2^n 一个奇偶校验位),我得到以下输出序列:
P1 P2 D1 P3 D2 D3 D4 P4 D5 D6 D7 D8 P5
遵循通用汉明算法:
对于每个奇偶校验位,位置 1、2、4、8、16 等等...(2 的幂),我们跳过第一个位置 n (n-1) 并检查 1 位,然后我们跳过另一个,检查另一个,等等......我们对其他位重复相同的过程,但这次每 2^n 检查/跳过一次,其中 n 是它们在输出数组中占据的位置 ( P1 P2 D1 P3 D2 D3 D4 P4 D5 D6 D7 D8 P5
)
按照该约定,我得到:
P1 Checks data bits -> XOR(3 5 7 9 10 12)
P2 Checks data bits -> XOR(3 6 7 10 11)
P3 Checks data bits -> XOR(5 6 10 11 12)
P4 Checks data bits -> XOR(9 10 11)
我对吗?让我感到困惑的是,如果我应该开始检查将奇偶校验位计数为应该检查的 2^n 位之一,或者该特定奇偶校验位之后的 1 位。几乎可以概括为是否具有包容性。
提前谢谢你的帮助!
干杯!