// Equations for 64 bit CRC taking in 64 databits per clock.
// See
Polynomial_representations_of_cyclic_redundancy_checks for standard CRC polynomials.
// Generator Polynomial 0x1b: X^64 + X^4 + X^3 + X + 1
// x[63:0] are the state bits. d[63:0] are the input data bits
x[0] <= x[0] ^ x[60] ^ x[61] ^ x[63] ^ d[0] ^ d[2] ^ d[3];
x[1] <= x[0] ^ x[1] ^ x[60] ^ x[62] ^ x[63] ^ d[1] ^ d[2] ^ d[63];
x[2] <= x[1] ^ x[2] ^ x[61] ^ x[63] ^ d[0] ^ d[1] ^ d[62];
x[3] <= x[0] ^ x[2] ^ x[3] ^ x[60] ^ x[61] ^ x[62] ^ x[63] ^ d[0] ^ d[61] ^ d[63];
x[4] <= x[0] ^ x[1] ^ x[3] ^ x[4] ^ x[60] ^ x[62] ^ d[60] ^ d[62] ^ d[63];
x[5] <= x[1] ^ x[2] ^ x[4] ^ x[5] ^ x[61] ^ x[63] ^ d[59] ^ d[61] ^ d[62];
x[6] <= x[2] ^ x[3] ^ x[5] ^ x[6] ^ x[62] ^ d[58] ^ d[60] ^ d[61];
x[7] <= x[3] ^ x[4] ^ x[6] ^ x[7] ^ x[63] ^ d[57] ^ d[59] ^ d[60];
x[8] <= x[4] ^ x[5] ^ x[7] ^ x[8] ^ d[56] ^ d[58] ^ d[59];
x[9] <= x[5] ^ x[6] ^ x[8] ^ x[9] ^ d[55] ^ d[57] ^ d[58];
x[10] <= x[6] ^ x[7] ^ x[9] ^ x[10] ^ d[54] ^ d[56] ^ d[57];
x[11] <= x[7] ^ x[8] ^ x[10] ^ x[11] ^ d[53] ^ d[55] ^ d[56];
x[12] <= x[8] ^ x[9] ^ x[11] ^ x[12] ^ d[52] ^ d[54] ^ d[55];
x[13] <= x[9] ^ x[10] ^ x[12] ^ x[13] ^ d[51] ^ d[53] ^ d[54];
x[14] <= x[10] ^ x[11] ^ x[13] ^ x[14] ^ d[50] ^ d[52] ^ d[53];
x[15] <= x[11] ^ x[12] ^ x[14] ^ x[15] ^ d[49] ^ d[51] ^ d[52];
x[16] <= x[12] ^ x[13] ^ x[15] ^ x[16] ^ d[48] ^ d[50] ^ d[51];
x[17] <= x[13] ^ x[14] ^ x[16] ^ x[17] ^ d[47] ^ d[49] ^ d[50];
x[18] <= x[14] ^ x[15] ^ x[17] ^ x[18] ^ d[46] ^ d[48] ^ d[49];
x[19] <= x[15] ^ x[16] ^ x[18] ^ x[19] ^ d[45] ^ d[47] ^ d[48];
x[20] <= x[16] ^ x[17] ^ x[19] ^ x[20] ^ d[44] ^ d[46] ^ d[47];
x[21] <= x[17] ^ x[18] ^ x[20] ^ x[21] ^ d[43] ^ d[45] ^ d[46];
x[22] <= x[18] ^ x[19] ^ x[21] ^ x[22] ^ d[42] ^ d[44] ^ d[45];
x[23] <= x[19] ^ x[20] ^ x[22] ^ x[23] ^ d[41] ^ d[43] ^ d[44];
x[24] <= x[20] ^ x[21] ^ x[23] ^ x[24] ^ d[40] ^ d[42] ^ d[43];
x[25] <= x[21] ^ x[22] ^ x[24] ^ x[25] ^ d[39] ^ d[41] ^ d[42];
x[26] <= x[22] ^ x[23] ^ x[25] ^ x[26] ^ d[38] ^ d[40] ^ d[41];
x[27] <= x[23] ^ x[24] ^ x[26] ^ x[27] ^ d[37] ^ d[39] ^ d[40];
x[28] <= x[24] ^ x[25] ^ x[27] ^ x[28] ^ d[36] ^ d[38] ^ d[39];
x[29] <= x[25] ^ x[26] ^ x[28] ^ x[29] ^ d[35] ^ d[37] ^ d[38];
x[30] <= x[26] ^ x[27] ^ x[29] ^ x[30] ^ d[34] ^ d[36] ^ d[37];
x[31] <= x[27] ^ x[28] ^ x[30] ^ x[31] ^ d[33] ^ d[35] ^ d[36];
x[32] <= x[28] ^ x[29] ^ x[31] ^ x[32] ^ d[32] ^ d[34] ^ d[35];
x[33] <= x[29] ^ x[30] ^ x[32] ^ x[33] ^ d[31] ^ d[33] ^ d[34];
x[34] <= x[30] ^ x[31] ^ x[33] ^ x[34] ^ d[30] ^ d[32] ^ d[33];
x[35] <= x[31] ^ x[32] ^ x[34] ^ x[35] ^ d[29] ^ d[31] ^ d[32];
x[36] <= x[32] ^ x[33] ^ x[35] ^ x[36] ^ d[28] ^ d[30] ^ d[31];
x[37] <= x[33] ^ x[34] ^ x[36] ^ x[37] ^ d[27] ^ d[29] ^ d[30];
x[38] <= x[34] ^ x[35] ^ x[37] ^ x[38] ^ d[26] ^ d[28] ^ d[29];
x[39] <= x[35] ^ x[36] ^ x[38] ^ x[39] ^ d[25] ^ d[27] ^ d[28];
x[40] <= x[36] ^ x[37] ^ x[39] ^ x[40] ^ d[24] ^ d[26] ^ d[27];
x[41] <= x[37] ^ x[38] ^ x[40] ^ x[41] ^ d[23] ^ d[25] ^ d[26];
x[42] <= x[38] ^ x[39] ^ x[41] ^ x[42] ^ d[22] ^ d[24] ^ d[25];
x[43] <= x[39] ^ x[40] ^ x[42] ^ x[43] ^ d[21] ^ d[23] ^ d[24];
x[44] <= x[40] ^ x[41] ^ x[43] ^ x[44] ^ d[20] ^ d[22] ^ d[23];
x[45] <= x[41] ^ x[42] ^ x[44] ^ x[45] ^ d[19] ^ d[21] ^ d[22];
x[46] <= x[42] ^ x[43] ^ x[45] ^ x[46] ^ d[18] ^ d[20] ^ d[21];
x[47] <= x[43] ^ x[44] ^ x[46] ^ x[47] ^ d[17] ^ d[19] ^ d[20];
x[48] <= x[44] ^ x[45] ^ x[47] ^ x[48] ^ d[16] ^ d[18] ^ d[19];
x[49] <= x[45] ^ x[46] ^ x[48] ^ x[49] ^ d[15] ^ d[17] ^ d[18];
x[50] <= x[46] ^ x[47] ^ x[49] ^ x[50] ^ d[14] ^ d[16] ^ d[17];
x[51] <= x[47] ^ x[48] ^ x[50] ^ x[51] ^ d[13] ^ d[15] ^ d[16];
x[52] <= x[48] ^ x[49] ^ x[51] ^ x[52] ^ d[12] ^ d[14] ^ d[15];
x[53] <= x[49] ^ x[50] ^ x[52] ^ x[53] ^ d[11] ^ d[13] ^ d[14];
x[54] <= x[50] ^ x[51] ^ x[53] ^ x[54] ^ d[10] ^ d[12] ^ d[13];
x[55] <= x[51] ^ x[52] ^ x[54] ^ x[55] ^ d[9] ^ d[11] ^ d[12];
x[56] <= x[52] ^ x[53] ^ x[55] ^ x[56] ^ d[8] ^ d[10] ^ d[11];
x[57] <= x[53] ^ x[54] ^ x[56] ^ x[57] ^ d[7] ^ d[9] ^ d[10];
x[58] <= x[54] ^ x[55] ^ x[57] ^ x[58] ^ d[6] ^ d[8] ^ d[9];
x[59] <= x[55] ^ x[56] ^ x[58] ^ x[59] ^ d[5] ^ d[7] ^ d[8];
x[60] <= x[56] ^ x[57] ^ x[59] ^ x[60] ^ d[4] ^ d[6] ^ d[7];
x[61] <= x[57] ^ x[58] ^ x[60] ^ x[61] ^ d[3] ^ d[5] ^ d[6];
x[62] <= x[58] ^ x[59] ^ x[61] ^ x[62] ^ d[2] ^ d[4] ^ d[5];
x[63] <= x[59] ^ x[60] ^ x[62] ^ x[63] ^ d[1] ^ d[3] ^ d[4];