exponenta event banner

Кодер CRC LTE

Создание контрольной суммы и добавление к входному потоку образцов

  • Библиотека:
  • Беспроводная панель инструментов HDL/обнаружение и исправление ошибок

  • LTE CRC Encoder block

Описание

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

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

  • start - Указывает начало входного кадра.

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

  • valid - Указывает, что данные на порте входных данных являются допустимыми

Дополнительные сведения см. в разделе Пример шины управления.

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

Продукция

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

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

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

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

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

  • start - Указывает начало выходного кадра.

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

  • valid - Указывает, что данные порта выходных данных являются допустимыми

Дополнительные сведения см. в разделе Пример шины управления.

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

Параметры

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

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

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

Алгоритмы

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

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

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

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

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

Ссылки

[1] 3GPP TS 36.212. «Мультиплексирование и канальное кодирование». Проект партнерства 3-го поколения; техническая спецификация на сеть радиодоступа группы; Усовершенствованный универсальный наземный радиодоступа (E-UTRA). URL: https://www.3gpp.org.

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

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

.

См. также

Блоки

Функции

Представлен в R2017b