Реализация CRC в аппаратном обеспечении для многобитных данных
Я понимаю, что в Интернете есть бесплатные генераторы, но я хочу понять, как генерируется CRC для многоразрядных данных.
Я знаю аппаратную реализацию однобитовых данных (последовательная реализация).
1 ответ
Программное обеспечение обычно использует поиск в таблице для одновременной обработки нескольких битов, например таблицу на 256 записей, для обработки 8 бит за раз, или может использовать инструкцию CRC для переноса без переноса (например, X86 PCLMULQDQ).
Что касается аппаратного обеспечения, двоичная (GF(2)) матрица, умноженная на фиксированную матрицу, обычно используется для замены поиска в таблице, поскольку она требует меньше гейтов. Например, вместо таблицы поиска размером 256 x 32 бита для преобразования 8-битных входных данных в 32-битную CRC матрица кодирования будет представлять собой матрицу 8 x 32-бит. Матрица умножения будет представлять собой данные [1][8] · закодировать [8][32] = crc[1][32].