В этом примере показано, как разработать 5G модель восстановления главного информационного блока (MIB) NR, которая оптимизирована для генерации HDL-кода и аппаратной реализации и поддерживает как частотную область значений 1 (FR1), так и частотная область значений 2 (FR2).
5G камеры башни могут работать как в FR1, так и FR2 частотных полос. FR1 охватывает частоты до 6 ГГц и FR2 охватывает частоты выше 6 ГГц, включая миллиметровую полосу волн. В этом примере представлены новые функциональные возможности, необходимые для поддержки FR2 и процесса обновления существующего проекта FR1.
Модели Simulink ®, описанные в этом примере, являются HDL-оптимизированными реализациями восстановления MIB для 5G NR- FR1 и FR2. Этот пример является одним из связанных наборов, которые показывают рабочий процесс разработки и развертывания 5G алгоритма поиска камеры NR и восстановления MIB на оборудовании. Отображается полный рабочий процесс.
Каждый шаг в этом рабочем процессе демонстрируется одним или несколькими связанными примерами.
Алгоритм Золотой Ссылки MATLAB: Пример Поиска Камеры NR и Восстановления MIB и SIB1 (5G Toolbox) показывает алгоритм Золотой ссылки с плавающей точкой.
MATLAB Оборудования эталонный алгоритм: NR HDL Камеры Search и MIB Recovery MATLAB Образцов модели аппаратно-удобные алгоритмы и генерирует тестовые формы сигналов. Этот код MATLAB ® работает с векторами и матрицами выборок данных с плавающей точкой и не поддерживает генерацию HDL-кода.
Модель реализации Simulink с фиксированной точкой: Пример поиска Камеры HDL NR демонстрирует подсистему Simulink 5G камеры поиска, которая использует тот же алгоритм, что и ссылка MATLAB. Пример восстановления MIB NR HDL добавляет подсистему декодирования широковещательного канала и восстановления MIB. NR HDL MIB Recovery для FR2 примера (этот пример) показов модели поиска камеры и восстановления MIB, которые были расширены для поддержки FR2. Эти модели работают на данных с фиксированной точкой и оптимизированы для генерации HDL-кода.
Simulink SoC Deployment Model: Примеры развертывания Примеров готовых узлов NR HDL на SoCs основаны на моделях реализации с фиксированной точкой и используют пакеты аппаратной поддержки для развертывания алгоритмов на оборудовании.
Общее описание того, как MATLAB и Simulink могут использоваться вместе для разработки развертываемых моделей, смотрите в Wireless Communications Design для FPGA и ASIC.
Этот пример использует эти файлы.
Модели Simulink
nrhdlMIBRecovery.slx
Эта модель Simulink объединяет обработку детектора SSB и декодера SSB в интегрированную модель, иллюстрирующую полный процесс восстановления MIB. Эта модель использует nrhdlSSBDetectionCore.slx
и nrhdlSSBDecodingCore.slx
Модели-ссылки.
nrhdlSSBDecodingCore.slx
: Эта модель-ссылка реализует алгоритм декодирования SSB.
nrhdlSSBDetectionCore.slx
: Эта модель-ссылка реализует алгоритм обнаружения SSB.
Словарь данных Simulink
nrhdlReceiverData.sldd
: Этот словарь данных Simulink содержит объекты шины, которые определяют шины, содержащиеся в моделей примера.
Код MATLAB
runMIBRecoveryModelFR2.m
: Скрипт для выполнения и проверки nrhdlMIBRecovery
модель с FR2 формой волны.
nrhdlexamples
: Пакет, содержащий ссылочный код MATLAB и служебные функции для проверки моделей реализации.
В этом разделе описываются изменения в обнаружении SSB в примере поиска Камеры HDL NR, которые требуются для поддержки FR2. В нем подробно описываются алгоритмические требования к ссылке MATLAB и реализации Simulink, а также оптимизации, сделанной для генерации HDL-кода.
Алгоритм обнаружения SSB выполняет поиск и демодуляцию с заданным интервалом поднесущих (SCS). Опции SCS составляют 15 кГц или 30 кГц для FR1 и 120 кГц или 240 кГц для FR2. Чтобы добавить FR2 функциональность, необходимо поддержать новые опции SCS. Детектор ищет SSB путем понижающей дискретизации принимаемого сигнала до одной из скоростей, показанных в таблице согласно SCS. Затем сигнал перекрестно коррелируется с последовательностями PSS.
SCS (kHz) Sample Rate (MHz) _________ _________________ 15 3.84 30 7.68 120 30.72 240 61.44
Для учета повышенной пропускной способности SSB в FR2 используется частота дискретизации входных параметров 122,88 Msps по сравнению с 61,44 Msps для проекта FR1. Опорные модули синхронизации не изменены и все еще измеряются в выборках при 61,44 Msps. Счетчики опорных синхросигналов увеличиваются на шаги 16, 8, 2 и 1 для SCS на 15, 30, 120 и 240 кГц соответственно. Эта модель включает изменённый проект DDC, которая поддерживает эти дополнительные интервалы поднесущих и их соответствующие скорости дискретизации. DDC корректирует смещения частоты и затем понижает частоту до 61,44 МГц. Выходом от DDC является вход в подсистему выбора SCS. Эта подсистема создает потоки данных для каждой опции SCS путем последовательной понижающей дискретизации с помощью полуполосных фильтров. Все четыре потока выровнены, что позволяет поддерживать временную ссылку при переключении между различными интервалами поднесущих. Выбранный поток коррелирует с каждой из трех последовательностей PSS для обнаружения SSB.
Реализация FPGA этих корреляторов во временном интервале использует 576 DSP, в 4 раза больше, чем версия, которая поддерживает только FR1. Это изменение в ресурсах связано с тем, что частоты дискретизации уменьшают количество совместного использования ресурсов, которое может быть достигнуто в фильтрах. Для минимизации использования DSP за счет увеличения задержек используется частотный диапазон метода перекрытия-суммы. Корреляция перекрытие-добавление в nrhdlSSBDetectionCore
показана модель. Подсистема вычисляет четыре этапа метода перекрытия-суммы. Это БПФ, умножение на три набора коэффициентов частотного диапазона (по одному для каждой PSS), ОБПФ, и перекрытие и добавление последующих окон. Эта реализация использует один БПФ, три комплексных мультипайера и три оБПФов, требующих в общей сложности 48 DSP.
В этом разделе описываются обновления, необходимые для добавления FR2 поддержки к алгоритму декодирования SSB. Полное описание модели FR1 смотрите в примере восстановления NR HDL MIB. В нем подробно описываются алгоритмические требования к ссылке MATLAB и реализации Simulink.
Алгоритм декодирования SSB декодирует широковещательный канал (BCH), содержащийся в SSB. Процесс декодирования выводит основной информационный блок (MIB) и индекс луча обнаруженного SSB. В FR1 существует максимум 8 SSB, которые могут быть независимо сформированы лучом. FR2 поддерживает передачу 64 SSB, каждый из которых имеет свой собственный луч. Содержимое BCH изменяется между FR1 и FR2, чтобы соответствовать различному максимальному количеству лучей.
The nrhdlexamples.ssbDecode
функции и nrhdlSSBDecodingCore
модель принимает Lmax как вход. Lmax - это максимальное количество лучей, которые могут передаваться вышкой камеры и зависят от несущей частоты. Допустимые настройки для Lmax: 4 или 8 для FR1 и 64 для FR2. Lmax влияет на дескремблирование в подсистеме обработки/извлечения полезной нагрузки BCH и на то, как анализируется конечная полезная нагрузка BCH.
Используйте runMIBRecoveryModelFR2
скрипт, чтобы запустить FR2 симуляцию восстановления MIB и проверить результаты. Скрипт отображает прогресс в командной строке MATLAB. В симуляции используются nrhdlMIBRecovery
модель, которая ссылается на nrhdlSSBDetectionCore
и nrhdlSSBDecodingCore
модели. Стимул входа для симуляции является FR2 формой волны, содержащей пакет SS с этими параметрами.
Шаблон SSB является случаем D.
Интервал между поднесущими составляет 120 кГц.
NCellID - 249.
Активные SSB передаются по индексам SSB 24:31.
Генерируется график, показывающий ресурсную сетку формы пакетного сигнала. Амплитуда каждого ресурсного элемента обозначена его цветом. На график показаны восемь переданных SSB. SSB генерируются с различными уровнями степени, чтобы смоделировать то, что UE обычно получает.
Симуляция ищет SSB в форме волны с помощью ссылки MATLAB. SSB, обнаруженные во время поиска, и их параметры показаны в таблице. SSB с самой сильной корреляцией PSS выбирается для демодуляции и декодирования, чтобы протестировать nrhdlMIBRecovery
модель. Интервалы между поднесущими, последовательность PSS, смещение по времени и оценка смещения по частоте передаются в модель, чтобы определить, какой SSB следует демодулировать и декодировать. Показаны окончательные результаты процесса декодирования, для сравнения показаны как симуляции, так и эталонные результаты MATLAB.
runMIBRecoveryModelFR2;
Searching for SSBs using the MATLAB reference. SSBs found by MATLAB reference: NCellID2 timingOffset pssCorrelation pssEnergy frequencyOffset ________ ____________ ______________ _________ _______________ 0 1.0918e+05 0.42856 0.9903 51134 0 1.1137e+05 0.76446 1.6985 49836 0 1.1576e+05 0.27392 0.66928 48771 0 1.1795e+05 4.138 7.8159 49815 0 1.2456e+05 0.58574 1.249 51829 0 1.2675e+05 1.2834 2.7073 49390 0 1.3113e+05 0.18099 0.49988 48119 0 1.3332e+05 0.59469 1.2165 47641 Demodulating the strongest SSBs using the MATLAB reference. Decoding the SSB using the MATLAB reference. Successfully decoded SSB with MATLAB reference Demodulating the strongest SSBs using Simulink model. Running nrhdlMIBRecovery.slx ### Starting serial model reference simulation build ### Model reference simulation target for nrhdlSSBDecodingCore is up to date. ### Model reference simulation target for nrhdlSSBDetectionCore is up to date. Build Summary 0 of 2 models built (2 models already up to date) Build duration: 0h 0m 3.4464s .......... Successfully decoded SSB with Simulink model MATLAB decoded information pbchPayload: 218103955 ssbIndex: 27 hrf: 0 err: 0 mib: [1×1 struct] Simulink decoded information pbchPayload: 218103955 ssbIndex: 27 hrf: 0 err: 0 mib: [1×1 struct] MATLAB decoded MIB parameters NFrame: 105 SubcarrierSpacingCommon: 120 k_SSB: 0 DMRSTypeAPosition: 2 PDCCHConfigSIB1: 0 CellBarred: 0 IntraFreqReselection: 0 Simulink decoded MIB parameters NFrame: 105 SubcarrierSpacingCommon: 120 k_SSB: 0 DMRSTypeAPosition: 2 PDCCHConfigSIB1: 0 CellBarred: 0 IntraFreqReselection: 0
Чтобы сгенерировать HDL-код для этого примера, вы должны иметь лицензию HDL- Coder™. Используйте makehdl
и makehdltb
команды для генерации HDL-кода и HDL- испытательного стенда для nrhdlMIBRecovery/MIB Recovery
подсистема. Получившийся HDL-код был синтезирован для платы оценки ZC706 Xilinx ® Zynq ® -7000. Таблица показывает результаты использования ресурсов постамата и маршрута для каждой модели-ссылки и объединенной модели. Проект соответствует синхронизации с тактовой частотой 200 МГц.
Разбивка использования ресурсов по моделям:
Resource nrhdlMIBRecovery nrhdlSSBDetectionCore nrhdlSSBDecodingCore _______________ ________________ _____________________ ____________________ Slice Registers 64317 55969 8302 Slice LUTs 43304 32380 11138 RAMB18 40 34 6 RAMB36 10 5 5 DSP48 207 170 37