NR CRC Encoder

Сгенерируйте биты кода CRC и добавьте их к входным данным

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

  • NR CRC Encoder block

Описание

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

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

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

Порты

Вход

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

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

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

  • Скаляр - Задает целое число, представляющее несколько биты. В этом случае блок поддерживает беззнаковое целое число (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 и выберите параметр Enable CRC mask input port.

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

Выход

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

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

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

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

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

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

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

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

Типы данных: 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 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