electronics forum

Rules | Recent posts | topic RSS | Search | Register  | Log in

Query in 32 bit Parallel CRC...urgent


Post new topic  Reply to topic    EDAboard.com Forum Index -> PLD, SPLD, GAL, CPLD, FPGA Design -> Query in 32 bit Parallel CRC...urgent
Author Message
pratibha m d



Joined: 01 Mar 2007
Posts: 223
Helped: 148


Post09 Apr 2007 11:40   

Query in 32 bit Parallel CRC...urgent


Hi,

Can anyone plz tell me the theory behind 32bit parallel CRC? i m not getting the basis on which the 32 bit CRC is being calculated in the code which is being generated in the CRC tool of wesite www.easics.com.



library IEEE;
use IEEE.std_logic_1164.all;

package PCK_CRC32_D8 is

-- polynomial: (0 1 2 4 5 7 8 10 11 12 16 22 23 26 32)
-- data width: 8
-- convention: the first serial data bit is D(7)
function nextCRC32_D8
( Data: std_logic_vector(7 downto 0);
CRC: std_logic_vector(31 downto 0) )
return std_logic_vector;

end PCK_CRC32_D8;

library IEEE;
use IEEE.std_logic_1164.all;

package body PCK_CRC32_D8 is

-- polynomial: (0 1 2 4 5 7 8 10 11 12 16 22 23 26 32)
-- data width: 8
-- convention: the first serial data bit is D(7)
function nextCRC32_D8
( Data: std_logic_vector(7 downto 0);
CRC: std_logic_vector(31 downto 0) )
return std_logic_vector is

variable D: std_logic_vector(7 downto 0);
variable C: std_logic_vector(31 downto 0);
variable NewCRC: std_logic_vector(31 downto 0);

begin

D := Data;
C := CRC;

NewCRC(0) := D(6) xor D(0) xor C(24) xor C(30);
NewCRC(1) := D(7) xor D(6) xor D(1) xor D(0) xor C(24) xor C(25) xor
C(30) xor C(31);
NewCRC(2) := D(7) xor D(6) xor D(2) xor D(1) xor D(0) xor C(24) xor
C(25) xor C(26) xor C(30) xor C(31);
NewCRC(3) := D(7) xor D(3) xor D(2) xor D(1) xor C(25) xor C(26) xor
C(27) xor C(31);
NewCRC(4) := D(6) xor D(4) xor D(3) xor D(2) xor D(0) xor C(24) xor
C(26) xor C(27) xor C(2Cool xor C(30);
NewCRC(5) := D(7) xor D(6) xor D(5) xor D(4) xor D(3) xor D(1) xor
D(0) xor C(24) xor C(25) xor C(27) xor C(2Cool xor C(29) xor
C(30) xor C(31);
NewCRC(6) := D(7) xor D(6) xor D(5) xor D(4) xor D(2) xor D(1) xor
C(25) xor C(26) xor C(2Cool xor C(29) xor C(30) xor C(31);
NewCRC(7) := D(7) xor D(5) xor D(3) xor D(2) xor D(0) xor C(24) xor
C(26) xor C(27) xor C(29) xor C(31);
NewCRC(Cool := D(4) xor D(3) xor D(1) xor D(0) xor C(0) xor C(24) xor
C(25) xor C(27) xor C(2Cool;
NewCRC(9) := D(5) xor D(4) xor D(2) xor D(1) xor C(1) xor C(25) xor
C(26) xor C(2Cool xor C(29);
NewCRC(10) := D(5) xor D(3) xor D(2) xor D(0) xor C(2) xor C(24) xor
C(26) xor C(27) xor C(29);
NewCRC(11) := D(4) xor D(3) xor D(1) xor D(0) xor C(3) xor C(24) xor
C(25) xor C(27) xor C(2Cool;
NewCRC(12) := D(6) xor D(5) xor D(4) xor D(2) xor D(1) xor D(0) xor
C(4) xor C(24) xor C(25) xor C(26) xor C(2Cool xor C(29) xor
C(30);
NewCRC(13) := D(7) xor D(6) xor D(5) xor D(3) xor D(2) xor D(1) xor
C(5) xor C(25) xor C(26) xor C(27) xor C(29) xor C(30) xor
C(31);
NewCRC(14) := D(7) xor D(6) xor D(4) xor D(3) xor D(2) xor C(6) xor
C(26) xor C(27) xor C(2Cool xor C(30) xor C(31);
NewCRC(15) := D(7) xor D(5) xor D(4) xor D(3) xor C(7) xor C(27) xor
C(2Cool xor C(29) xor C(31);
NewCRC(16) := D(5) xor D(4) xor D(0) xor C(Cool xor C(24) xor C(2Cool xor
C(29);
NewCRC(17) := D(6) xor D(5) xor D(1) xor C(9) xor C(25) xor C(29) xor
C(30);
NewCRC(1 := D(7) xor D(6) xor D(2) xor C(10) xor C(26) xor C(30) xor
C(31);
NewCRC(19) := D(7) xor D(3) xor C(11) xor C(27) xor C(31);
NewCRC(20) := D(4) xor C(12) xor C(2;
NewCRC(21) := D(5) xor C(13) xor C(29);
NewCRC(22) := D(0) xor C(14) xor C(24);
NewCRC(23) := D(6) xor D(1) xor D(0) xor C(15) xor C(24) xor C(25) xor
C(30);
NewCRC(24) := D(7) xor D(2) xor D(1) xor C(16) xor C(25) xor C(26) xor
C(31);
NewCRC(25) := D(3) xor D(2) xor C(17) xor C(26) xor C(27);
NewCRC(26) := D(6) xor D(4) xor D(3) xor D(0) xor C(1 xor C(24) xor
C(27) xor C(2 xor C(30);
NewCRC(27) := D(7) xor D(5) xor D(4) xor D(1) xor C(19) xor C(25) xor
C(2Cool xor C(29) xor C(31);
NewCRC(2 := D(6) xor D(5) xor D(2) xor C(20) xor C(26) xor C(29) xor
C(30);
NewCRC(29) := D(7) xor D(6) xor D(3) xor C(21) xor C(27) xor C(30) xor
C(31);
NewCRC(30) := D(7) xor D(4) xor C(22) xor C(2Cool xor C(31);
NewCRC(31) := D(5) xor C(23) xor C(29);

return NewCRC;

end nextCRC32_D8;

end PCK_CRC32_D8;

Waiting for ur response.Plz help me.

Thanks
Back to top
Google
AdSense
Google Adsense




Post09 Apr 2007 11:40   

Ads




Back to top
yaofan



Joined: 09 Apr 2007
Posts: 1


Post09 Apr 2007 12:04   

Re: Query in 32 bit Parallel CRC...urgent


The reference design is available on the Xilinx web site:

xapp209.zip

Added after 3 minutes:

IEEE 802.3 Cyclic Redundancy Check
Author: Chris Borrelli

U can search this document on xilinx web site.

there is clear explanation for CRC.
Back to top
sree205



Joined: 13 Mar 2006
Posts: 421
Helped: 30


Post10 Apr 2007 13:20   

Query in 32 bit Parallel CRC...urgent


I think its like carry look ahead adder, where we project the value before hand using combo logic.

lets assume that we have a 8 bit data. if we can calculate which data bits will be used to calculate a given bit of checksum, those will be XORed and given as one assign statement.

if crc(1) = d1^d1^d2^d3, then, when we xor d1 and d1, it is the same as XORing 0 to the term.

when we xor 0 to a variable, we get the variable itself. so, terms which occur twice are discarded and the rest are used to compute the value.

hope i'm right.
Back to top
Arabic versionBulgarian versionCatalan versionCzech versionDanish versionGerman versionGreek versionEnglish versionSpanish versionFinnish versionFrench versionHindi versionCroatian versionIndonesian versionItalian versionHebrew versionJapanese versionKorean versionLithuanian versionLatvian versionDutch versionNorwegian versionPolish versionPortuguese versionRomanian versionRussian versionSlovak versionSlovenian versionSerbian versionSwedish versionTagalog versionUkrainian versionVietnamese versionChinese version
Post new topic  Reply to topic    EDAboard.com Forum Index -> PLD, SPLD, GAL, CPLD, FPGA Design -> Query in 32 bit Parallel CRC...urgent
Page 1 of 1 All times are GMT + 1 Hour
Similar topics:
Query in Parallel CRC(urgent) (1)
Help needed in Parallel CRC implementation in VHDL(urgent) (4)
Parallel CRC (12)
Hardware for Reverse CCITT CRC parallel calculation (1)
Help: Implementing 4 bit CRC Circuit (5)
URGENT CRC Calculation required.............. (2)
algorthm for implementing CRC on 8 bit data. (3)
pls send me documents related to CRC 32 bit hardware imple (1)
Ethernet MAC ..urgent query (1)
Query om Pressure Transducer. Plz Help..! Its urgent (4)


Abuse || Administrator || Moderators || Support us || sitemap
topic RSS