mirror of
https://github.com/pConst/basic_verilog.git
synced 2025-01-28 07:02:55 +08:00
649 lines
32 KiB
Verilog
649 lines
32 KiB
Verilog
// Copyright 2007 Altera Corporation. All rights reserved.
|
|
// Altera products are protected under numerous U.S. and foreign patents,
|
|
// maskwork rights, copyrights and other intellectual property laws.
|
|
//
|
|
// This reference design file, and your use thereof, is subject to and governed
|
|
// by the terms and conditions of the applicable Altera Reference Design
|
|
// License Agreement (either as signed by you or found at www.altera.com). By
|
|
// using this reference design file, you indicate your acceptance of such terms
|
|
// and conditions between you and Altera Corporation. In the event that you do
|
|
// not agree with such terms and conditions, you may not use the reference
|
|
// design file and please promptly destroy any copies you have made.
|
|
//
|
|
// This reference design file is being provided on an "as-is" basis and as an
|
|
// accommodation and therefore all warranties, representations or guarantees of
|
|
// any kind (whether express, implied or statutory) including, without
|
|
// limitation, warranties of merchantability, non-infringement, or fitness for
|
|
// a particular purpose, are specifically disclaimed. By making this reference
|
|
// design file available, Altera expressly does not recommend, suggest or
|
|
// require that this reference design file be used in combination with any
|
|
// other product not provided by Altera.
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
//// CRC-32 of 56 data bits. MSB used first.
|
|
// Polynomial 04c11db7 (MSB excluded)
|
|
// x^26 + x^23 + x^22 + x^16 + x^12 + x^11 + x^10 + x^8 + x^7 + x^5 + x^4 + x^2 + x^1 + x^0
|
|
//
|
|
// Optimal LUT depth 3
|
|
//
|
|
// CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
|
|
// 00000000001111111111222222222233 00000000001111111111222222222233333333334444444444555555
|
|
// 01234567890123456789012345678901 01234567890123456789012345678901234567890123456789012345
|
|
//
|
|
// C00 = XXX.XXXXX.X..X......XX.XX.X..XXX X.....X..XX.X...X.......XXX.XXXXX.X..X......XX.XX.X..XXX
|
|
// C01 = X..XX....XXX.XX.....X.XX.XXX.X.. XX....XX.X.XXX..XX......X..XX....XXX.XX.....X.XX.XXX.X..
|
|
// C02 = X.X...XXX..XXXXX....X......XXX.X XXX...XXXX...XX.XXX.....X.X...XXX..XXXXX....X......XXX.X
|
|
// C03 = .X.X...XXX..XXXXX....X......XXX. .XXX...XXXX...XX.XXX.....X.X...XXX..XXXXX....X......XXX.
|
|
// C04 = XX...XXX.X....XXXX..XXXXX.X..... X.XXX.X.X..XX..X..XXX...XX...XXX.X....XXXX..XXXXX.X.....
|
|
// C05 = X...XX.......X.XXXX.X.X..XXX.XXX XX.XXXXX..X..X.....XXX..X...XX.......X.XXXX.X.X..XXX.XXX
|
|
// C06 = .X...XX.......X.XXXX.X.X..XXX.XX .XX.XXXXX..X..X.....XXX..X...XX.......X.XXXX.X.X..XXX.XX
|
|
// C07 = XX..XX..X.X..X.X.XXX.XXX..XXX.X. X.XX.X.XX.X....XX....XXXXX..XX..X.X..X.X.XXX.XXX..XXX.X.
|
|
// C08 = ....X..XXXXX.XX.X.XX.XX...XXX.X. XX.XX...X.XXX....X....XX....X..XXXXX.XX.X.XX.XX...XXX.X.
|
|
// C09 = X....X..XXXXX.XX.X.XX.XX...XXX.X .XX.XX...X.XXX....X....XX....X..XXXXX.XX.X.XX.XX...XXX.X
|
|
// C10 = ..X.XX.XXX.XX..XX.X.......X.X..X X.XX.X...X...XX.X..X......X.XX.XXX.XX..XX.X.......X.X..X
|
|
// C11 = XXXXX..X.X..X...XX.XXX.XX.XX..XX XX.XX....X..X.XXXX..X...XXXXX..X.X..X...XX.XXX.XX.XX..XX
|
|
// C12 = X..X..XX.........XX...XX.XXXXXX. XXX.XXX..X..XX.X.XX..X..X..X..XX.........XX...XX.XXXXXX.
|
|
// C13 = .X..X..XX.........XX...XX.XXXXXX .XXX.XXX..X..XX.X.XX..X..X..X..XX.........XX...XX.XXXXXX
|
|
// C14 = ..X..X..XX.........XX...XX.XXXXX ..XXX.XXX..X..XX.X.XX..X..X..X..XX.........XX...XX.XXXXX
|
|
// C15 = X..X..X..XX.........XX...XX.XXXX ...XXX.XXX..X..XX.X.XX..X..X..X..XX.........XX...XX.XXXX
|
|
// C16 = X.X..XX.X..X.X......X.XXX..X.... X...XX..X...XX...X.X.XX.X.X..XX.X..X.X......X.XXX..X....
|
|
// C17 = .X.X..XX.X..X.X......X.XXX..X... .X...XX..X...XX...X.X.XX.X.X..XX.X..X.X......X.XXX..X...
|
|
// C18 = X.X.X..XX.X..X.X......X.XXX..X.. ..X...XX..X...XX...X.X.XX.X.X..XX.X..X.X......X.XXX..X..
|
|
// C19 = XX.X.X..XX.X..X.X......X.XXX..X. ...X...XX..X...XX...X.X.XX.X.X..XX.X..X.X......X.XXX..X.
|
|
// C20 = .XX.X.X..XX.X..X.X......X.XXX..X ....X...XX..X...XX...X.X.XX.X.X..XX.X..X.X......X.XXX..X
|
|
// C21 = X.XX.X.X..XX.X..X.X......X.XXX.. .....X...XX..X...XX...X.X.XX.X.X..XX.X..X.X......X.XXX..
|
|
// C22 = X.XX.X.X..XXXXX..X.XXX.XX...X..X X........X.XX.X.X.XX...XX.XX.X.X..XXXXX..X.XXX.XX...X..X
|
|
// C23 = ..XX.X.X..XXX.XX..X...XX.XX...XX XX....X..X...X.XXX.XX.....XX.X.X..XXX.XX..X...XX.XX...XX
|
|
// C24 = ...XX.X.X..XXX.XX..X...XX.XX...X .XX....X..X...X.XXX.XX.....XX.X.X..XXX.XX..X...XX.XX...X
|
|
// C25 = ....XX.X.X..XXX.XX..X...XX.XX... ..XX....X..X...X.XXX.XX.....XX.X.X..XXX.XX..X...XX.XX...
|
|
// C26 = XXX.X..X......XX.XX.X..XXX..X.XX X..XX.X...X.......XXX.XXXXX.X..X......XX.XX.X..XXX..X.XX
|
|
// C27 = XXXX.X..X......XX.XX.X..XXX..X.X .X..XX.X...X.......XXX.XXXXX.X..X......XX.XX.X..XXX..X.X
|
|
// C28 = XXXXX.X..X......XX.XX.X..XXX..X. ..X..XX.X...X.......XXX.XXXXX.X..X......XX.XX.X..XXX..X.
|
|
// C29 = .XXXXX.X..X......XX.XX.X..XXX..X ...X..XX.X...X.......XXX.XXXXX.X..X......XX.XX.X..XXX..X
|
|
// C30 = X.XXXXX.X..X......XX.XX.X..XXX.. ....X..XX.X...X.......XXX.XXXXX.X..X......XX.XX.X..XXX..
|
|
// C31 = XX.XXXXX.X..X......XX.XX.X..XXX. .....X..XX.X...X.......XXX.XXXXX.X..X......XX.XX.X..XXX.
|
|
//
|
|
module crc32_dat56 (crc_in,dat_in,crc_out);
|
|
input [31:0] crc_in;
|
|
input [55:0] dat_in;
|
|
output [31:0] crc_out;
|
|
|
|
wire [31:0] crc_out;
|
|
|
|
parameter METHOD = 1;
|
|
|
|
generate
|
|
if (METHOD == 0)
|
|
crc32_dat56_flat cc (.crc_in(crc_in),.dat_in(dat_in),.crc_out(crc_out));
|
|
else
|
|
crc32_dat56_factor cc (.crc_in(crc_in),.dat_in(dat_in),.crc_out(crc_out));
|
|
endgenerate
|
|
|
|
endmodule
|
|
|
|
////////////////////////////////////////////////////////////////
|
|
// Flat version
|
|
////////////////////////////////////////////////////////////////
|
|
|
|
module crc32_dat56_flat (crc_in,dat_in,crc_out);
|
|
input [31:0] crc_in;
|
|
input [55:0] dat_in;
|
|
output [31:0] crc_out;
|
|
|
|
wire [31:0] crc_out;
|
|
|
|
wire x23, x22, x21, x20, x19, x18, x17,
|
|
x16, x15, x14, x13, x12, x11, x10, x9,
|
|
x8, x7, x6, x5, x4, x3, x2, x1,
|
|
x0, x31, x30, x29, x28, x27, x26, x25,
|
|
x24;
|
|
|
|
assign crc_out = {x31,x30,x29,x28,x27,x26,x25,x24,x23,x22,x21,x20,x19,x18,x17,
|
|
x16,x15,x14,x13,x12,x11,x10,x9,x8,x7,x6,x5,x4,x3,x2,x1,
|
|
x0};
|
|
|
|
wire d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,
|
|
d15,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25,d26,d27,d28,d29,d30,
|
|
d31,d32,d33,d34,d35,d36,d37,d38,d39,d40,d41,d42,d43,d44,d45,d46,
|
|
d47,d48,d49,d50,d51,d52,d53,d54,d55;
|
|
|
|
assign { d55,d54,d53,d52,d51,d50,d49,d48,d47,d46,d45,d44,d43,d42,d41,
|
|
d40,d39,d38,d37,d36,d35,d34,d33,d32,d31,d30,d29,d28,d27,d26,d25,
|
|
d24,d23,d22,d21,d20,d19,d18,d17,d16,d15,d14,d13,d12,d11,d10,d9,
|
|
d8,d7,d6,d5,d4,d3,d2,d1,d0} = dat_in [55:0];
|
|
|
|
wire c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,
|
|
c15,c16,c17,c18,c19,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c30,
|
|
c31;
|
|
|
|
assign { c31,c30,c29,c28,c27,c26,c25,c24,c23,c22,c21,c20,c19,c18,c17,
|
|
c16,c15,c14,c13,c12,c11,c10,c9,c8,c7,c6,c5,c4,c3,c2,c1,
|
|
c0} = crc_in [31:0];
|
|
|
|
assign x23 = d29 ^ d47 ^ c7 ^ c26 ^ c11 ^ d13 ^ d17 ^ c25 ^ c18 ^
|
|
d49 ^ c10 ^ d38 ^ d54 ^ d55 ^ c12 ^ d50 ^ d20 ^ d36 ^ d39 ^
|
|
d34 ^ d6 ^ d16 ^ d9 ^ d0 ^ d19 ^ c30 ^ c22 ^ c3 ^ c14 ^
|
|
c15 ^ c5 ^ d1 ^ d31 ^ d15 ^ c23 ^ d46 ^ d42 ^ c2 ^ c31 ^
|
|
d26 ^ d35 ^ d27; // 42 ins 1 outs
|
|
|
|
assign x22 = c24 ^ d44 ^ c21 ^ c20 ^ d36 ^ d43 ^ d19 ^ d16 ^ d9 ^
|
|
d55 ^ c19 ^ d14 ^ c3 ^ d52 ^ d41 ^ d18 ^ c2 ^ c12 ^ c28 ^
|
|
c31 ^ d11 ^ c0 ^ c7 ^ c10 ^ c13 ^ c11 ^ d38 ^ d45 ^ c23 ^
|
|
d35 ^ c14 ^ d0 ^ c17 ^ d31 ^ d26 ^ d37 ^ d23 ^ d27 ^ d47 ^
|
|
d29 ^ d48 ^ d24 ^ c5 ^ d12 ^ d34; // 45 ins 1 outs
|
|
|
|
assign x21 = d34 ^ d9 ^ d5 ^ d17 ^ d40 ^ c25 ^ c2 ^ d29 ^ d35 ^
|
|
c16 ^ d51 ^ d22 ^ d18 ^ d52 ^ d53 ^ d24 ^ d31 ^ d42 ^ c28 ^
|
|
c5 ^ c0 ^ c10 ^ d37 ^ c7 ^ d49 ^ c18 ^ c29 ^ c11 ^ c13 ^
|
|
c27 ^ d13 ^ d10 ^ c3 ^ d26 ^ d27; // 35 ins 1 outs
|
|
|
|
assign x20 = d39 ^ d30 ^ d36 ^ d33 ^ c15 ^ d50 ^ c24 ^ d28 ^ c31 ^
|
|
d16 ^ d9 ^ c28 ^ c26 ^ d34 ^ d41 ^ d52 ^ d26 ^ c17 ^ c12 ^
|
|
c2 ^ c6 ^ d25 ^ d8 ^ d55 ^ c10 ^ d48 ^ c1 ^ c4 ^ c27 ^
|
|
d17 ^ d21 ^ d23 ^ c9 ^ d51 ^ d4 ^ d12; // 36 ins 1 outs
|
|
|
|
assign x19 = c30 ^ c8 ^ d54 ^ d29 ^ d32 ^ d11 ^ c23 ^ c9 ^ d50 ^
|
|
c14 ^ d33 ^ d16 ^ d35 ^ c27 ^ d47 ^ d27 ^ c16 ^ c3 ^ d51 ^
|
|
d40 ^ d22 ^ d15 ^ d38 ^ c11 ^ d49 ^ d7 ^ d3 ^ d20 ^ c25 ^
|
|
c5 ^ c26 ^ d25 ^ c1 ^ d24 ^ c0 ^ d8; // 36 ins 1 outs
|
|
|
|
assign x18 = d46 ^ d39 ^ d34 ^ d53 ^ d32 ^ c10 ^ d31 ^ d10 ^ d15 ^
|
|
c8 ^ d37 ^ d48 ^ c4 ^ c7 ^ d6 ^ d26 ^ d7 ^ d50 ^ c24 ^
|
|
d24 ^ c29 ^ d14 ^ d2 ^ c13 ^ c2 ^ c15 ^ d49 ^ c0 ^ d19 ^
|
|
c26 ^ c25 ^ d28 ^ c22 ^ d21 ^ d23; // 35 ins 1 outs
|
|
|
|
assign x17 = d1 ^ c14 ^ d38 ^ d13 ^ d25 ^ d23 ^ d36 ^ d18 ^ d27 ^
|
|
d49 ^ d47 ^ c1 ^ d52 ^ d14 ^ d45 ^ c12 ^ d5 ^ d9 ^ d48 ^
|
|
c9 ^ c23 ^ c28 ^ c6 ^ d33 ^ c3 ^ d30 ^ c7 ^ d20 ^ c24 ^
|
|
d6 ^ c21 ^ d22 ^ c25 ^ d31; // 34 ins 1 outs
|
|
|
|
assign x16 = d37 ^ d47 ^ c5 ^ c11 ^ c2 ^ d19 ^ c22 ^ d4 ^ c0 ^
|
|
d21 ^ d0 ^ d30 ^ d44 ^ d22 ^ d26 ^ c23 ^ d32 ^ d29 ^ c20 ^
|
|
c24 ^ c6 ^ c27 ^ c8 ^ d35 ^ d48 ^ d51 ^ d13 ^ d17 ^ d24 ^
|
|
d8 ^ c13 ^ d12 ^ d5 ^ d46; // 34 ins 1 outs
|
|
|
|
assign x15 = d34 ^ d33 ^ d3 ^ c26 ^ d54 ^ d30 ^ c20 ^ d12 ^ d15 ^
|
|
d4 ^ d7 ^ c31 ^ d55 ^ d18 ^ c29 ^ c30 ^ d50 ^ d20 ^ d21 ^
|
|
d9 ^ d27 ^ c28 ^ c0 ^ d8 ^ d5 ^ d24 ^ c3 ^ d45 ^ c6 ^
|
|
d44 ^ c9 ^ d49 ^ c25 ^ c21 ^ c10 ^ d16 ^ d52 ^ d53; // 38 ins 1 outs
|
|
|
|
assign x14 = d32 ^ d26 ^ d14 ^ d7 ^ d33 ^ d55 ^ d44 ^ d17 ^ c30 ^
|
|
c27 ^ c24 ^ d49 ^ d8 ^ d54 ^ c20 ^ d2 ^ d4 ^ c28 ^ c25 ^
|
|
d20 ^ c29 ^ d6 ^ d15 ^ d3 ^ c8 ^ d43 ^ c2 ^ d11 ^ c9 ^
|
|
d53 ^ c19 ^ d51 ^ d19 ^ d29 ^ d48 ^ d23 ^ c5 ^ c31 ^ d52; // 39 ins 1 outs
|
|
|
|
assign x13 = c28 ^ d19 ^ d31 ^ c27 ^ d13 ^ d53 ^ d55 ^ c1 ^ d1 ^
|
|
d48 ^ c23 ^ d2 ^ d14 ^ d7 ^ d54 ^ d52 ^ c18 ^ d3 ^ d22 ^
|
|
d51 ^ d47 ^ d43 ^ d18 ^ c7 ^ c19 ^ c24 ^ c31 ^ c8 ^ d50 ^
|
|
d32 ^ c4 ^ c26 ^ d5 ^ d42 ^ c30 ^ d6 ^ c29 ^ d16 ^ d28 ^
|
|
d25 ^ d10; // 41 ins 1 outs
|
|
|
|
assign x12 = c0 ^ d54 ^ c29 ^ c6 ^ d13 ^ d21 ^ d50 ^ c25 ^ d15 ^
|
|
d27 ^ c27 ^ d41 ^ c17 ^ d51 ^ d2 ^ d6 ^ d5 ^ d24 ^ d49 ^
|
|
c3 ^ d12 ^ c22 ^ d9 ^ d52 ^ c30 ^ d0 ^ c26 ^ d4 ^ d46 ^
|
|
d18 ^ d30 ^ d42 ^ d53 ^ c28 ^ c7 ^ d17 ^ d1 ^ d31 ^ d47 ^
|
|
c18 ^ c23; // 41 ins 1 outs
|
|
|
|
assign x11 = d51 ^ d12 ^ c4 ^ d50 ^ c19 ^ d43 ^ d33 ^ d54 ^ c3 ^
|
|
c16 ^ c20 ^ d48 ^ d27 ^ d17 ^ c9 ^ d9 ^ c21 ^ d20 ^ d40 ^
|
|
d41 ^ d44 ^ d28 ^ c31 ^ d15 ^ c27 ^ d1 ^ d3 ^ d16 ^ d31 ^
|
|
d25 ^ d26 ^ c26 ^ c7 ^ d47 ^ c17 ^ d24 ^ d36 ^ c30 ^ c23 ^
|
|
c2 ^ c12 ^ c0 ^ d45 ^ d14 ^ c24 ^ c1 ^ d55 ^ d0 ^ d4; // 49 ins 1 outs
|
|
|
|
assign x10 = d36 ^ c2 ^ d3 ^ c12 ^ d42 ^ d31 ^ c4 ^ c8 ^ c31 ^
|
|
d5 ^ d16 ^ c15 ^ c11 ^ d50 ^ c5 ^ d52 ^ d26 ^ c28 ^ c26 ^
|
|
d2 ^ c7 ^ d40 ^ d19 ^ d32 ^ d29 ^ d35 ^ d28 ^ c9 ^ d9 ^
|
|
d55 ^ d0 ^ d13 ^ d14 ^ d33 ^ c18 ^ d39 ^ c16; // 37 ins 1 outs
|
|
|
|
assign x9 = d47 ^ c23 ^ d35 ^ c17 ^ d4 ^ d53 ^ d29 ^ c31 ^ d52 ^
|
|
c8 ^ d18 ^ c9 ^ c15 ^ d33 ^ d32 ^ c29 ^ c27 ^ c5 ^ d39 ^
|
|
c22 ^ d34 ^ c10 ^ d38 ^ d46 ^ c14 ^ d13 ^ d24 ^ d41 ^ c28 ^
|
|
c0 ^ d23 ^ d44 ^ d51 ^ d43 ^ c12 ^ c11 ^ d11 ^ c20 ^ d12 ^
|
|
d55 ^ d5 ^ d2 ^ c19 ^ d1 ^ d36 ^ d9; // 46 ins 1 outs
|
|
|
|
assign x8 = d31 ^ d54 ^ d0 ^ d51 ^ d40 ^ c16 ^ d52 ^ d37 ^ d17 ^
|
|
c30 ^ d3 ^ d45 ^ d32 ^ c13 ^ d12 ^ d33 ^ c8 ^ d46 ^ d35 ^
|
|
c4 ^ d34 ^ c18 ^ d50 ^ d23 ^ d43 ^ c22 ^ d8 ^ c26 ^ d22 ^
|
|
c7 ^ c21 ^ d28 ^ d10 ^ c28 ^ d42 ^ c27 ^ c10 ^ c14 ^ c9 ^
|
|
d4 ^ d38 ^ c11 ^ d11 ^ c19 ^ d1; // 45 ins 1 outs
|
|
|
|
assign x7 = d37 ^ d16 ^ c10 ^ d47 ^ d8 ^ d39 ^ d54 ^ c0 ^ c1 ^
|
|
d3 ^ d51 ^ c26 ^ c19 ^ d43 ^ d42 ^ c27 ^ c4 ^ d24 ^ d7 ^
|
|
c8 ^ c17 ^ c22 ^ d45 ^ d0 ^ d46 ^ d25 ^ c18 ^ d29 ^ d50 ^
|
|
c21 ^ d21 ^ d10 ^ d2 ^ d23 ^ d5 ^ c30 ^ d15 ^ c23 ^ c28 ^
|
|
c15 ^ c5 ^ d32 ^ d41 ^ d22 ^ c13 ^ d34 ^ d52 ^ d28; // 48 ins 1 outs
|
|
|
|
assign x6 = c21 ^ d50 ^ c6 ^ c1 ^ c30 ^ d52 ^ c31 ^ d25 ^ d42 ^
|
|
d47 ^ d8 ^ c5 ^ d11 ^ d41 ^ c17 ^ d21 ^ d2 ^ c26 ^ d4 ^
|
|
d30 ^ c23 ^ d38 ^ d29 ^ d22 ^ c28 ^ c27 ^ d40 ^ d7 ^ c18 ^
|
|
d54 ^ c14 ^ d5 ^ d6 ^ d51 ^ d45 ^ d14 ^ d55 ^ d20 ^ d1 ^
|
|
c16 ^ c19 ^ d43; // 42 ins 1 outs
|
|
|
|
assign x5 = c25 ^ d29 ^ c31 ^ d55 ^ c26 ^ d24 ^ d46 ^ c20 ^ d49 ^
|
|
c22 ^ d41 ^ d40 ^ d4 ^ d50 ^ c27 ^ d5 ^ c29 ^ d53 ^ d20 ^
|
|
c16 ^ d21 ^ d19 ^ d28 ^ d6 ^ c4 ^ c18 ^ d37 ^ c30 ^ d1 ^
|
|
d39 ^ d0 ^ d54 ^ d13 ^ d7 ^ c15 ^ c17 ^ d51 ^ d3 ^ c5 ^
|
|
d10 ^ c0 ^ c13 ^ d44 ^ d42; // 44 ins 1 outs
|
|
|
|
assign x4 = d24 ^ d48 ^ d29 ^ d47 ^ d6 ^ d18 ^ c26 ^ d8 ^ d19 ^
|
|
d15 ^ c7 ^ d44 ^ c0 ^ d4 ^ d0 ^ d38 ^ d40 ^ c16 ^ d12 ^
|
|
c24 ^ d50 ^ d33 ^ c6 ^ c1 ^ d3 ^ d46 ^ d20 ^ d11 ^ c15 ^
|
|
d45 ^ d39 ^ c5 ^ c22 ^ d2 ^ d31 ^ c9 ^ d25 ^ d30 ^ c20 ^
|
|
c17 ^ c21 ^ c23 ^ c14 ^ d41; // 44 ins 1 outs
|
|
|
|
assign x3 = d10 ^ d32 ^ d31 ^ c3 ^ d33 ^ c8 ^ d2 ^ d52 ^ d17 ^
|
|
c7 ^ d38 ^ d14 ^ d7 ^ d3 ^ d27 ^ d54 ^ d19 ^ d15 ^ d40 ^
|
|
d45 ^ c1 ^ c16 ^ d1 ^ c13 ^ c15 ^ d39 ^ c12 ^ c30 ^ d37 ^
|
|
d8 ^ d36 ^ d53 ^ c9 ^ c14 ^ d25 ^ c21 ^ d9 ^ c28 ^ c29 ^
|
|
d18; // 40 ins 1 outs
|
|
|
|
assign x2 = d26 ^ c31 ^ c11 ^ d32 ^ d51 ^ d30 ^ d6 ^ d24 ^ c29 ^
|
|
c0 ^ c7 ^ d16 ^ c2 ^ d53 ^ d1 ^ d36 ^ d39 ^ c6 ^ d14 ^
|
|
c13 ^ c20 ^ c15 ^ d9 ^ d35 ^ d55 ^ d37 ^ d2 ^ c12 ^ d17 ^
|
|
d44 ^ d38 ^ c28 ^ d7 ^ c8 ^ d18 ^ c14 ^ d52 ^ d13 ^ c27 ^
|
|
d31 ^ d8 ^ d0; // 42 ins 1 outs
|
|
|
|
assign x1 = d44 ^ d37 ^ d16 ^ d1 ^ d0 ^ c27 ^ d27 ^ d11 ^ c11 ^
|
|
c13 ^ d51 ^ d13 ^ c14 ^ d7 ^ d38 ^ d12 ^ d17 ^ d50 ^ c26 ^
|
|
d35 ^ d24 ^ d49 ^ c0 ^ c23 ^ c25 ^ d47 ^ c29 ^ d9 ^ c9 ^
|
|
d53 ^ d34 ^ c20 ^ c22 ^ d28 ^ d46 ^ c10 ^ d6 ^ c4 ^ c3 ^
|
|
d33; // 40 ins 1 outs
|
|
|
|
assign x0 = d10 ^ d0 ^ d55 ^ c1 ^ d9 ^ d50 ^ c8 ^ c6 ^ c24 ^
|
|
d44 ^ d37 ^ d16 ^ c4 ^ d6 ^ c10 ^ d28 ^ c21 ^ c20 ^ d34 ^
|
|
d12 ^ c13 ^ d32 ^ c5 ^ d45 ^ c0 ^ d54 ^ d53 ^ c2 ^ c29 ^
|
|
c23 ^ c30 ^ d24 ^ d48 ^ d29 ^ d47 ^ c7 ^ c26 ^ d26 ^ c31 ^
|
|
d30 ^ d25 ^ d31; // 42 ins 1 outs
|
|
|
|
assign x31 = d49 ^ d54 ^ d52 ^ c29 ^ d31 ^ d43 ^ d24 ^ c28 ^ d23 ^
|
|
d29 ^ c5 ^ c23 ^ d8 ^ c3 ^ d25 ^ c0 ^ c12 ^ c9 ^ d5 ^
|
|
d28 ^ d44 ^ d15 ^ d30 ^ d46 ^ d47 ^ c4 ^ d11 ^ c1 ^ d9 ^
|
|
d27 ^ c20 ^ d53 ^ c25 ^ d33 ^ c22 ^ c19 ^ d36 ^ c30 ^ c6 ^
|
|
c7; // 40 ins 1 outs
|
|
|
|
assign x30 = d14 ^ d29 ^ d4 ^ d23 ^ c8 ^ c18 ^ d30 ^ d48 ^ d8 ^
|
|
d26 ^ c22 ^ c5 ^ c0 ^ d46 ^ c11 ^ d35 ^ d52 ^ c28 ^ c6 ^
|
|
d24 ^ d10 ^ d7 ^ c3 ^ d45 ^ d22 ^ d28 ^ c2 ^ c19 ^ d32 ^
|
|
c4 ^ c27 ^ d43 ^ d51 ^ d53 ^ c24 ^ d42 ^ c29 ^ c21 ^ d27; // 39 ins 1 outs
|
|
|
|
assign x29 = d50 ^ d55 ^ c27 ^ d7 ^ c20 ^ c31 ^ d23 ^ d29 ^ c1 ^
|
|
c10 ^ d6 ^ c2 ^ c17 ^ d31 ^ c23 ^ c21 ^ d13 ^ d42 ^ d9 ^
|
|
d44 ^ d26 ^ d28 ^ c7 ^ c18 ^ d47 ^ d27 ^ d25 ^ d45 ^ c3 ^
|
|
d3 ^ c4 ^ c5 ^ d22 ^ d34 ^ d51 ^ c26 ^ d41 ^ d52 ^ c28 ^
|
|
d21; // 40 ins 1 outs
|
|
|
|
assign x28 = d30 ^ c27 ^ d21 ^ d12 ^ d26 ^ d22 ^ d24 ^ d2 ^ c3 ^
|
|
d33 ^ c2 ^ d41 ^ d49 ^ c9 ^ c1 ^ d51 ^ c4 ^ c17 ^ d50 ^
|
|
d8 ^ c26 ^ d5 ^ c6 ^ d46 ^ c25 ^ d25 ^ c0 ^ d20 ^ d28 ^
|
|
d6 ^ c22 ^ d27 ^ d44 ^ c20 ^ c30 ^ d43 ^ c19 ^ c16 ^ d54 ^
|
|
d40; // 40 ins 1 outs
|
|
|
|
assign x27 = c3 ^ c25 ^ d4 ^ d5 ^ d29 ^ d55 ^ c29 ^ c18 ^ d45 ^
|
|
c31 ^ d25 ^ d49 ^ d7 ^ c15 ^ d53 ^ d42 ^ c2 ^ d24 ^ c5 ^
|
|
d19 ^ d39 ^ d11 ^ d48 ^ c24 ^ c26 ^ c16 ^ d40 ^ c0 ^ d27 ^
|
|
c19 ^ d1 ^ d26 ^ c21 ^ c1 ^ c8 ^ d20 ^ d32 ^ d23 ^ d21 ^
|
|
d43 ^ d50; // 41 ins 1 outs
|
|
|
|
assign x26 = c0 ^ c23 ^ d6 ^ c20 ^ d38 ^ d19 ^ d28 ^ c15 ^ c18 ^
|
|
c4 ^ d54 ^ d48 ^ c31 ^ d3 ^ c28 ^ d4 ^ c7 ^ d31 ^ d23 ^
|
|
d44 ^ c2 ^ c24 ^ c1 ^ d55 ^ d0 ^ d42 ^ d22 ^ d10 ^ c14 ^
|
|
d39 ^ d41 ^ d25 ^ c17 ^ d26 ^ d47 ^ d20 ^ d18 ^ d49 ^ d24 ^
|
|
c25 ^ d52 ^ c30; // 42 ins 1 outs
|
|
|
|
assign x25 = d2 ^ c25 ^ c5 ^ d33 ^ d38 ^ d28 ^ d36 ^ d49 ^ d22 ^
|
|
c20 ^ c24 ^ d3 ^ d8 ^ c14 ^ d52 ^ d31 ^ c4 ^ d21 ^ d37 ^
|
|
d18 ^ d11 ^ c17 ^ c12 ^ c9 ^ c7 ^ c28 ^ d51 ^ c13 ^ c27 ^
|
|
d41 ^ c16 ^ d40 ^ d17 ^ d15 ^ d19 ^ d44 ^ d29 ^ d48; // 38 ins 1 outs
|
|
|
|
assign x24 = c24 ^ d10 ^ d28 ^ d48 ^ c26 ^ d27 ^ c19 ^ c6 ^ d32 ^
|
|
d7 ^ d51 ^ d18 ^ d21 ^ c13 ^ d30 ^ d43 ^ d35 ^ c31 ^ c8 ^
|
|
c11 ^ d40 ^ d37 ^ d16 ^ c27 ^ c12 ^ c23 ^ d17 ^ d2 ^ c16 ^
|
|
d55 ^ d20 ^ d1 ^ d50 ^ c15 ^ d14 ^ c3 ^ d39 ^ d36 ^ d47 ^
|
|
c4; // 40 ins 1 outs
|
|
|
|
endmodule
|
|
|
|
////////////////////////////////////////////////////////////////
|
|
// Depth optimal factored version
|
|
////////////////////////////////////////////////////////////////
|
|
|
|
module crc32_dat56_factor (crc_in,dat_in,crc_out);
|
|
input [31:0] crc_in;
|
|
input [55:0] dat_in;
|
|
output [31:0] crc_out;
|
|
|
|
wire [31:0] crc_out;
|
|
|
|
wire x696, x695, x694, x693, x692, x691, x690,
|
|
x689, x688, x687, x686, x685, x684, x683, x682,
|
|
x681, x680, x679, x678, x677, x676, x675, x674,
|
|
x673, x672, x671, x670, x669, x668, x667, x666,
|
|
x665, x664, x663, x662, x661, x660, x659, x658,
|
|
x657, x656, x655, x654, x653, x652, x651, x650,
|
|
x649, x648, x647, x646, x645, x644, x643, x642,
|
|
x641, x640, x639, x638, x637, x636, x635, x634,
|
|
x633, x632, x631, x630, x629, x628, x627, x626,
|
|
x625, x624, x623, x622, x621, x620, x619, x618,
|
|
x617, x616, x615, x614, x613, x612, x611, x610,
|
|
x609, x608, x607, x606, x605, x604, x603, x602,
|
|
x601, x600, x599, x598, x597, x596, x595, x594,
|
|
x593, x592, x591, x590, x589, x588, x587, x586,
|
|
x585, x23, x22, x21, x20, x19, x18, x17,
|
|
x16, x15, x14, x13, x12, x11, x10, x9,
|
|
x8, x7, x6, x5, x4, x3, x2, x1,
|
|
x0, x31, x30, x29, x28, x27, x26, x25,
|
|
x24;
|
|
|
|
assign crc_out = {x31,x30,x29,x28,x27,x26,x25,x24,x23,x22,x21,x20,x19,x18,x17,
|
|
x16,x15,x14,x13,x12,x11,x10,x9,x8,x7,x6,x5,x4,x3,x2,x1,
|
|
x0};
|
|
|
|
wire d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,
|
|
d15,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25,d26,d27,d28,d29,d30,
|
|
d31,d32,d33,d34,d35,d36,d37,d38,d39,d40,d41,d42,d43,d44,d45,d46,
|
|
d47,d48,d49,d50,d51,d52,d53,d54,d55;
|
|
|
|
assign { d55,d54,d53,d52,d51,d50,d49,d48,d47,d46,d45,d44,d43,d42,d41,
|
|
d40,d39,d38,d37,d36,d35,d34,d33,d32,d31,d30,d29,d28,d27,d26,d25,
|
|
d24,d23,d22,d21,d20,d19,d18,d17,d16,d15,d14,d13,d12,d11,d10,d9,
|
|
d8,d7,d6,d5,d4,d3,d2,d1,d0} = dat_in [55:0];
|
|
|
|
wire c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,
|
|
c15,c16,c17,c18,c19,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c30,
|
|
c31;
|
|
|
|
assign { c31,c30,c29,c28,c27,c26,c25,c24,c23,c22,c21,c20,c19,c18,c17,
|
|
c16,c15,c14,c13,c12,c11,c10,c9,c8,c7,c6,c5,c4,c3,c2,c1,
|
|
c0} = crc_in [31:0];
|
|
|
|
xor6 x696i (.out(x696),.a(d37),.b(x660),.c(c20),.d(d3),.e(c13),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x695i (.out(x695),.a(x603),.b(x587),.c(c26),.d(d49),.e(1'b0),.f(1'b0)); // 4 ins 1 outs
|
|
|
|
xor6 x694i (.out(x694),.a(x590),.b(d28),.c(c29),.d(d31),.e(d47),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x693i (.out(x693),.a(x585),.b(c11),.c(d35),.d(d5),.e(1'b0),.f(1'b0)); // 4 ins 1 outs
|
|
|
|
xor6 x692i (.out(x692),.a(x590),.b(c23),.c(d47),.d(d13),.e(1'b0),.f(1'b0)); // 4 ins 1 outs
|
|
|
|
xor6 x691i (.out(x691),.a(c23),.b(d27),.c(d9),.d(1'b0),.e(1'b0),.f(1'b0)); // 3 ins 1 outs
|
|
|
|
xor6 x690i (.out(x690),.a(x598),.b(c6),.c(c23),.d(c17),.e(1'b0),.f(1'b0)); // 4 ins 1 outs
|
|
|
|
xor6 x689i (.out(x689),.a(x617),.b(d43),.c(d13),.d(1'b0),.e(1'b0),.f(1'b0)); // 3 ins 1 outs
|
|
|
|
xor6 x688i (.out(x688),.a(c27),.b(d51),.c(d12),.d(d4),.e(x634),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x687i (.out(x687),.a(d55),.b(c31),.c(d24),.d(1'b0),.e(1'b0),.f(1'b0)); // 3 ins 1 outs
|
|
|
|
xor6 x686i (.out(x686),.a(d7),.b(d3),.c(d24),.d(x667),.e(1'b0),.f(1'b0)); // 4 ins 1 outs
|
|
|
|
xor6 x685i (.out(x685),.a(x587),.b(c26),.c(c18),.d(d20),.e(d50),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x684i (.out(x684),.a(d19),.b(c5),.c(c23),.d(d46),.e(1'b0),.f(1'b0)); // 4 ins 1 outs
|
|
|
|
xor6 x683i (.out(x683),.a(x636),.b(d14),.c(d5),.d(d9),.e(d25),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x682i (.out(x682),.a(x589),.b(x631),.c(d0),.d(d7),.e(c24),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x681i (.out(x681),.a(x585),.b(d28),.c(d17),.d(d11),.e(d44),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x680i (.out(x680),.a(d2),.b(x594),.c(c15),.d(c2),.e(d46),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x679i (.out(x679),.a(d14),.b(d26),.c(d12),.d(x592),.e(d28),.f(x603)); // 6 ins 1 outs
|
|
|
|
xor6 x678i (.out(x678),.a(d46),.b(d33),.c(c18),.d(d42),.e(d10),.f(x600)); // 6 ins 1 outs
|
|
|
|
xor6 x677i (.out(x677),.a(x593),.b(c29),.c(d53),.d(c15),.e(d11),.f(d6)); // 6 ins 1 outs
|
|
|
|
xor6 x676i (.out(x676),.a(x614),.b(x594),.c(d21),.d(c31),.e(d11),.f(c15)); // 6 ins 1 outs
|
|
|
|
xor6 x675i (.out(x675),.a(d21),.b(d23),.c(d12),.d(x586),.e(x585),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x674i (.out(x674),.a(d34),.b(x603),.c(d7),.d(d20),.e(c10),.f(x598)); // 6 ins 1 outs
|
|
|
|
xor6 x673i (.out(x673),.a(d22),.b(d7),.c(c19),.d(x598),.e(d14),.f(d5)); // 6 ins 1 outs
|
|
|
|
xor6 x672i (.out(x672),.a(x595),.b(x601),.c(c10),.d(x588),.e(d23),.f(c22)); // 6 ins 1 outs
|
|
|
|
xor6 x671i (.out(x671),.a(x597),.b(c31),.c(d15),.d(c4),.e(x613),.f(c22)); // 6 ins 1 outs
|
|
|
|
xor6 x670i (.out(x670),.a(d39),.b(d35),.c(c11),.d(c25),.e(c20),.f(x613)); // 6 ins 1 outs
|
|
|
|
xor6 x669i (.out(x669),.a(d22),.b(x598),.c(c2),.d(d20),.e(d43),.f(d41)); // 6 ins 1 outs
|
|
|
|
xor6 x668i (.out(x668),.a(d42),.b(d10),.c(x614),.d(d32),.e(c8),.f(x587)); // 6 ins 1 outs
|
|
|
|
xor6 x667i (.out(x667),.a(c17),.b(d17),.c(d22),.d(d19),.e(d43),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x666i (.out(x666),.a(d20),.b(d47),.c(x640),.d(d40),.e(x617),.f(x597)); // 6 ins 1 outs
|
|
|
|
xor6 x665i (.out(x665),.a(x594),.b(d17),.c(x591),.d(x601),.e(d3),.f(c3)); // 6 ins 1 outs
|
|
|
|
xor6 x664i (.out(x664),.a(c5),.b(x595),.c(d29),.d(c20),.e(d2),.f(d41)); // 6 ins 1 outs
|
|
|
|
xor6 x663i (.out(x663),.a(x588),.b(c9),.c(x631),.d(x595),.e(d26),.f(d5)); // 6 ins 1 outs
|
|
|
|
xor6 x662i (.out(x662),.a(c24),.b(c9),.c(d7),.d(d5),.e(x588),.f(x585)); // 6 ins 1 outs
|
|
|
|
xor6 x661i (.out(x661),.a(d38),.b(x616),.c(d3),.d(x607),.e(d24),.f(d22)); // 6 ins 1 outs
|
|
|
|
xor6 x660i (.out(x660),.a(d26),.b(c7),.c(d31),.d(c4),.e(d17),.f(c15)); // 6 ins 1 outs
|
|
|
|
xor6 x659i (.out(x659),.a(d4),.b(c25),.c(c0),.d(d0),.e(d50),.f(x622)); // 6 ins 1 outs
|
|
|
|
xor6 x658i (.out(x658),.a(c9),.b(d21),.c(d9),.d(d10),.e(x612),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x657i (.out(x657),.a(x592),.b(d30),.c(c9),.d(c24),.e(d24),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x656i (.out(x656),.a(d46),.b(d11),.c(d13),.d(x604),.e(d41),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x655i (.out(x655),.a(x604),.b(c20),.c(d8),.d(d29),.e(d24),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x654i (.out(x654),.a(c1),.b(c7),.c(x622),.d(c3),.e(d25),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x653i (.out(x653),.a(d21),.b(x597),.c(x614),.d(d18),.e(c10),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x652i (.out(x652),.a(x597),.b(c25),.c(c1),.d(d0),.e(d3),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x651i (.out(x651),.a(d10),.b(x604),.c(d53),.d(x616),.e(x603),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x650i (.out(x650),.a(x597),.b(x592),.c(x612),.d(c21),.e(d45),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x649i (.out(x649),.a(x586),.b(d47),.c(x607),.d(x592),.e(x585),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x648i (.out(x648),.a(c12),.b(d24),.c(x588),.d(d36),.e(x587),.f(c19)); // 6 ins 1 outs
|
|
|
|
xor6 x647i (.out(x647),.a(d9),.b(c17),.c(x585),.d(d2),.e(c0),.f(1'b0)); // 5 ins 2 outs
|
|
|
|
xor6 x646i (.out(x646),.a(d9),.b(c17),.c(x622),.d(d18),.e(x586),.f(d48)); // 6 ins 1 outs
|
|
|
|
xor6 x645i (.out(x645),.a(x589),.b(x587),.c(d39),.d(d19),.e(d45),.f(c21)); // 6 ins 1 outs
|
|
|
|
xor6 x644i (.out(x644),.a(d42),.b(x590),.c(d4),.d(d48),.e(d39),.f(d55)); // 6 ins 1 outs
|
|
|
|
xor6 x643i (.out(x643),.a(c0),.b(d8),.c(d22),.d(x588),.e(d16),.f(d7)); // 6 ins 2 outs
|
|
|
|
xor6 x642i (.out(x642),.a(c4),.b(d38),.c(x592),.d(d55),.e(c14),.f(d47)); // 6 ins 1 outs
|
|
|
|
xor6 x641i (.out(x641),.a(d44),.b(c31),.c(d49),.d(x612),.e(d20),.f(d17)); // 6 ins 1 outs
|
|
|
|
xor6 x640i (.out(x640),.a(c12),.b(d36),.c(c16),.d(c19),.e(d43),.f(d28)); // 6 ins 1 outs
|
|
|
|
xor6 x639i (.out(x639),.a(x586),.b(d18),.c(d41),.d(x593),.e(1'b0),.f(1'b0)); // 4 ins 2 outs
|
|
|
|
xor6 x638i (.out(x638),.a(d53),.b(d28),.c(x603),.d(d15),.e(c0),.f(x590)); // 6 ins 2 outs
|
|
|
|
xor6 x637i (.out(x637),.a(x597),.b(c4),.c(d37),.d(c13),.e(c17),.f(c22)); // 6 ins 1 outs
|
|
|
|
xor6 x636i (.out(x636),.a(d20),.b(d4),.c(c15),.d(d18),.e(d3),.f(1'b0)); // 5 ins 2 outs
|
|
|
|
xor6 x635i (.out(x635),.a(c22),.b(d28),.c(x590),.d(x607),.e(d10),.f(d1)); // 6 ins 2 outs
|
|
|
|
xor6 x634i (.out(x634),.a(c9),.b(d35),.c(c11),.d(d21),.e(d33),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x633i (.out(x633),.a(x622),.b(d33),.c(x601),.d(c8),.e(c2),.f(d32)); // 6 ins 2 outs
|
|
|
|
xor6 x632i (.out(x632),.a(d16),.b(c1),.c(d19),.d(d25),.e(d53),.f(x594)); // 6 ins 2 outs
|
|
|
|
xor6 x631i (.out(x631),.a(d2),.b(d35),.c(c11),.d(c15),.e(d23),.f(d14)); // 6 ins 2 outs
|
|
|
|
xor6 x630i (.out(x630),.a(d41),.b(c24),.c(d18),.d(d13),.e(x588),.f(d48)); // 6 ins 2 outs
|
|
|
|
xor6 x629i (.out(x629),.a(d1),.b(x603),.c(d40),.d(c16),.e(c3),.f(d27)); // 6 ins 3 outs
|
|
|
|
xor6 x628i (.out(x628),.a(c21),.b(d32),.c(c8),.d(x607),.e(d10),.f(d45)); // 6 ins 2 outs
|
|
|
|
xor6 x627i (.out(x627),.a(d11),.b(d44),.c(x586),.d(c17),.e(d30),.f(c6)); // 6 ins 2 outs
|
|
|
|
xor6 x626i (.out(x626),.a(d1),.b(d22),.c(c21),.d(x588),.e(d33),.f(d45)); // 6 ins 2 outs
|
|
|
|
xor6 x625i (.out(x625),.a(d28),.b(d19),.c(d54),.d(x598),.e(c23),.f(c30)); // 6 ins 3 outs
|
|
|
|
xor6 x624i (.out(x624),.a(d0),.b(d17),.c(x600),.d(d47),.e(c0),.f(d44)); // 6 ins 2 outs
|
|
|
|
xor6 x623i (.out(x623),.a(d12),.b(d39),.c(c22),.d(d46),.e(x612),.f(d15)); // 6 ins 3 outs
|
|
|
|
xor6 x622i (.out(x622),.a(d23),.b(d9),.c(c4),.d(c12),.e(d36),.f(1'b0)); // 5 ins 4 outs
|
|
|
|
xor6 x621i (.out(x621),.a(d17),.b(d21),.c(x589),.d(d10),.e(d4),.f(x585)); // 6 ins 2 outs
|
|
|
|
xor6 x620i (.out(x620),.a(d53),.b(d14),.c(d24),.d(x587),.e(x586),.f(x594)); // 6 ins 4 outs
|
|
|
|
xor6 x619i (.out(x619),.a(d16),.b(d3),.c(c0),.d(d17),.e(c24),.f(x591)); // 6 ins 2 outs
|
|
|
|
xor6 x618i (.out(x618),.a(x587),.b(d12),.c(d30),.d(c6),.e(d53),.f(d24)); // 6 ins 2 outs
|
|
|
|
xor6 x617i (.out(x617),.a(c31),.b(d55),.c(d16),.d(c15),.e(1'b0),.f(1'b0)); // 4 ins 3 outs
|
|
|
|
xor6 x616i (.out(x616),.a(d47),.b(c5),.c(c29),.d(d29),.e(c4),.f(d26)); // 6 ins 2 outs
|
|
|
|
xor6 x615i (.out(x615),.a(c30),.b(d24),.c(d54),.d(d10),.e(d22),.f(x595)); // 6 ins 3 outs
|
|
|
|
xor6 x614i (.out(x614),.a(c2),.b(d7),.c(c18),.d(c21),.e(d45),.f(d46)); // 6 ins 3 outs
|
|
|
|
xor6 x613i (.out(x613),.a(c30),.b(c31),.c(d54),.d(d42),.e(c18),.f(d1)); // 6 ins 3 outs
|
|
|
|
xor6 x612i (.out(x612),.a(c14),.b(d38),.c(d33),.d(c20),.e(d21),.f(d11)); // 6 ins 4 outs
|
|
|
|
xor6 x611i (.out(x611),.a(x593),.b(c9),.c(d23),.d(d52),.e(d13),.f(c28)); // 6 ins 3 outs
|
|
|
|
xor6 x610i (.out(x610),.a(d11),.b(c24),.c(c25),.d(x591),.e(x589),.f(d49)); // 6 ins 3 outs
|
|
|
|
xor6 x609i (.out(x609),.a(d48),.b(d39),.c(d16),.d(x587),.e(d26),.f(x600)); // 6 ins 4 outs
|
|
|
|
xor6 x608i (.out(x608),.a(d43),.b(x591),.c(c22),.d(c23),.e(c20),.f(c19)); // 6 ins 3 outs
|
|
|
|
xor6 x607i (.out(x607),.a(d16),.b(d37),.c(c13),.d(c29),.e(d7),.f(1'b0)); // 5 ins 4 outs
|
|
|
|
xor6 x606i (.out(x606),.a(d12),.b(d52),.c(x590),.d(c29),.e(c28),.f(d17)); // 6 ins 4 outs
|
|
|
|
xor6 x605i (.out(x605),.a(x585),.b(d43),.c(d6),.d(d4),.e(d20),.f(c17)); // 6 ins 5 outs
|
|
|
|
xor6 x604i (.out(x604),.a(c22),.b(d34),.c(d21),.d(c10),.e(c2),.f(d5)); // 6 ins 4 outs
|
|
|
|
xor6 x603i (.out(x603),.a(c24),.b(c0),.c(d26),.d(c1),.e(d25),.f(d20)); // 6 ins 6 outs
|
|
|
|
xor6 x602i (.out(x602),.a(x589),.b(d48),.c(c27),.d(d26),.e(d22),.f(d51)); // 6 ins 6 outs
|
|
|
|
xor6 x601i (.out(x601),.a(d40),.b(c28),.c(c16),.d(d31),.e(c7),.f(d52)); // 6 ins 3 outs
|
|
|
|
xor6 x600i (.out(x600),.a(c10),.b(d13),.c(d34),.d(c3),.e(d27),.f(d12)); // 6 ins 3 outs
|
|
|
|
xor6 x599i (.out(x599),.a(d18),.b(d39),.c(d1),.d(x593),.e(d2),.f(d14)); // 6 ins 5 outs
|
|
|
|
xor6 x598i (.out(x598),.a(d44),.b(d40),.c(d2),.d(c16),.e(c0),.f(d21)); // 6 ins 5 outs
|
|
|
|
xor6 x597i (.out(x597),.a(d27),.b(d30),.c(d4),.d(c6),.e(c24),.f(c3)); // 6 ins 8 outs
|
|
|
|
xor6 x596i (.out(x596),.a(d19),.b(c26),.c(x588),.d(c5),.e(d50),.f(d29)); // 6 ins 7 outs
|
|
|
|
xor6 x595i (.out(x595),.a(d42),.b(d3),.c(d0),.d(d39),.e(d28),.f(c18)); // 6 ins 5 outs
|
|
|
|
xor6 x594i (.out(x594),.a(c8),.b(d43),.c(c19),.d(d32),.e(c29),.f(d23)); // 6 ins 5 outs
|
|
|
|
xor6 x593i (.out(x593),.a(c23),.b(c14),.c(d38),.d(c12),.e(d36),.f(c15)); // 6 ins 6 outs
|
|
|
|
xor6 x592i (.out(x592),.a(d8),.b(d41),.c(c21),.d(c1),.e(d45),.f(d25)); // 6 ins 6 outs
|
|
|
|
xor6 x591i (.out(x591),.a(c30),.b(d54),.c(d33),.d(d15),.e(c9),.f(d8)); // 6 ins 4 outs
|
|
|
|
xor6 x590i (.out(x590),.a(d46),.b(d53),.c(d49),.d(d5),.e(c25),.f(d24)); // 6 ins 6 outs
|
|
|
|
xor6 x589i (.out(x589),.a(d37),.b(c13),.c(d35),.d(c11),.e(c8),.f(d32)); // 6 ins 5 outs
|
|
|
|
xor6 x588i (.out(x588),.a(d31),.b(d48),.c(d0),.d(c7),.e(d47),.f(d6)); // 6 ins 9 outs
|
|
|
|
xor6 x587i (.out(x587),.a(d55),.b(c31),.c(d9),.d(c20),.e(d44),.f(c2)); // 6 ins 8 outs
|
|
|
|
xor6 x586i (.out(x586),.a(c28),.b(d52),.c(c5),.d(c17),.e(d29),.f(c0)); // 6 ins 6 outs
|
|
|
|
xor6 x585i (.out(x585),.a(c27),.b(c23),.c(c26),.d(d51),.e(d50),.f(c4)); // 6 ins 9 outs
|
|
|
|
xor6 x23i (.out(x23),.a(x641),.b(x593),.c(x623),.d(x609),.e(x670),.f(x596)); // 6 ins 1 outs
|
|
|
|
xor6 x22i (.out(x22),.a(x645),.b(x609),.c(x620),.d(x630),.e(x677),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x21i (.out(x21),.a(x646),.b(x633),.c(x602),.d(x606),.e(x678),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x20i (.out(x20),.a(x650),.b(c17),.c(x681),.d(x611),.e(x609),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x19i (.out(x19),.a(x661),.b(d1),.c(c14),.d(x629),.e(x585),.f(x610)); // 6 ins 1 outs
|
|
|
|
xor6 x18i (.out(x18),.a(d39),.b(x651),.c(x638),.d(x682),.e(x596),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x17i (.out(x17),.a(d49),.b(x652),.c(x683),.d(x626),.e(x611),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x16i (.out(x16),.a(x655),.b(x684),.c(x597),.d(x602),.e(x624),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x15i (.out(x15),.a(x653),.b(d34),.c(x685),.d(x606),.e(x619),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x14i (.out(x14),.a(x686),.b(x620),.c(x647),.d(x610),.e(x605),.f(x602)); // 6 ins 1 outs
|
|
|
|
xor6 x13i (.out(x13),.a(x662),.b(x611),.c(x687),.d(x599),.e(x615),.f(x632)); // 6 ins 1 outs
|
|
|
|
xor6 x12i (.out(x12),.a(d21),.b(x671),.c(x647),.d(x630),.e(x606),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x11i (.out(x11),.a(x648),.b(x629),.c(x679),.d(x619),.e(x605),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x10i (.out(x10),.a(x663),.b(c15),.c(x617),.d(d13),.e(x596),.f(x633)); // 6 ins 1 outs
|
|
|
|
xor6 x9i (.out(x9),.a(x656),.b(d47),.c(x688),.d(x599),.e(x620),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x8i (.out(x8),.a(d34),.b(x672),.c(x608),.d(x623),.e(x626),.f(x621)); // 6 ins 1 outs
|
|
|
|
xor6 x7i (.out(x7),.a(d15),.b(x649),.c(x680),.d(x604),.e(x615),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x6i (.out(x6),.a(x642),.b(x613),.c(x627),.d(x673),.e(x605),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x5i (.out(x5),.a(x664),.b(x689),.c(x605),.d(x625),.e(x635),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x4i (.out(x4),.a(x657),.b(x690),.c(x636),.d(x596),.e(x623),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x3i (.out(x3),.a(x632),.b(x665),.c(x691),.d(x599),.e(x628),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x2i (.out(x2),.a(x692),.b(x606),.c(x643),.d(x618),.e(x602),.f(x599)); // 6 ins 1 outs
|
|
|
|
xor6 x1i (.out(x1),.a(d6),.b(x658),.c(x693),.d(x635),.e(x624),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x0i (.out(x0),.a(c4),.b(x674),.c(x625),.d(x596),.e(x618),.f(x628)); // 6 ins 1 outs
|
|
|
|
xor6 x31i (.out(x31),.a(x654),.b(d27),.c(x694),.d(x627),.e(x608),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x30i (.out(x30),.a(d28),.b(d8),.c(x637),.d(x602),.e(x620),.f(x668)); // 6 ins 1 outs
|
|
|
|
xor6 x29i (.out(x29),.a(x675),.b(x592),.c(x595),.d(x609),.e(x643),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x28i (.out(x28),.a(d12),.b(x669),.c(x605),.d(x608),.e(x597),.f(x638)); // 6 ins 1 outs
|
|
|
|
xor6 x27i (.out(x27),.a(x644),.b(x588),.c(x596),.d(x629),.e(x676),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x26i (.out(x26),.a(x659),.b(x596),.c(x639),.d(x695),.e(x615),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x25i (.out(x25),.a(x696),.b(x639),.c(x610),.d(x625),.e(x602),.f(1'b0)); // 5 ins 1 outs
|
|
|
|
xor6 x24i (.out(x24),.a(d48),.b(d7),.c(x666),.d(x599),.e(x593),.f(x621)); // 6 ins 1 outs
|
|
|
|
endmodule
|
|
|