exponenta event banner

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

Этот пример показывает как дизайну a 5G НОМЕР расшифровки блока сигнала синхронизации (SSB) и модели восстановления основного информационного блока (MIB), оптимизированной для генерации объектного кода HDL и внедрения аппаратных средств.

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Продукция

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

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

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

  • pbchPayload: 32-битное неподписанное значение, содержащее MIB и дополнительные данные rxWaveform 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. Сигнал startProcing также указывает, что входы NCellID и Lmax являются действительными.

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

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

Подсистема обработки PBCH выполняет поиск DMRS, оценку и выравнивание канала, а также демодуляцию и дескремблирование QPSK. Входящие данные сохраняются в буфере ОЗУ, где они хранятся до тех пор, пока не будет задана startProcing, указывающая, что вся необходимая информация доступна для запуска процесса поиска 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

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

Настройка моделирования декодирования SSB

На блок-схеме показана настройка моделирования, реализованная в этом примере. 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.
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

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

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

Результаты создания и внедрения кода HDL

Для создания кода HDL в этом примере необходимо иметь лицензию HDL Coder™. Используйте makehdl и makehdltb команды для генерации кода HDL и стенда для тестирования HDL для nrhdlSSBDecoding/SSB Decoding или nrhdlMIBRecovery/MIB Recovery подсистем. Полученный код HDL синтезировали для оценочной платы Xilinx ® Zynq ® -7000 ZC706. В таблице показаны результаты использования ресурсов post place и route. Конструкция отвечает синхронизации с тактовой частотой 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

Связанные темы