Mikroprocesorski sistemi Elektronski fakultet u Niu HAMINGOV KODERDEKODER

  • Slides: 38
Download presentation
Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER Student: Srđan Vujašević 11424

Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER Student: Srđan Vujašević 11424

1. Greške 2. Hamingova distanca 3. Sindrom reč 4. Hamingov kôd 5. Realizacija Hamingovog

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

Otkrivanje i korekcija grešaka – strana 1 • Svaki put kada se informacija prenosi

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

Metode za otkrivanje i korekciju grešaka – strana 2 1. Kontrola greške unapred, u

Metode za otkrivanje i korekciju grešaka – strana 2 1. 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. 2. 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

Izbor metode za otkrivanje grešaka – strana 3 Faktori od kojih zavisi izbor metode:

Izbor metode za otkrivanje grešaka – strana 3 Faktori od kojih zavisi izbor metode: 1. 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 -4 ili 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

Pojam Hamingove distance – strana 1 ▪ Hamingova distanca (HD) - broj bitova u

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

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

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

Pojam Hamingove distance – strana 3 Detekcija greške ▪ Kôd može detektovati do d

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 ≥ 2 c + 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

Pojam sindrom reči – strana 1 • Sindrom reč se dobija poređenjem dve K-bitne

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 2 K-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

Pojam sindrom reči - strana 2 Želja je da generisana sindrom reč ima sledece

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

Pojam sindrom reči - strana 3 Pozicije bitova podataka i bitova za proveru C

Pojam sindrom reči - strana 3 Pozicije bitova podataka i bitova za proveru C 1 = M 1 M 2 M 4 M 5 M 7 C 2 = M 1 M 3 M 4 M 6 M 7 C 3 = M 2 M 3 M 4 M 8 C 4 = M 5 M 6 M 7 M 8 gde označava operaciju ekskluzivne disjunkcije. Student: Srđan Vujašević 11424

Hamingov kôd - strana 1 • Jedan od najčešće korišćenih kodova sa korekcijom greške

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

Hamingov kôd – strana 2 • U Hamingovom kôdu, p - parity bitova je

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: d 7 pozicije: 12 d 6 d 5 d 4 p 3 d 2 d 1 p 2 d 0 p 1 p 0 1 Student: Srđan Vujašević 11424

Hamingov kôd – strana 3 • Prilikom izbora broja parity bitova mora biti zadovoljena

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

Hamingov kôd – strana 4 - parity bitovi su 1, 2, 4, 8, .

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

Hamingov kôd – strana 5 • Na mestu prijema kompozitna reč od 12 bitova

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: C 1 = XOR nad bitovima (1, 3, 5, 7, 9, 11) C 2 = XOR nad bitovima (2, 3, 6, 7, 10, 11) C 4 = XOR nad bitovima (4, 5, 6, 7, 12) C 8 = XOR nad bitovima (8, 9, 10, 11, 12) Student: Srđan Vujašević 11424

Hamingov kôd – strana 6 • Hamingov kod se može koristiti za kodnu reč

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

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

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

Realizacija Hamingovog koder/dekoder u VHDL-u - strana 1 Hamingov koder Blok hamenc ima jedan

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); --d 7 d 6 d 5 d 4 d 3 d 2 d 1 d 0 hamout : OUT std_logic_vector(11 downto 0)); --d 7 d 6 d 5 d 4 p 3 d 2 d 1 p 2 d 0 p 1 p 0 END hamenc; Student: Srđan Vujašević 11424

Realizacija Hamingovog koder/dekoder u VHDL-u - strana 2 Hamingov dekoder ENTITY hamdec IS PORT

Realizacija Hamingovog koder/dekoder u VHDL-u - strana 2 Hamingov dekoder ENTITY hamdec IS PORT ( 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 ) 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

Rezultati simulacije - strana 1 Da bi smo testirali kako sistem radi doveli smo

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

Rezultati simulacije - strana 2 Zatim smo na ulaz dekodera doveli ovu 12 -bitnu

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

Rezultati simulacije - strana 3 I na kraju kako bi pokazali šta se dešava

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

Rezultati simulacije - strana 4 Kao još jedan primer, biće ilustrovan prenos sekvence podataka.

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

Rezultati sinteze i implementacije - strana 1 Za sintezu opisanih kola iskorišćen je program

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

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

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

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

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

Rezultati sinteze i implementacije - strana 4 - Implementacija Hamingovog kodera Sintezu kodera vršili

Rezultati sinteze i implementacije - strana 4 - Implementacija Hamingovog kodera Sintezu kodera vršili smo na FPGA čipovima serije SPARTAN 2 pod oznakom xc 2 s 15 vq 100. 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. 29 m. W i pri temperaturi ambijenta od 25 o. C, temperatura kućišta je 25. 3 o. C. Student: Srđan Vujašević 11424

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

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

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

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

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

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

Rezultati sinteze i implementacije - strana 8 - Implementacija Hamingovog dekodera Sintezu dekodera vršili

Rezultati sinteze i implementacije - strana 8 - Implementacija Hamingovog dekodera Sintezu dekodera vršili smo na FPGA čipovima serije SPARTAN 2 pod oznakom xc 2 s 15 vq 100. 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. 49 m. W i pri temperaturi ambijenta od 25 o. C, temperatura kućišta je 25. 4 o. C. Student: Srđan Vujašević 11424

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

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

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

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

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

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

Laboratorijska vežba - strana 1 Proveriti ispravnost rada Hamingovog kodera. 1. 2. 3. 4.

Laboratorijska vežba - strana 1 Proveriti ispravnost rada Hamingovog kodera. 1. 2. 3. 4. Pokrenuti program Active-HDL čija se ikonica nalazi na Desktop-u; Otvoriti dizajn Haming; Otvoriti listing Test. Bench-a, hamenc_TB. vhd, koji se nalazi u folder-u Test. Bench (segment 1. na slici 1. ); 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

Laboratorijska vežba - strana 2 6. Otvoriti New Waveform (segment 5. na slici 2);

Laboratorijska vežba - strana 2 6. Otvoriti New Waveform (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

Laboratorijska vežba - strana 3 Proveriti ispravnost rada Hamingovog dekodera. 1. Ponoviti sve korake

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