Table of Contents
Introduzione ai codici LDPC e alla codifica basata su FPGA
I codici a basso valore di Parity-Check (LDPC) sono una classe di codici lineari che correggono gli errori che sono diventati un pilastro della comunicazione digitale moderna.
Il nucleo di un codice LDPC è una matrice di controllo di parità radi [H] che definisce i vincoli tra bit di codice. Decoding viene eseguito iterativamente utilizzando algoritmi basati su grafici come l'algoritmo di somma-prodotto (propagazione di base) o la sua variante semplificata, il processo di minimo-FP.
FPGAs combina la flessibilità del software con le prestazioni dell'hardware personalizzato. Il loro tessuto logico riconfigurabile consente ai progettisti di personalizzare le architetture di decodifica a specifiche velocità di codice, lunghezze di blocco e budget di latenza. Rispetto alle soluzioni software-solo su CPUs generici o GPUs, FPGAs offrono una potenza inferiore per bit decoded e tempi di deterministica.
Questo articolo si espande sulla panoramica originale immergendosi più a fondo nelle sfumature tecniche del design decoder basato su FPGA LDPC.
Fondamenti dei codici LDPC
Parassita-Controllo Matrix e Tanner Graph
[FLT] [[LT]]] [[FLT]]] [[FLT]]]] [[FLT]]]]] [[FLT]]]] [[FLT]]] [[FLT]]]] [[FLT]]]]] [[FLT]]]] [[FLT]]]] [[FLT]]]]]] [[FLT]]]]]]]]] [[[[[[[[[[[[[[[FLT]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]][[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[LT] non si può visualizzare come un grafico a coda parite[FLT] nessun valore computibile (uno per bit di codice) e controllare i nodi (uno per equazione di parità]).
Algoritmi di decodifica iterativo
L'algoritmo sum-product (SPA)] opera su rapporti di probabilità di log (LLRs). Ad ogni iterazione, i nodi variabili calcolano la somma delle LLR in arrivo dal canale e da tutte le nodi di controllo collegati, tranne il controllo di destinazione.
] algoritmo di controllo [MSA]] semplifica l'aggiornamento del check-node sostituendo il calcolo tangente iperbolico con un'operazione di minimi di ingrandimento. Questo riduce la complessità dell'hardware in modo significativo al costo di un leggero degrado della velocità di errore bit (BER). Molti decodificatori moderni usano un
La SPA fornisce le migliori prestazioni BER ma richiede più logica e memoria per le funzioni non lineari. Min-sum offre aritmetica più semplice (comparison e aggiunta) ma può avere bisogno di fattori di scalatura o di offset. La decodifica a strati può raddoppiare il throughput per iteration rispetto ai programmi di inondazione, ma introduce vincoli di dipendenza che complicano la tubatura.
Perché FPGA per decodifica LDPC in tempo reale?
Parallelismo e produttività
FPGAs eccelle nello sfruttamento del parallelismo intrinseco della decodifica iterativa. Un decoder full-parallel istanzia un elemento di elaborazione per ogni nodo di controllo e nodo variabile, permettendo a tutti i messaggi di essere aggiornati simultaneamente. Tali architetture possono raggiungere throughput superiori a 10 Gbps per lunghezze di blocco moderate (ad esempio, 1.004 bits).
La natura riconfigurabile di FPGAs permette ad un progettista di sistema di scambiare il parallelismo per l'utilizzo delle risorse. Ad esempio, un decoder [ parziale-parallele[]] condivide unità computazionali tra più nodi, riducendo l'area e l'energia a costo di un throughput inferiore.
Lattice disinfettante
I sistemi in tempo reale come i collegamenti di ritorno satellitare o il controllo a ciclo chiuso richiedono latenza di limite peggiore. I decoder basati su FPGA hanno profondità di pipeline prevedibili e conteggi di iterazione.
Efficienza energetica
I percorsi dati personalizzati in FPGAs evitano la sovraccarico di istruzioni, decodifica e gerarchia della cache. Misurati in energia per bit decodificato (pJ/bit), le implementazioni FPGA spesso superano sia le CPU che le GPU con un ordine di grandezza.
Riconfigurazione
Un modem basato su FPGA può essere aggiornato nel campo per supportare nuovi tassi di codice, lunghezze di blocco o anche algoritmi di decodifica completamente diversi, riducendo così il time-to-market per nuovi prodotti e estendendo la durata operativa dell'hardware distribuito.
FPGA Architettura per LDPC Decoders
Componenti core
Un tipico decoder LDPC basato su FPGA comprende:
- Unità di Nodo variabili (VNUs) – compute delle LLR in entrata e generare messaggi in uscita per controllare i nodi.
- Controllare le unità di nodo (CNUs)[] – implementare la regola di aggiornamento specifica dell'algoritmo (SPA, min-sum, ecc.).
- Blocchi di memoria[[] – memorizzare i valori LLR, i messaggi sui bordi e i risultati intermedi.
- Controller State Machine[[]] – gestisce il conteggio di iterazione, passando tra le fasi di lavorazione variabili e di controllo (per il programma di inondazione) o la sequenziamento stratificato.
- Interfacce di ingresso/uscita[[] – canale di flusso LLRs nel decoder e uscita bit decodificati.
I progetti ad alta produttività incorporano anche pipelining e replica di VNU e CNU per abbinare la velocità di dati del link in arrivo.
Considerazioni sull'architettura della memoria
La memorizzazione dei messaggi di bordo è una sfida importante perché l'elenco di adiacenza di una grande matrice può superare il BRAM del chip.
- Memorizzazione completa[[] – una posizione di memoria per bordo. Semplice ma intensivo di memoria.
- Riservazione vocale riga / colonna[[] – memorizzare solo posizioni non zero e i loro valori LLR associati. Riduce la memoria ma richiede logica di generazione di indirizzi.
- Riutilizzo della memoria di decodifica a strati[[] – perché i gruppi di nodi di controllo disgiunti di processo di strati possono essere partizionati e riutilizzati attraverso strati.
La memoria esterna (DDR4, HBM) può essere utilizzata per codici molto grandi, ma aggiunge latenza e strozzature di larghezza di banda. Molti designer optano per la memoria tiered: BRAM per piccoli, frequenti accessi e memoria esterna più ampia ma più lenta per dati meno frequentemente utilizzati.
Design della tubatura
Per ottenere frequenze di clock elevate superiori a 300 MHz su FPGAs moderno, un condotto profondo viene inserito tra VNU e CNU elaborazione. Ogni iterazione diventa una serie di fasi di pipeline, e più iterations possono sovrapporre in una tecnica chiamata ] sovrapposizione ideologico]] o ]]] decodificaresto corretto .
Per i decoder a strati, il gasdotto deve gestire la dipendenza dei dati tra gli strati consecutivi: un nodo variabile aggiornato in strato k] influenza immediatamente i nodi di controllo del livello successivo. Questa dipendenza può essere risolta utilizzando un doppio-buffered]] messaggio store o inserendo un singolo stadio di pipeline che tiene le LLR aggiornate.
Metodologia di progettazione e strumenti
RTL vs. Sintesi ad alta velocità
La maggior parte dei decodificatori FPGA LDPC sono scritti in VHDL o Verilog (RTL) per ottenere un controllo fine-grained su tempi e utilizzo delle risorse. Tuttavia, la crescente complessità degli algoritmi ha stimolato l'adozione di strumenti di sintesi (HLS) ad alta velocità come Xilinx Vitis HLS o Intel HLS Compiler. HLS consente ai progettisti di esprimere l'algoritmo di ottenere i dati di partizione di elaborazione di formato
Simulazione e verifica
La co-simulation con strumenti come ModelSim o Questa simula la RTL e confronta le uscite decodificate contro un modello C dorato. Le prestazioni BER vengono convalidate utilizzando banchi di prova hardware-in-the-loop che iniettano modelli di errore noti. Molti fornitori forniscono core IP per standard comuni (ad esempio, 5G LDPC da Xilinx) che possono essere configurati tramite diagramma di Vidotor
Sfide e soluzioni di attuazione
Congestione di routine
I decoder a tutto contatto con migliaia di nodi richiedono enormi risorse di routing. I fili lunghi che collegano VNU e CNU causano congestione e degrado frequenza dell'orologio.
- Pilaplanning gerarchico[[] – partizionare il grafico Tanner in cluster che si adattano all'interno di una regione dell'orologio singolo.
- Interconnessione basata su switch[[[] – utilizzare le strutture traversali o network-on-chip (NoC) per ridurre la lunghezza del filo globale.
- L'architettura parziale parallela[[]] – riduce il numero di scambi di messaggi concorrenti tramite un tempo-multiplexing di un gruppo di unità di elaborazione più piccolo.
Chiusura di sincronizzazione
Le frequenze di clock vanno inserite in punti di taglio precisi. I progettisti impiegano ]retiming] (moving registri attraverso la logica) e register bilanciamento[]]] per ridurre i ritardi di percorso critici.
Dissipazione di potere
L'alta attività di commutazione in logica decoder può portare a problemi termici, soprattutto in fattori di forma compatta.
- Cloccare gating[[] – disabilitare le unità di elaborazione durante i periodi di inattività o quando si verifica la risoluzione precoce.
- Early shut – stop iterations non appena tutti i controlli di parità sono soddisfatti, risparmio di potenza dinamica.
- Modalità di memoria a bassa potenza[] – utilizzare BRAM in modalità sonno quando non è stato raggiunto.
- Riscaldamento del volume[] – alcune isole FPGAs sostengono per regione le isole di tensione.
Latency e il throughput Trade-offs
I vincoli in tempo reale spesso dettano una latenza massima consentita (ad esempio, 100 μs per un canale di controllo 5G). L'aggiunta di fasi di pipeline aumenta la latenza, ma migliora anche la frequenza di clock e la produttività netta. Il progettista deve bilanciare questi obiettivi contrastanti. Tecniche come decodifica diretta e
Performance Metrics e standard reali-mondiali
Metriche chiave
- Throughput[] – bit al secondo dopo la decodifica, tipicamente 1–20 Gbps per decodificatori FPGA moderni.
- Latency[] – tempo dal primo ingresso LLR all'uscita decodificata, incluso il buffering e il ritardo dell'iterazione.
- Bit Error Rate (BER) – target [< 10−6]] per bit non codificati nella maggior parte degli standard.
- Energia per bit[[ – pJ/bit; i disegni all'avanguardia raggiungono meno di 10 pJ/bit per decodificatori LDPC 5G.
Esempio: 5G NR LDPC
Il 5G New Radio standard utilizza i codici LDPC per i canali di dati con lunghezze di blocco fino a 8448 bit e tassi da 1/3 a 8/9. I grafici base BG1 e BG2 supportano diverse dimensioni del codice. Le implementazioni FPGA devono gestire entrambi i grafici base con la riconfigurazione.
DVB-S2/S2X
Digital Video Broadcasting – Satellite Second Generation utilizza codici LDPC con lunghezze di blocco fino a 64800 bit. Decoding tali blocchi lunghi su un FPGA richiede un'attenta partizionamento delle risorse e l'accesso alla memoria esterna. Molti terminali di terra satellite utilizzano Xilinx Kintex o Intel Arria FPGA per ottenere 1 Gbps throughput con bassa potenza.
Scenari di applicazione in tempo reale
Comunicazione a distanza
FPGAs sono favoriti per la loro tolleranza alle radiazioni (tramite la ridondanza modulare tripla) e la capacità di regolare i tassi di codice in risposta alle condizioni di canale in evoluzione. I rover di Marte e il telescopio spaziale James Webb si affidano ai decodificatori LDPC implementati in FPGA a radiazione indurita da Microchip (ex Microsemi).
Radio finanziata dal software (SDR)
Le piattaforme SDR come USRP o LimeSDR spesso accoppiano un front-end RF con un FPGA per la lavorazione della banda base. Un core IP decoder LDPC può essere caricato sullo stesso FPGA che effettua filtraggio, sincronizzazione e FFT, producendo un ricevitore monochip compatto.
Tendenze future
Decodifica dell'apprendimento della macchina
I ricercatori stanno esplorando decoder basati sulla rete neurale che sostituiscono o incrementano gli algoritmi tradizionali iterativi. FPGA può accelerare l'inferenza di piccole reti neurali con aritmetica a punto fisso, potenzialmente riducendo il numero di iterazioni necessarie. Ad esempio, ] continua a dispiegare] del canale iterativo di apprendimento inferiore in una rete di feedforward consente la formazione per fasi più veloci.
Integrazione Memoria ad alta larghezza (HBM)
I moderni FPGA di Xilinx (Virtex UltraScale+) e Intel (Stratix 10 MX) integrano la memoria HBM2 impilata sullo stesso pacchetto. Questo fornisce terabyte al secondo della larghezza di banda, consentendo decodificatori per codici molto lunghi (ad esempio, 64800 blocchi) con throughput vicino-parallel.
Soluzioni ibrido FPGA-ASIC
Per soddisfare i requisiti di throughput ancora più elevati (100 Gbps e oltre), alcuni venditori propongono un approccio ibrido: il nucleo iterativo viene implementato come ASIC semi-custom con parti riconfigurabili minori, mentre la logica di controllo e adattamento rimane su un FPGA. Questo bilancia la flessibilità con la densità e la velocità di un ASIC. Moduli multichip che combinano un FPGA die con un ASIC (xSo, Xilin)
Decodificatori riconfigurabili per sistemi multi-standard
I futuri sistemi wireless (6G) richiederanno probabilmente il supporto per più famiglie di codici (LDPC, codici polari, codici turbo) in un unico dispositivo. FPGAs può ospitare più decodificatori e passare tra loro su base frame-by-frame.
Conclusioni
Le soluzioni basate su FPGA per la decodifica in tempo reale del codice LDPC rimangono un campo vibrante ed essenziale. La combinazione di parallelismo, riconfigurabilità e efficienza energetica rende FPGA la piattaforma di scelta per sistemi di comunicazione esigenti, dalle stazioni di base 5G alle sonde dello spazio profondo. I progettisti navigano in un complesso commercio-spazio che comprende la selezione dell'algoritmo, l'architettura della memoria, il design delle tubazioni e la gestione delle risorse.