Выполните полярное декодирование 5G соответствии со стандартом NR
Беспроводной HDL Toolbox/Обнаружение и коррекция ошибок
Блок NR Polar Decoder реализует потоковый полярный декодер с удобными для аппаратного обеспечения сигналами управления. Можно сконфигурировать блок, чтобы использовать схемы нисходящего или восходящего кодирования, как определено 5G стандартом NR. Стандарт 5G NR использует полярные коды для кодирования канала каналов передачи DCI, UCI и BCH.
Этот блок реализует декодер списка последующей отмены с использованием CRC. Эта реализация соответствует эффективности nrPolarDecode
(5G Toolbox) функция. Можно выбрать длину списка 2, 4 или 8. Увеличение длины списка увеличивает эффективность коррекции ошибок, но использует больше аппаратных ресурсов и увеличивает задержку декодирования. Вы можете улучшить эффективность декодирования для сообщений DCI, используя дополнительный порт RNTI, чтобы задать ожидаемое значение RNTI.
Этот блок также выполняет CRC-декодирование сообщения, эквивалентное nrCRCDecode
(5G Toolbox) функция. Блок обнаруживает сообщения DCI из значений K и E и автоматически готовит 1с к сообщению, эквивалентному padCRC
входной параметр nrPolarDecode
(5G Toolbox) функция.
Этот блок не поддерживает коды с подкреплением по четности.
Поскольку задержка операции полярного декодирования может варьироваться, блок обеспечивает сигнал выхода, nextFrame, который указывает, когда блок готов принять новые входы. Для получения дополнительной информации см. раздел Задержка на этой странице.
data
- Входная выборкаВходная выборка, заданная как скалярное логарифмическое отношение логарифмической правдоподобности (LLR). Блок поддерживает типы builtin и подписанные значения с фиксированной точкой с длиной слова от 4 до 16 бит.
double
и single
типы данных поддерживаются для симуляции, но не для генерации HDL-кода.
Типы данных: fixed point
| int8
| int16
| double
| single
ctrl
- Сигналы управления, сопровождающие поток выборокsamplecontrol
автобусСигналы управления, сопровождающие поток дискретизации, заданные как samplecontrol
bus. Шина включает в себя start
, end
, и valid
управляющие сигналы, которые указывают контуры системы координат и валидность выборок.
start
- Указывает начало входного кадра
end
- Указывает конец входного кадра
valid
- Указывает, что данные входного data порта действительны
Для получения дополнительной информации см. Выборку шины управления.
Типы данных: bus
K
- Длина информационного блока в битахДлина информационного блока в битах, заданная как положительное целое число. Для нисходящих сообщений K должны находиться в области значений от 36 до 164. Для сообщений восходящей линии связи K должны находиться в области значений от 31 до 1023.
Блок не поддерживает K значения от 18
на 25
поскольку 5G стандарт NR требует кодов для этих размеров с помощью четности.
Чтобы включить этот порт, установите параметр Configuration source равным Input port
.
Типы данных: fixdt(0,10,0)
E
- Согласованная со скоростью выходная длина в битахСогласованная со скоростью длина выхода в битах, заданная как скаляр положительное целое число. Задайте значение для E, которое больше K и меньше или равно 8192.
Чтобы включить этот порт, установите параметр Configuration source равным Input port
.
Типы данных: fixdt(0,14,0)
RNTI
- Целевой RNTIЦелевой RNTI, заданный как 16-битное беззнаковое целое число. Это значение повышает точность декодирования для сообщений DCI. Для примера при декодировании SIB1 сообщений DCI включите этот порт и установите целевой RNTI равным 65 535. Для декодирования MIB можно отключить этот порт или установить целевое значение RNTI равным 0.
Чтобы включить этот порт, установите Link direction равным Downlink
и выберите параметр Enable target RNTI port.
Типы данных: uint16
data
- Декодированный бит данныхДекодированный бит данных, возвращенный как скаляр. Длина выходного сообщения составляет A бит, где A = K – CRCLen
. Для нисходящих сообщений CRCLen равно 24. Для сообщений восходящей линии связи CRCLen равно 11, как определено 5G стандартом NR.
Типы данных: fixdt(0,1,0)
| Boolean
| double
| single
Поддержка комплексного числа: Да
ctrl
- Сигналы управления, сопровождающие поток выборокsamplecontrol
автобусУправляющие сигналы, сопровождающие поток дискретизации, возвращаются как samplecontrol
bus. Шина включает в себя start
, end
, и valid
управляющие сигналы, которые указывают контуры системы координат и валидность выборок.
start
- Указывает начало выходной системы координат
end
- Указывает конец выходной системы координат
valid
- Указывает, что данные выходного data порта действительны
Для получения дополнительной информации см. Выборку шины управления.
Типы данных: bus
err
- результат CRCРезультат CRC, возвращенный как скаляр. Если вы очищаете параметр Full checksum mismatch, это значение является логическим. Когда вы выбираете параметр Full checksum mismatch, это значение является ufix24
скаляр для нисходящих сообщений и ufix11
скаляр для сообщений восходящей линии связи.
Если вы активируете RNTI порт, блок сравнивает внутреннюю контрольную сумму CRC с целевым значением RNTI. В противном случае блок сравнивает контрольную сумму CRC со значением 0.
Типы данных: Boolean
| ufix11
| ufix24
nextFrame
- Готов к новым входамБлок устанавливает этот сигнал на 1
когда блок готов принять начало следующей системы координат. Если блок получает сигнал входа start, пока nextFrame 0
блок отбрасывает систему координат в прогресс и начинает обработку новых данных.
Для получения дополнительной информации смотрите Использование выходного сигнала nextFrame.
Типы данных: Boolean
Link direction
- Направление 5G NRDownlink
(по умолчанию) | Uplink
Направление 5G NR ссылки, заданное как Downlink
или Uplink
. Когда вы выбираете Downlink
блок выполняет перемежение, как указано в 5G NR. Когда вы выбираете Uplink
блок опускает логику обратного перемежения.
List length
- Количество путей декодирования2
(по умолчанию) | 4
| 8
Этот параметр является максимальным количеством параллельных путей, поддерживаемых в дереве декодирования. Увеличение длины списка увеличивает эффективность коррекции ошибок, но использует больше аппаратных ресурсов и увеличивает задержку декодирования. Когда вы используете список длин 4
и 8
Задержка может изменяться в зависимости от ОСШ входного сигнала и не является постоянной для заданных значений K и E. Используйте выходной сигнал nextFrame , чтобы определить, когда блок доступен для нового сообщения.
Configuration source
- Источник для K и EProperty
(по умолчанию) | Input port
Выберите Input port
для включения K и E портов. Выберите Property
для использования параметров Message length (K) и Rate-matched length (E).
Message length (K)
- Длина информационного блока в битах56
(по умолчанию) | положительное целое числоДля нисходящих сообщений K должны находиться в области значений от 36 до 164. Для сообщений восходящей линии связи K должны находиться в области значений от 31 до 1023.
Блок не поддерживает K значения от 18
на 25
поскольку 5G стандарт NR требует кодов для этих размеров с помощью четности.
Чтобы включить этот параметр, установите параметр Configuration source равным Property
.
Rate-matched length (E)
- Согласованная со скоростью выходная длина в битах864
(по умолчанию) | положительное целое числоЗадайте значение для E, которое больше K и меньше или равно 8192.
Чтобы включить этот параметр, установите параметр Configuration source равным Property
.
Full checksum mismatch
- Возврат контрольной суммы с последнего этапа декодированияoff
(по умолчанию) | on
Когда вы очищаете этот параметр, блок возвращает логический скаляр на err порту, который указывает, был ли CRC успешным. Когда вы выбираете этот параметр, блок возвращает полную контрольную сумму CRC на err порту. Если ваш проект декодирует сообщения DCI и использует остаток RNTI, выберите этот параметр.
Если вы активируете RNTI порт, блок сравнивает внутреннюю контрольную сумму CRC с целевым значением RNTI. В противном случае блок сравнивает контрольную сумму CRC со значением 0.
nrPolarDecode
(5G Toolbox) функция возвращает декодированное сообщение, которое включает биты CRC. Этот блок возвращает декодированное сообщение без бит CRC и возвращает состояние CRC отдельно на err порте. Это поведение эквивалентно вызову nrCRCDecode
(5G Toolbox) функция после использования nrPolarDecode
функция. Отсутствие перевычисления бит CRC экономит аппаратные задержки и ресурсы.
Enable target RNTI port
- Дополнительный порт для задания целевого значения RNTIoff
(по умолчанию) | on
Выберите этот параметр, чтобы включить RNTI входной порт. Предоставление целевого значения RNTI повышает точность декодирования для сообщений DCI. Для примера при декодировании SIB1 сообщений DCI включите этот порт и установите целевой RNTI равным 65535. Для декодирования MIB можно отключить этот порт или установить целевое значение RNTI равным 0.
Включение этого порта также изменяет способ вычисления блоком err значения выходного порта. Если вы активируете RNTI порт, блок сравнивает внутреннюю контрольную сумму CRC с целевым значением RNTI. В противном случае блок сравнивает контрольную сумму CRC со значением 0.
Чтобы включить этот параметр, установите параметр Link direction равным Downlink
.
Этот блок реализует декодер списка последующей отмены с использованием CRC. Он может использовать длину списка 2, 4 или 8, сконфигурированную параметром List length. Декодер итерирует по всем LLR в дереве, чтобы достичь решения за бит, и затем использует это решение, чтобы декодировать следующий бит. Шаг обратного перемежения включается только, когда вы устанавливаете параметр Link direction равным Downlink
.
Эта схема показывает архитектуру полярного декодера.
Блок использует этап Configuration, когда изменяются K и E значения входного порта. Блок вычисляет местоположения информационных бит и передает их на этап Decision. Поскольку шаблоны отображения вычисляются по мере необходимости, а не хранятся на оборудовании, блок поддерживает все K и E значения в поддерживаемой области значений. Этап Configuration также вычисляет шаблон чередования, когда вы задаете значение параметра Link direction Downlink
.
Когда вы устанавливаете параметр Configuration source равным Property
значения K и E являются постоянными, поэтому декодер не реализует этап Configuration. В этом случае блок включает статические интерполяционные таблицы, которые содержат предварительно вычисленную строение.
Чтобы минимизировать расчеты для каждого декодирования, память дерева сохраняет вероятность того, что каждый узел равен единице или нулю. Каждая итерация обновляет только измененные LLR. Каскад декодирования ядра использует уравнения обновления LLR от [3].
Этап принятия решения проверяет значение LLR по ожидаемым местоположениям информационных бит и замороженных бит и возвращает жесткое решение в память дерева. Если ожидается, что бит будет заморожен, этап Decision возвращает твердое решение в нуле и обновляет вероятности связанных путей. Path Memory восстанавливает наиболее вероятные пути из результатов жесткого решения и передает пути и счета к следующему этапу.
Память Tree Memory и Path Memory содержит до List length путей. Если все замороженные биты пути являются нулями (как и ожидалось), то блок отбрасывает другие параллельные пути. Эта оптимизация приводит к переменной задержке в операции декодирования для длин списка, больше двух. Для сигналов с высоким уровнем шума декодер должен увеличить количество параллельных путей и циклов декодирования. Для малошумных сигналов декодер может использовать только два параллельных пути и уменьшить задержку декодирования.
Этап выбора пути вычисляет CRC для всех путей, а затем выбирает путь, который проходит CRC. Когда вы используете RNTI входной порт, блок сравнивает внутреннюю контрольную сумму CRC с целевым значением RNTI. В противном случае блок сравнивает контрольную сумму CRC со значением 0. Если все CRC терпят неудачу, блок возвращает путь, который имеет более высокий счет.
Эта реализация соответствует эффективности функции 5G Toolbox™ nrPolarDecode
(5G Toolbox) с той же длиной списка. Поскольку блок использует внутренние типы с фиксированной точкой, любые различия являются результатом квантования.
Этот график показывает эффективность частоты ошибок блоков с тремя возможными длинами списка. Входные входы - 6-битные значения LLR.
Таблица показывает примерные задержки блока NR Polar Decoder для каждого N при декодировании для каналов восходящей и нисходящей линий с длиной списка из двух. N - степень двойки закодированных сообщений, определенная из значений K и E.
N | Задержка восходящего канала | Задержка нисходящего канала |
---|---|---|
32 | 349 | Не применяется |
64 | 576 | 677 |
128 | 1034 | 1135 |
256 | 1961 | 2062 |
512 | 3896 | 3996 |
1024 | 8202 | Не применяется |
Точная задержка изменяется на основе значений K и E. Задержка больше для систем координат, где изменяются K и E значения входного порта, и блок должен вычислить новое строение.
Увеличение длины списка увеличивает задержку. Длина списка, больше двух, не имеет фиксированной задержки для заданных K и E значений. Чтобы обеспечить минимальную задержку, блок трассирует более 2 путей только, когда замороженные биты не декодируются как нули. Эта оптимизация означает, что задержка может увеличиться с ОСШ входного сигнала. Для примера, для длины списка 4 и N = 512, лучшая задержка случая - это 4108 цикла, а худшая задержка - это 4985 цикла.
Поскольку задержка изменяется, используйте выход nextFrame управляющий сигнал, чтобы определить, когда блок готов к новому входному кадру.
Эта форма волны показывает, как задержка изменяется с K и E значениями входного порта для длины списка двух. Когда входные K и E значения портов 132 и 256, блок имеет задержку 2272 цикла от входного start сигнала к выходному nextFrame. Когда значения K и E портов изменяются на 54 и 124, задержка изменяется на 1234 цикла.
Эта форма волны показывает, как задержка может изменяться с уровнем шума входного сигнала при использовании длины списка 4. Блок имеет K и E значения параметров 132 и 256 Link direction и параметр установлен на Uplink
. Первое сообщение имеет задержку 2533 цикла. Эти данные сообщения генерируются с низким уровнем шума и имеют несколько битовых ошибок. В этом случае декодер может свернуться на два пути и произвести результат за меньшее количество циклов, чем при декодировании более шумного сигнала. Второе сообщение генерируется с высоким уровнем шума, и задержка декодирования увеличивается до 3174 циклов. Когда входной сигнал имеет больше битовых ошибок, декодер должен проследить больше путей, чтобы определить правильные биты.
В этой таблице показаны результаты синтеза данных о ресурсах и производительности блока, когда он сконфигурирован с K и E как входные порты, параметр Link direction установлен на Downlink
и 6-битные входные LLR. Сгенерированный HDL нацелен на Xilinx® Zynq®-7000 ZC706 оценочной доски. Проект достигает тактовой частоты 250 МГц.
Ресурс | Длина списка 2 | Длина списка 4 | Длина списка 8 |
---|---|---|---|
Срез LUTs | 3048 | 4725 | 9963 |
Регистры срезов | 2509 | 3804 | 6471 |
DSP48 | 0 | 0 | 0 |
Блокируйте ОЗУ | 4.5 | 5.5 | 6.0 |
Блок использует меньше ресурсов, когда K и E заданы параметрами. Когда вы устанавливаете параметр Link direction равным Uplink
блок использует больше памяти для размещения больших размеров сообщений.
[1] 3GPP TS 38.211. "NR; Физические каналы и модуляция ". 3rd Генерация Partnership Project; Группа технических спецификаций Радиосеть доступ. URL-адрес: https://www.3gpp.org.
[2] Арикан, Сердаль. «Поляризация канала: метод построения кодов достижения пропускной способности для симметричных бинарных-входных незапоминающихся каналов». Транзакции IEEE по теории информации 55, № 7 (июль 2009): 3051-73. https://doi.org/10.1109/TIT.2009.2021379.
[3] Балацукас-Стимуминг, Алексиос, Мани Бастани Паризи и Андреас Бург. «Декодирование полярных кодов на основе список». Транзакции IEEE по обработке сигналов 63, № 19 (октябрь 2015): 5165-79. https://doi.org/10.1109/TSP.2015.2439211.
Этот блок поддерживает генерацию кода C/C + + для Simulink® режимы Accelerator и Rapid Accelerator и для генерации компонентов DPI.
HDL Coder™ предоставляет дополнительные опции строения, которые влияют на реализацию HDL и синтезированную логику.
Этот блок имеет одну архитектуру HDL по умолчанию.
ConstrainedOutputPipeline | Количество регистров для размещения на выходах путем перемещения существующих задержек в рамках вашего проекта. Распределённая конвейеризация не перераспределяет эти регистры. Значение по умолчанию является |
InputPipeline | Количество входных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
OutputPipeline | Количество выходных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
Вы не можете сгенерировать HDL для этого блока внутри Resettable Synchronous Subsystem (HDL Coder).
NR Polar Encoder | nrPolarDecode
(5G Toolbox)
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.