bit 7
bit 5
bit 4
bit 6
bit 2
bit 0
bit 3
bit 1
Byte 2
bit 7
bit 5
bit 4
bit 6
bit 2
bit 0
bit 3
bit 1
Byte 0
bit 7
bit 5
bit 4
bit 6
bit 2
bit 0
bit 3
bit 1
Byte 1
bit 7
bit 5
bit 4
bit 6
bit 2
bit 0
bit 3
bit 1
bit 7
bit 5
bit 4
bit 6
bit 2
bit 0
bit 3
bit 1
bit 7
bit 5
bit 4
bit 6
bit 2
bit 0
bit 3
bit 1
Byte 0
bit 7
bit 5
bit 4
bit 6
bit 2
bit 0
bit 3
bit 1
Byte 1
bit 0
bit 2
bit 3
bit 1
bit 5
bit 7
bit 4
bit 6
Byte 0
bit 0
bit 2
bit 3
bit 1
bit 5
bit 7
bit 4
bit 6
Byte 1
Input data is little endian,
MSB-first
BYTEREVERSE bits set for byte
reversal
BITREVERSE bit set for byte-
level bit reversal
Data is now 16-bit little
endian, LSB-first for CRC
calculation
bit 7
bit 5
bit 4
bit 6
bit 2
bit 0
bit 3
bit 1
Byte 3
8'h00
8'h00
bit 7
bit 5
bit 4
bit 6
bit 2
bit 0
bit 3
bit 1
bit 7
bit 5
bit 4
bit 6
bit 2
bit 0
bit 3
bit 1
8'h00
8'h00
Figure 24.4. Data Ordering Example - 16-bit MSB -first to LSB-first
Assuming a word input byte order of B3 B2 B1 B0, the values used in the CRC calculation for the various settings of the byte-level bit
reversal and byte reordering are shown in
Table 24.1 Byte-Level Bit Reversal and Byte Reordering Results (B3 B2 B1 B0 Input Order)
.
Table 24.1. Byte-Level Bit Reversal and Byte Reordering Results (B3 B2 B1 B0 Input Order)
Original CRC Calculation Method
Equivalent Settings
Input to CRC calculation
Polynomial
Width(bits)
Byte Order
Bit Order(MSB/LSB
first)
BYTEREVERSE
Setting
BITREVERSE
Setting
32
little endian
LSB
0
0
B3 B2 B1 B0
32
little endian
MSB
1
1
'B0 'B1 'B2 'B3
32
big endian
LSB
1
0
B0 B1 B2 B3
32
big endian
MSB
0
1
'B3 'B2 'B1 'B0
16
little endian
LSB
0
0
XX XX B1 B0
16
little endian
MSB
1
1
XX XX 'B0 'B1
16
big endian
LSB
1
0
XX XX B0 B1
16
big endian
MSB
0
1
XX XX 'B1 'B0
8
-
LSB
-
0
XX XX XX XX B0
8
-
MSB
-
1
XX XX XX XX 'B0
EFM32JG1 Reference Manual
GPCRC - General Purpose Cyclic Redundancy Check
silabs.com
| Smart. Connected. Energy-friendly.
Preliminary Rev. 0.6 | 808