Энкодер CRC

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

  • Библиотека:
  • LTE HDL Toolbox / Выявление ошибок и Исправление

Описание

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

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

Вы не должны применять другой кадр, прежде чем предыдущий кадр завершился. Благоприятный для оборудования алгоритм добавляет циклы (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, end и управляющие сигналы valid, которые указывают на контуры кадра и валидность выборок.

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

Вывод

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

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

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

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

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

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

Параметры

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

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

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

Алгоритмы

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

Когда вы используете векторный или целочисленный вход, блок реализует параллельный алгоритм CRC [2]. Реализация эквивалентна, алгоритм, используемый Communications Toolbox™, блокирует Общий HDL Генератора CRC Оптимизированный и Общий Оптимизированный HDL Детектора Синдрома CRC.

Чтобы обеспечить высокую пропускную способность для современных систем связи, алгоритм 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: http://www.3gpp.org.

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

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

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

Блоки

Функции

Введенный в R2017b