General CRC Syndrome Detector HDL Optimized

Обнаружение ошибок во входных данных с помощью CRC

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

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

  • General CRC Syndrome Detector HDL Optimized block

Описание

Блок General CRC Syndrome Detector HDL Optimized выполняет циклическую проверку избыточности (CRC) данных и сравнивает полученную контрольную сумму с добавленной контрольной суммой. Обработка General CRC Syndrome Detector 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 скаляр.

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

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

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

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

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

Когда это значение 1сообщение содержит по меньшей мере одну ошибку. Когда это значение 0сообщение содержит нулевые ошибки.

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

Параметры

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

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

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

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

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

  • Очистите этот параметр, чтобы использовать алгоритм nondirect для вычислений контрольной суммы 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.

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

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