UG-1262
Rev. B | Page 307 of 312
6.
Read the result register. This register contains the x-bit result in x MSB bits for MSB first and in x LSB bits for LSB first CRC calculations.
7.
Calculate CRC on the next data block. To calculate the CRC on the next block of data, repeat Step 1 to Step 5.
8.
Disable the CRC accelerator block by clearing the EN bit in CTL to ensure that the block is in a low power state.
Mirroring Options
The W16SWP, BITMIRR, and BYTMIRR bits in CTL determine the sequence of the bits in which the CRC is calculated. Table 403
details all of the mirroring options used within the CRC block for a 32-bit polynomial.
DIN, Bits[31:0] is the data being written to the IPDATA register, and CIN, Bits[31:0] is the data after the mirroring of the data. The serial
engine calculates CIN, Bits[31:0] starting with the MSB bit and ending with LSB bit in sequence (CIN, Bit 31 to CIN, Bit 0 in descending order).
Table 403. Mirroring Options for 32-Bit Input Data with 32-Bit Polynomial
W16SWP
BYTMIRR
BITMIRR
Input Data DIN, Bits[31:0]
CRC Input Data (CIN, Bits[31:0])
0
0
0
DIN, Bits[31:0]
CIN, Bits[31:0] = DIN, Bits[31:0]
0
0
1
DIN, Bits[31:0]
CIN, Bits[31:0] = DIN, Bits[31:24]; DIN, Bits[23:16]; DIN, Bits[15:8]; DIN, Bits[7:0]
0
1
0
DIN, Bits[31:0]
CIN, Bits[31:0] = DIN, Bits[31:24]; DIN, Bits[23:16]; DIN, Bits[15:8]; DIN, Bits[7:0]
0
1
1
DIN, Bits[31:0]
CIN, Bits[31:0] = DIN, Bits[31:24]; DIN, Bits[23:16]; DIN, Bits[15:8]; DIN, Bits[7:0]
1
0
0
DIN, Bits[31:0]
CIN, Bits[31:0] = DIN, Bits[31:16]; DIN, Bits[15:0]
1
0
1
DIN, Bits[31:0]
CIN, Bits[31:0] = DIN, Bits[31:24]; DIN, Bits[23:16]; DIN, Bits[15:8]; DIN, Bits[7:0]
1
1
0
DIN, Bits[31:0]
CIN, Bits[31:0] = DIN, Bits[31:24]; DIN, Bits[23:16]; DIN, Bits[15:8]; DIN, Bits[7:0]
1
1
1
DIN, Bits[31:0]
CIN, Bits[31:0] = DIN, Bits[31:24]; DIN, Bits[23:16]; DIN, Bits[15:8]; DIN, Bits[7:0]