General CRC Generator HDL Optimized

Сгенерируйте биты кода CRC и добавьте их к входным данным

  • Библиотека:
  • Поддержка HDL-кода Communications Toolbox/Обнаружение и исправление ошибок/CRC

    Communications Toolbox/Обнаружение и исправление ошибок/CRC

  • General CRC Generator HDL Optimized block

Описание

Блок General CRC Generator HDL Optimized, который аналогичен блоку General CRC Generator, генерирует циклическую контрольную сумму избыточности (CRC) и добавляет ее к входу сообщению. Обработка General CRC Generator HDL Optimized блоков оптимизирована для генерации HDL-кода. Вместо обработки сразу целой системы координат, блок принимает и возвращает поток выборки данных с сопутствующими управляющими сигналами. Сигналы управления указывают на валидность выборок и контуров системы координат. Чтобы достичь более высокой пропускной способности, блок принимает векторные данные до длины CRC и реализует параллельную архитектуру.

Порты

Вход

расширить все

Входные данные, заданные как один из следующих опций.

  • Скаляр - Задает целое число, представляющее несколько биты. В этом случае блок поддерживает беззнаковое целое число (uint8, uint16, или uint32) или fixdt(0,N,0) тип данных.

  • Вектор - Задайте вектор двоичных значений. В этом случае блок поддерживает double или Boolean тип данных.

Ширина данных должна быть меньше или равной длине CRC, а длина CRC должна быть делена на ширину данных. Для CRC-CCITT/CRC-16 допустимые ширины данных 16, 8, 4, 2 и 1.

Пример: The uint8 векторный вход [0 0 0 1 0 0 1 1] эквивалентно 19.

Типы данных: double | uint8 | uint16 | uint32 | fixed point | Boolean

Запуск индикатора входного кадра, заданный как логический скаляр.

Типы данных: Boolean

Конец индикатора входного кадра, заданный как логический скаляр.

Типы данных: Boolean

Допустимый индикатор входных данных, заданный как логический скаляр.

Это сигнал управления, который указывает, действительны ли данные на порте dataIn.

Типы данных: Boolean

Выход

расширить все

Выходные данные с добавленной контрольной суммой, возвращенные в виде скаляра или вектора. Тип и размер выходных данных совпадают с типами входных данных.

Типы данных: double | uint8 | uint16 | uint32 | Boolean | fixed point

Запуск индикатора выхода системы координат, возвращенный как логический скаляр.

Типы данных: Boolean

Конец выхода системы координат индикатора, возвращенный как логический скаляр.

Типы данных: Boolean

Действительный индикатор выходных данных, возвращенный как логический скаляр.

Этот порт является управляющим сигналом, который указывает, действительны ли данные на порте dataOut.

Типы данных: Boolean

Параметры

расширить все

Задайте полином генератора как двоичный вектор с коэффициентами в порядке убывания степеней. Длина вектора равна степени полинома плюс 1.

Задайте начальные условия внутреннего регистра сдвига как двоичный, двойная точность или скаляр или вектор с одной точностью. Для векторных входов длина начального состояния должна быть равна степени полинома генератора.

Укажите прямой или косвенный метод вычисления контрольной суммы.

  • Выберите этот параметр для блока, чтобы использовать прямой алгоритм для вычислений контрольной суммы CRC.

  • Очистите этот параметр для блока, чтобы использовать алгоритм ненаправления для вычислений контрольной суммы CRC.

Для получения дополнительной информации о прямых и ненаправленных алгоритмах, см. «Циклические проверки кода избыточности».

Задайте порядок входного байта.

  • Выберите этот параметр для блока, чтобы развернуть каждый входной байт, прежде чем он войдет в регистр сдвига.

  • Очистите этот параметр, чтобы блок передал данные сообщения в сдвиг регистр без изменений.

Ширина входных данных должна быть кратной 8.

Задайте порядок байтов контрольной суммы.

  • Выберите этот параметр для блока, чтобы развернуть каждый байт контрольной суммы перед передачей его в конечный этап XOR.

  • Очистите этот параметр, чтобы блок передал байт контрольной суммы на заключительный этап XOR без изменений.

Ширина входных данных должна быть кратной 8.

Задайте контрольную сумму как двоичную, двойную точность или одинарную точность данных типа скаляра или вектора. Блок выполняет операцию XOR для контрольной суммы CRC с этим значением перед добавлением его к входным данным.

Если вы задаете векторный вход, длина вектора должна быть равна степени полинома генератора.

Алгоритмы

расширить все

Когда вы используете вектор или целое число вход, блок реализует параллельный алгоритм CRC [1].

Чтобы обеспечить высокую пропускную способность для современных коммуникационных систем, блок реализует алгоритм CRC с параллельной архитектурой. Эта архитектура рекурсивно вычисляет M бит контрольной суммы CRC для каждого W входных бит. В конце системы координат конечный результат контрольной суммы добавляется к сообщению. Для полиномиальной длины M рекурсивное вычисление контрольной суммы для W бит параллельно является

X'=FW(×)X(+)D.

FW является M -by - M матрицей, которая выбирает элементы текущего состояния для полиномиального вычисления с новыми входными битами. D является вектором M-element, который обеспечивает новые входные биты, упорядоченные относительно полинома генератора и заполненные нулями. Блок реализует (×) с логическими И и (+) с логическими XOR.

Ссылки

[1] Кампобелло, Г., Г. Патане и М. Руссо. «Параллельная реализация Crc». Транзакции IEEE на компьютерах 52, № 10 (октябрь 2003 года): 1312-19. https://doi.org/10.1109/TC.2003.1234528.

Расширенные возможности

.
Введенный в R2012a