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

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

Введение

Модели Simulink®, описанные в этом примере, являются оптимизированными реализациями HDL фиксированной точки декодирования SSB и восстановления MIB для 5G частотный диапазон 1 (FR1) NR. Этим примером является один из связанного набора, которые показывают рабочий процесс для разработки и развертывания поиска ячейки NR 5G и алгоритма восстановления MIB к оборудованию. Полный рабочий процесс показывают.

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

  1. Золотой Ссылочный шаг Алгоритма MATLAB состоит из Поиска Ячейки NR и MIB и Восстановления SIB1 (5G Toolbox) пример, который показывает золотой ссылочный алгоритм с плавающей точкой.

  2. Шаг Алгоритма Руководства по аппаратным средствам MATLAB состоит из Приемника Нисходящего канала HDL NR Справочный пример MATLAB, какое оборудование моделей дружественные алгоритмы и генерируют тестовые формы волны. Этот код MATLAB® работает с векторами и матрицами выборок данных с плавающей точкой и не поддерживает генерацию HDL-кода.

  3. Шаг Модели Реализации Фиксированной точки Simulink состоит из нескольких примеров. Пример Поиска Ячейки HDL NR демонстрирует, что ячейка 5G ищет Подсистему Simulink, которая использует тот же алгоритм в качестве ссылки MATLAB. Пример Восстановления MIB HDL NR (этот пример) добавляет декодирование канала телевизионного вещания и подсистему восстановления MIB. Пример NR HDL SIB1 Восстановления добавляет подсистему, которая восстанавливает сетку ресурса SIB1 и показывает, как декодировать ее выход с помощью кода ссылки MATLAB. Восстановление MIB HDL NR для примера FR2 показывает поиск ячейки и модели восстановления MIB, которые были расширены, чтобы поддержать FR2. Эти модели работают с данными фиксированной точки и оптимизированы для генерации HDL-кода.

  4. Шаг модели развертывания Simulink SoC состоит из Развернуть Примеров готовых узлов HDL NR на примерах SoCs, которые основываются на моделях реализации фиксированной точки и используют пакеты аппаратной поддержки, чтобы развернуть алгоритмы на оборудовании.

Для общего описания того, как MATLAB и Simulink могут использоваться вместе, чтобы разработать развертываемые модели, см. Проект Радиосвязей для FPGAs и ASICs.

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

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

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

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

Модели Simulink

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

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

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

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

Словарь данных Simulink

  • nrhdlReceiverData.sldd: Этот словарь данных Simulink содержит объекты шины, которые задают шины, содержавшиеся в моделях в качестве примера.

КОД MATLAB

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

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

  • nrhdlexamples: Пакет, содержащий код ссылки MATLAB и служебные функции для проверки моделей реализации.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • ssbIndex3Lsb: 3-битное значение без знака, которое является 3 младшими значащими битами индекса SSB, вычисленного процессом поиска DMRS и Lmax.

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

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

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

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

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

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

  • 1: чтение в данных для сетки SSB

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

  • 3: выполнение демодуляция символа PBCH

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

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

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

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

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

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

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

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

PBCH обработка подсистемы выполняет поиск DMRS, оценку канала и эквализацию, демодуляцию символа QPSK и дескремблирование. Выход от PBCH, обработка подсистемы передается BCH обработка подсистемы, которая выполняет восстановление уровня, полярное декодирование и декодирование CRC. Подсистема Создания Шины Диагностики создает шину диагностики путем конкатенации диагностики от PBCH и BCH обработка подсистем.

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 симуляции

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

SSB декодирование симуляции

Используйте runSSBDecodingModel скрипт, чтобы запустить SSB декодирование симуляции. Скрипт отображает свой прогресс в командной строке MATLAB. Конечные результаты декодирования SSB в MATLAB и Simulink отображены, показав, что они соответствуют точно. Графики силы корреляции поиска DMRS и компенсируемых символов QPSK PBCH показывают, что сигналы из MATLAB и Simulink соответствуют тесно.

runSSBDecodingModel;
Generating test waveform.
Selected Simulation case:

    Simulation Case    SSB Pattern    Subcarrier Spacing Common    PDCCH Config SIB1    SNR dB    Strongest SSB index    Lmax
    _______________    ___________    _________________________    _________________    ______    ___________________    ____

      "SimCase 1"       "Case C"                 30                       164             50               4              8  

Searching for SSBs using the MATLAB reference.
Demodulating the strongest SSB using the MATLAB reference.
Decoding the SSB using the MATLAB reference.
MIB successfully decoded by MATLAB reference
Decoding the SSB using the Simulink model.
Running nrhdlSSBDecoding.slx
### Starting serial model reference simulation build
### Model reference simulation target for nrhdlSSBDecodingCore is up to date.

Build Summary

0 of 1 models built (1 models already up to date)
Build duration: 0h 0m 2.3755s
..........
MIB successfully decoded by Simulink model
 MATLAB decoded information
    pbchPayload: 17637376
       ssbIndex: 3
            hrf: 0
            err: 0
            mib: [1×1 struct]

 Simulink decoded information
    pbchPayload: 17637376
       ssbIndex: 3
            hrf: 0
            err: 0
            mib: [1×1 struct]

 MATLAB decoded MIB parameters
                     NFrame: 0
    SubcarrierSpacingCommon: 30
                      k_SSB: 0
          DMRSTypeAPosition: 3
            PDCCHConfigSIB1: 164
                 CellBarred: 0
       IntraFreqReselection: 0

 Simulink decoded MIB parameters
                     NFrame: 0
    SubcarrierSpacingCommon: 30
                      k_SSB: 0
          DMRSTypeAPosition: 3
            PDCCHConfigSIB1: 164
                 CellBarred: 0
       IntraFreqReselection: 0

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

nrhdlMIBRecovery модель соединяет эти два образца модели для Декодирования SSB и обнаружения SSB (nrhdlSSBDecodingCore и nrhdlSSBDetectionFR1Core) создать полное внедрение системы восстановления MIB. Эта модель может использоваться, чтобы восстановить MIB с основополосных форм волны 5G. Скрипт 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     8297
    Slice LUTs         11050
    RAMB18                 8
    RAMB36                 4
    DSP48                 37

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

       Resource        Usage
    _______________    _____

    Slice Registers    83231
    Slice LUTs         40154
    RAMB18                17
    RAMB36                 5
    DSP48                245

Похожие темы