1 / 38

Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER. Student: Sr đan Vujašević 11424. 1. Gre ške Hamingova distanca Sindrom re č Hamingov kôd Realizacija Hamingovog koder/dekoder u VHDL-u Rezultati simulacije Rezultati sinte ze i implementacije

zoie
Download Presentation

Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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. Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER Student: Srđan Vujašević 11424

  2. 1. Greške • Hamingova distanca • Sindrom reč • Hamingov kôd • Realizacija Hamingovog koder/dekoder u VHDL-u • Rezultati simulacije • Rezultati sinteze i implementacije • Laboratorijska vežba Student: Srđan Vujašević 11424

  3. Otkrivanje i korekcija grešaka – strana 1 • Svaki put kada se informacija prenosi kroz neki kanal, može doći do greške u prenosu usled šuma • Informacija smeštena u nekoj komponenti za skladištenje podataka (memoriji), može se oštetiti, jer ni jedan hardver nije apsolutno siguran • Glas kada se prenosi kroz vazduh može se iskvariti usled vetra, šuma, visoke temperature... Student: Srđan Vujašević 11424

  4. Metode za otkrivanje i korekciju grešaka – strana 2 • Kontrola greške unapred, u kome svaki karakter ili blok podataka koji se šalje sadrži dodatne (redundatne) informacije. Na osnovu ovih informacija primalac može ne samo da otkrije postojanje greške, već i da odredi koji su bitovi u primljenom podatku pogrešni i da grešku ukloni negacijom pogrešnih bitova. • Kontrola greške unazad, odnosno kontrola sa povratnom spregom. U ovom slučaju svaki karakter ili blok podataka koji se šalje sadrži samo neophodne dodatne informacije koje omogućuju primaocu da otkrije prisustvo greške, ali ne i mesto na kome se ona nalazi. Student: Srđan Vujašević 11424

  5. Izbor metode za otkrivanje grešaka – strana 3 • Faktori od kojih zavisi izbor metode: • Broja bitova sa greškom (eng. bit error rate, BER) na komunikacionoj liniji. BER predstavlja verovatnoću u definisanom vremenskom intervalu da jedan bit ima grešku. Tako BER=10-4 znači da, u proseku, 1 od 10000 bita ima grešku u definisanom vremenskom intervalu. Za najveći broj mreža BER je oko 10-4 , dok je unutar računarskog sistema obično vrednost za BER 10-4ili manje. • 2. Tipa greške, tj. da li se greška javila na pojedinačnom bitu ili na grupi uzastopnih bitova. U poslednjem slučaju reč je o proširenoj (eksplozivnoj) grešci (eng. burst error). Student: Srđan Vujašević 11424

  6. Pojam Hamingove distance – strana 1 ▪ Hamingova distanca (HD) - broj bitova u kojima se dve digitalne reči razlikuju HD( 101, 100 ) = 1 HD( 111, 000 ) = 3 ▪ Kôdna distanca (Dmin) - minimalna Hamingova distanca između dve bilo koje reči Student: Srđan Vujašević 11424

  7. Pojam Hamingove distance – strana 2 Ilustracija kôdne distance: Student: Srđan Vujašević 11424

  8. Pojam Hamingove distance – strana 3 Detekcija greške ▪ Kôd može detektovati do d bitova greške ako je minimalna distanca kôda Dmin ≥ d + 1 Korekcija greške ▪ Kôd može korektovati do c bitova greške ako je minimalna distanca kôda Dmin ≥ 2c + 1 Kodovi parnosti ▪ parna parnost ukupan broj jedinica u kodnoj reči je paran: - 0110110 1 - 0001011 0 ▪ neparna parnost ukupan broj jedinica u kodnoj reči je neparan: - 0110110 0 - 0001011 1 Student: Srđan Vujašević 11424

  9. Pojam sindrom reči – strana 1 •Sindrom reč se dobija poređenjem dve K-bitne vrednosti bit po bit uzimanjem eksluzivne disjunkcije • Sindorm reč je neoznačen ceo broj dužine K koji ima vrednost K izmedju 0 i • Vrednost 0 označava da nema grešaka u zapisu, dok ostalih 2K-1 vrednosti određuju mesto greške, u slučaju da greška postoji • Kako greška može da se javi na bilo kom od M bitova podatka i K bitova koji se koriste u proveri, mora da važi Student: Srđan Vujašević 11424

  10. Pojam sindrom reči -strana 2 Želja je da generisana sindrom reč ima sledece karakteristike: • Ako su svi bitovi u njoj 0 tada nije otkrivena nikakva greška • Ako u reči postoji tačno jedna 1, tada greška postoji u jednom od 4 bita za proveru, dok je zapis podatka u redu i ne zahteva nikavu korekciju • Ako sindrom sadrži više od jednog bita koji ima vrednost 1, tada vrednost sindrom reči posmatrane kao ceo neoznačen broj određuje poziciju na kojoj se nalazi greška. Korekcija se sastoji u komplementiranju vrednosti odgovarajućeg bita podatka Student: Srđan Vujašević 11424

  11. Pojam sindrom reči - strana 3 Pozicije bitova podataka i bitova za proveru C1 = M1 M2 M4 M5M7 C2 = M1 M3 M4 M6 M7 C3 = M2 M3 M4 M8 C4 = M5 M6 M7 M8 gde označava operaciju ekskluzivne disjunkcije. Student: Srđan Vujašević 11424

  12. Hamingov kôd- strana 1 • Jedan od najčešće korišćenih kodova sa korekcijom greške u RAM memorijama • Glavne odlike Hamingovog kôda su: - Detekcija greške je jednostavna (dodavanjem parity bitova) - Korekcija greške je kompleksna i zahteva Hamingov kôd sa više parity bitova Student: Srđan Vujašević 11424

  13. d7 d6 d5 d4 p3 d3 d2 d1 p2 d0 p1 p0 Hamingov kôd – strana 2 •U Hamingovom kôdu, p - parity bitova je dodato na m - bitova u poruci, tako da imamo novonastalu kodnu reč on m+p – bitova •Sve pozicije u reči, čiji je broj stepena 2 (pozicije 1,2,4,8,...) koriste se za parity bitove. Ostale pozicije su namenjene za bitove originalne poruke • Izgled kodovane poruke, za originalnu poruku od 8-bitova: pozicije: 12 1 Student: Srđan Vujašević 11424

  14. Hamingov kôd – strana 3 •Prilikom izbora broja parity bitova mora biti zadovoljena sledeća relacija: na primer: za 8-bitnu poruku poruka potrebna su nam 4 parity bita, tako da će podatak koji prenosimo sadržati ukupno 12 bitova Student: Srđan Vujašević 11424

  15. Hamingov kôd – strana 4 • parity bitovi su 1,2,4,8, ... (P1,P2,P3,P4) • 3 = 1+2 • 5 = 1+4 • 6 = 2+4 P1 proverava bitove 3, 5, 7, 9, 11 • 7 = 1+2+4 P2 proverava bitove 3,6,7,10,11 • 9 = 1+8 P4 proverava bitove 5,6,7,12 • 10 =2+8 P8 proverava bitove 9,10,11,12 • 11 = 1+2+8 • 12 = 4+8 • Tako da vrednosti P1,P2,P4 i P8 računamo kao: • P1 = XOR nad bitovima (3,5,7,9,11) • P2 = XOR nad bitovima (3,6,7,10,11) • P4 = XOR nad bitovima (5,6,7,12) • P8 = XOR nad bitovima (9,10,11,12) Student: Srđan Vujašević 11424

  16. Hamingov kôd – strana 5 • Na mestu prijema kompozitna reč od 12 bitova se ponovo proverava na grešku. Parnost reči se proverava nad istim grupama bitova u reči uključujući i bitove parnosti. Tako da će mo sad imati četiri bita provere: C1 = XOR nad bitovima (1,3,5,7,9,11) C2 = XOR nad bitovima (2,3,6,7,10,11) C4 = XOR nad bitovima (4,5,6,7,12) C8 = XOR nad bitovima (8,9,10,11,12) Student: Srđan Vujašević 11424

  17. Hamingov kôd – strana 6 • Hamingov kod se može koristiti za kodnu reč proizvoljne dužine. Generalno za p - parity bitova i originalnu reč od m - bitova imamo ukupno p+m bitova koji mogu biti kodovani sa bitova. Grupe bitova za generisanje parity bitova i bitova provere na prijemu određuju se iz liste binarnih brojeva iz liste od 1 do . Svaka grupa bitova počinje sa brojem koji je stepena 2, na primer 1,2,4,8,16 itd. Ovi brojevi su takođe i pozicije parity bitova. • Osnovni Haming kod može detektovati i korigovati greške u samo jednom bitu. Upotrebom dodatnih parity bitova mogu se korigovati jednostruke greške i detektovati dvostruke Student: Srđan Vujašević 11424

  18. Blok šema sistema sa Hamingovim kodiranjem – strana 7 Student: Srđan Vujašević 11424

  19. Realizacija Hamingovog koder/dekoder u VHDL-u - strana 1 Hamingov koder Blok hamenc ima jedan 8-bitni ulazni port datain(7:0) koji predstavlja ulazne podatke koje treba kodirati Hammgovim kodom, i jedan 12-bitni izlaz hamout(11:0) koji predstavalja kodovanu ulaznu kodnu reč (8 bitova poruke i 4 parity bita). ENTITY hamenc IS PORT(datain : IN std_logic_vector(7 downto 0); --d7 d6 d5 d4 d3 d2 d1 d0 hamout : OUT std_logic_vector(11 downto 0)); --d7 d6 d5 d4 p3 d3 d2 d1 p2 d0 p1 p0 END hamenc; Student: Srđan Vujašević 11424

  20. Realizacija Hamingovog koder/dekoder u VHDL-u - strana 2 Hamingov dekoder Blok Hamingovog dekodera ima 12-bitni port hamin(11:0) koji predstavlja ulazne podatke kodovane Hamingovim kodom, 8-bitni izlaz dataout(7:0) koji predstavlja 8-bitnu originalnu informaciju, 4-bitni izlaz error_pos(3:0) koji pokazuje na kojem bitu se javila greška, izlazni pin error_flag koji nam signalizira da li je došlo do greške ( '1' - nastala greška, '0' - nema greške ) i izlazni pin p koji nam signalizira da je došlo do dvostruke greške u kodu ( '1' - nastala greška, '0' - nema greške ) ENTITY hamdec IS PORT ( hamin : IN std_logic_vector(11 DOWNTO 0) ; dataout : OUT std_logic_vector(7 DOWNTO 0) ; error_pos : OUT std_logic_vector(3 DOWNTO 0) ; p: OUT std_logic; error_flag : OUT std_logic); END hamdec ; Student: Srđan Vujašević 11424

  21. Rezultati simulacije - strana 1 Da bi smo testirali kako sistem radi doveli smo na ulaz kodera 8-bitnu sekvencu "00010000". Na grafiku vidimo da smo na izlazu dobili 12-bitnu sekvencu "000110000001" koja predstavlja kodiranu ulaznu reč. Student: Srđan Vujašević 11424

  22. Rezultati simulacije - strana 2 Zatim smo na ulaz dekodera doveli ovu 12-bitnu sekvencu, ali tako što smo na mesto 5 bita umesto '0' stavili '1', Student: Srđan Vujašević 11424

  23. Rezultati simulacije - strana 3 I na kraju kako bi pokazali šta se dešava kada se javlja dvostruka greška, osim modela greške na 5 bitu, isto smo uradili i sa šestim bitom, znači umesto '0' stavili '1' kako bi modelovali grešku pri prenosu Student: Srđan Vujašević 11424

  24. Rezultati simulacije - strana 4 Kao još jedan primer, biće ilustrovan prenos sekvence podataka. Student: Srđan Vujašević 11424

  25. Rezultati sinteze i implementacije-strana 1 Za sintezu opisanih kola iskorišćen je program Synplify Pro firme Synplicity. Nakon toga je izvršena implementacija na FPGA kolima firme XILINX uz pomoć njihovog programskog paketa XILINX ISE verzije 6.3 i prikazani su dobijeni rezultati. Student: Srđan Vujašević 11424

  26. Rezultati sinteze i implementacije - strana 2 • Sinteza Hamingovog kodera Student: Srđan Vujašević 11424

  27. Rezultati sinteze i implementacije- strana 3 • Sinteza Hamingovog dekodera Student: Srđan Vujašević 11424

  28. Rezultati sinteze i implementacije - strana 4 • Implementacija Hamingovog kodera • Sintezu kodera vršili smo na FPGA čipovima serije SPARTAN2 pod oznakom xc2s15 vq100. • Design Summary • -------------- • Number of errors: 0 • Number of warnings: 0 • Logic Utilization: • Number of 4 input LUTs: 5 out of 384 1% • Logic Distribution: • Number of occupied Slices: 3 out of 192 1% • Number of Slices containing only related logic: 3 out of 3 100% • Number of Slices containing unrelated logic: 0 out of 3 0% • *See NOTES below for an explanation of the effects of unrelated logic • Total Number of 4 input LUTs: 5 out of 384 1% • Number of bonded IOBs: 20 out of 60 33% • Total equivalent gate count for design: 30 • Additional JTAG gate count for IOBs: 960 • Podaci vezani za vremenske karakteristike implementacije: • The AVERAGE CONNECTION DELAY for this design is: 1.095 • The MAXIMUM PIN DELAY IS: 1.953 • The AVERAGE CONNECTION DELAY on the 10 WORST NETS is: 1.496 • Što se tiče potrošnje samog kola ona je deklarisana na 9.29mW i pri temperaturi ambijenta od 25oC, temperatura kućišta je 25.3oC. Student: Srđan Vujašević 11424

  29. Rezultati sinteze i implementacije - strana 5 • Implementacija Hamingovog kodera Student: Srđan Vujašević 11424

  30. Rezultati sinteze i implementacije - strana 6 • Implementacija Hamingovog kodera Student: Srđan Vujašević 11424

  31. Rezultati sinteze i implementacije - strana 7 • Implementacija Hamingovog kodera Student: Srđan Vujašević 11424

  32. Rezultati sinteze i implementacije- strana 8 • Implementacija Hamingovog dekodera • Sintezu dekodera vršili smo na FPGA čipovima serije SPARTAN2 pod oznakom xc2s15 vq100. • Design Summary • -------------- • Number of errors: 0 • Number of warnings: 0 • Logic Utilization: • Number of 4 input LUTs: 27 out of 384 7% • Logic Distribution: • Number of occupied Slices: 14 out of 192 7% • Number of Slices containing only related logic: 14 out of 14 100% • Number of Slices containing unrelated logic: 0 out of 14 0% • *See NOTES below for an explanation of the effects of unrelated logic • Total Number of 4 input LUTs: 27 out of 384 7% • Number of bonded IOBs: 26 out of 60 43% • Total equivalent gate count for design: 162 • Additional JTAG gate count for IOBs: 1,248 • Peak Memory Usage: 54 MB • Podaci vezani za vremenske karakteristike implementacije: • The AVERAGE CONNECTION DELAY for this design is: 0.961 • The MAXIMUM PIN DELAY IS: 1.943 • The AVERAGE CONNECTION DELAY on the 10 WORST NETS is: 1.348 • Potrošnja je slična kao u prethodnom slučaju, deklarisana je na 10.49mW i pri temperaturi ambijenta od 25oC, temperatura kućišta je 25.4oC. Student: Srđan Vujašević 11424

  33. Rezultati sinteze i implementacije - strana 9 • Implementacija Hamingovog kodera Student: Srđan Vujašević 11424

  34. Rezultati sinteze i implementacije- strana 10 • Implementacija Hamingovog kodera Student: Srđan Vujašević 11424

  35. Rezultati sinteze i implementacije - strana 11 • Implementacija Hamingovog kodera Student: Srđan Vujašević 11424

  36. Laboratorijska vežba - strana 1 Proveriti ispravnost rada Hamingovog kodera. 1. Pokrenuti program Active-HDL čija se ikonica nalazi na Desktop-u; 2. Otvoriti dizajn Haming; 3. Otvoriti listing TestBench-a, hamenc_TB.vhd, koji se nalazi u folder-u TestBench (segment 1. na slici 1.); 4. Promeniti vrednosti ulaza datain koji je dat u dizajnu, umesto postojeće vrednosti (segment 2. na slici 1.). Izvršiti kompajliranje pritiskom na uokvirenu ikonicu (segment 3. na slici 1.); 5. Podesiti Top level entitet na hamenc_TB.vhd (segment 4. na slici 1.); Slika 1. Student: Srđan Vujašević 11424

  37. Laboratorijska vežba - strana 2 6. Otvoriti NewWaveform (segment 5. na slici 2); 7. Dodati signale (segment 6. na slici 2); 8. Podesiti vreme simulacije na 100 ns ili više ako je potrebno (segment 7. na slici 2); 9. Pokrenuti simulaciju pritiskom na uokvirenu ikonicu (segment 8. na slici 2); 10. Po završetku simulacije može biti potrebno da se vremenski dijagram uveća ili umanji radi bolje preglednosti. Komande za uveličavanje i umanjivanje su uokvirene (segment 9. na slici 2); 11. Uporediti dobijeni vremenski dijagram sa ispravnim radom dizajna (vremenski dijagram na slici 2). Slika 2. Student: Srđan Vujašević 11424

  38. Laboratorijska vežba - strana 3 Proveriti ispravnost rada Hamingovog dekodera. 1. Ponoviti sve korake za listing Testbench-a, hamdec_TB.vhd. Student: Srđan Vujašević 11424

More Related