10 PUNTI per PROVARE CRC ........... CALCOLO

G

Guru59

Guest
Qual è la procedura esatta per il calcolo CRC
Il testo seguente è utilizzato in una cornice di RX Blocca OPENCORE 10Gdati [0] = 32'h04030201;dati [1] = 32'h02020605;dati [2] = 32'h06050403;dati [3] = 32'h55AA2E00;dati [4] = 32'hAA55AA55;dati [5] = 32'h55AA55AA;dati [6] = 32'hAA55AA55;dati [7] = 32'h55AA55AA;dati [8] = 32'hAA55AA55;dati [9] = 32'h55AA55AA;dati [10] = 32'hAA55AA55;dati [11] = 32'h55AA55AA;dati [12] = 32'hAA55AA55;dati [13] = 32'h55AA55AA;dati [14] = 32'hAA55AA55;
CRC = 32'hF620480D
La CRC è dato dal Opencore Persone ..........Come cerco di calcolare il CRC è venuta diverso ..............Ho usato il seguente codice per il calcolo CRC ........I CRC sono utilizzati con ingresso larghezza di 8 e 32 e 64 ...............
Ho un disperato bisogno del vostro aiuto .................
Grazie

 
Cosa polinomico stai usando?Ci sono molti polinomi per CRC calcoli ei risultati saranno diversi per ciascuno di essi.

 
Attached trovare un po 'di quick'n'dirt programma (exe & source) per il tuo esempio.
Il CRC è calcolato 0xF620480D
Il polinomio utilizzato è: 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: Non penso che ho bisogno di tutti i punti

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />Siamo spiacenti, ma è necessario il login per visualizzare questo attaccamento

 
Hi there ..............
La CRC calcolatrice del M! K è veramente buono ...............
Non ti preoccupare ci saranno molte persone qui a dire tutte le sciocchezze .....
Ma una cosa da gente ricorderete quando un post è un messaggio non si prendono in giro dicendo: "Mantenere il vostro Dieci punti" .........
è il nostro sito e siamo tutti qui per risolvere un problema e un altro ................
se il problema non può essere risolto da voi, basta chiedere i vostri dubbi o almeno di non rispondere .........
Grazie per tutti coloro che hanno seguito questo ...........................

Ho risolto il problema ..............

Ora che cosa avete bisogno è un file che è CRC32_D32 fronte easics ........... OK
avete per inserire i valori in ordine inverso ...................
Suppongo ..... dati [0] = 04030201
diventa 8040c020 ........
Di seguito è riportato il codice per la CRC e al di sotto di essa è la testbench
Il CRC valore, alla fine è ciò che si richiede F620480D////////////////////////////////////////////////// ////////////////////// / File: CRC32_D32.v/ / Date: Wed Mar 10

09:22:32 2007/ // / Copyright (C) 1999-2003 Easics NV./ / Il file sorgente può essere utilizzato e distribuito senza limitazioni/ / Diritto d'autore a condizione che tale dichiarazione non viene rimosso dal file/ / E che qualsiasi lavoro derivato originale contiene la dichiarazione sui diritti d'autore/ / E le relative responsabilità./ // / Questa fonte FILE VIENE FORNITO "COSÌ COM'È" E SENZA ALCUNA ESPRESSA/ / O GARANZIE IMPLICITE, INCLUDENDO, SENZA LIMITAZIONI, LE/ / LE GARANZIE DI COMMERCIABILITÀ E IDONEITÀ PER UNO SCOPO PARTICOLARE./ // / Oggetto: Verilog modulo che contiene una funzione synthesizable CRC/ / * Polinomico: (0 1 2 4 5 7 8 10 11 12 16 22 23 26 32)/ / * Dati larghezza: 32/ // / Info: strumenti (a) easics.be/ / Http://www.easics.com////////////////////////////////////////////////// /////////////////////
modulo crc32_D32 (DATA_IN, CLK, RESET, START, init, CRC_OUT, neg_crc, CRC);
input [31:0] DATA_IN;ingresso CLK;ingresso RESET;INIZIO ingresso;ingresso init;output [31:0] CRC_OUT;output [31:0] neg_crc;output [31:0] CRC;
reg [31:0] CRC_OUT;reg [31:0] neg_crc;reg [31:0] CRC;
sempre @ (posedge CLK)iniziareif (! RESET) cominciare/ / CRC_OUT = 32'h00;CRC_OUT = 32'hffffffff;fineelse if (init) cominciareCRC_OUT = 32'hffffffff;/ / CRC_OUT = 32'h00;fineelse if (START) cominciareCRC_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]);fine
fine
/ / Polinomico: (0 1 2 4 5 7 8 10 11 12 16 22 23 26 32)/ / Dati larghezza: 32/ / Convenzionali:

per la prima serie di dati bit D [31]funzione [31:0] nextCRC32_D32;
input [31:0] Dati;input [31:0] CRC;
reg [31:0] D;reg [31:0] C;reg [31:0] NewCRC;
iniziare
D = Dati;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;
fine
endfunction
endmodule
-------------------------------------------------- ---------------------------------

TESTBENCH
»comprendono" 32crc.v "
modulo crc_tb ();
reg [31:0] DATA_IN;reg CLK;reg RESET;reg init;reg INIZIO;filo [31:0] CRC_OUT;filo [31:0] neg_crc;filo [31:0] CRC;
crc32_D32 u1 (DATA_IN, CLK, RESET, START, init, CRC_OUT, neg_crc, CRC);
inizialeCLK <= 1'b1;sempre# 5 CLK <= ~ CLK;
inizialeiniziareRESET <= 1'b0;# 10 RESET <= 1'b1;fine

inizialeiniziareinit <= 1'b0;# 10 init <= 1'b1;# 10 init <= 1'b0;fine
inizialeiniziareINIZIO <= 1'b0;# 30 INIZIO <= 1'b1;# 150 INIZIO <= 1'b0;fine
inizialeiniziareDATA_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;fineendmoduleGodetevi ............................

 

Welcome to EDABoard.com

Sponsor

Back
Top