NR CRC Decoder

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

  • Библиотека:
  • Беспроводной HDL Toolbox/Обнаружение и коррекция ошибок

  • NR CRC Decoder block

Описание

Блок NR CRC Decoder вычисляет контрольную сумму циклического контроля избыточности (CRC) и сравнивает ее с добавленной контрольной суммой CRC для каждой системы координат потоковых выборок данных. Если две контрольные суммы CRC не совпадают, блок сообщает об ошибке. Блок принимает и возвращает поток выборки данных с сопутствующими сигналами управления. Сигналы управления указывают на валидность выборок и контуров системы координат.

Блок поддерживает скаляр и векторные входы и выводит данные как скаляр или вектор на основе входных данных. Чтобы достичь более высокой пропускной способности, блок принимает двоичный вектор или беззнаковый целочисленный скалярный вход и реализует параллельную архитектуру. Ширина входных данных должна быть меньше или равной длине полинома CRC, а длина полинома CRC должна быть делена на ширину входных данных. Блок поддерживает все полиномы CRC, заданные в соответствии со стандартом 5G new radio (NR) 3GPP TS 38.212 [1]. Когда вы выбираете полином CRC24C, блок поддерживает динамическую маску CRC.

Блок обеспечивает интерфейс и аппаратно оптимизированную архитектуру, подходящую для генерации HDL-кода и оборудования развертывания.

Порты

Вход

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

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

Можно задать входные данные с помощью одной из следующих опций:

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

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

N - ширина входных данных, и она должна быть меньше или равной длине полинома CRC и коэффициенту заданной полинома CRC.

double и single типы данных поддерживаются для симуляции, но не для генерации HDL-кода.

Пример: Для типа CRC CRC24Aдопустимые ширины данных 24, 12, 8, 6, 4, 3, 2 и 1. Целочисленный вход интерпретируется как двоичное слово. Для примера, когда вы задаете uint8 вход 19, это эквивалентно вектору входу [0 0 0 1 0 0 1 1].

Типы данных: double | single | ufix1 | uint8 | uint16 | Boolean | ufixN

Сигналы управления, сопровождающие поток дискретизации, заданные как samplecontrol bus. Шина включает в себя start, end, и valid управляющие сигналы, которые указывают контуры системы координат и валидность выборок.

  • start - Указывает начало входного кадра

  • end - Указывает конец входного кадра

  • valid - Указывает, что данные входного data порта действительны

Для получения дополнительной информации см. Выборку шины управления.

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

Маска контрольной суммы CRC, заданная как неотрицательное целое число, представляющее двоичное слово от 0 до 2CRCLength - 1, где CRCLength - длина полинома CRC.

Эта маска обычно является временным идентификатором радиосети (RNTI). RNTI используется для XOR контрольной суммы CRC.

Зависимости

Чтобы включить этот порт, установите параметр CRC type равным CRC24C port и выберите параметр Enable CRC mask input port.

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

Выход

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

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

Типы данных: double | single | ufix1 | uint8 | uint16 | Boolean | ufixN

Управляющие сигналы, сопровождающие поток дискретизации, возвращаются как samplecontrol bus. Шина включает в себя start, end, и valid управляющие сигналы, которые указывают контуры системы координат и валидность выборок.

  • start - Указывает начало выходной системы координат

  • end - Указывает конец выходной системы координат

  • valid - Указывает, что данные выходного data порта действительны

Для получения дополнительной информации см. Выборку шины управления.

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

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

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

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

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

Параметры

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

Выберите тип CRC. Каждый тип CRC указывает полином, как показано в этой таблице.

Тип CRCПолином
CRC6[1 1 0 0 0 0 1]
CRC11[1 1 1 0 0 0 1 0 0 0 0 1]
CRC16[1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1]
CRC24A[1 1 0 0 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 1 1 0 1 1]
CRC24B[1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1]
CRC24C[1 1 0 1 1 0 0 1 0 1 0 1 1 0 0 0 1 0 0 0 1 0 1 1 1]

Эти полиномы CRC заданы 5G соответствии с новым стандартом radio (NR) 3GPP TS 38.212 [1].

Выберите этот параметр, чтобы включить полную контрольную сумму.

Когда вы выбираете этот параметр, порт err возвращает целое число, которое представляет местоположения несоответствий битов в битах контрольной суммы CRC. Когда вы очищаете этот параметр, порт err возвращает логическое значение, указывающее, несоответствуют ли какие-либо биты контрольной суммы CRC.

Выберите этот параметр, чтобы включить CRCMask входной порт.

Зависимости

Чтобы включить этот параметр, установите параметр CRC type равным CRC24C.

Алгоритмы

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

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

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

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

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

Ссылки

[1] 3GPP TS 38.212. "NR; Мультиплексирование и канальное кодирование ". 3-ья Генерация проект Партнерства; Группа технических спецификаций Радиосеть доступ.

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

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

.

См. также

Блоки

Функции

Введенный в R2021a