FPGA——CRC硬件电路实现及推导
图中有32个寄存器寄存器
寄存器初值为:{R31,R30,R29...R0}
输入数据为:{C7,C6...C0}
数据先从低位输入,C0,C1,C2,C3......
reg0 1 | reg1 1 | reg2 1 | reg3 0 | reg4 1 | reg5 1 | reg6 0 | reg7 1 | reg8 1 | reg9 0 | reg10 1 | reg11 1 | reg12 1 | reg13 0 | reg14 0 | reg15 0 | reg16 1 | reg17 0 | reg18 0 | reg19 0 | reg20 0 | reg21 0 | reg22 1 | reg23 1 | reg24 0 | reg25 0 | reg26 1 | reg27 0 | reg28 0 | reg29 0 | reg30 0 | reg31 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
INIT0 | R0 | R1 | R2 | R3 | R4 | R5 | R6 | R7 | R8 | R9 | R10 | R11 | R12 | R13 | R14 | R15 | R16 | R17 | R18 | R19 | R20 | R21 | R22 | R23 | R24 | R25 | R26 | R27 | R28 | R29 | R30 |
INIT1 | C0 ^ R31 | C0 ^ R31 ^ R0 | C0 ^ R31 ^ R1 | R2 | C0 ^ R31 ^ R3 | C0 ^ R31 ^ R4 | R5 | C0 ^ R31 ^ R6 | C0 ^ R31 ^ R7 | R8 | C0 ^ R31 ^ R9 | C0 ^ R31 ^ R10 | C0 ^ R31 ^ R11 | R12 | R13 | R14 | C0 ^ R31 ^ R15 | R16 | R17 | R18 | R19 | R20 | C0 ^ R31 ^ R21 | C0 ^ R31 ^ R22 | R23 | R24 | C0 ^ R31 ^ R25 | R26 | R27 | R28 | R29 |
INIT2 | C1 ^ R30 | C1 ^ R30 ^ C0 ^ R31 | C1 ^ R30 ^ C0 ^ R31 ^ R0 | C0 ^ R31 ^ R1 | C1 ^ R30 ^ R2 | C1 ^ R30 ^ C0 ^ R31 ^ R3 | C0 ^ R31 ^ R4 | C1 ^ R30 ^ R5 | C1 ^ R30 ^ C0 ^ R31 ^ R6 | C0 ^ R31 ^ R7 | C1 ^ R30 ^ R8 | C1 ^ R30 ^ C0 ^ R31 ^ R9 | C1 ^ R30 ^ C0 ^ R31 ^ R10 | C0 ^ R31 ^ R11 | R12 | R13 | C1 ^ R30 ^ R14 | C0 ^ R31 ^ R15 | R16 | R17 | R18 | R19 | C1 ^ R30 ^ R20 | C1 ^ R30 ^ C0 ^ R31 ^ R21 | C0 ^ R31 ^ R22 | R23 | C1 ^ R30 ^ R24 | C0 ^ R31 ^ R25 | R26 | R27 | R28 |
INIT3 | C2 ^ R29 | C2 ^ R29 ^ C1 ^ R30 | C2 ^ R29 ^ C1 ^ R30 ^ C0 ^ R31 | C1 ^ R30 ^ C0 ^ R31 ^ R0 | C2 ^ R29 ^ C0 ^ R31 ^ R1 | C2 ^ R29 ^ C1 ^ R30 ^ R2 | C1 ^ R30 ^ C0 ^ R31 ^ R3 | C2 ^ R29 ^ C0 ^ R31 ^ R4 | C2 ^ R29 ^ C1 ^ R30 ^ R5 | C1 ^ R30 ^ C0 ^ R31 ^ R6 | C2 ^ R29 ^ C0 ^ R31 ^ R7 | C2 ^ R29 ^ C1 ^ R30 ^ R8 | C2 ^ R29 ^ C1 ^ R30 ^ C0 ^ R31 ^ R9 | C1 ^ R30 ^ C0 ^ R31 ^ R10 | C0 ^ R31 ^ R11 | R12 | C2 ^ R29 ^ R13 | C1 ^ R30 ^ R14 | C0 ^ R31 ^ R15 | R16 | R17 | R18 | C2 ^ R29 ^ R19 | C2 ^ R29 ^ C1 ^ R30 ^ R20 | C1 ^ R30 ^ C0 ^ R31 ^ R21 | C0 ^ R31 ^ R22 | C2 ^ R29 ^ R23 | C1 ^ R30 ^ R24 | C0 ^ R31 ^ R25 | R26 | R27 |
INIT4 | C3 ^ R28 | C3 ^ R28 ^ C2 ^ R29 | C3 ^ R28 ^ C2 ^ R29 ^ C1 ^ R30 | C2 ^ R29 ^ C1 ^ R30 ^ C0 ^ R31 | C3 ^ R28 ^ C1 ^ R30 ^ C0 ^ R31 ^ R0 | C3 ^ R28 ^ C2 ^ R29 ^ C0 ^ R31 ^ R1 | C2 ^ R29 ^ C1 ^ R30 ^ R2 | C3 ^ R28 ^ C1 ^ R30 ^ C0 ^ R31 ^ R3 | C3 ^ R28 ^ C2 ^ R29 ^ C0 ^ R31 ^ R4 | C2 ^ R29 ^ C1 ^ R30 ^ R5 | C3 ^ R28 ^ C1 ^ R30 ^ C0 ^ R31 ^ R6 | C3 ^ R28 ^ C2 ^ R29 ^ C0 ^ R31 ^ R7 | C3 ^ R28 ^ C2 ^ R29 ^ C1 ^ R30 ^ R8 | C2 ^ R29 ^ C1 ^ R30 ^ C0 ^ R31 ^ R9 | C1 ^ R30 ^ C0 ^ R31 ^ R10 | C0 ^ R31 ^ R11 | C3 ^ R28 ^ R12 | C2 ^ R29 ^ R13 | C1 ^ R30 ^ R14 | C0 ^ R31 ^ R15 | R16 | R17 | C3 ^ R28 ^ R18 | C3 ^ R28 ^ C2 ^ R29 ^ R19 | C2 ^ R29 ^ C1 ^ R30 ^ R20 | C1 ^ R30 ^ C0 ^ R31 ^ R21 | C3 ^ R28 ^ C0 ^ R31 ^ R22 | C2 ^ R29 ^ R23 | C1 ^ R30 ^ R24 | C0 ^ R31 ^ R25 | R26 |
INIT5 | C4 ^ R27 | C4 ^ R27 ^ C3 ^ R28 | C4 ^ R27 ^ C3 ^ R28 ^ C2 ^ R29 | C3 ^ R28 ^ C2 ^ R29 ^ C1 ^ R30 | C4 ^ R27 ^ C2 ^ R29 ^ C1 ^ R30 ^ C0 ^ R31 | C4 ^ R27 ^ C3 ^ R28 ^ C1 ^ R30 ^ C0 ^ R31 ^ R0 | C3 ^ R28 ^ C2 ^ R29 ^ C0 ^ R31 ^ R1 | C4 ^ R27 ^ C2 ^ R29 ^ C1 ^ R30 ^ R2 | C4 ^ R27 ^ C3 ^ R28 ^ C1 ^ R30 ^ C0 ^ R31 ^ R3 | C3 ^ R28 ^ C2 ^ R29 ^ C0 ^ R31 ^ R4 | C4 ^ R27 ^ C2 ^ R29 ^ C1 ^ R30 ^ R5 | C4 ^ R27 ^ C3 ^ R28 ^ C1 ^ R30 ^ C0 ^ R31 ^ R6 | C4 ^ R27 ^ C3 ^ R28 ^ C2 ^ R29 ^ C0 ^ R31 ^ R7 | C3 ^ R28 ^ C2 ^ R29 ^ C1 ^ R30 ^ R8 | C2 ^ R29 ^ C1 ^ R30 ^ C0 ^ R31 ^ R9 | C1 ^ R30 ^ C0 ^ R31 ^ R10 | C4 ^ R27 ^ C0 ^ R31 ^ R11 | C3 ^ R28 ^ R12 | C2 ^ R29 ^ R13 | C1 ^ R30 ^ R14 | C0 ^ R31 ^ R15 | R16 | C4 ^ R27 ^ R17 | C4 ^ R27 ^ C3 ^ R28 ^ R18 | C3 ^ R28 ^ C2 ^ R29 ^ R19 | C2 ^ R29 ^ C1 ^ R30 ^ R20 | C4 ^ R27 ^ C1 ^ R30 ^ C0 ^ R31 ^ R21 | C3 ^ R28 ^ C0 ^ R31 ^ R22 | C2 ^ R29 ^ R23 | C1 ^ R30 ^ R24 | C0 ^ R31 ^ R25 |
INIT6 | C5 ^ R26 | C5 ^ R26 ^ C4 ^ R27 | C5 ^ R26 ^ C4 ^ R27 ^ C3 ^ R28 | C4 ^ R27 ^ C3 ^ R28 ^ C2 ^ R29 | C5 ^ R26 ^ C3 ^ R28 ^ C2 ^ R29 ^ C1 ^ R30 | C5 ^ R26 ^ C4 ^ R27 ^ C2 ^ R29 ^ C1 ^ R30 ^ C0 ^ R31 | C4 ^ R27 ^ C3 ^ R28 ^ C1 ^ R30 ^ C0 ^ R31 ^ R0 | C5 ^ R26 ^ C3 ^ R28 ^ C2 ^ R29 ^ C0 ^ R31 ^ R1 | C5 ^ R26 ^ C4 ^ R27 ^ C2 ^ R29 ^ C1 ^ R30 ^ R2 | C4 ^ R27 ^ C3 ^ R28 ^ C1 ^ R30 ^ C0 ^ R31 ^ R3 | C5 ^ R26 ^ C3 ^ R28 ^ C2 ^ R29 ^ C0 ^ R31 ^ R4 | C5 ^ R26 ^ C4 ^ R27 ^ C2 ^ R29 ^ C1 ^ R30 ^ R5 | C5 ^ R26 ^ C4 ^ R27 ^ C3 ^ R28 ^ C1 ^ R30 ^ C0 ^ R31 ^ R6 | C4 ^ R27 ^ C3 ^ R28 ^ C2 ^ R29 ^ C0 ^ R31 ^ R7 | C3 ^ R28 ^ C2 ^ R29 ^ C1 ^ R30 ^ R8 | C2 ^ R29 ^ C1 ^ R30 ^ C0 ^ R31 ^ R9 | C5 ^ R26 ^ C1 ^ R30 ^ C0 ^ R31 ^ R10 | C4 ^ R27 ^ C0 ^ R31 ^ R11 | C3 ^ R28 ^ R12 | C2 ^ R29 ^ R13 | C1 ^ R30 ^ R14 | C0 ^ R31 ^ R15 | C5 ^ R26 ^ R16 | C5 ^ R26 ^ C4 ^ R27 ^ R17 | C4 ^ R27 ^ C3 ^ R28 ^ R18 | C3 ^ R28 ^ C2 ^ R29 ^ R19 | C5 ^ R26 ^ C2 ^ R29 ^ C1 ^ R30 ^ R20 | C4 ^ R27 ^ C1 ^ R30 ^ C0 ^ R31 ^ R21 | C3 ^ R28 ^ C0 ^ R31 ^ R22 | C2 ^ R29 ^ R23 | C1 ^ R30 ^ R24 |
INIT7 | C6 ^ C0 ^ R31 ^ R25 | C6 ^ C0 ^ R31 ^ R25 ^ C5 ^ R26 | C6 ^ C0 ^ R31 ^ R25 ^ C5 ^ R26 ^ C4 ^ R27 | C5 ^ R26 ^ C4 ^ R27 ^ C3 ^ R28 | C6 ^ C0 ^ R31 ^ R25 ^ C4 ^ R27 ^ C3 ^ R28 ^ C2 ^ R29 | C6 ^ C0 ^ R31 ^ R25 ^ C5 ^ R26 ^ C3 ^ R28 ^ C2 ^ R29 ^ C1 ^ R30 | C5 ^ R26 ^ C4 ^ R27 ^ C2 ^ R29 ^ C1 ^ R30 ^ C0 ^ R31 | C6 ^ C0 ^ R31 ^ R25 ^ C4 ^ R27 ^ C3 ^ R28 ^ C1 ^ R30 ^ C0 ^ R31 ^ R0 | C6 ^ C0 ^ R31 ^ R25 ^ C5 ^ R26 ^ C3 ^ R28 ^ C2 ^ R29 ^ C0 ^ R31 ^ R1 | C5 ^ R26 ^ C4 ^ R27 ^ C2 ^ R29 ^ C1 ^ R30 ^ R2 | C6 ^ C0 ^ R31 ^ R25 ^ C4 ^ R27 ^ C3 ^ R28 ^ C1 ^ R30 ^ C0 ^ R31 ^ R3 | C6 ^ C0 ^ R31 ^ R25 ^ C5 ^ R26 ^ C3 ^ R28 ^ C2 ^ R29 ^ C0 ^ R31 ^ R4 | C6 ^ C0 ^ R31 ^ R25 ^ C5 ^ R26 ^ C4 ^ R27 ^ C2 ^ R29 ^ C1 ^ R30 ^ R5 | C5 ^ R26 ^ C4 ^ R27 ^ C3 ^ R28 ^ C1 ^ R30 ^ C0 ^ R31 ^ R6 | C4 ^ R27 ^ C3 ^ R28 ^ C2 ^ R29 ^ C0 ^ R31 ^ R7 | C3 ^ R28 ^ C2 ^ R29 ^ C1 ^ R30 ^ R8 | C6 ^ C0 ^ R31 ^ R25 ^ C2 ^ R29 ^ C1 ^ R30 ^ C0 ^ R31 ^ R9 | C5 ^ R26 ^ C1 ^ R30 ^ C0 ^ R31 ^ R10 | C4 ^ R27 ^ C0 ^ R31 ^ R11 | C3 ^ R28 ^ R12 | C2 ^ R29 ^ R13 | C1 ^ R30 ^ R14 | C6 ^ C0 ^ R31 ^ R25 ^ C0 ^ R31 ^ R15 | C6 ^ C0 ^ R31 ^ R25 ^ C5 ^ R26 ^ R16 | C5 ^ R26 ^ C4 ^ R27 ^ R17 | C4 ^ R27 ^ C3 ^ R28 ^ R18 | C6 ^ C0 ^ R31 ^ R25 ^ C3 ^ R28 ^ C2 ^ R29 ^ R19 | C5 ^ R26 ^ C2 ^ R29 ^ C1 ^ R30 ^ R20 | C4 ^ R27 ^ C1 ^ R30 ^ C0 ^ R31 ^ R21 | C3 ^ R28 ^ C0 ^ R31 ^ R22 | C2 ^ R29 ^ R23 |
INIT8 | C7 ^ C1 ^ R30 ^ R24 | C7 ^ C1 ^ R30 ^ R24 ^ C6 ^ C0 ^ R31 ^ R25 | C7 ^ C1 ^ R30 ^ R24 ^ C6 ^ C0 ^ R31 ^ R25 ^ C5 ^ R26 | C6 ^ C0 ^ R31 ^ R25 ^ C5 ^ R26 ^ C4 ^ R27 | C7 ^ C1 ^ R30 ^ R24 ^ C5 ^ R26 ^ C4 ^ R27 ^ C3 ^ R28 | C7 ^ C1 ^ R30 ^ R24 ^ C6 ^ C0 ^ R31 ^ R25 ^ C4 ^ R27 ^ C3 ^ R28 ^ C2 ^ R29 | C6 ^ C0 ^ R31 ^ R25 ^ C5 ^ R26 ^ C3 ^ R28 ^ C2 ^ R29 ^ C1 ^ R30 | C7 ^ C1 ^ R30 ^ R24 ^ C5 ^ R26 ^ C4 ^ R27 ^ C2 ^ R29 ^ C1 ^ R30 ^ C0 ^ R31 | C7 ^ C1 ^ R30 ^ R24 ^ C6 ^ C0 ^ R31 ^ R25 ^ C4 ^ R27 ^ C3 ^ R28 ^ C1 ^ R30 ^ C0 ^ R31 ^ R0 | C6 ^ C0 ^ R31 ^ R25 ^ C5 ^ R26 ^ C3 ^ R28 ^ C2 ^ R29 ^ C0 ^ R31 ^ R1 | C7 ^ C1 ^ R30 ^ R24 ^ C5 ^ R26 ^ C4 ^ R27 ^ C2 ^ R29 ^ C1 ^ R30 ^ R2 | C7 ^ C1 ^ R30 ^ R24 ^ C6 ^ C0 ^ R31 ^ R25 ^ C4 ^ R27 ^ C3 ^ R28 ^ C1 ^ R30 ^ C0 ^ R31 ^ R3 | C7 ^ C1 ^ R30 ^ R24 ^ C6 ^ C0 ^ R31 ^ R25 ^ C5 ^ R26 ^ C3 ^ R28 ^ C2 ^ R29 ^ C0 ^ R31 ^ R4 | C6 ^ C0 ^ R31 ^ R25 ^ C5 ^ R26 ^ C4 ^ R27 ^ C2 ^ R29 ^ C1 ^ R30 ^ R5 | C5 ^ R26 ^ C4 ^ R27 ^ C3 ^ R28 ^ C1 ^ R30 ^ C0 ^ R31 ^ R6 | C4 ^ R27 ^ C3 ^ R28 ^ C2 ^ R29 ^ C0 ^ R31 ^ R7 | C7 ^ C1 ^ R30 ^ R24 ^ C3 ^ R28 ^ C2 ^ R29 ^ C1 ^ R30 ^ R8 | C6 ^ C0 ^ R31 ^ R25 ^ C2 ^ R29 ^ C1 ^ R30 ^ C0 ^ R31 ^ R9 | C5 ^ R26 ^ C1 ^ R30 ^ C0 ^ R31 ^ R10 | C4 ^ R27 ^ C0 ^ R31 ^ R11 | C3 ^ R28 ^ R12 | C2 ^ R29 ^ R13 | C7 ^ C1 ^ R30 ^ R24 ^ C1 ^ R30 ^ R14 | C7 ^ C1 ^ R30 ^ R24 ^ C6 ^ C0 ^ R31 ^ R25 ^ C0 ^ R31 ^ R15 | C6 ^ C0 ^ R31 ^ R25 ^ C5 ^ R26 ^ R16 | C5 ^ R26 ^ C4 ^ R27 ^ R17 | C7 ^ C1 ^ R30 ^ R24 ^ C4 ^ R27 ^ C3 ^ R28 ^ R18 | C6 ^ C0 ^ R31 ^ R25 ^ C3 ^ R28 ^ C2 ^ R29 ^ R19 | C5 ^ R26 ^ C2 ^ R29 ^ C1 ^ R30 ^ R20 | C4 ^ R27 ^ C1 ^ R30 ^ C0 ^ R31 ^ R21 | C3 ^ R28 ^ C0 ^ R31 ^ R22 |