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

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

Введение

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

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

  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.

Восстановление SIB1 требует поиска ячейки, декодирования основного блока информации (MIB), восстановления сетки SIB1 (область сетки ресурса, содержащей CORESET0 и SIB1), и декодирующей PDCCH и PDSCH от сетки SIB1. Этот пример фокусируется на восстановлении сетки SIB1. Процесс восстановления MIB описан в примере Восстановления MIB HDL NR. Итоговые этапы декодирования описаны в Приемнике Нисходящего канала HDL NR Справочный пример MATLAB. Этот пример фокусируется на модели SIB1 Demodulation Simulink и использует ссылку MATLAB, чтобы сгенерировать тестовое воздействие и проверить поведение модели. Как последний шаг, пример показывает модель Simulink что восстановление MIB объединений и демодуляция SIB1, чтобы восстановить сетку SIB1 с основополосной формы волны.

После восстановления MIB содержимое MIB должно анализироваться и использоваться, чтобы определить распределение ресурсов CORESET0 вовремя и частоты. С этим знанием сетка SIB1 может быть OFDM, демодулируемым, когда его случай синхронизации достигнут.

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

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

Модели Simulink

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

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

  • nrhdlSIB1DemodulationCore.slx: Эта модель - ссылка реализует алгоритм Демодуляции SIB1.

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

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

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

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

КОД MATLAB

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

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

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

Демодуляция NR HDL SIB1

Этот рисунок показывает nrhdlSIB1Demodulation модель. Верхний уровень модели читает сигналы из базового рабочего пространства MATLAB, передает их подсистеме Демодуляции SIB1 и записывает выходные параметры обратно к рабочей области.

Интерфейс демодуляции SIB1

Подсистема Демодуляции SIB1 содержит экземпляр Input Scaling подсистема и nrhdlSIB1DemodulationCore модель - ссылка. Input Scaling подсистема масштабирует вход на коэффициент 0,875, обеспечивая высоту для последующих этапов обработки. nrhdlSIB1DemodulationCore алгоритм описан в следующем разделе.

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

  • dataIn: 16-битный сигнал с комплексным знаком со знаком, произведенный в 61.44 членах Шотландского парламента.

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

  • paramsIn: Шина типа SIB1GridParamBus.

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

  • clearStatus: Очистите состояние сигнала состояния.

SIB1GridParamBus

  • ssbFrequencyOffset: 32-битное значение со знаком, задающее смещение частоты, применилось к SSB. Этот сигнал соединяется с NCO с 32-битным аккумулятором. Используйте это уравнение, чтобы преобразовать значение в Гц: ssbFrequencyOffset_Hz = ssbFrequencyOffset * 61.44e6 / 2^32.

  • ssbTimingOffset: 21-битное значение без знака, которое является смещением синхронизации обнаруженного SSB. Смещение синхронизации находится в выборках в 61.44 членах Шотландского парламента от 0 до 1228799.

  • scsSSB: 2-битное значение без знака, задающее расстояние между поднесущими (SCS) обнаруженного SSB. Установите этот сигнал на 0 выбирать 15 кГц, или 1, чтобы выбрать 30 кГц.

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

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

  • minChanBW: 2-битное значение без знака, задающее минимальную полосу пропускания канала. Значение 0 указывает, что 5 МГц, 1 указывает, что 10 МГц и 2 указывают на 40 МГц.

  • ssbPattern: 2-битное значение без знака, задающее шаблон SSB. Значение 0 указывает, что 'Случай', 1 указывает, что 'Случай B', и 2 указывает 'на Случай C'.

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

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

  • выходные данные: 16-битные данные о сетке ресурса SIB1 с комплексным знаком со знаком. Алгоритм выводит 28 символов OFDM сетки SIB1, одного элемента ресурса (RE) на цикл.

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

  • coreset0Resources: Шина типа coreset0ResourcesBus.

  • coreset0Occasion: Шина типа coreset0OccasionBus.

  • parsedMIB: Шина типа MIBBus.

coreset0ResourcesBus

  • resourceBlocks: 2-битное значение без знака, задающее количество блоков ресурса. Значение 0 указывает 24, 1 указывает 48, и 2 указывает 96.

  • ofdmSymbols: 2-битное значение без знака, которое является количеством символов OFDM промежутки CORESET0.

  • frequencyOffset: 32-битное значение со знаком, задающее относительное смещение частоты от SSB до CORESET0. Этот сигнал соединяется с NCO с 32-битным аккумулятором. Используйте это уравнение, чтобы преобразовать значение в Гц: frequencyOffset_Hz = frequencyOffset * 61.44e6 / 2^32.

coreset0OccasionBus

  • slotOffset: 5-битное значение без знака, которое является смещением паза от даже голова системы координат к первому проверенному пазу.

  • firstSymbol: 3-битное значение без знака, задающее первое, заняло символ OFDM в пазе.

MIBBus

  • sfn: 10-битное значение без знака, которое является системным номером системы координат (SFN).

  • scsCommon: 1-битное значение без знака, задающее общее расстояние между поднесущими. Значение 0 указывает, что 15 кГц, и 1 указывают на 30 кГц.

  • Kssb: 5-битное значение без знака, которое является перемещением между SSB и полной сеткой блока ресурса.

  • drmsTypeAPos: 1-битное значение без знака, задающее положение символа DMRS для типа A выделения PDSCH, где 0 представляет положение 2 и 1, указывает на положение 3.

  • pdcchConfigSIB1: 8-битное значение без знака, содержащее настройку для CORESET0

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

  • intraFreqReselection: 1-битное значение, указывающее, позволен ли intra повторный выбор частоты.

  • hrf: 1-битное значение, которое является половиной бита системы координат.

  • ssbIdx: 3-битное значение, которое является индексом SSB.

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

  • 0: Начальное состояние. Ожидание импульса запуска.

  • 1: Ожидание случая синхронизации CORESET0.

  • 2: OFDM демодуляция и вывод данных о сетке SIB1.

Структура модели - ссылки демодуляции SIB1

Эта схема показывает верхний уровень nrhdlSIB1DemodulationCore модель. Проект работает с данными IQ на уровне 61,44 МГц и требует параметров от успешного восстановления MIB. Сигнал запуска начинает операцию демодуляции SIB1 и может утверждаться, если все входные порты на шине paramsIn допустимы. Необходимо содержать значения на paramsIn константе на время демодуляции.

Первый этап обработки для демодулятора SIB1 является DDC. DDC берет входные данные на уровне 61,44 МГц, выполняет сдвиг частоты, чтобы сосредоточить CORESET0 и затем прореживает к 30,72 МГц с помощью фильтра полуполосы. Выходная частота дискретизации была выбрана, потому что это - минимальная полоса пропускания, требуемая выполнять степень 2 БПФ для максимальных размеров CORESET0 в SCS 15 и 30 кГц.

Демодулятор OFDM берет вход из DDC и выводит сетку SIB1, когда это получает сигнал запуска. Подсистема сконфигурирована, чтобы вычислить переменный БПФ размера с конфигурируемой длиной циклического префикса и защитными поднесущими. Размер БПФ выбран в зависимости от расстояния между поднесущими сетки SIB1. Для SCS 15 используется БПФ с 2048 точками, и для SCS 30 используется БПФ с 1024 точками. Они оба соответствуют частоте дискретизации 30,72 МГц. Длина циклического префикса варьируется во время демодуляции OFDM сетки SIB1 с учетом более длинного циклического подарка символов префикса на контурах полуподкадра. Количество защитных поднесущих используется, чтобы извлечь сетку SIB1 из полной полосы пропускания демодуляции.

DDC и подсистемы демодулятора OFDM требуют, чтобы значения настройки успешно демодулировали сетку SIB1. Эти значения вычисляются из результатов восстановления MIB. Подсистема Config SIB1 создает MIB из полезной нагрузки PBCH и анализирует pdcchSIB1Config поле, чтобы произвести coreset0Resources и coreset0TimingOccasion. coreset0Resources сигнал содержит смещение частоты от SSB до CORESET0 и полосы пропускания сетки ресурса CORESET0. coreset0TimingOccasion сигнал содержит смещение паза от даже голова системы координат SFN к первому проверенному пазу т.е. пазу в 2 системных системах координат. Проверенный паз, синхронизирующий подсистему смещения, преобразует coreset0TimingOccasion смещение паза к подсчету ссылок синхронизации. Шаблон SSB, индекс SSB и SSB, синхронизация ссылки используется для расчета ссылка синхронизации даже голова системы координат SFN, из которой может быть вычислено синхронизирующее ссылочное значение CORESET0. Счетчик ссылки синхронизации, синхронизируемый со ссылками обнаружения SSB, используется, чтобы отследить поток данных SIB1. Если сигнал запуска утверждается, startController ожидает ссылки синхронизации SIB1, чтобы достигнуть целевого смещения, вычисленного проверенным пазом, синхронизирующим подсистему смещения, и затем инициировал демодуляцию OFDM, чтобы начаться. Схема показывает пример ссылок синхронизации для проверенного SSB, даже голова системы координат и случай синхронизации CORESET0. Эти смещения зависят от настройки ячейки передачи.

Setup симуляции демодуляции SIB1

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

Симуляция демодуляции SIB1

Используйте runSIB1DemodulationModel скрипт, чтобы запустить симуляцию демодуляции SIB1. Скрипт отображает свой прогресс в командной строке MATLAB и производит графики вводов и выводов для анализа. Испытательный стенд поддерживает несколько случаев симуляции. Полный набор случаев и их параметры, показывают. Этот пример показывает результаты рабочего "SimCase 1". Сетки ресурса, произведенные MATLAB и Simulink, отображены наряду с различием между ними и их относительной среднеквадратической ошибкой (MSE). Это проверяет, что реализация Simulink тесно совпадает со ссылкой MATLAB. Графики сетки помечены, чтобы подсветить декодируемый PDCCH и PDSCH. Заключительный этап скрипта декодирует сетку Simulink SIB1, чтобы гарантировать ее правильность.

    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  
      "SimCase 2"       "Case B"                 15                       100              5               7              8  
      "SimCase 3"       "Case A"                 30                         4             20               2              8  
      "SimCase 4"       "Case A"                 15                        84              7               0              4  

runSIB1DemodulationModel;
Generating test waveform.
Searching for SSBs using MATLAB reference.
Demodulating the strongest SSB using MATLAB reference.
Decoding the demodulated SSB using MATLAB reference.
Demodulating the SIB1 grid using MATLAB reference.
Demodulating the SIB1 grid using Simulink model.
Running nrhdlSIB1Demodulation.slx
### Starting serial model reference simulation build
### Successfully updated the model reference simulation target for: nrhdlSIB1DemodulationCore

Build Summary

Simulation targets built:

Model                      Action                       Rebuild Reason                                        
==============================================================================================================
nrhdlSIB1DemodulationCore  Code generated and compiled  nrhdlSIB1DemodulationCore_msf.mexa64 does not exist.  

1 of 1 models built (0 models already up to date)
Build duration: 0h 1m 23.925s
..........
MATLAB and Simulink grids relative MSE : -60.7415 dB
PDCCH RMS EVM: 0.611%
DCI successfully decoded from Simulink grid.
SIB1 successfully decoded from Simulink grid.

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

nrhdlSIB1GridRecovery модель комбинирует модель демодуляции SIB1 (nrhdlSIB1DemodulationCore) с этими двумя образцами модели для Декодирования SSB и Обнаружения SSB (nrhdlSSBDecodingCore и nrhdlSSBDetectionFR1Core) создать полное внедрение системы восстановления сетки SIB1. Эта модель может использоваться, чтобы восстановить сетку SIB1 с основополосных форм волны 5G.

Используйте runSIB1GridRecoveryModel скрипт, чтобы запустить эту модель и выдержать сравнение со ссылкой MATLAB. Чтобы ускорить симуляцию, часть поиска ячейки алгоритма выполняется в MATLAB. Если самый сильный SSB был определен, simulink модель используется, чтобы повторно получить, демодулировать и декодировать SSB, и затем сетка SIB1 демодулируется.

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

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

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

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

       Resource        Usage
    _______________    _____

    Slice Registers    11843
    Slice LUTs          6877
    RAMB18                19
    RAMB36                 6
    DSP48                 33

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

       Resource        Usage
    _______________    _____

    Slice Registers    94857
    Slice LUTs         46916
    RAMB18                36
    RAMB36                11
    DSP48                276

Чтобы развернуть nrhdlSIB1GridRecovery модель в аппаратную платформу и восстановить SIB1 с от воздушных сигналов, см. Развернуть Примеры готовых узлов HDL NR на примере SoCs.

Похожие темы