Задача
Вычислять контрольную сумму CRC-8 последовательного потока бит с полиномом 0x07.
Тип схемы и среда
Последовательная схема: 8-битный регистр с XOR-обратными связями по образующему полиному.
Алгоритм работы
Бит обратной связи fb = старший разряд XOR входной бит. Разряды регистра сдвигаются, а в позициях, соответствующих полиному, добавляется fb.
Код на AHDL
% Проект 43: последовательный CRC-8 (полином 0x07) % SUBDESIGN ahdl_43_crc8 ( clk, clrn : INPUT; init : INPUT; ce : INPUT; din : INPUT; crc[7..0] : OUTPUT; ) VARIABLE r[7..0] : DFF; fb : NODE; BEGIN r[].clk = clk; r[].clrn = clrn; fb = r[7].q $ din; IF init THEN r[].d = 0; ELSIF ce THEN r[7].d = r[6].q $ fb; r[6].d = r[5].q; r[5].d = r[4].q; r[4].d = r[3].q; r[3].d = r[2].q; r[2].d = r[1].q $ fb; r[1].d = r[0].q $ fb; r[0].d = fb; ELSE r[].d = r[].q; END IF; crc[] = r[].q; END;
Пояснения
CRC-8/0x07 применяется, например, в датчиках 1-Wire. init сбрасывает регистр, ce разрешает обработку очередного бита.
Инструменты и справочники по теме
📦 help-user.ru — скупка и ремонт компьютерной техники. Продать ноутбук, ПК, комплектующие — help-user.ru.
Что дальше
Скачайте ahdl_43_crc8.tdf, создайте проект в MAX+PLUS II или Quartus,
назначьте выводы под свою плату и скомпилируйте. Остальные 49 разработок — в
разделе проектов на AHDL.