LTE CRC Encoder

Сгенерируйте контрольную сумму и добавьте, чтобы ввести демонстрационный поток

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

  • LTE CRC Encoder block

Описание

Блок LTE CRC Encoder вычисляет и добавляет контрольную сумму контроля циклическим избыточным кодом (CRC) для каждой системы координат потоковой передачи выборок данных. Можно выбрать из полиномов, заданных TS 36.212 [1] стандарта LTE. Блок обеспечивает аппаратную оптимизированную архитектуру и интерфейс.

Этот блок использует демонстрационный интерфейс потоковой передачи с шиной для связанных управляющих сигналов. Этот интерфейс позволяет блоку действовать независимо от формата кадра и соединиться легко с другими блоками Wireless HDL Toolbox™. Блок принимает и возвращает значение, представляющее одну выборку и шину, содержащую три управляющих сигнала. Эти сигналы указывают на валидность каждой выборки и контуры системы координат. Чтобы преобразовать матрицу в демонстрационный поток и эти управляющие сигналы, используйте блок Frame To Samples или whdlFramesToSamples функция. Для полного описания интерфейса смотрите Демонстрационный Интерфейс Потоковой передачи.

Вы не должны применять другую систему координат, прежде чем предыдущая система координат завершилась. Благоприятный для оборудования алгоритм добавляет (CRCLength + 3)/InputSize циклы задержки. С учетом дополнительных циклов добавленных выборок контрольной суммы и задержки, необходимо применить минимальный интервал (2*CRCLength + 3)/InputSize между входными кадрами. В качестве альтернативы можно использовать выходной сигнал ctrl.end определить, когда блок готов к новому входу. Если вы применяете следующую систему координат слишком рано, ctrl.start предупредите сбрасывает вычисление контрольной суммы и обрезает предыдущую систему координат.

Эта форма волны показывает систему координат с 40 выборками, введите две выборки за один раз к энкодеру CRC16. Разрыв между входными кадрами является поэтому 8 циклами. Из-за вставки контрольной суммы, выход ctrl.valid сигнал остается постоянно высоким без разрывов между системами координат. Ввод и вывод шины ctrl расширен, чтобы показать управляющие сигналы. start и end покажите контуры системы координат и valid квалифицирует выборки данных.

Порты

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

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

Введите выборку в виде бинарного скаляра, скаляра беззнаковых целых чисел или бинарного вектора. Размер вектора, InputSize, должен быть меньше чем или равен длине полинома. Продолжительность CRC также должна быть делимой размером вектора. Например, для полиномиального типа CRC24A, допустимые размеры вектора равняются 24, 12, 8, 6, 4, 3, 2, и 1. Целочисленный вход интерпретирован как двоичное слово. Например, векторный вход [0 0 0 1 0 0 1 1] эквивалентно uint8 вход 19.

double и single поддерживаются для симуляции, но не для генерации HDL-кода.

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

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

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

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

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

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

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

Вывод

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

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

double и single двоичные значения поддерживаются для симуляции, но не для генерации HDL-кода.

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

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

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

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

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

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

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

Параметры

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

Закодировать полиномиальные опции являются четырьмя типами CRC, описанными в TS 36.212 [1] стандарта LTE, Раздел 5.1.1.

Маска применилась к контрольной сумме в виде целого числа, представляющего двоичное слово от 0 до 2CRCLength – 1. Эта маска обычно является Радиосетью временным идентификатором (RNTI).

Алгоритмы

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

Когда вы используете векторный или целочисленный вход, блок реализует параллельный алгоритм CRC [2]. Реализация эквивалентна, алгоритм, используемый Communications Toolbox™, блокирует General CRC Generator HDL Optimized и General CRC Syndrome Detector HDL Optimized.

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

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

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

Ссылки

[1] 3GPP TS 36.212. "Мультиплексирование и кодирование канала". Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group; Развитый Универсальный Наземный Радио-доступ (к E-UTRA). URL: https://www.3gpp.org.

[2] Кампобелло, Джузеппе, Джузеппе Патане и Марко Руссо. "Параллельная Реализация CRC". Транзакции IEEE на Компьютерах. Издание 52, № 10, октябрь 2003, стр 1312–1319.

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

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

Блоки

Функции

Введенный в R2017b