Checksum i VHDL

O

Oana

Guest
Hei alle sammen,

Hvem som helst kan fortelle meg hvor kanne jeg gjennomføre en kontrollsum i VHDL.
Takk!
Oana

 
Ta en titt på denne tråden her:
http://www.edaboard.com/viewtopic.php?t=301508&highlight=ethernet

 
checksum er liksom forskjellig fra CRC ....

prosedyre for sjekksum er:
1.stykke inn data i 16-bits skiver
2.oppsummerer 16-bits data starter fra 1. Hvis overflow, legg 1 i summen
3.hvis de gjenstående dataene har bare 8-bits, pad x "00" for å avslutte sin til å bli 16-bit

Jeg kan ikke høres det klart, nedenfor er en del av eksempel på VHDL kode, dette er ikke compilable, bare for rask forståelse av sjekksum regnestykket:

in16b = unsigned (15 downto 0)
sum = unsigned (16 downto 0), initial = (OTHERS => '0 ')
Resultatet = std_logic_vector (15 downto 0)
ps: når behandlingen checksum, resultat = x "ffff" betyr riktig, når du genererer checksum, resultat = beregnet sjekksum

IF (cs = '1 ') then
sum: = sum in16b;
IF (sum (16) = '1 ') then
sum: = '0 '& sum (15 downto 0) "1";
END IF;
END IF;
IF (finsih = '1 ') then
For i in 0 til 15 LOOP
resultat (i) <= NOT (std_logic (sum (i)));
END LOOP;
END IF;

 
Tusen takk Childs!
Dette hjelper meg.
Og hvis det var å implementere Barnekonvensjonen, hvordan ville det se ut?

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />Jeg så for Barnekonvensjonen algoritmen, men jeg coudn't finne et klart svar ....

Takk!

 
link levert av benradu har mye informasjon om koden for CRC ...

btw Jeg antar at u ment å CRC-32 som brukes for Ethernet.Ifølge 802,3 standard-spesifikasjonen, pkt. 3.2.8 - Ramme Chksum Sequence (FCS) felt:

"..... Kodingen er definert ved følgende generere polynom.
G (x) = x32 X26 x23 x22 x16 x12 x11 x10 x8 x7 x5 x4 x2 x 1
Matematisk CRC verdi tilsvarende en gitt ramme er definert ved følgende prosedyre:
a) De første 32 bits av rammen kompletteres.
b) n bit av rammen blir da regnet som koeffisientene til et polynom M (x) av grad n 1.
(Den første bit av Destinasjon Adresse feltet tilsvarer x (n 1) sikt og den siste bit av datafeltet tilsvarer x0 sikt.)
c) M (x) er multiplisert med x32 og delt av G (x), produsere en resten R (x) av grad ≤ 31.
d) Koeffisientene av R (x) anses å være en 32-bits sekvens.
e) bit sekvensen er suppleres og resultatet er CRC.
Den 32 bits av CRC-verdien er plassert i rammen sjekke sekvensen feltet slik at X31 begrepet er lengst til venstre bit av den første oktett, og x0 sikt er det riktige mest bit av den siste oktett.(The biter av CRC er dermed overføres i den rekkefølgen X31, 30,, x1, x0.) Se referanse [B32].

Håper du kan få klarere bilde ....

 

Welcome to EDABoard.com

Sponsor

Back
Top