Table of Contents

Введение в коды LDPC и декодирование на основе FPGA

Коды с низкой плотностью проверки паритета (LDPC) являются классом линейных кодов, исправляющих ошибки, которые стали краеугольным камнем современной цифровой связи. Впервые обнаруженные Робертом Галлагером в его диссертации MIT 1963 года, коды LDPC были в значительной степени упущены из виду в течение десятилетий из-за вычислительной сложности алгоритмов декодирования в то время. С появлением высокоскоростных интегральных схем и повторного открытия итеративных методов декодирования в 1990-х годах коды LDPC теперь приближаются к пределу пропускной способности Shannon с замечательной эффективностью. Они развернуты в таких стандартах, как 5G NR , DVB-S2 , Wi-Fi 802.11n/ac/ax и телеметрия глубокого пространства .

Ядром кода LDPC является разреженная матрица проверки четности H, которая определяет ограничения между битами кодового слова. Декодирование выполняется итеративно с использованием алгоритмов на основе графов, таких как алгоритм сум-продукта (распространение убеждений) или его упрощенный вариант, алгоритм min-sum. Эти алгоритмы обмениваются вероятностными сообщениями по краям графа Таннера до конвергенции. Реализация LDPC в реальном времени размещает строгие требования к пропускной способности и задержке обработки, что делает поля программируемые массивы ворот (FPGA) идеальной платформой.

FPGA сочетают гибкость программного обеспечения с производительностью пользовательского оборудования. Их реконфигурируемая логическая структура позволяет дизайнерам адаптировать архитектуры декодирования к конкретным скоростям кода, длине блока и бюджетам задержки. По сравнению с программными решениями только на процессорах общего назначения или графических процессорах, FPGA предлагают меньшую мощность на декодированный бит и детерминированное время. Это делает их незаменимыми для периферийных устройств в спутниковых наземных станциях, базовых станциях 5G и программно-определяемых радиосистемах (SDR), которые требуют исправления ошибок в реальном времени.

В этой статье мы рассмотрим первоначальный обзор, углубившись в технические нюансы проектирования декодера на основе FPGA. Мы рассмотрим компромиссы алгоритмов, выбор аппаратной архитектуры, проблемы реализации и новые тенденции, которые будут формировать следующее поколение высокопроизводительных систем связи.

Основы кодов LDPC

Проверка паритета матрица и график Таннера

Код LDPC определяется двоичной матрицей HMN, где NNMMsparse, что означает, что только небольшая часть записей имеет 1wrwwccc, каждая строка соответствует уравнению проверки чётности, которое должно суммироваться в нуль модуля 2 для действительного кодового слова.

Структура может быть визуализирована как двухсторонний граф Таннера с двумя типами узлов: переменные узлы (один на бит кодового слова) и , проверяющие узлы (один на уравнение четности)., чтобы проверить узел j, если ji = 1. Декодирование продолжается путем передачи сообщений по этим краям итеративно: переменные узлы отправляют свои текущие убеждения о значении бита на соседние чековые узлы; проверяйте узлы вычисляют обновленные убеждения на основе ограничений четности и отправляют их обратно.

Итеративные алгоритмы декодирования

Алгоритм суммарного продукта (SPA) работает на соотношениях лог-подобия (LLR). При каждой итерации переменные узлы вычисляют сумму входящих LLR из канала и из всех подключенных контрольных узлов, кроме целевой проверки. Проверочные узлы вычисляют продукт знаков и минимальную величину входящих сообщений (или используют более точную функцию на основе танха). После фиксированного количества итераций или при сходимости принимаются жесткие решения из кумулятивных LLR.

Алгоритм min-sum (MSA) упрощает обновление контрольного узла заменой вычисления с гиперболическим касательным значением на операцию с минимальной величиной. Это значительно снижает сложность аппаратного обеспечения за счет незначительного ухудшения скорости битовых ошибок (BER). Многие современные декодеры используют вариант нормализованной мин-суммы или offset min-sum для восстановления большей части потери производительности. Усложненные процессы декодирования проверяют узлы в подмножествах, чаще обновляя переменные узлы в каждой итерации, что ускоряет конвергенцию и снижает пропускную способность памяти.

Выбор алгоритма является критическим дизайнерским решением. SPA обеспечивает лучшую производительность BER, но требует больше логики и памяти для нелинейных функций. Min-sum предлагает более простую арифметику (сравнение и добавление), но может потребоваться масштабирование или коэффициенты смещения. Слоеное декодирование может удвоить пропускную способность на итерацию по сравнению с графиками затопления, но вводит ограничения зависимости, которые усложняют конвейерирование.

Почему FPGA для декодирования LDPC в реальном времени?

Параллелизм и пропускная способность

FPGA преуспевают в использовании присущего им параллелизма итеративного декодирования. Полнопараллельный декодер инстанцирует элемент обработки для каждого контрольного узла и переменного узла, позволяя обновлять все сообщения одновременно. Такие архитектуры могут достигать пропускной способности, превышающей 10 Гбит/с для умеренных длин блоков (например, 1024 бита). Напротив, программный декодер на ЦПУ ограничен последовательным выполнением команд и пропускной способностью памяти. Даже реализации GPU, будучи параллельными, страдают от накладных расходов из-за передачи данных PCIe и синхронизации потоков.

Перенастраиваемый характер FPGA позволяет системному дизайнеру отменять параллелизм для использования ресурсов. Например, частично-параллельный декодер разделяет вычислительные блоки между несколькими узлами, уменьшая площадь и мощность за счет меньшей пропускной способности. Эта гибкость невозможна с фиксированной ASIC и труднодостижима в программно-определяемых ускорителях.

Детерминированная задержка

Системы реального времени, такие как обратные спутниковые линии связи или управление замкнутым контуром, требуют наихудшего случая ограниченной задержки. Декодеры на основе FPGA имеют предсказуемые глубины трубопровода и подсчеты итерации. По дизайну каждый бит кодового слова испытывает одну и ту же задержку обработки, устраняя дрожь, введенную программным обеспечением, планирующим промахи кэша или спор на волновом фронте GPU.

Энергоэффективность

Пользовательские пути передачи данных в FPGA позволяют избежать накладных расходов на иерархию команд, декодирования и кэша. Измеряемые по энергии на декодированный бит (pJ/бит), реализации FPGA часто превосходят как CPU, так и GPU на порядок. Для мобильных или космических приемников это преимущество мощности является решающим.

реконфигурируемость

Стандарты связи быстро развиваются. Модем на основе FPGA может быть обновлен в полевых условиях для поддержки новых скоростей кода, длин блоков или даже совершенно других алгоритмов декодирования. Это сокращает время выхода на рынок новых продуктов и продлевает срок службы развернутого оборудования.

Архитектура FPGA для декодеров LDPC

Основные компоненты

Типичный декодер LDPC на основе FPGA включает в себя:

  • Единицы переменных узлов (VNU) — вычисляют суммы входящих LLR и генерируют исходящие сообщения для проверки узлов.
  • Проверить блоки узлов (CNU) — реализовать правило обновления для алгоритма (SPA, min-sum и т.д.).
  • Блоки памяти — сохраняют значения LLR, сообщения на краях и промежуточные результаты. Блок RAM (BRAM) предпочтителен своей низкой задержкой и высокой плотностью.
  • Контроллерная государственная машина — управляет подсчетом итераций, переключением между фазами обработки переменных и контрольных узлов (для графика затопления) или многоуровневым секвенированием.
  • Вход/выход интерфейсов — поток канал LLR в декодер и вывод декодированных битов.

Высокопроизводительные конструкции также включают в себя трубопроводирование и репликацию VNU и CNU для соответствия скорости передачи данных входящей линии связи.

Архитектура памяти Рассмотрение

Графические грани Таннера определяют график пропускания сообщений. Эффективное хранение пограничных сообщений является серьезной проблемой, поскольку список смежности большой матрицы может превышать BRAM на чипе. Общие подходы включают:

  • Полноразмерное хранилище — одно место памяти на краю.Простое, но интенсивное.
  • Сжатое хранилище строк/столбцов — хранит только ненулевые позиции и связанные с ними значения LLR. Снижает память, но требует логики генерации адресов.
  • Усложненное повторное использование декодирующей памяти — поскольку слои обрабатывают разъединенные группы контрольных узлов, краевая память может быть разделена и повторно использована по слоям.

Внешняя память (DDR4, HBM) может использоваться для очень больших кодов, но добавляет задержки и узкие места пропускной способности. Многие дизайнеры выбирают многоуровневую память: BRAM для небольших, частых доступов и более широкой, но медленной внешней памяти для менее часто используемых данных.

Конструкция трубопровода

Для достижения высоких тактовых частот, превышающих 300 МГц на современных FPGA, между обработкой VNU и CNU вставляется глубокий трубопровод. Каждая итерация становится серией этапов трубопровода, и несколько итераций могут перекрываться в технике, называемой итеративное перекрытие или , незавершенное декодирование . Тщательное планирование гарантирует, что переменные узлы получают обновленные сообщения контрольных узлов во время следующей итерации. Трубопроводные остановки из-за опасностей данных сводятся к минимуму путем правильного упорядочения обработки слоя.

Для многоуровневых декодеров трубопровод должен обрабатывать зависимость данных между последовательными слоями: переменный узел, обновленный в слое k , немедленно влияет на контрольные узлы следующего слоя. Эта зависимость может быть решена с помощью хранилища сообщений с двойным буфером или путем вставки одной стадии трубопровода, которая удерживает обновленный LLR до тех пор, пока следующий слой не прочитает его.

Методология проектирования и инструменты

RTL vs. Синтез высокого уровня

Большинство серийных декодеров FPGA LDPC написаны в VHDL или Verilog (RTL) для достижения точного контроля над временем и использованием ресурсов. Однако растущая сложность алгоритмов стимулировала принятие инструментов синтеза высокого уровня (HLS), таких как Xilinx Vitis HLS или Intel HLS Compiler. HLS позволяет дизайнерам выражать алгоритм в C/C++ и синтезировать конвейерный путь передачи данных. Тем не менее, для достижения оптимальной пропускной способности часто требуются ручные директивы (прагмы) для разворачивания петли, разделения массива и потока данных. Для пользовательского декодера LDPC распространен гибридный подход: параметризированный RTL для основных элементов обработки, с обертками HLS для интерфейса и логики управления.

Моделирование и проверка

Декодеры должны быть проверены на основе точных эталонных моделей. Ко-симуляция с помощью таких инструментов, как ModelSim или Questa, имитирует RTL и сравнивает декодированные выходы с золотой моделью C. Производительность BER проверяется с помощью тест-систем аппаратного обеспечения в цикле, которые вводят известные шаблоны ошибок. Многие поставщики предоставляют IP-ядра для общих стандартов (например, 5G LDPC от Xilinx), которые могут быть настроены и интегрированы через среду блок-схемы, такую как Vivado IP Integrator.

Проблемы и решения в области реализации

Перегрузка маршрута

Полнопараллельные декодеры с тысячами узлов требуют огромных ресурсов маршрутизации. Длинные провода, соединяющие ВНУ и CNU, вызывают перегрузку и ухудшение тактовой частоты. Решения включают:

  • Иерархическое планирование этажей — разделение графа Таннера на кластеры, которые вписываются в единую тактовую область.
  • Переключатель на основе соединения — использовать перекладину или сетевой на чипе (NoC) структуры для уменьшения глобальной длины провода.
  • Частично параллельная архитектура — уменьшают количество одновременных обменов сообщениями за счёт умножения времени на меньший набор процессорных блоков.

Срок закрытия

Поскольку тактовые частоты выходят за пределы 300 МГц, настройка и время удержания встреч становится затруднительным. Трубопроводные регистры должны быть вставлены в точные точки разреза. Конструкторы используют ретиминг (перемещение регистров по логике) и балансировку регистров для уменьшения критических задержек пути. Современные инструменты FPGA включают возможности автоматического снятия, но ручное вмешательство часто требуется для путей передачи сообщений, которые охватывают несколько областей.

Распад власти

Высокая активность переключения в логике декодера может привести к термическим проблемам, особенно в компактных форм-факторах. Методы оптимизации мощности включают:

  • Часовое затворничество — отключение процессоров в периоды простоя или при наступлении раннего прекращения.
  • Раннее прекращение — остановите итерации, как только все проверки четности будут удовлетворены, экономя динамическую мощность.
  • Режимы памяти с низким энергопотреблением — используйте BRAM в спящем режиме, когда к нему не обращаются.
  • Напряжение масштабирования — некоторые FPGA поддерживают острова напряжения на регион.

Задержка и компромиссы по пропускной способности

Ограничения в реальном времени часто диктуют максимально допустимую задержку (например, 100 мкс для канала управления 5G). Добавление этапов трубопровода увеличивает задержку, но также улучшает тактовую частоту и пропускную способность сети. Разработчик должен сбалансировать эти противоречивые цели. Такие методы, как расшифровка , перед вычислением и , могут уменьшить количество итераций без ущерба для BER, непосредственно сокращая задержку.

Метрики производительности и стандарты реального мира

Ключевые метрики

  • Производительность — биты в секунду после декодирования, обычно 1-20 Гбит/с для современных декодеров FPGA.
  • Задержка — время от первого входного LLR до декодированного вывода, включая буферизацию и задержку итерации. Часто субмикросекунда для коротких кодов.
  • Bit Error Rate (BER) — целевая < 10−6 для некодированных битов в большинстве стандартов.
  • Энергия на бит — pJ/bit; современные конструкции достигают менее 10 pJ/bit для декодеров 5G LDPC.

Пример: 5G NR LDPC

Стандарт 5G New Radio использует коды LDPC для каналов данных с длиной блока до 8448 бит и скоростями от 1/3 до 8/9. Базовые графы BG1 и BG2 поддерживают разные размеры кода. Реализации FPGA должны обрабатывать как базовые графы с реконфигурацией. Xilinx и Intel предлагают эталонные конструкции, которые достигают 10 Гбит/с с использованием слоистой мини-суммы с ранним завершением, потребляя менее 15 Вт на средних FPGA. Внешние ссылки: 3GPP TS 38.212 для спецификации; Xilinx White Paper на 5G LDPC.

DVB-S2/S2X

Цифровое видеовещание — спутниковое второе поколение использует коды LDPC с длиной блока до 64800 бит. Декодирование таких длинных блоков на FPGA требует тщательного разделения ресурсов и доступа к внешней памяти. Многие наземные терминалы спутников используют Xilinx Kintex или Intel Arria FPGA для достижения пропускной способности 1 Гбит/с с низкой мощностью. Успешные реализации документируются в этой IEEE-бумаге на декодере FPGA DVB-S2 LDPC.

Сценарии применения в реальном времени

Глубококосмическая коммуникация

Глубоководная космическая сеть НАСА использует коды LDPC для телеметрии и командных линий. FPGA предпочитают за их радиационную толерантность (через тройную модульную избыточность) и способность регулировать скорости кода в ответ на изменение условий канала. Марсоходы и космический телескоп Джеймса Уэбба полагаются на декодеры LDPC, реализованные в закаленных радиацией FPGA от Microchip (ранее Microsemi).

Программно-определяемое радио (SDR)

SDR-платформы, такие как USRP или LimeSDR, часто соединяют RF-интерфейс с FPGA для обработки базовой полосы. Декодер IP-ядро LDPC может быть загружен на тот же FPGA, который выполняет фильтрацию, синхронизацию и FFT, что дает компактный однокристальный приемник. Это особенно ценно для экспериментальных испытательных стендов 5G и военных коммуникаций, где гибкость формы волны имеет первостепенное значение.

Будущие тенденции

Машинное обучение - помощь в декодировании

Исследователи изучают декодеры на основе нейронных сетей, которые заменяют или дополняют традиционные итеративные алгоритмы. FPGA могут ускорить вывод небольших нейронных сетей с фиксированной арифметикой, потенциально уменьшая количество необходимых итераций. Например, глубокое развертывание итеративного алгоритма в итеративную сеть позволяет тренироваться для более быстрой конвергенции. Пока еще на ранних стадиях эти методы обещают лучшую производительность BER с более низкой задержкой. См. это исследование по глубокому обучению для кодирования каналов .

Интеграция высокоширотной памяти (HBM)

Современные FPGA от Xilinx (Virtex UltraScale+) и Intel (Stratix 10 MX) интегрируют память HBM2, сложенную на одном пакете. Это обеспечивает терабайты в секунду полосы пропускания, позволяя декодерам для очень длинных кодов (например, 64800 блоков) с почти параллельной пропускной способностью. Будущие декодеры будут использовать HBM для хранения всего графа Таннера в быстрой памяти, устраняя доступ к внешней памяти.

Гибридные решения FPGA-ASIC

Для удовлетворения еще более высоких требований к пропускной способности (100 Гбит/с и выше) некоторые производители предлагают гибридный подход: итеративное ядро реализовано в виде полу-обычного ASIC с незначительными реконфигурируемыми частями, в то время как логика управления и адаптации остается на FPGA. Это уравновешивает гибкость с плотностью и скоростью ASIC. Уже доступны многочиповые модули, которые сочетают FPGA-диск с ASIC-дифом (например, Xilinx RFSoC).

Реконфигурируемые декодеры для многостандартных систем

Будущие беспроводные системы (6G), вероятно, потребуют поддержки нескольких семейств кодов (LDPC, полярные коды, турбокоды) в одном устройстве. FPGA могут размещать несколько декодеров и переключаться между ними на основе кадр за кадром. Разработка единой, параметризированной архитектуры декодера, которая разделяет элементы обработки по схемам кодирования, является активной областью исследований.

Заключение

Решения на основе FPGA для декодирования кода LDPC в реальном времени остаются яркой и важной областью. Сочетание параллелизма, реконфигурируемости и энергоэффективности делает FPGA платформой выбора для требовательных систем связи, от базовых станций 5G до зондов глубокого космоса. Дизайнеры ориентируются в сложном торговом пространстве, охватывающем выбор алгоритмов, архитектуру памяти, проектирование трубопроводов и управление ресурсами. По мере развития стандартов и интеграции машинного обучения декодеры FPGA будут продолжать расширять границы пропускной способности и задержки. Овладев концепциями и методами, изложенными в этой расширенной статье, инженеры могут создавать надежные высокопроизводительные декодеры LDPC, адаптированные к любому приложению в реальном времени.