Institut TELECOM / TELECOM Bretagne Turbo décodage de codes produits Reed-Solomon pour le très haut débit - Séminaire des doctorants de TELECOM Bretagne - 28 Mars 2008 Camille LEROUX, Christophe JEGO, Patrick ADDE, Michel JEZEQUEL, Gérald LE MESTRE Institut TELECOM / TELECOM Bretagne
FEC dans les communications optiques 1ère génération : codes algébriques simples: RS(255,239) 2ème génération: codes en blocs concaténés 3ème génération : Turbo Codes en Blocs (TCB) Gain de codage > 10dB Rendements de codage élevés, Faible complexité de décodage, Taux de parallélisme élevés. Séminaire des doctorants
Etat de l’art Nombreuses études algorithmiques montrent les bonnes performances des TCB pour l’optique (BCH et RS) Plusieurs architectures, implantations utilisent des TCB-BCH Mitsubishi a proposé un turbo décodeur BCH(144,128)x(256,239) sur FPGA, R=0.764, NCG > 10dB, D = 156 Mb/s. => Pas d’architecture très haut-débit pour le turbo-décodage des codes produits RS Séminaire des doctorants
Symboles d’informations Codage / turbo décodage des codes produits ni : taille du code ki : nombre de symboles d’informations i : distance minimum Hamming C1, C2: BCH / RS codes Cp(np, kp, p) C1(n1, k1, 1) C2(n2, k2, 2) np = n1×n2 kp = k1×k2 p = 2×1 Symboles d’informations k2 k1 m Red. Lignes n1 П Dligne Dcol Red. Sur red. Red. colonnes n2 Sur ce slide, je rappelle le principe de codage et de turbo décodage de codes produits. Considérons deux codes en blocs linéaires systématiques C1 et C2 ayant pour paramètres n,k,d ou n est la taille du code, k le nombre de symbole d’informations et d la distance minimum de Hanmming. C1 et C2 peuvent être des codes BCH ou RS. Le code produit P est obtenu en: - placant m*k1*k2 symboles dans une matrice de k1 lignes et k2 colonnes. en codant les k1 lignes en utilisant le code C2 En codant les n2 colonnes avec le code C1 Les paramètres du code produit résultant sont le produit des paramètres des codes élémentaires. Le lignes et les colonnes sont décodées successivement en utilisant un décodage SISO et ceci pendant plusieurs itérations. Pour le décodage SISO, nous utilisons l’algorithme de Chase-Pyndiah. Chaque ligne et chaque colonne peut être décodée de manière indépendante. La complexité du décodage va dépendre du pouvoir de correction du code. Nous avons choisi d’étudier des codes t=1 qui présentent un bon compromis performance complexité. П-1 Séminaire des doctorants
Performances de décodage des TCB BCH Bonne convergence Error-floor RS CV plus tardive Rendements plus élevés 3.5dB Séminaire des doctorants
Performances de décodage des TCB (suite…) Code R Gain de codage (dB) @10-10 Eligibles BCH(16,11)² 0.47 1.5 NON BCH(32,26)² 0.66 6.6 BCH(64,57)² 0.79 7.6 OUI BCH(128,120)² 0.88 8.1 RS(15,13)² 0.75 7.4 RS(31,29)² 7.8 RS(63,61)² 0.94 7.2 RS(127,125)² 0.97 6.7 Séminaire des doctorants
Architecture de turbo-décodeurs de codes produits très haut débit j Elementary decoder for row 1 Elementary decoder for column 1 Elementary decoder for row 2 Elementary decoder for column 2 i Interconnection network Interconnection network Elementary decoder for row n Elementary decoder for column n n columns of n symbols A module for one iteration Séminaire des doctorants
Architecture du décodeur élémentaire SISO Séminaire des doctorants
Comparaison d’architectures haut-débit D = P R fSISO P = n m Débit DRS(n) =m DBCH(n) Taux de Parallélisme Augmenter le débit d’une architecture sans quantifier le coût en complexité n’est pas pertinent… n m R fSISO = D S = Efficacité : S Séminaire des doctorants
Comparaison de l’efficacité des turbo décodeurs RS vs BCH SRAM > 0.5 Stotale SRAM = O(P²) Slogique = O(P) A débit fixe, SBCH>SRS A surface fixe, DRS>DBCH BCH(64,57)² RS(31,29)² (RS) > (BCH) Séminaire des doctorants
Plateforme de prototypage Carte de la société DINIGROUP contenant 6 FPGAs Virtex5 LX330 Communication via bus PCI Interconnexion simple ou différentielle (LVDS) Liens SERDES disponibles pour augmenter la bande passante entre FPGAs. Séminaire des doctorants
Validation du turbo-décodeur RS(31,29) ² sur 1 itération FPGA V5 LX330 FPGA V5 LX330 LFSR SERDES SERDES Turbo-décodeur RS(31,29)² AWGN Channel emulator Compteur d’erreurs Codeur RS(31,29)² LFSR BER Eb/N0 Main Bus fmax = 58.75MHz Din = 9 Gb/s Dout= 8 Gb/s Ctrl PCI Bus PCI PC Séminaire des doctorants
Validation des performances de décodage sur 5 itérations Iter #5 Iter #4 Iter #3 BER #5 BER #4 BER #3 BER #1 BER #2 PC Gen. Data Iter #1 Iter #2 Eb/N0 fmax = 38.75MHz Din = 6 Gb/s Dout= 5.25 Gb/s Séminaire des doctorants
Institut TELECOM / TELECOM Bretagne Turbo décodage de codes produits Reed-Solomon pour le très haut débit - Séminaire des doctorants de TELECOM Bretagne - 28 Mars 2008 Camille LEROUX, Christophe JEGO, Patrick ADDE, Michel JEZEQUEL, Gérald LE MESTRE Institut TELECOM / TELECOM Bretagne
Validation d’une itération de décodage sur quelques matrices 40 matrices validées à Eb/N0=0dB fmax(TD)= 50MHz Din= 9 Gb/s Dout= 8 Gb/s <50% des ressources utilisées PC Contrôleur PCI RAM Turbo-décodeur RS(31,29)² 1 itération FPGA V5 LX330 Séminaire des doctorants