NR CRC Decoder

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

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

  • NR CRC Decoder block

Описание

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

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

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

Порты

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

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

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

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

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

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

Вывод

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

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

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

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

  • start — Указывает на запуск выходной системы координат

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

  • valid — Указывает, что данные по порту выхода data допустимы

Для большего количества детали смотрите Демонстрационную Шину управления.

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

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

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

Если вы выбираете Полный параметр несоответствия контрольной суммы, этот порт возвращает целочисленный результат XOR несоответствия контрольной суммы. Это значение является результатом логического различия в CRC между контрольной суммой CRC, состоявшей во входе и контрольной суммой CRC, повторно вычисленной через часть данных входа. Если вы задаете маску CRC, блок XORs контрольная сумма с заданной маской 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 заданы согласно стандарту нового радио (NR) 5G 3GPP TS 38.212 [1].

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

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

Выберите этот параметр, чтобы включить входной порт 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
Для просмотра документации необходимо авторизоваться на сайте