Аппаратная реализация CRC для многобитных данных

Я понимаю, что в Интернете доступны бесплатные генераторы, но я хочу понять, как генерируется CRC для многобитных данных. Я хочу понять, как работает развертывание логики в тот момент, когда мы начинаем принимать во внимание параллельные входные биты. Легко понять последовательную реализацию, но мне нужно понять логику параллельной реализации.


person Rucha R    schedule 16.07.2019    source источник


Ответы (1)


Программное обеспечение обычно использует поиск в таблице для обработки нескольких битов за раз, например, таблицу 256 записей для обработки 8 битов за раз, или может использовать инструкцию умножения без переноса (например, X86 PCLMULQDQ) для CRC.

Для аппаратного обеспечения двоичная (GF (2)) матрица, умноженная на фиксированную матрицу, обычно используется для замены поиска в таблице, поскольку для этого требуется меньше вентилей. Например, вместо справочной таблицы размером 256 x 32 бита для преобразования 8 бит входных данных в 32-битную контрольную сумму матрицей кодирования будет матрица размером 8 x 32 бита. Умножение матрицы будет следующим: data[1][8] · encode[8][32] = crc[1][32].

person rcgldr    schedule 16.07.2019
comment
Это имеет смысл. Благодарю вас! - person Rucha R; 19.09.2019