exponenta event banner

Кодер CRC NR

Создание битов кода CRC и добавление их к входным данным

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

  • NR CRC Encoder block

Описание

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

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

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

Порты

Вход

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

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

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

  • Скаляр (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 и выберите параметр Enable CRC mask input port.

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

Продукция

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

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

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

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

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

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

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

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

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

Параметры

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

Выберите тип 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].

Выберите этот параметр для активизации входного порта 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