For N=4 and M=5 we want the results from the following calculations:
Mout = CRC_parallel("1000", "00000")
Mout = CRC_parallel("0100", "00000")
Mout = CRC_parallel("0010", "00000")
Mout = CRC_parallel("0001", "00000")
Mout = CRC_parallel("0000", "10000")
Mout = CRC_parallel("0000", "01000")
Mout = CRC_parallel("0000", "00100")
Mout = CRC_parallel("0000", "00010")
Mout = CRC_parallel("0000", "00001")
The results from having a bit set in Nin go to matrix 1. One Mout result per row.
The results from having a bit set in Min go to matrix 2. One Mout result per row.
The one-hot encoding is just the simplest case, but it isn't necessary to generate table 1 + 2 and the equations.in the pdf , step 2 mentioned that I need to run crc_serial() code for N times <-- I understand this.
However, in step 4, why The values are one-hot encoded—that is, each of the NIN values has only one bit set. ?
It means that the matrix shows the relations between flipped Nin bits and flipped output/Mout bits (= which Nin terms to include in the parallel equations). Min = 0 only means that no Min bit is flipped, that happens for the other table/matrix.In step 3, what does it exactly mean by Matrix H1 describes MOUT(next CRC state) as a function of NIN(input data) when MIN= 0 ?
You clear/reset everything (=the shift register= Min) and execute the serial implementation N times with "0001" as the input data sequence (= Nin[3:0]).okay, could you show me how to obtain the first row (Nin[0]) of table 1 (Min = 0) ?
How do you exactly flip Nin[0] to obtain first row ?
In the simulator, you initiate the shift register contents (Min) to "00001" and then execute the serial implementation N times with "0000" as the input data sequence (Nin=0)okay, thanks. I know exactly how to reproduce table 1
What about first row (Min[0]) of table 2 (Nin = 0) ?
The CRC calculation depends both on previous bits (used to calculate Min) and new bits (Nin).okay, now I have reproduced table 2 using your advice above.
However, why is table 2 (Nin =0) needed at all to produce parallel CRC equation ?
Each row in table 1 and table 2 corresponds to an Nin/Min "input" bit. Each column corresponds to an Mout "output" bit.What does it exactly mean by each set bit j in column i ?
I now see that there is a "typo" in the pdf you have linked ( http://outputlogic.com/my-stuff/circuit-cellar-january-2010-crc.pdf ).Maybe if you could show how to derive the first parallel equation Mout[0] from table 1 and table 2, then it is easier to understand ?
Mout[0] = Min[1] ^ Min[4] ^ Min[0] ^ Min[3]
CRC calculation in 100% XOR operations.ok, but why XOR all four bits together to obtain Mout[0] ?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?