Introduction aux codes LDPC et au décodage FPGA

Les codes LDCC sont une classe de codes de correction linéaire des erreurs qui sont devenus la pierre angulaire de la communication numérique moderne. D'abord découverts par Robert Gallager dans sa thèse MIT de 1963, les codes LDPC ont été largement ignorés pendant des décennies en raison de la complexité informatique des algorithmes de décodage à l'époque. Avec l'avènement des circuits intégrés à grande vitesse et la redécouverte des méthodes itératives de décodage dans les années 1990, les codes LDPC approchent maintenant de la limite de capacité Shannon avec une efficacité remarquable. Ils sont déployés dans des normes telles que 5G NR, DVB-S2, Wi-Fi 802.11n/ac/ax, et télémétrie dans l'espace profond.

Le noyau d'un code LDPC est une matrice de vérification par parité clairsemée H qui définit les contraintes entre les bits de code. Le décodage est effectué par l'intermédiaire d'algorithmes basés sur des graphiques tels que l'algorithme de somme des produits (prolongation de la croyance) ou sa variante simplifiée, l'algorithme de somme min. Ces algorithmes échangent des messages probabilistes le long des bords d'un graphique Tanner jusqu'à la convergence.

Les FPGA combinent la flexibilité du logiciel avec la performance du matériel personnalisé. Leur tissu logique reconfigurable permet aux concepteurs d'adapter les architectures de décodage à des taux de code spécifiques, des longueurs de bloc et des budgets de latence. Comparés aux solutions logicielles sur les processeurs ou les GPU à usage général, les FPGA offrent une puissance moindre par bits décodés et un timing déterministe.

Cet article s'étend sur l'aperçu original en plongeant plus profondément dans les nuances techniques de la conception de décodeur LDPC basé sur FPGA. Nous examinerons les compromis algorithmes, les choix d'architecture matérielle, les défis de mise en œuvre et les tendances émergentes qui façonneront la prochaine génération de systèmes de communication haute performance.

Principes fondamentaux des codes LDPC

Matrice de vérification de la parité et graphique de tanneur

Un code LDPC est défini par une matrice binaire H des dimensions M × N, où N est la longueur du mot de code et M le nombre de vérifications de parité. La matrice est sparse[, ce qui signifie qu'une petite fraction des entrées sont 1=s (généralement le poids de la rangée [w]r] et le poids de la colonne w]c sont de petites constantes). Chaque rangée correspond à une équation de vérification de parité qui doit se résumer à zéro modulo 2 pour un code valide.

La structure peut être visualisée comme un graphique Tanner bipartite avec deux types de nœuds : naws variables (un par mot de code bit) et check nods (un par équation de parité). Un bord relie un noeud variable i pour vérifier le noeud j si H[ji] = 1. Le décodage se fait en passant des messages le long de ces bords itérativement : les nœuds variables envoient leur croyance actuelle sur la valeur du bits aux nœuds de vérification adjacents; vérifiez les nœuds calculent des croyances actualisées en fonction des contraintes de parité et les renvoient.

Algorithmes de décoration itérative

L'algorithme sum-product (SPA)[ fonctionne sur des rapports log-probabilité (LLR). À chaque itération, les noeuds variables calculent la somme des LLR entrants du canal et de tous les nœuds de contrôle connectés, sauf le contrôle de cible. Les noeuds de contrôle calculent le produit des signes et l'ampleur minimale des messages entrants (ou utilisent une fonction plus précise basée sur le tangh). Après un nombre fixe d'itérations ou après convergence, les décisions difficiles sont prises à partir des LLR cumulatifs.

L'algorithme min-sum (MSA)[ simplifie la mise à jour du code de contrôle en remplaçant le calcul de la tangente hyperbolique par une opération de minimum de magnitudes. Cela réduit significativement la complexité matérielle au coût d'une légère dégradation du taux d'erreur bit (BER). De nombreux décodeurs modernes utilisent une ][FLT]][F][F][FLT:[FLT

Le choix de l'algorithme est une décision critique de conception. SPA donne les meilleures performances de BER mais nécessite plus de logique et de mémoire pour les fonctions non linéaires. Min-sum offre arithmétique plus simple (comparaison et ajout) mais peut nécessiter des facteurs de graduation ou de compensation.

Pourquoi FPGA pour le décodage LDPC en temps réel ?

Parallélisme et débit

Un décodeur complet permet d'injecter un élément de traitement pour chaque nœud de contrôle et nœud variable, permettant ainsi la mise à jour simultanée de tous les messages. Ces architectures peuvent atteindre des débits dépassant 10 Gbps pour des longueurs de blocs modérées (par exemple, 1 024 bits). En revanche, un décodeur logiciel sur un processeur est limité par l'exécution d'instructions séquentielles et la bande passante de la mémoire.

La nature reconfigurable des FPGA permet à un concepteur de système de trader le parallélisme pour l'utilisation des ressources. Par exemple, un décodeur partial-parallèle partage des unités de calcul entre plusieurs nœuds, réduisant la surface et la puissance au prix d'un débit inférieur. Cette flexibilité est impossible avec un ASIC fixe et difficile à réaliser dans les accélérateurs définis par logiciel.

Latence déterministe

Les systèmes en temps réel tels que les liaisons de retour par satellite ou le contrôle en boucle fermée nécessitent une latence limitée dans le pire des cas. Les décodeurs basés sur FPGA ont des profondeurs de pipeline prévisibles et des nombres d'itération.

Efficacité énergétique

Les chemins de données personnalisés dans les FPGA évitent les frais généraux de l'instruction fetch, du décodage et de la hiérarchie du cache. Mesuré en énergie par bit décodé (pJ/bit), les implémentations FPGA surpassent souvent les CPU et les GPU par ordre de grandeur.

Reconfiguration

Un modem basé sur le FPGA peut être mis à jour sur le terrain pour supporter de nouveaux taux de code, des longueurs de bloc, voire des algorithmes de décodage entièrement différents. Cela réduit le délai de commercialisation des nouveaux produits et prolonge la durée de vie opérationnelle du matériel déployé.

Architecture FPGA pour les décoders LDPC

Composantes de base

Un décodeur LDPC typique basé sur le FPGA comprend:

  • Unités de nœuds variables (VNUs) – calculez les sommes des LLR entrants et générez des messages sortants pour vérifier les nœuds.
  • Check Node Units (CNUs) – implémenter la règle de mise à jour spécifique à l'algorithme (SPA, min-sum, etc.).
  • Blocks de mémoire – stocker des valeurs LLR, des messages sur les bords et des résultats intermédiaires. Le bloc RAM (BRAM) est préféré pour sa faible latence et sa haute densité.
  • Machine d'État de contrôleur – gère le nombre d'itérations, le passage entre les phases de traitement variable et de traitement des points de contrôle (pour le calendrier d'inondation) ou le séquençage en couches.
  • Interfaces d'entrée/sortie – canal de flux LLR dans le décodeur et sortie des bits décodés.

Les conceptions à haut débit intègrent également la pipeline et la réplication des VNU et des CNU pour correspondre au taux de données du lien entrant.

Considérations relatives à l'architecture de la mémoire

Les bords du graphique Tanner définissent le calendrier de passage des messages. Entreposer efficacement les messages de bord est un défi majeur parce que la liste d'adjacence d'une grande matrice peut dépasser le BRAM sur puce.

  • Stockage complet – un emplacement de mémoire par bord. Simple mais intensif en mémoire.
  • Stockage en rangée/colonne compressée – ne stockez que des positions non nulles et leurs valeurs LLR associées. Réduit la mémoire mais nécessite une logique de génération d'adresses.
  • La réutilisation de mémoire décodage [ – parce que les couches de processus disjoint groupes de contrôle de noeud, mémoire de bord peut être partitionnée et réutilisée entre les couches.

La mémoire externe (DRD4, HBM) peut être utilisée pour des codes très importants, mais ajoute des goulets d'étranglement de latence et de bande passante.De nombreux concepteurs optent pour la mémoire à plusieurs niveaux : BRAM pour les petits accès fréquents et la mémoire externe plus large mais plus lente pour les données moins fréquemment utilisées.

Conception des pipelines

Pour obtenir des fréquences d'horloges supérieures à 300 MHz sur les FPGA modernes, un pipeline profond est inséré entre le traitement VNU et le traitement CNU. Chaque itération devient une série de phases de pipeline, et plusieurs itérations peuvent se chevaucher dans une technique appelée recoupement conceptuel[ ou décodage non laminé[. Une planification minutieuse garantit que les nœuds variables reçoivent des messages de pointage actualisés à temps pour la prochaine itération.

Pour les décodeurs en couches, le pipeline doit gérer la dépendance des données entre les couches consécutives : un nœud variable mis à jour dans le calque k influence immédiatement les nœuds de contrôle des couches suivantes. Cette dépendance peut être résolue en utilisant un message à double tampon ou en insérant une seule étape de pipeline qui maintient le LLR mis à jour jusqu'à ce que le calque suivant le lise.

Méthodologie et outils de conception

RTL vs synthèse de haut niveau

La plupart des décodeurs LDPC de production sont écrits en VHDL ou Verilog (RTL) pour obtenir un contrôle fin sur le moment et l'utilisation des ressources. Cependant, la complexité croissante des algorithmes a stimulé l'adoption d'outils de synthèse de haut niveau (HLS) tels que Xilinx Vitis HLS ou Intel HLS Compiler. HLS permet aux concepteurs d'exprimer l'algorithme en C/C++ et de synthétiser un chemin de données en pipeline. Pourtant, pour obtenir un débit optimal, il faut souvent des directives manuelles (pragmas) pour le déroulement de boucles, la partition de tableaux et le flux de données.

Simulation et vérification

Les décoders doivent être vérifiés par rapport aux modèles de référence bit-exact. La co-simulation avec des outils comme ModelSim ou Questa simule le RTL et compare les sorties décodées avec un modèle doré C. La performance BER est validée à l'aide de testbenches hardware-in-the-loop qui injectent des modèles d'erreur connus.

Défis et solutions de mise en œuvre

Congestion d'acheminement

Les décodeurs à plusieurs types de nœuds nécessitent des ressources de routage massives. Les longs fils reliant VNUs et CNUs provoquent la congestion et la dégradation de la fréquence des horloges.

  • Planification du sol hiérarchique – partitionner le graphique Tanner en grappes qui s'intègrent dans une seule région d'horloge.
  • – utiliser des structures de barres transversales ou de réseaux sur puces (NoC) pour réduire la longueur du fil global.
  • Architecture partiellement parallèle – réduire le nombre d'échanges de messages simultanés par multiplexage dans le temps d'un ensemble plus petit d'unités de traitement.

Clôture de la date

Les registres de pipeline doivent être insérés à des points de coupure précis. Les concepteurs utilisent la valorisation[ (déplacement des registres à travers la logique) et l'équilibrage des registres[] pour réduire les retards critiques dans le trajet.

Dissipation de puissance

Une activité de commutation élevée dans la logique du décodeur peut entraîner des problèmes thermiques, notamment dans les facteurs de forme compacte.

  • Clock gating – désactive les unités de traitement pendant les périodes de repos ou lorsque survient une cessation anticipée.
  • Fin de la première période – arrêter les itérations dès que tous les contrôles de parité sont satisfaits, en économisant la puissance dynamique.
  • Modes de mémoire à faible puissance[ – utiliser BRAM en mode sommeil lorsqu'il n'est pas accessible.
  • Échelle de tension[ – certaines FPGA supportent des îles de tension par région.

Échanges de latence et de rendement

Les contraintes en temps réel dictent souvent une latence maximale autorisée (p. ex. 100 μs pour un canal de contrôle 5G). L'ajout de phases de pipeline augmente la latence, mais améliore également la fréquence des horloges et le débit net. Le concepteur doit équilibrer ces objectifs contradictoires. Des techniques comme le décodage de l'aspect et la précomputation peuvent réduire le nombre d'itérations sans sacrifier le BER, coupant directement la latence.

Mesure des performances et normes du monde réel

Chiffres clés

  • Grâce – bits par seconde après le décodage, généralement 1–20 Gbps pour les décodeurs FPGA modernes.
  • Latence – temps de la première entrée LLR à la sortie décodée, y compris le retard de tampon et d'itération. Souvent sous-microseconde pour les codes courts.
  • Taux d'erreur de débit (BER) – cible < 10−6 pour les bits non codés dans la plupart des normes.
  • Énergie par bit – pJ/bit; les conceptions les plus récentes permettent de réaliser moins de 10 pJ/bit pour les décodeurs LDPC 5G.

Exemple : 5G NR LDPC

La nouvelle norme 5G Radio utilise des codes LDPC pour les canaux de données avec des longueurs de blocs allant jusqu'à 8448 bits et des taux allant du 1/3 au 8/9. Les graphiques de base BG1 et BG2 prennent en charge différentes tailles de code. Les implémentations FPGA doivent gérer les deux graphiques de base avec reconfiguration. Xilinx et Intel offrent des modèles de référence qui permettent d'obtenir un débit de 10 Gbps en utilisant un min-sum stratifié avec terminaison précoce, consommant moins de 15 W sur un FPGA de taille moyenne. Liens externes: 3GPP TS 38.212 pour la spécification; Xilinx White Paper on 5G LDPC.

DVB-S2/S2X

La vidéo numérique – Satellite Deuxième génération utilise des codes LDPC avec des longueurs de blocs jusqu'à 64800 bits. Le décodage de blocs si longs sur un FPGA nécessite une partition des ressources soigneuse et un accès à la mémoire externe. De nombreux terminaux au sol par satellite utilisent Xilinx Kintex ou Intel Arria FPGA pour obtenir un débit de 1 Gbps avec une faible puissance.

Scénarios d'application en temps réel

Communication dans l'espace profond

Les FPGA sont favorisés pour leur tolérance aux radiations (via une redondance modulaire triple) et leur capacité à ajuster les taux de code en réponse à l'évolution des conditions de canaux. Les Rovers Mars et le télescope spatial James Webb comptent sur les décodeurs LDPC mis en œuvre dans les FPGA à rayonnement durci de Microchip (anciennement Microsemi).

Radio à définition logicielle (SDR)

Les plateformes SDR comme l'USRP ou LimeSDR associent souvent un front-end RF à un FPGA pour le traitement de la bande de base. Un noyau IP décodeur LDPC peut être chargé sur le même FPGA qui effectue le filtrage, la synchronisation et le FFT, ce qui donne un récepteur compact à une seule puce.

Tendances futures

Décodage assisté par la machine

Les chercheurs explorent des décodeurs neuraux basés sur des réseaux qui remplacent ou augmentent les algorithmes itératifs traditionnels. Les FPGA peuvent accélérer l'inférence de petits réseaux neuraux avec un arithmétique à point fixe, ce qui pourrait réduire le nombre d'itérations nécessaires. Par exemple, déploiement profond de l'algorithme itératif dans un réseau d'alimentation en avant permet une formation pour une convergence plus rapide.

Intégration de la mémoire haute largeur (HBM)

Les FPGA modernes de Xilinx (Virtex UltraScale+) et Intel (Stratix 10 MX) intègrent la mémoire HBM2 empilée sur le même paquet. Cela fournit des téraoctets par seconde de bande passante, permettant de décoder des codes très longs (par exemple 64800 blocs) avec un débit quasi parallèle. Les futurs décodeurs exploiteront HBM pour maintenir l'ensemble du graphique Tanner en mémoire rapide, éliminant ainsi l'accès à la mémoire externe.

Solutions hybrides FPGA-ASIC

Pour répondre à des exigences de débit encore plus élevées (100 Gbps et plus), certains fournisseurs proposent une approche hybride : le noyau itératif est implémenté comme un ASIC semi-consommable avec des pièces reconfigurables mineures, tandis que la logique de contrôle et d'adaptation reste sur un FPGA. Ceci équilibre la flexibilité avec la densité et la vitesse d'un ASIC.

Décoders reconfigurables pour systèmes multi-normes

Les systèmes sans fil (6G) devront probablement être pris en charge par plusieurs familles de codes (LDPC, codes polaires, codes turbo) dans un seul appareil. Les FPGA peuvent héberger plusieurs décodeurs et les passer entre eux en fonction de leur structure. L'élaboration d'une architecture de décodeurs unifiée et paramétrée qui partage les éléments de traitement entre les schémas de codage est un domaine de recherche actif.

Conclusion

Les solutions basées sur FPGA pour le décodage en temps réel du code LDPC restent un domaine dynamique et essentiel. La combinaison du parallélisme, de la reconfiguration et de l'efficacité énergétique fait de FPGA la plateforme de choix pour les systèmes de communication exigeants, des stations de base 5G aux sondes d'espace profond. Les concepteurs naviguent dans un espace commercial complexe comprenant la sélection d'algorithmes, l'architecture de mémoire, la conception de pipelines et la gestion des ressources.