Проверка битов четности с использованием общего алгоритма Хэмминга

В логической схеме у меня есть 8-битный вектор данных, который подается на ИС ECC, для которого я должен разработать логику, и который содержит вектор из 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 бит после этого конкретного бита четности. В значительной степени подводит итог, если это включено или нет.

Заранее спасибо за помощь!

Ура!

1 ответ

Вы можете следовать этому стилю. Биты, отмеченные в каждой строке, должны суммироваться до 0 (mod 2), другими словами, для отмеченных позиций в каждой строке количество установленных бит должно быть четным.

P1 P2 D1 P3 D2 D3 D4 P4 D5 D6 D7 D8
x     x     x     x     x     x
   x  x        x  x        x  x
         x  x  x  x              x
                     x  x  x  x  x

Я не понимаю, почему у вас есть P5 в схеме.

Другие вопросы по тегам