10 pistettä Proving CRC ........... LASKEMINEN

G

Guru59

Guest
Mikä on tarkka menettely laskea CRC
Seuraavassa on kehys käytetään RX Block on OPENCORE 10Gtiedot [0] = 32'h04030201;tiedot [1] = 32'h02020605;tiedot [2] = 32'h06050403;tiedot [3] = 32'h55AA2E00;tiedot [4] = 32'hAA55AA55;tiedot [5] = 32'h55AA55AA;tiedot [6] = 32'hAA55AA55;tiedot [7] = 32'h55AA55AA;tiedot [8] = 32'hAA55AA55;tietojen [9] = 32'h55AA55AA;tiedot [10] = 32'hAA55AA55;tiedot [11] = 32'h55AA55AA;tiedot [12] = 32'hAA55AA55;tiedot [13] = 32'h55AA55AA;tiedot [14] = 32'hAA55AA55;
CRC = 32'hF620480D
CRC sillä, että Opencore Ihmiset ..........Kuten i yrittää laskea CRC se on tulossa eri ..............i-kirjain käytetty seuraavan koodin laskentatekijät CRC ........Olen käyttänyt CRC joiden ottovirta leveys 8 ja 32 sekä 64 ...............
I Desperately tarvitsemme apuasi .................
Kiitos

 
Mitä polynomi käytät?On olemassa monia polynomials varten CRC laskelmat ja tulokset vaihtelevat kunkin niistä.

 
Attached löytää vähän quick'n'dirt ohjelma (exe & source) sinun esimerkki.
Laskettu CRC on 0xF620480D
Polynomisella käytetään: x ^ 32 x ^ 26 x ^ 23 x ^ 22 x ^ 16 x ^ 12 x ^ 11 x ^ 10 x ^ 8 x ^ 7 x ^ 5 x ^ 4 x ^ 2 x 1

BTW: En usko, että minun tarvitsee kaikki kohdat

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />Anteeksi, mutta sinun on kirjautumistunnuksen nähdäksesi tämän liitäntävaatimuksia

 
Moi ..............
CRC laskin antaa M! K on todella hyvä ...............
Älä huolestu, monet ihmiset täällä sano pötyä .....
Mutta ihmiset yksi asia remenber on, kun yksi lähettää viesti ei tee pilaa se, että "Pidä Kymmenen pistettä" .........
se on sivustomme ja me kaikki olemme täällä ratkaista yksi ja toinen ongelma ................
jos ongelmaa ei voida ratkaista teitä, juuri kysy epäilyjä tai atleast eivät vastaa .........
Kiitos kaikille, jotka tämän jälkeen ...........................

i ovat ratkaisseet ongelman ..............

Nyt, mitä vaatia on CRC32_D32 tiedosto, joka on rajoja easics ........... OK
sinun täytyy syöttää arvot käänteisessä järjestyksessä ...................
Oletan ..... tiedot [0] = 04030201
tulee ........ 8040c020
Seuraavassa on koodi CRC ja sen alapuolella on testbench
CRC-arvo lopussa on mitä vaatia F620480D////////////////////////////////////////////////// ////////////////////// / File: CRC32_D32.v/ / Päivämäärä: Sat maaliskuu 10 09:22:32 2007/ // / Copyright (C) 1999-2003 Easics NV./ / Tämä lähdetiedostoa saa käyttää ja jakaa rajoituksetta/ / Jos tämä tekijänoikeutta julkilausuma ei poisteta tiedosto/ / Ja että kaikki johdannainen työ sisältää alkuperäisen tekijänoikeushuomautus/ / Ja siihen liittyvät vastuuvapauslauseke./ // / Tämä SOURCE FILE TOIMITETAAN "SELLAISENAAN" JA ILMAN MITÄÄN NIMENOMAISIA/ / TAI TAKUUT,

MUKAAN LUKIEN RAJOITUKSETTA implisiittistä/ / TAKUISTA OF MERCHANTIBILITY JA SOPIVUUDESTA TIETTYYN TARKOITUKSEEN./ // / Tarkoitus: Verilog moduuli sisältää synthesizable CRC-toiminto/ / * Polynomi: (0 1 2 4 5 7 8 10 11 12 16 22 23 26 32)/ / * Tiedot leveys: 32/ // / Info: tools (at) easics.be/ / Http://www.easics.com////////////////////////////////////////////////// /////////////////////
moduuli crc32_D32 (DATA_IN, CLK, RESET, START, init, CRC_OUT, neg_crc, CRC);
input [31:0] DATA_IN;panos CLK;panos RESET;input START;panos init;tuotos [31:0] CRC_OUT;tuotos [31:0] neg_crc;tuotos [31:0] CRC;
reg [31:0] CRC_OUT;reg [31:0] neg_crc;reg [31:0] CRC;
aina @ (posedge CLK)aloittaaif (! RESET) alkaa/ / CRC_OUT = 32'h00;CRC_OUT = 32'hffffffff;loppuelse if (init) aloittaaCRC_OUT = 32'hffffffff;/ / CRC_OUT = 32'h00;loppuelse if (START) alkaaCRC_OUT = nextCRC32_D32 (DATA_IN, CRC_OUT);neg_crc = ~ (CRC_OUT);CRC = (neg_crc [0], neg_crc [1], neg_crc [2], neg_crc [3], neg_crc [4], neg_crc [5], neg_crc [6], neg_crc [7], neg_crc [8], neg_crc [ 9], neg_crc [10]neg_crc [11], neg_crc [12], neg_crc [13], neg_crc [14], neg_crc [15], neg_crc [16], neg_crc [17], neg_crc [18], neg_crc [19], neg_crc [20]neg_crc [21], neg_crc [22], neg_crc [23], neg_crc [24], neg_crc [25], neg_crc [26], neg_crc [27], neg_crc [28], neg_crc [29], neg_crc [30]neg_crc [31]);loppu
loppu
/ / Polynomi: (0 1 2 4 5 7 8 10 11 12 16 22 23 26 32)/ / Data leveys: 32/ / Convention: ensimmäinen sarjatuotantona tiedot bittinen D [31]toiminto [31:0] nextCRC32_D32;
input [31:0] Tiedot;input [31:0] CRC;
reg [31:0] D;reg [31:0] C;reg [31:0] NewCRC;
aloittaa
D = Data;C = CRC;
NewCRC [0] = D [31] ^ D [30] ^ D [29] ^ D [28] ^ D [26] ^ D [25] ^ D [24] ^D [16] ^ D [12] ^ D [10] ^ D [9] ^ D [6] ^ D [0] ^ C [0] ^C [6] ^ C [9] ^ C [10] ^ C [12] ^ C [16] ^ C [24] ^ C [25] ^C [26] ^ C [28] ^ C [29] ^ C [30] ^ C [31];NewCRC [1] = D [28] ^ D [27] ^ D [24] ^ D [17] ^ D [16] ^ D [13] ^ D [12] ^D [11] ^ D [9] ^ D [7] ^ D [6] ^ D [1] ^ D [0] ^ C [0] ^ C [1] ^C [6] ^ C [7] ^ C [9] ^ C [11] ^ C [12] ^ C [13] ^ C [16] ^C [17] ^ C [24] ^ C [27] ^ C [28];NewCRC [2] = D [31] ^ D [30] ^ D [26] ^ D [24] ^ D [18] ^ D [17] ^ D [16] ^D [14] ^ D [13] ^ D [9] ^ D [8] ^ D [7] ^ D [6] ^ D [2] ^D [1] ^ D [0] ^ C [0] ^ C [1] ^ C [2] ^ C [6] ^ C [7] ^ C [8] ^C [9] ^ C [13] ^ C [14] ^ C [16] ^ C [17] ^ C [18] ^ C [24] ^C [26] ^ C [30] ^ C [31];NewCRC [3] = D [31] ^ D [27] ^ D [25] ^ D [19] ^ D [18] ^ D [17] ^ D [15] ^D [14] ^ D [10] ^ D [9] ^ D [8] ^ D [7] ^ D [3] ^ D [2] ^D [1] ^ C [1] ^ C [2] ^ C [3] ^ C [7] ^ C [8] ^ C [9] ^ C [10] ^C [14] ^ C [15] ^ C [17] ^ C [18] ^ C [19] ^ C [25] ^ C [27] ^C [31];NewCRC [4] = D [31] ^ D [30] ^ D [29] ^ D [25] ^ D [24] ^ D [20] ^ D [19] ^D [18] ^ D [15] ^ D [12] ^ D [11] ^ D [8] ^ D [6] ^ D [4] ^D [3] ^ D [2] ^ D [0] ^ C [0] ^ C [2] ^ C [3] ^ C [4] ^ C [6] ^C [8] ^ C [11] ^ C [12] ^ C [15] ^ C [18] ^ C [19] ^ C [20] ^C [24] ^ C [25] ^ C [29] ^ C [30] ^ C [31];NewCRC [5] = D [29] ^ D [28] ^ D [24] ^ D [21] ^ D [20] ^ D [19] ^ D [13] ^D [10] ^ D [7] ^ D [6] ^ D [5] ^ D [4] ^ D [3] ^ D [1] ^ D [0] ^C [0] ^ C [1] ^ C [3] ^ C [4] ^ C [5] ^ C [6] ^ C [7] ^ C [10] ^C [13] ^ C [19] ^ C [20] ^ C [21] ^ C [24] ^ C [28] ^ C [29];NewCRC [6] = D [30] ^ D [29] ^ D [25] ^ D [22] ^ D [21] ^ D [20] ^ D [14] ^D [11] ^ D [8] ^ D [7] ^ D [6] ^ D [5] ^ D [4] ^ D [2] ^ D [1] ^C [1] ^ C [2] ^ C [4] ^ C [5] ^ C [6] ^ C [7] ^ C [8] ^ C [11] ^C [14] ^ C [20] ^ C [21] ^ C [22] ^ C [25] ^ C [29] ^ C [30];NewCRC [7] = D [29] ^ D [28] ^ D [25] ^ D [24] ^ D [23] ^ D [22] ^ D [21] ^D [16] ^ D [15] ^ D [10] ^ D [8] ^ D [7] ^ D [5] ^ D [3] ^D [2] ^ D [0] ^ C [0] ^ C [2] ^ C [3] ^ C [5] ^ C [7] ^ C [8] ^C [10] ^ C [15] ^ C [16] ^ C [21] ^ C [22] ^ C [23] ^ C [24] ^C [25] ^ C [28] ^ C [29];NewCRC [8] = D [31] ^ D [28] ^ D [23] ^ D [22] ^ D [17] ^ D [12] ^ D [11] ^D [10] ^ D [8] ^ D [4] ^ D [3] ^ D [1] ^ D [0] ^ C [0] ^ C [1] ^C [3] ^ C [4] ^ C [8] ^ C [10] ^ C [11] ^ C [12] ^ C [17] ^C [22] ^ C [23] ^ C [28] ^ C [31];NewCRC [9] = D [29] ^ D [24] ^ D [23] ^ D [18] ^ D [13] ^ D [12] ^ D [11] ^D [9] ^ D [5] ^ D [4] ^ D [2] ^ D [1] ^ C [1] ^ C [2] ^ C [4] ^C [5] ^ C [9] ^ C [11] ^ C [12] ^ C [13] ^ C [18] ^ C [23] ^C [24] ^ C [29];NewCRC [10] = D [31] ^ D [29] ^ D [28] ^ D [26] ^ D [19] ^ D [16] ^ D [14] ^D [13] ^ D [9] ^ D [5] ^ D [3] ^ D [2] ^ D [0] ^ C [0] ^ C [2] ^C [3] ^ C [5] ^ C [9] ^ C [13] ^ C [14] ^ C [16] ^ C [19] ^C [26] ^ C [28] ^ C [29] ^ C [31];NewCRC [11] = D [31] ^ D [28] ^ D [27] ^ D [26] ^ D [25] ^ D [24] ^ D [20] ^D [17] ^ D [16] ^ D [15] ^ D [14] ^ D [12] ^ D [9] ^ D [4] ^D [3] ^ D [1] ^ D [0] ^ C [0] ^ C [1] ^ C [3] ^ C [4] ^ C [9] ^C [12] ^ C [14] ^ C [15] ^ C [16] ^ C [17] ^ C [20] ^ C [24] ^C [25] ^ C [26] ^ C [27] ^ C [28] ^ C [31];NewCRC [12] = D [31] ^ D [30] ^ D [27] ^ D [24] ^ D [21] ^ D [18] ^ D [17] ^D [15] ^ D [13] ^ D [12] ^ D [9] ^ D [6] ^ D [5] ^ D [4] ^D [2] ^ D [1] ^ D [0] ^ C [0] ^ C [1] ^ C [2] ^ C [4] ^ C [5] ^C [6] ^ C [9] ^ C [12] ^ C [13] ^ C [15] ^ C [17] ^ C [18] ^C [21] ^ C [24] ^ C [27] ^ C [30] ^ C [31];NewCRC [13] = D [31] ^ D [28] ^ D [25] ^ D [22] ^ D [19] ^ D [18] ^ D [16] ^D [14] ^ D [13] ^ D [10] ^ D [7] ^ D [6] ^ D [5] ^ D [3] ^D [2] ^ D [1] ^ C [1] ^ C [2] ^ C [3] ^ C [5] ^ C [6] ^ C [7] ^C [10] ^ C [13] ^ C [14] ^ C [16] ^ C [18] ^ C [19] ^ C [22] ^C [25] ^ C [28] ^ C [31];NewCRC [14] = D [29] ^ D [26] ^ D [23] ^ D [20] ^ D [19] ^ D [17] ^ D [15] ^D [14] ^ D [11] ^ D [8] ^ D [7] ^ D [6] ^ D [4] ^ D [3] ^D [2] ^ C [2] ^ C [3] ^ C [4] ^ C [6] ^ C [7] ^ C [8] ^ C [11] ^C [14] ^ C [15] ^ C [17] ^ C [19] ^ C [20] ^ C [23] ^ C [26] ^C [29];NewCRC [15] = D [30] ^ D [27] ^ D [24] ^ D [21] ^ D [20] ^ D [18] ^ D [16] ^D [15] ^ D [12] ^ D [9] ^ D [8] ^ D [7] ^ D [5] ^ D [4] ^D [3] ^ C [3] ^ C [4] ^ C [5] ^ C [7] ^ C [8] ^ C [9] ^ C [12] ^C [15] ^ C [16] ^ C [18] ^ C [20] ^ C [21] ^ C [24] ^ C [27] ^C [30];NewCRC [16] = D [30] ^ D [29] ^ D [26] ^ D [24] ^ D [22] ^ D [21] ^ D [19] ^D [17] ^ D [13] ^ D [12] ^ D [8] ^ D [5] ^ D [4] ^ D [0] ^C [0] ^ C [4] ^ C [5] ^ C [8] ^ C [12] ^ C [13] ^ C [17] ^C [19] ^ C [21] ^ C [22] ^ C [24] ^ C [26] ^ C [29] ^ C [30];NewCRC [17] = D [31] ^ D [30] ^ D [27] ^ D [25] ^ D [23] ^ D [22] ^ D [20] ^D [18] ^ D [14] ^ D [13] ^ D [9] ^ D [6] ^ D [5] ^ D [1] ^C [1] ^ C [5] ^ C [6] ^ C [9] ^ C [13] ^ C [14] ^ C [18] ^C [20] ^ C [22] ^ C [23] ^ C [25] ^ C [27] ^ C [30] ^ C [31];NewCRC [18] = D [31] ^ D [28] ^ D [26] ^ D [24] ^ D [23] ^ D [21] ^ D [19] ^D [15] ^ D [14] ^ D [10] ^ D [7] ^ D [6] ^ D [2] ^ C [2] ^C [6] ^ C [7] ^ C [10] ^ C [14] ^ C [15] ^ C [19] ^ C [21] ^C [23] ^ C [24] ^ C [26] ^ C [28] ^ C [31];NewCRC [19] = D [29] ^ D [27] ^ D [25] ^ D [24] ^ D [22] ^ D [20] ^ D [16] ^D [15] ^ D [11] ^ D [8] ^ D [7] ^ D [3] ^ C [3] ^ C [7] ^C [8] ^ C [11] ^ C [15] ^ C [16] ^ C [20] ^ C [22] ^ C [24] ^C [25] ^ C [27] ^ C [29];NewCRC [20] = D [30] ^ D [28] ^ D [26] ^ D [25] ^ D [23] ^ D [21] ^ D [17] ^D [16] ^ D [12] ^ D [9] ^ D [8] ^ D [4] ^ C [4] ^ C [8] ^C [9] ^ C [12] ^ C [16] ^ C [17] ^ C [21] ^ C [23] ^ C [25] ^C [26] ^ C [28] ^ C [30];NewCRC [21] = D [31] ^ D [29] ^ D [27] ^ D [26] ^ D [24] ^ D [22] ^ D [18] ^D [17] ^ D [13] ^ D [10] ^ D [9] ^ D [5] ^ C [5] ^ C [9] ^C [10] ^ C [13] ^ C [17] ^ C [18] ^ C [22] ^ C [24] ^ C [26] ^C [27] ^ C [29] ^ C [31];NewCRC [22] = D [31] ^ D [29] ^ D [27] ^ D [26] ^ D [24] ^ D [23] ^ D [19] ^D [18] ^ D [16] ^ D [14] ^ D [12] ^ D [11] ^ D [9] ^ D [0] ^C [0] ^ C [9] ^ C [11] ^ C [12] ^ C [14] ^ C [16] ^ C [18] ^C [19] ^ C [23] ^ C [24] ^ C [26] ^ C [27] ^ C [29] ^ C [31];NewCRC [23] = D [31] ^ D [29] ^ D [27] ^ D [26] ^ D [20] ^ D [19] ^ D [17] ^D [16] ^ D [15] ^ D [13] ^ D [9] ^ D [6] ^ D [1] ^ D [0] ^C [0] ^ C [1] ^ C [6] ^ C [9] ^ C [13] ^ C [15] ^ C [16] ^C [17] ^ C [19] ^ C [20] ^ C [26] ^ C [27] ^ C [29] ^ C [31];NewCRC [24] = D [30] ^ D [28] ^ D [27] ^ D [21] ^ D [20] ^ D [18] ^ D [17] ^D [16] ^ D [14] ^ D [10] ^ D [7] ^ D [2] ^ D [1] ^ C [1] ^C [2] ^ C [7] ^ C [10] ^ C [14] ^ C [16] ^ C [17] ^ C [18] ^C [20] ^ C [21] ^ C [27] ^ C [28] ^ C [30];NewCRC [25] = D [31] ^ D [29] ^ D [28] ^ D [22] ^ D [21] ^ D [19] ^ D [18] ^D [17] ^ D [15] ^ D [11] ^ D [8] ^ D [3] ^ D [2] ^ C [2] ^C [3] ^ C [8] ^ C [11] ^ C [15] ^ C [17] ^ C [18] ^ C [19] ^C [21] ^ C [22] ^ C [28] ^ C [29] ^ C [31];NewCRC [26] = D [31] ^ D [28] ^ D [26] ^ D [25] ^ D [24] ^ D [23] ^ D [22] ^D [20] ^ D [19] ^ D [18] ^ D [10] ^ D [6] ^ D [4] ^ D [3] ^D [0] ^ C [0] ^ C [3] ^ C [4] ^ C [6] ^ C [10] ^ C [18] ^C [19] ^ C [20] ^ C [22] ^ C [23] ^ C [24] ^ C [25] ^ C [26] ^C [28] ^ C [31];NewCRC [27] = D [29] ^ D [27] ^ D [26] ^ D [25] ^ D [24] ^ D [23] ^ D [21] ^D [20] ^ D [19] ^ D [11] ^ D [7] ^ D [5] ^ D [4] ^ D [1] ^C [1] ^ C [4] ^ C [5] ^ C [7] ^ C [11] ^ C [19] ^ C [20] ^C [21] ^ C [23] ^ C [24] ^ C [25] ^ C [26] ^ C [27] ^ C [29];NewCRC [28] = D [30] ^ D [28] ^ D [27] ^ D [26] ^ D [25] ^ D [24] ^ D [22] ^D [21] ^ D [20] ^ D [12] ^ D [8] ^ D [6] ^ D [5] ^ D [2] ^C [2] ^ C [5] ^ C [6] ^ C [8] ^ C [12] ^ C [20] ^ C [21] ^C [22] ^ C [24] ^ C [25] ^ C [26] ^ C [27] ^ C [28] ^ C [30];NewCRC [29] = D [31] ^ D [29] ^ D [28] ^ D [27] ^ D [26] ^ D [25] ^ D [23] ^D [22] ^ D [21] ^ D [13] ^ D [9] ^ D [7] ^ D [6] ^ D [3] ^C [3] ^ C [6] ^ C [7] ^ C [9] ^ C [13] ^ C [21] ^ C [22] ^C [23] ^ C [25] ^ C [26] ^ C [27] ^ C [28] ^ C [29] ^ C [31];NewCRC [30] = D [30] ^ D [29] ^ D [28] ^ D [27] ^ D [26] ^ D [24] ^ D [23] ^D [22] ^ D [14] ^ D [10] ^ D [8] ^ D [7] ^ D [4] ^ C [4] ^C [7] ^ C [8] ^ C [10] ^ C [14] ^ C [22] ^ C [23] ^ C [24] ^C [26] ^ C [27] ^ C [28] ^ C [29] ^ C [30];NewCRC [31] = D [31] ^ D [30] ^ D [29] ^ D [28] ^ D [27] ^ D [25] ^ D [24] ^D [23] ^ D [15] ^ D [11] ^ D [9] ^ D [8] ^ D [5] ^ C [5] ^C [8] ^ C [9] ^ C [11] ^ C [15] ^ C [23] ^ C [24] ^ C [25] ^C [27] ^ C [28] ^ C [29] ^ C [30] ^ C [31];
nextCRC32_D32 = NewCRC;
loppu
endfunction
endmodule
-------------------------------------------------- ---------------------------------

TESTBENCH
"sisältää" 32crc.v "
moduuli crc_tb ();
reg [31:0] DATA_IN;reg CLK;reg RESET;reg init;reg START;lanka [31:0] CRC_OUT;lanka [31:0] neg_crc;lanka [31:0] CRC;
crc32_D32 u1 (DATA_IN, CLK, RESET, START, init, CRC_OUT, neg_crc, CRC);
alkuperäisenCLK <= 1'b1;aina# 5 CLK <= ~ CLK;
alkuperäisenaloittaaRESET <= 1'b0;# 10 RESET <= 1'b1;loppu

alkuperäisenaloittaainit <= 1'b0;# 10 init <= 1'b1;# 10 init <= 1'b0;loppu
alkuperäisenaloittaaSTART <= 1'b0;# 30 START <= 1'b1;# 150 START <= 1'b0;loppu
alkuperäisenaloittaaDATA_IN <= 32'h00000000;# 30 DATA_IN <= 32'h8040c020;# 10 DATA_IN <= 32'ha0604040;# 10 DATA_IN <= 32'hc020a060;# 10 DATA_IN <= 32'h007455aa;# 10 DATA_IN <= 32'hAA55AA55;# 10 DATA_IN <= 32'h55AA55AA;# 10 DATA_IN <= 32'hAA55AA55;# 10 DATA_IN <= 32'h55AA55AA;# 10 DATA_IN <= 32'hAA55AA55;# 10 DATA_IN <= 32'h55AA55AA;# 10 DATA_IN <= 32'hAA55AA55;# 10 DATA_IN <= 32'h55AA55AA;# 10 DATA_IN <= 32'hAA55AA55;# 10 DATA_IN <= 32'h55AA55AA;# 10 DATA_IN <= 32'hAA55AA55;loppuendmoduleNauti ............................

 

Welcome to EDABoard.com

Sponsor

Back
Top