NR CRC Encoder

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

  • Библиотека:
  • Wireless HDL Toolbox / Выявление ошибок и Коррекция

  • NR CRC Encoder block

Описание

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

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

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

Порты

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

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

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

Можно задать входные данные с одной из этих опций:

  • Скаляр – Задает целое число, представляющее несколько битов. Для этого случая блок поддерживает беззнаковое целое (uint8uint16, или 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конец, и 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 шина. Шина включает startконец, и 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 - вектор элемента, который обеспечивает новые входные биты, упорядоченные относительно порождающего полинома и дополненные нулями. Блок реализует (×) с логическим AND и (+) с логическим XOR.

Ссылки

[1] 3GPP TS 38.212. “NR; мультиплексирование и кодирование канала”. Проект партнерства третьего поколения; сеть радиодоступа Technical Specification Group.

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

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

Смотрите также

Блоки

Функции

Введенный в R2021a