General CRC Syndrome Detector HDL Optimized

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

  • Библиотека:
  • Поддержка HDL Communications Toolbox / Выявление ошибок и Коррекция / CRC

    Communications Toolbox / Выявление ошибок и Коррекция / CRC

Описание

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

Порты

Входной параметр

развернуть все

Входные данные в виде одной из этих опций.

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

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

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

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

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

Запустите индикатора входного кадра в виде булева скаляра.

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

Конец индикатора входного кадра в виде булева скаляра.

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

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

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

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

Вывод

развернуть все

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

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

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

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

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

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

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

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

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

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

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

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

Параметры

развернуть все

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

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

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

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

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

Чтобы узнать о прямых и непрямых алгоритмах, см. Коды Контроля циклическим избыточным кодом.

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

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

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

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

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

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

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

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

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

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

Алгоритмы

развернуть все

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

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

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

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

Ссылки

[1] Кампобелло, G., Г. Пэтэйн и М. Руссо. “Параллельная Реализация CRC”. Транзакции IEEE на Компьютерах 52, № 10 (октябрь 2003): 1312–19. https://doi.org/10.1109/TC.2003.1234528.

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

Представленный в R2012b