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

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

Введение

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

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

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

  2. Алгоритм аппаратных ссылок MATLAB: Поиск HDL-ячеек NR и MIB Recovery MATLAB Reference моделируют аппаратные алгоритмы и генерируют тестовые формы сигналов. Этот код MATLAB работает с векторами и матрицами выборок данных с плавающей точкой и не поддерживает генерацию HDL-кода.

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

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

Общее описание того, как MATLAB и Simulink могут использоваться вместе для разработки развертываемых моделей, смотрите в Wireless Communications Design для FPGA и ASIC.

Восстановление MIB требует обнаружения, демодуляции и декодирования SSB. Этот пример посвящен декодированию SSB. Обнаружение и демодуляция SSB описаны в примере NR HDL Камеры Search. Этот пример представляет модель Simulink декодирования SSB и использует ссылку 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

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

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

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

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

Интерфейс декодирования SSB

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

Исходные данные

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

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

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

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

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

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

Выходы

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

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

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

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

  • 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. Входящие данные хранятся в буфере ОЗУ, где они хранятся до утверждения startProcessing, что указывает на доступность всей необходимой информации для начала процесса поиска DMRS. Поиск DMRS считывает символы DMRS из ОЗУ и коррелирует с 8 возможными последовательностями DMRS, выбирая самое сильное значение корреляции, чтобы определить ibar_SSB. После завершения поиска DMRS ibar_SSB используется, чтобы сгенерировать эталонный DMRS, требуемый для оценки канала. DMRS ссылки передается в подсистему канала est + eq вместе с принятыми символами PBCH и соответствующими DMRS.

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

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

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

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

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

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

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

runSSBDecodingModel;
Generating test waveform.
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 0.62693s
..........
MIB successfully decoded by Simulink model
 MATLAB decoded information
    pbchPayload: 218103952
       ssbIndex: 3
            hrf: 0
            err: 0
            mib: [1×1 struct]

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

 MATLAB decoded MIB parameters
                     NFrame: 105
    SubcarrierSpacingCommon: 30
                      k_SSB: 0
          DMRSTypeAPosition: 2
            PDCCHConfigSIB1: 0
                 CellBarred: 0
       IntraFreqReselection: 0

 Simulink decoded MIB parameters
                     NFrame: 105
    SubcarrierSpacingCommon: 30
                      k_SSB: 0
          DMRSTypeAPosition: 2
            PDCCHConfigSIB1: 0
                 CellBarred: 0
       IntraFreqReselection: 0

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

The 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-код был синтезирован для платы оценки ZC706 Xilinx ® Zynq ® -7000. В таблице показаны результаты использования ресурсов постамата и маршрута. Проект соответствует синхронизации с тактовой частотой 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

Похожие темы