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

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

Jan 28, 2016

Download

Documents

Zoie

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 Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

Mikroprocesorski sistemiElektronski fakultet u Nišu

HAMINGOV KODER/DEKODER

Student:Srđan Vujašević 11424

Page 2: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 3: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 4: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 5: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 6: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 7: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

Pojam Hamingove distance – strana 2

Ilustracija kôdne distance:

000

001

101

100

111

110011

010

Student:Srđan Vujašević 11424

Page 8: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 9: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 10: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 11: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 12: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 13: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 14: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 15: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 16: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 17: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 18: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 19: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 20: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 21: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 22: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 23: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 24: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

Rezultati simulacije - strana 4

Kao još jedan primer, biće ilustrovan prenos sekvence podataka.

Student:Srđan Vujašević 11424

Page 25: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 26: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

Rezultati sinteze i implementacije - strana 2 - Sinteza Hamingovog kodera

Student:Srđan Vujašević 11424

Page 27: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

Rezultati sinteze i implementacije - strana 3- Sinteza Hamingovog dekodera

Student:Srđan Vujašević 11424

Page 28: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 29: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

Rezultati sinteze i implementacije - strana 5 - Implementacija Hamingovog kodera

Student:Srđan Vujašević 11424

Page 30: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

Rezultati sinteze i implementacije - strana 6 - Implementacija Hamingovog kodera

Student:Srđan Vujašević 11424

Page 31: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

Rezultati sinteze i implementacije - strana 7 - Implementacija Hamingovog kodera

Student:Srđan Vujašević 11424

Page 32: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 33: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

Rezultati sinteze i implementacije - strana 9 - Implementacija Hamingovog kodera

Student:Srđan Vujašević 11424

Page 34: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

Rezultati sinteze i implementacije - strana 10- Implementacija Hamingovog kodera

Student:Srđan Vujašević 11424

Page 35: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

Rezultati sinteze i implementacije - strana 11 - Implementacija Hamingovog kodera

Student:Srđan Vujašević 11424

Page 36: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 37: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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

Page 38: Mikroprocesorski sistemi Elektronski fakultet u Nišu HAMINGOV KODER/DEKODER

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