Проверка битов четности с использованием общего алгоритма Хэмминга
В логической схеме у меня есть 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 в схеме.