exponenta event banner

Декодер ЦИК NR

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

  • Библиотека:
  • Беспроводная панель инструментов HDL/обнаружение и исправление ошибок

  • NR CRC Decoder block

Описание

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

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

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

Порты

Вход

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

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

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

  • Скаляр (Scalar) - указывает целое число, представляющее несколько битов. В этом случае блок поддерживает целое число без знака (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 Шина включает в себя start, end, и valid управляющие сигналы, которые указывают границы кадра и достоверность выборок.

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

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

  • valid - Указывает, что данные на порте входных данных являются допустимыми

Дополнительные сведения см. в разделе Пример шины управления.

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

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

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

Зависимости

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

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

Продукция

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

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

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

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

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

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

  • valid - Указывает, что данные порта выходных данных являются допустимыми

Дополнительные сведения см. в разделе Пример шины управления.

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

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

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

Если выбран параметр Full checksum mismatch (Полное несоответствие контрольной суммы), этот порт возвращает целочисленный результат 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 стандарт нового радио (NR) 3GPP TS 38.212 [1].

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

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

Выберите этот параметр для активизации входного порта CRCMask.

Зависимости

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

Алгоритмы

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

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

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

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

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

Ссылки

[1] 3GPP TS 38.212. "НР; мультиплексирование и канальное кодирование. "Проект партнерства 3-го поколения; Техническая спецификация на сеть радиодоступа группы.

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

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

.

См. также

Блоки

Функции

  • (5G Панель инструментов) | (5G Панель инструментов)
Представлен в R2021a