1 / 33

Implementarea pe o placă Altera Cyclone I a unui decodor LDPC şi analiza performanţelor

UNIVERSITATEA POLITEHNICA BUCURESTI FACULTATEA DE ELECTRONICA, TELECOMUNICATII SI TEHNOLOGIA INFORMATIEI CATEDRA DE ELECTRONICA APLICATA SI INGINERIA INFORMATIEI. Implementarea pe o placă Altera Cyclone I a unui decodor LDPC şi analiza performanţelor. Absolvent George CRĂCIUN.

Download Presentation

Implementarea pe o placă Altera Cyclone I a unui decodor LDPC şi analiza performanţelor

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. UNIVERSITATEA POLITEHNICA BUCURESTI FACULTATEA DE ELECTRONICA, TELECOMUNICATII SI TEHNOLOGIA INFORMATIEI CATEDRA DE ELECTRONICA APLICATA SI INGINERIA INFORMATIEI Implementarea pe o placă Altera Cyclone I a unui decodor LDPC şi analiza performanţelor Absolvent George CRĂCIUN Conducător ştiinţific Conf. Dr. Ing. Ştefan STĂNCESCU

  2. Cuprins Prezentaregenerala Contribuţie Coduricorectoare de erori Reprezentareagrafica a codurilor LDPC Decodarea – Message Passing Analizaliteraturii de specialitate Implementareaunuidecodorflexibil Concluzii

  3. Prezentaregenerala Acest proiect are ca scop implementarea unui decodor LDPC pe un FPGA. • caracteristica de concepție, cheie, a decodorului este flexibilitatea, fiind capabil să suporte diferite coduri și calcule • singurul lucru care se schimbă este configurație ROM

  4. Contribuţie Acest proiect implementează hardware, un decodor flexibil şi iterativ bazat pe o publicație a lui Alberto Tarable din septembrie 2004. Contribuțiile aduse la acest proiect au fost: • înțelege, dezvoltăși implementeazăîn MATLAB, un algoritm de alocare a resurselor unui sistem care permite flexibilitatea în decodorul LDPC • înțelege, dezvoltă și implementează în MATLAB, un algoritm care configureaza comutatoarele crossbar Benes

  5. Contribuţie • dezvoltă si implementează în VHDL operațiunea comutatoarelor crssbar Benes • concepe o arhitectură a decodorului LDPC. • dezvoltă și simulează buna funcționare a decodorului LDPC în VHDL.

  6. Coduricorectoare de erori • coduri corectoare de erori • Reed-Solomon • Turbo • LDPC • (n,k) – cod bloc • u – totalitatea mesajelor de k biti • c – cuvantul de cod • Cuvintele de cod sunt codate prin matricea generatoare G • Pentru orice matrice generatoare G, există mai multe matrici de verificare a parității (H), care satisfac condiția : • c este un cuvânt de cod dacă Codare bloc sistematică pentru corecţia erorilor

  7. Reprezentareagrafica a codurilor LDPC Reprezentare graficului Tanner conține două seturi de noduri: • n noduri pentru biții cuvântului de cod • m noduri pentru ecuațiile de verificare a parității Ecuații de verificare a parității: GraficulTanner almatricei de verificare a parității

  8. Decodarea – Message Passing message passing - un mesaj care trece înainte și înapoi pe muchia graficului lui Tanner. Mesajele sunt informații probabilistice veridice despre bitul emis, exprimat ca Log Likelihood Ratios (LLR) Mesajul extrinsec de la nodul de verificarej până la nodul i, Ej,i , este probabilitatea LLR Mesajul care este trimis de la nodul de bit către nodurile de verificare este dat de

  9. Decodarea – Message Passing (Algoritm) • Inițializarea Qij = λj • Actualizarea mesajului de verificare • Test pentruvalidareacuvantului de cod

  10. Decodarea – Message Passing (Algoritm) • Actualizarea mesajelor de bit pentru fiecare nod de bit j, și pentru fiecare nod de verificare asociat calcului j: Se reia pentru actualizarea mesajelor de verificare.

  11. Implementariprivinddecodoarele LDPC Configuraţiile decodoarelor găsite, inclusiv diagramele lor, viteza, flexibilitatea și potrivirea pentru FPGA. Decodor serial • flexibilitate mare • această abordare este prea lentă, exceptând simulările • numărul de cicluri de ceas, cerute pentru fiecare iterație a decodorului deserie, este aproximativ de două ori mai mare decât muchile • nimic nu a putut fi gasit, in literatura de specialitate, despre implementarea unui decodor serial LDPC

  12. Implementariprivinddecodoarele LDPC • Implementare analogică • este imposibil să implementezi un decodor analogic pe un FPGA • au fost găsite două abordări ale implementării algoritmului sumă-produs • Decodor paralel • într-un ciclu ceas actualizează faza mesajului de verificare, iar apoi completează actualizarea fazei mesajului bit • creștere apreciabilă în viteză decodării, comparativ cu decodorul serial Implementarea analogică

  13. Implementari privind decodoarele LDPC • figura din stânga arată configurația unui decodor paralel propus de Blanskby și Howland • implementarea are o complexitate foarte mare • numărul de fire de mesaj necesare de un decodor paralel exclude FPGA-ul ca dispozitiv țintă Configuratia unui decodor paralel fire de masaj = numarul de muchii ale graficului x numarul de biti/mesaj x 2

  14. Implementariprivinddecodoarele LDPC Decodor partial paralel • câteva noduri de verificare și de biți sunt realizate în hardware, asta implică împărțirea ca într-un caz în serie • folosirea memoriei pentru a stoca mesajele între ciclurile de ceas • nodurile de biți și de verificare pot rula și în paralel • este un compromis între viteză și complexitate • o problemă este coloziunea de memorie

  15. Implementariprivinddecodoarele LDPC Pentru reducerea coloziunilor de memorie, interconexiunea a fost implementată folosind o formă de comutator crossbar, cunoscut sub numele de rețeaua lui Benes.

  16. Implementareaunuidecodorflexibil • Structura este compusă din: • P de procesoare • un bloc de permutare a mesajului • un bloc de control logic Schema bloc pentru decodor

  17. Implementareaunuidecodorflexibil Sunt efectuate verificări pentru un cuvânt de cod valid. • Inițializare - măsurătorile de canal sunt încărcate în blocurile procesoarelor bit. • Bit de verificare - procesorul nodului bit efectuează funcția nodului bit • Verifcare bit - procesorul nodului de verificare efectuează funcția nodului bit • Rezultat - după un număr de iterații bit de verificat și cicluri de verificarebit, decodorul se mută spre faza de ieșire

  18. Blocul de permutare a mesajelor • stă în centrul flexibilității decodorului • să conecteze procesorul nodului bit la la procesorul nodului de verificare (și vice versa) • conține două comutatoare crossbar Benes cu o distribuție interleavers între ele

  19. Configurația circuitului Configurația pentru nodul de variabile al jumătății de iterație Configurația pentru nodul de verificare al jumătății de iterație

  20. Configurarea setărilor rețelei de comutareBenes Procesul de a găsi setările de comutare, date de setările de intrare și ieșire, este împărțit în 3 grupuri de acțiuni și este bazat pe munca lui Waksman: • obținerea matricei de permutare • găsirea setărilor comutatorului • găsirea aplicației de permutare pentru sub-blocurile inferioare și superioare

  21. Potentiale probleme de implementarehardware ale decodorulu LDPC • reprezentarea numărului (mesajele care se deplasează prin suma rezultată a algoritmului) • funcții de multiplicare și trigonometrice • Pentru introducerea functiei ψ (am folosit LUT)

  22. Sumatoarele • nevoie de a adaugă, în paralel, multiple mesaje de intrare • numărul de intrări la sumatoare dictează gradul de greutate suportate de nodurile de bit și de verificare • ripple • carry-look a head • carry select

  23. Procesorul nodului bit

  24. Unitatea RAM a cuvantului de cod

  25. Procesorul nodului de verificare

  26. Diagrama bloc a sumatorului procesorului nodului de verificare

  27. Incarcatorul cuvantului de cod

  28. Reţeaua de permutare a mesajelor

  29. Shema bloc a rețelei Benes

  30. Interleavers

  31. Concluzii • placa Altera Cyclone I (EP1C6Q240C8) nu a avutsuficenteresurse hardware pentruimplementareaproiectuluişipentrucontinuare s-a decis testarea pe un model mai nou de la Altera, și anume Cyclone II DE2 • procesoarele nodului de verificare domină utilizarea resurselor (tabelele de căutare ψ(x) sunt responsabile pentru acest lucru) • procesoarele nodului de verificare nu suntexagerat de complexe, putându-se mărinumărul de procesoareparalele la 32 (implementare ar putea fi realizată pe o placă Altera Stratix II) • când numărul de procesoare paralele este dublat, codul maxim suportat este de 60 de ori mai mare (complexitatea conceptului crește de două ori) • complexitatea va crește liniar cu numărul de noduri de procesare paralelă, prin urmare creste şi scalabilitatea decodorului.

  32. Vă multumesc!

More Related