mikroprocesorski sistemi elektronski fakultet u nišu hamingov koder/dekoder
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
Mikroprocesorski sistemiElektronski 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 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 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 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:
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-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
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:
000
001
101
100
111
110011
010
Student:Srđan Vujašević 11424
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 parnostukupan broj jedinica u kodnoj reči je paran: - 0110110 1 - 0001011 0▪ neparna parnostukupan 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 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
12 K
KMK 12
Student:Srđan Vujašević 11424
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 C1 = M1 M2 M4 M5 M7C2 = M1 M3 M4 M6 M7C3 = M2 M3 M4 M8C4 = M5 M6 M7 M8gde 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 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 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
d7 d6 d5 p3 d3 d2 d1d4 p2 d0 p1 p0
Student:Srđan Vujašević 11424
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
12 pmm
Student:Srđan Vujašević 11424
Hamingov kôd – strana 4
- parity bitovi su 1,2,4,8, ... (P1,P2,P3,P4)
3 = 1+25 = 1+46 = 2+4 P1 proverava bitove 3, 5, 7, 9, 117 = 1+2+4 P2 proverava bitove 3,6,7,10,119 = 1+8 P4 proverava bitove 5,6,7,1210 =2+8 P8 proverava bitove 9,10,11,1211 = 1+2+812 = 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
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
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
12 k
12 k
Student:Srđan Vujašević 11424
Blok šema sistema sa Hamingovim kodiranjem – strana 7
Generatorkoda Latch LatchLatch
Pobudnigenerator
Pobudnigenerator
Latch Latchmm m m+ +p p
Korektor
Blok zaproveru
m+p
Dekoder
m m m
p
2p
mm ++ pp
Hammingov enkoderUlazna sekvencaod m bitova
Pozicijagreške
Prenosnikanal
Flaggreške
Dvostrukagreška
Izlazna sekvencaod m bitovaHammingov dekoder
Serijskiu
paralelni
Paralelniu
serijski
Student:Srđan Vujašević 11424
Realizacija Hamingovog koder/dekoder u VHDL-u - strana 1
Hamingov koder
datain(7:0) hamout(11:0)
U1
hamenc
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 p0END hamenc;
Student:Srđan Vujašević 11424
Realizacija Hamingovog koder/dekoder u VHDL-u - strana 2
Hamingov dekoder
hamin(11:0) dataout(7:0)
error_flag
error_pos(3:0)
p
U1
hamdec
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
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 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 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.
Student:Srđan Vujašević 11424
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ć 11424
Rezultati sinteze i implementacije - strana 3- Sinteza Hamingovog dekodera
Student:Srđan Vujašević 11424
Rezultati sinteze i implementacije - strana 4 - Implementacija Hamingovog koderaSintezu kodera vršili smo na FPGA čipovima serije SPARTAN2 pod oznakom xc2s15 vq100.Design Summary--------------Number of errors: 0Number of warnings: 0Logic 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 logicTotal 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: 30Additional 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
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ć 11424
Rezultati sinteze i implementacije - strana 7 - Implementacija Hamingovog kodera
Student:Srđan Vujašević 11424
Rezultati sinteze i implementacije - strana 8- Implementacija Hamingovog dekoderaSintezu dekodera vršili smo na FPGA čipovima serije SPARTAN2 pod oznakom xc2s15 vq100.Design Summary--------------Number of errors: 0Number of warnings: 0Logic 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 logicTotal 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: 162Additional JTAG gate count for IOBs: 1,248Peak 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
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ć 11424
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. 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
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 za listing Testbench-a, hamdec_TB.vhd.
Student:Srđan Vujašević 11424