In article <
[email protected]>,
rickman <
[email protected]> writes:
>To do a serial CRC calculation requires a state machine to control
>it. A parallel CRC has to perform multiple xors for each bit using
>extra logic compared to the bit serial version, the difference
>depending on the size of the CRC. The question is which uses more
>logic, a byte parallel CRC generator or the control logic for the
>state machine. Depending on the CRC chosen, I bet it is close to a
>wash, but the only way to know for sure is to build both and see.
The bit serial CRC has a simple structure. It can easily run
at a high clock rate.
The parallel CRC turns into an ugly cloud of XORs. The details
depend upon the polynomial and how many bits you are processing
in parallel. Expect it to turn into a good test case for the
placer and router.
If the OP doesn't have enough clocks to process things in
bit serial, it might work out better to do 2 bits in parallel
on each of 4 clocks. I think that needs 4 inputs worst case
so it fits in one layer of LUT. (I'm rusty on this, but years
ago I spent a lot of time in this area. I think I've made all
possible screwups while writing software to check things.
There are a lot of wrong possibilities when you consider big
endian vs little endian, shifting right or left or ...)
--
These are my opinions, not necessarily my employer's. I hate spam.