# CRC polynomal calculation

Discussion in 'VHDL' started by Runar Gjelsvik, Apr 28, 2004.

1. ### Runar GjelsvikGuest

Hi,

I was looking at this site posted somewhere earlier:

http://www.easics.be/webtools/crctool

The thing I'm wondering is how do you calculate what polynom to use? I'm
planning on serially send a data frame of about 72 bits. I was thinking of
using manchester encoding and CRC.

I'm new at this CRC stuff, so I've got problems with understanding the
polynom. Hope anyone can understand my problem and help me.

Regards

Runar

Runar Gjelsvik, Apr 28, 2004

2. ### Kai Harrekilde-PetersenGuest

"Runar Gjelsvik" <> writes:

> I was looking at this site posted somewhere earlier:
>
> http://www.easics.be/webtools/crctool
>
> The thing I'm wondering is how do you calculate what polynom to use? I'm
> planning on serially send a data frame of about 72 bits. I was thinking of
> using manchester encoding and CRC.

The polynomials are selected from a pool of mathematically test
polynomials. In your case, I'd pick one of the wellknown ones,
e.g. the CRC32 used in Ethernet (and a lot of other places).

The longer CRC that you use, the better coverage (error detection) you
get. In general, the probability for an undetected single-bit error is
(2^N)-1:1 for an N bit CRC. This requires that the length of the frame
you send is less than 2^(N-1)*N bit, IIRC.

Regards,

Kai

Kai Harrekilde-Petersen, Apr 28, 2004

3. ### Allan HerrimanGuest

On Wed, 28 Apr 2004 18:29:29 GMT, Kai Harrekilde-Petersen
<> wrote:

>"Runar Gjelsvik" <> writes:
>
>> I was looking at this site posted somewhere earlier:
>>
>> http://www.easics.be/webtools/crctool
>>
>> The thing I'm wondering is how do you calculate what polynom to use? I'm
>> planning on serially send a data frame of about 72 bits. I was thinking of
>> using manchester encoding and CRC.

>
>The polynomials are selected from a pool of mathematically test
>polynomials. In your case, I'd pick one of the wellknown ones,
>e.g. the CRC32 used in Ethernet (and a lot of other places).
>
>The longer CRC that you use, the better coverage (error detection) you
>get.

>In general, the probability for an undetected single-bit error is
>(2^N)-1:1 for an N bit CRC. This requires that the length of the frame
>you send is less than 2^(N-1)*N bit, IIRC.

Any CRC will detect a single bit error in a frame of any length.

Even parity (equiv to 1 bit CRC) will detect a single bit error in
arbitrarily long frames.

I listed some CRC error detection properties here: