10 POINTS untuk membuktikan CRC ........... PERHITUNGAN

G

Guru59

Guest
Apakah prosedur yang tepat untuk menghitung CRC
Berikut ini adalah kerangka yang digunakan di Blok dari OPENCORE RX 10Gdata [0] = 32'h04030201;data [1] = 32'h02020605;data [2] = 32'h06050403;data [3] = 32'h55AA2E00;data [4] = 32'hAA55AA55;data [5] = 32'h55AA55AA;data [6] = 32'hAA55AA55;data [7] = 32'h55AA55AA;data [8] = 32'hAA55AA55;data [9] = 32'h55AA55AA;data [10] = 32'hAA55AA55;data [11] = 32'h55AA55AA;data [12] = 32'hAA55AA55;data [13] = 32'h55AA55AA;data [14] = 32'hAA55AA55;
CRC = 32'hF620480D
KHA diberikan adalah dari Opencore Orang ..........Ketika saya mencoba untuk menghitung CRC itu datang berbeda ..............i menggunakan Kode berikut untuk menghitung CRC ........i telah menggunakan input KHA dengan lebar dari 8 serta 32 serta 64 ...............
Aku Desperately Need Help Anda .................
Terima kasih

 
Polinomial apa yang Anda gunakan?Ada banyak polinomial untuk CRC perhitungan dan hasilnya akan berbeda untuk masing-masing.

 
Terlampir menemukan quick'n'dirt sedikit program (exe & source) untuk contoh.
CRC yang dihitung 0xF620480D
Polinom digunakan adalah: 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: Saya tidak berpikir bahwa saya butuh poin

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />
 
Hi there ..............
Kalkulator KHA diberikan oleh M! K adalah benar-benar baik ...............
Jangan khawatir akan ada banyak orang di sini mengatakan semua omong kosong .....
Tetapi orang-orang satu hal remenber adalah ketika satu posting pesan tidak mengolok-olok itu mengatakan "Jangan Sepuluh poin" .........
adalah situs kami dan kami semua berada di sini untuk menyelesaikan satu masalah lain ................
jika masalah tidak dapat diselesaikan oleh Anda,, tanyakan saja keraguan atau minimal Anda tidak membalas .........
Terima kasih untuk semua orang yang mengikuti ........................... ini

i telah memecahkan masalah Anda ..............

Sekarang apa yang Anda butuhkan adalah sebuah file yang CRC32_D32 fron easics ........... OK
Anda harus memasukkan nilai-nilai dalam urutan terbalik ...................
kira ..... data [0] = 04.030.201
menjadi ........ 8040c020
Berikut ini adalah kode CRC dan di bawahnya adalah testbench
Nilai CRC di akhir adalah apa yang Anda butuhkan F620480D////////////////////////////////////////////////// ////////////////////// / File: CRC32_D32.v/ / Date: Sat Mar 10 09:22:32 2007// / Copyright (C) 1999-2003 Easics NV./ / File sumber ini dapat digunakan dan didistribusikan tanpa batasan/ / Asalkan pernyataan hak cipta ini tidak dihilangkan dari file/ / Dan bahwa karya turunan berisi pemberitahuan hak cipta yang asli/ / Dan yang berkaitan disclaimer.// / INI SUMBER FILE INI DISEDIAKAN "SEBAGAIMANA ADANYA" DAN TANPA EXPRESS/ / ATAU JAMINAN TERSIRAT, TERMASUK, NAMUN TIDAK TERBATAS, TERSIRAT/ / JAMINAN MERCHANTIBILITY DAN KESESUAIAN UNTUK TUJUAN TERTENTU.// / Tujuan: Verilog modul yang berisi fungsi CRC synthesizable/ / * Polinomial: (0 1 2 4 5 7 8 10 11 12 16 22 23 26 32)/ / * Data width: 32// / Info: tools (at) easics.be/ / Http://www.easics.com////////////////////////////////////////////////// /////////////////////
modul crc32_D32 (DATA_IN, CLK, RESET, START, init, CRC_OUT, neg_crc, CRC);
input [31:0] DATA_IN;masukan CLK;input RESET;input START;masukan 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;
selalu @ (posedge CLK)mulaiif (! RESET) mulai/ / CRC_OUT = 32'h00;CRC_OUT = 32'hffffffff;akhirelse if (init) mulaiCRC_OUT = 32'hffffffff;/ / CRC_OUT = 32'h00;akhirelse if (START) mulaiCRC_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]);akhir
akhir
/ / Polinomial: (0 1 2 4 5 7 8 10 11 12 16 22 23 26 32)/ / Data width: 32/ / Konvensi: yang pertama bit data serial D [31]fungsi [31:0] nextCRC32_D32;
input [31:0] Data;input [31:0] CRC;
reg [31:0] D;reg [31:0] C;reg [31:0] NewCRC;
mulai
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;
akhir
endfunction
endmodule
-------------------------------------------------- ---------------------------------

TESTBENCH
`termasuk" 32crc.v "
modul crc_tb ();
reg [31:0] DATA_IN;reg CLK;reg RESET;reg init;reg START;kawat [31:0] CRC_OUT;kawat [31:0] neg_crc;kawat [31:0] CRC;
crc32_D32 u1 (DATA_IN, CLK, RESET, START, init, CRC_OUT, neg_crc, CRC);
awalCLK <= 1'b1;selalu# 5 CLK <= ~ CLK;
awalmulaiRESET <= 1'b0;# 10 RESET <= 1'b1;akhir

awalmulaiinit <= 1'b0;# 10 init <= 1'b1;# 10 init <= 1'b0;akhir
awalmulaiSTART <= 1'b0;# 30 START <= 1'b1;# 150 START <= 1'b0;akhir
awalmulaiDATA_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;akhirendmoduleNikmati ............................

 

Welcome to EDABoard.com

Sponsor

Back
Top