Восстановление MIB HDL NR

Этот пример показывает проект 5G декодирование блока сигнала синхронизации (SSB) NR и модель восстановления основного блока информации (MIB), оптимизированная для генерации HDL-кода и аппаратной реализации.

Введение

Модели Simulink, описанные в этом примере, являются оптимизированными реализациями HDL декодирования SSB и восстановления MIB для 5G. Этим примером является один из связанного набора, которые показывают рабочий процесс для разработки и развертывания поиска ячейки NR 5G и алгоритма восстановления MIB к оборудованию. Рисунок показывает полный набор примеров и текущего примера в рабочем процессе. Для получения дополнительной информации о полном алгоритме и рабочем процессе, смотрите Поиск Ячейки HDL NR и Восстановление MIB Справочный пример MATLAB. 5G Восстановление MIB NR Используя Аналоговые устройства AD9361/AD9364 (Пакет Поддержки Communications Toolbox для Xilinx Находящееся в Zynq Радио) пример показывает, как развернуть алгоритм в SoC. Для общего описания того, как MATLAB и Simulink могут использоваться вместе, чтобы разработать развертываемые модели, см. Проект Радиосвязей для FPGAs и ASICs.

Восстановление MIB требует обнаружения SSB, демодуляции и декодирования SSB. Этот пример особое внимание на SSB декодирование аспекта восстановления MIB, и обнаружения SSB и декодирования описан в Поиске Ячейки HDL NR. SSB декодирование описанного в этом примере спроектирован, чтобы использоваться или с MATLAB или с Simulink реализации обнаружения SSB. Этот пример вводит SSB декодирование модели, с помощью ссылки MATLAB, чтобы сгенерировать вход к SSB, декодирующему модель и проверить поведение модели. Пример затем показывает модель Simulink, интегрирующую обнаружение SSB и SSB декодирование частей приемника, чтобы восстановить MIB с основополосной формы волны.

После того, как SSB обнаруживался и демодулировался, SSB должен декодироваться, чтобы извлечь содержимое MIB. Декодирование SSB требует опорного сигнала демодуляции (DMRS) поиск, оценка канала и эквализация фазы и канал телевизионного вещания (BCH) декодирующие шаги как показано на рисунке ниже.

Файловая структура

Этот пример использует эти файлы.

Модели Simulink

  • nrhdlSSBDecoding: Эта модель Simulink использует nrhdlSSBDecodingCore модель - ссылка, чтобы симулировать поведение SSB декодирование части процесса восстановления MIB.

  • nrhdlMIBRecovery: Эта модель Simulink комбинирует обработку детектора SSB и декодера SSB в интегрированную модель, иллюстрирующую полный процесс восстановления MIB. Эта модель использует nrhdlSSBDetectionCore и nrhdlSSBDecodingCore модели - ссылки.

  • nrhdlSSBDecodingCore: Эта модель - ссылка реализует SSB декодирование алгоритма.

  • nrhdlSSBDetectionCore: Эта модель - ссылка реализует алгоритм обнаружения SSB.

Функции MATLAB и скрипты

  • nrhdlexamples.runSSBDecodingModel: Этот скрипт использует ссылку MATLAB, чтобы реализовать поиск ячейки и алгоритмы обнаружения SSB, затем запускает nrhdlSSBDecoding Модель Simulink путем вызова nrhdlexampes.ssbDecodeSimulink функция. Модель проверяется с помощью функций 5G Toolbox и ссылки MATLAB.

  • nrhdlexamples.runMIBRecoveryModel: Этот скрипт использовал ссылку MATLAB, чтобы реализовать алгоритм поиска ячейки, затем запускает nrhdlMIBRecovery Модель Simulink. Скрипт проверяет операцию модели с помощью тулбокса 5G и кода ссылки MATLAB.

  • nrhdlexamples.ssbDecodeSimulink: Эта функция запускает nrhdlSSBDecoding Модель Simulink, чтобы декодировать SSB. Это имеет те же аргументы ввода и вывода как nrhdlexamples.ssbDecode функция из ссылки MATLAB.

Этот пример также использует много функций помощника от nrhdlexamples пакет. Модели Simulink и nrhdlexamples пакет находится на пути MATLAB. Чтобы открыть одну из моделей, введите его имя в командной строке MATLAB. Открыть функцию или скрипт от nrhdlexamples пакет, используйте команду редактирования.

HDL NR декодирование SSB

Этот рисунок показывает nrhdlSSBDecoding модель. Верхний уровень модели читает сигналы из базового рабочего пространства MATLAB, передает их SSB Декодирование подсистемы и записывает выходные параметры обратно к рабочей области. Подсистема ParseMIB берет pbchPayload и интерпретирует битовые поля, чтобы произвести параметр MIB выходные параметры. Чтобы запустить модель, вызовите nrhdlexamples.runSSBDecodingModel скрипт в MATLAB.

SSB, декодирующий интерфейс

SSB Декодирование подсистемы содержит экземпляр nrhdlSSBDecodingCore модель - ссылка. В этом разделе описываются вводы и выводы той модели.

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

  • данные: 16-битный сигнал с комплексным знаком со знаком, несущий 4 символа OFDM SSB.

  • dataValid: 1-битный управляющий сигнал подтвердить данные.

  • NCellID: 10-битный номер без знака, который обеспечивает идентификационный номер ячейки для обнаруженного SSB.

  • startProcessing: 1-битный управляющий сигнал, который указывает, когда все данные были записаны и что заключенный и Lmax допустимы.

  • Lmax: 2-битный номер без знака, который указывает на максимальное количество SSBs в пакете. Значение 0 указывает на 4 SSBs, и значение 1 указывает на 8 SSBs.

  • Сброс: 1-битный управляющий сигнал сбросить обработку.

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

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

  • Ibar_SSB: 3-битное значение без знака, которое является индексом, вычисленным процессом поиска DMRS.

  • ssbIndex: 3-битное значение без знака, которое является индексом SSB, вычисленное использование ibar_ssb и Lmax.

  • pbchPayload: 32-битное значение без знака, которое содержит MIB и дополнительный PBCH синхронизация данных.

  • Диагностика: Соедините шиной содержащий диагностические сигналы.

Состояния сигнала состояния

  • 0: неактивный

  • 1: выполнение поиск DMRS

  • 2: выполнение декодирование PBCH

  • 3: выполнение восстановления уровня

  • 4: выполнение полярного декодирования

  • 5: Ошибка CRC (конечное состояние)

  • 6: Передача CRC, MIB, обнаруженный (конечное состояние)

SSB декодируют структуру модели - ссылки

Эта схема показывает верхний уровень nrhdlSSBDecodingCore модель. Входные данные являются 4 символами OFDM для блока сигнала синхронизации (SSB) с данными, масштабируемыми в области значений +/-1. Модель начинает обрабатывать, когда все данные SSB были введены к модели, и startProcessing утверждается. Сигнал startProcessing указывает, когда все данные SSB были записаны, входные параметры NCellID и Lmax допустимы, и обработка SSB может начаться.

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

PBCH обработка подсистемы

pbch обработка подсистемы выполняет поиск DMRS, оценку канала и эквализацию, и демодуляцию QPSK и дескремблирование. Входящие данные хранятся в буфере RAM, где они сохранены, пока startProcessing не утверждается, указывая, что вся запрошенная информация доступна, чтобы запустить процесс поиска DMRS. Поиск DMRS читает символы DMRS из RAM и коррелирует с 8 возможными последовательностями DMRS, выбирая самое сильное значение корреляции, чтобы определить ibar_SSB. Если поиск DMRS был завершен, ibar_SSB используется, чтобы сгенерировать ссылочный DMRS, требуемый для оценки канала. Ссылочный DMRS передал оценке канала + eq подсистема наряду с полученными символами PBCH и сопоставил DMRS.

Оценка канала + eq подсистема выполняет оценку канала с помощью полученных данных и ссылочного DMRS. Оценка канала выполняет линейную интерполяцию между местоположениями DMRS в символе OFDM, но не выполняет усреднение между символами в случае никакого остаточного смещения несущей частоты. Эквализация фазы символов PBCH затем выполняется, прежде чем демодуляция QPSK и дескремблирование выполняются, с помощью ibar_SSB и Lmax, чтобы вычислить последовательность дескремблирования.

BCH обработка подсистемы

Обработка BCH выполняет восстановление уровня, полярное декодирование декодирования и CRC BCH. Подсистема восстановления уровня включает масштабирование сигнала и wordlength сокращение, чтобы подготовить данные к полярному декодированию. Масштабированное, уровень, восстановленные, мягкие биты затем передаются NR Полярный блок Decoder, который также выполняет декодирование CRC. Допускать ошибку выходной порт от NR, на который указывает Полярный блок Decoder, было ли декодирование успешно или столкнулось с какими-либо ошибками. Подсистема полезной нагрузки извлечения выполняет дескремблирование и устранение чередования битов полезной нагрузки.

SSB декодируют Setup симуляции

Эта блок-схема показывает настройку симуляции, реализованную nrhdlexamples.runSSBDecodingModel скрипт. Скрипт использует функции 5G Toolbox, чтобы сгенерировать тестовую форму волны. Тестовая форма волны затем обрабатывается с помощью кода ссылки MATLAB для детектора SSB, чтобы искать, затем демодулировать, самый сильный SSB в форме волны. Это обеспечивает ввод данных SSB для SSB, декодирующего этап. Данные SSB передаются и MATLAB и реализациям Simulink, и выходные параметры сравниваются, проверяют операцию модели Simulink.

SSB декодируют результаты симуляции

Вызовите nrhdlexamples.runSSBDecodingModel функция, чтобы выполнить SSB декодирует настройку симуляции, аналогичную описанному выше. Это вызовы функции код ссылки MATLAB, сопровождаемый моделью Simulink с помощью функций nrhdlexamples.SSBDecoding и nrhdlexamples.SSBDecodingSimulink.

Сигналы от шины диагностики могут использоваться, чтобы сравнить и проверить промежуточные сигналы от симуляции Simulink с эквивалентным MATLAB. График сильных мест корреляции от процесса поиска DMRS показывают ниже с MATLAB и Сигналами Simulink, приводящими к тому же результату.

Компенсируемые символы QPSK, представляющие PBCH, также построены по скрипту, и выход показывают ниже. Этот график показывает, что модель Simulink совпадает со ссылкой MATLAB.

Скрипт также отображает конечный результат процесса декодирования в командной строке, и с симуляцией и с результатами ссылки MATLAB, показанными для сравнения.

Модель восстановления MIB

nrhdlMIBRecovery модель соединяет эти два образца модели для Декодирования SSB и обнаружения SSB (nrhdlSSBDecodingCore и nrhdlSSBDetectionCore) создать полное внедрение системы восстановления MIB. Эта модель может использоваться, чтобы восстановить MIB с основополосных форм волны 5G. Скрипт nrhdlexamples.runMIBRecoveryModel может использоваться, чтобы запустить эту модель и выдержать сравнение со ссылкой MATLAB. Уменьшать время вычислений потребовало, чтобы часть поиска ячейки алгоритма была выполнена в MATLAB затем, если самый сильный SSB был определен, модель Simulink используется, чтобы повторно получить, демодулировать, и декодировать SSB.

Сигнал состояния от детектора используется, чтобы запустить декодер SSB, когда это достигло состояния 8, указав, что демодуляция завершена, SSS был найден, и демодулируемая сетка была выведена. Когда декодер SSB будет иметь демодулируемую сетку и получил сигнал startProcessing, что это будет декодировать SSB, выводя полезную нагрузку PBCH, которая затем анализируется, чтобы извлечь данные о MIB.

Генерация HDL-кода и результаты реализации

Чтобы сгенерировать HDL-код для этого примера, у вас должна быть лицензия HDL Coder™. Используйте makehdl и makehdltb команды, чтобы сгенерировать HDL-код и испытательный стенд HDL для nrhdlSSBDecoding/SSB Decoding или nrhdlMIBRecovery/MIB Recovery подсистемы. Получившийся HDL-код синтезировался для оценочной платы Xilinx® Zynq®-7000 ZC706. Таблица показывает место сообщения и результаты использования ресурса маршрута. Проект соответствует синхронизации с тактовой частотой 150 МГц.

Использование ресурса для nrhdlSSBDecoding модели:

       Resource        Usage
    _______________    _____

    Slice Registers     8896
    Slice LUTs         11229
    RAMB18                 4
    RAMB36                 5
    DSP48                 38

Использование ресурса для nrhdlMIBRecovery модели:

       Resource        Usage
    _______________    _____

    Slice Registers    87760
    Slice LUTs         47747
    RAMB18                14
    RAMB36                 5
    DSP48                247

Похожие темы

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