You are on page 1of 223

/*

* This source file contains a Verilog description of an IP core


* automatically generated by the SPIRAL HDL Generator.
*
* This product includes a hardware design developed by Carnegie Mellon University.
*
* Copyright (c) 2005-2011 by Peter A. Milder for the SPIRAL Project,
* Carnegie Mellon University
*
* For more information, see the SPIRAL project website at:
* http://www.spiral.net
*
* This design is provided for internal, non-commercial research use only
* and is not for redistribution, with or without modifications.
*
* You may not use the name "Carnegie Mellon University" or derivations
* thereof to endorse or promote products derived from this software.
*
* THE SOFTWARE IS PROVIDED "AS-IS" WITHOUT ANY WARRANTY OF ANY KIND, EITHER
* EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO ANY WARRANTY
* THAT THE SOFTWARE WILL CONFORM TO SPECIFICATIONS OR BE ERROR-FREE AND ANY
* IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
* TITLE, OR NON-INFRINGEMENT. IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY
* BE LIABLE FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO DIRECT, INDIRECT,
* SPECIAL OR CONSEQUENTIAL DAMAGES, ARISING OUT OF, RESULTING FROM, OR IN
* ANY WAY CONNECTED WITH THIS SOFTWARE (WHETHER OR NOT BASED UPON WARRANTY,
* CONTRACT, TORT OR OTHERWISE).
*
*/

// Input/output stream: 16 complex words per cycle


// Throughput: one transform every 16 cycles
// Latency: 165 cycles

// Resources required:
// 120 multipliers (8 x 8 bit)
// 324 adders (8 x 8 bit)
// 96 RAMs (32 words, 16 bits per word)
// 32 RAMs (8 words, 16 bits per word)
// 24 ROMs (16 words, 8 bits per word)

// Generated on Tue Apr 03 08:08:38 EDT 2018

// Latency: 165 clock cycles


// Throughput: 1 transform every 16 cycles

// We use an interleaved complex data format. X0 represents the


// real portion of the first input, and X1 represents the imaginary
// portion. The X variables are system inputs and the Y variables
// are system outputs.

// The design uses a system of flag signals to indicate the


// beginning of the input and output data streams. The 'next'
// input (asserted high), is used to instruct the system that the
// input stream will begin on the following cycle.

// This system has a 'gap' of 16 cycles. This means that


// 16 cycles must elapse between the beginning of the input
// vectors.

// The output signal 'next_out' (also asserted high) indicates


// that the output vector will begin streaming out of the system
// on the following cycle.

// The system has a latency of 165 cycles. This means that


// the 'next_out' will be asserted 165 cycles after the user
// asserts 'next'.

// The simple testbench below will demonstrate the timing for loading
// and unloading data vectors.
// The system reset signal is asserted high.

// Please note: when simulating floating point code, you must include
// Xilinx's DSP slice simulation module.

module dft_testbench();
reg clk, reset, next;
wire next_out;
integer i, j, k, l, m;
reg [15:0] counter;
reg [7:0] in [31:0];
wire [7:0] X0;
wire [7:0] Y0;
wire [7:0] X1;
wire [7:0] Y1;
wire [7:0] X2;
wire [7:0] Y2;
wire [7:0] X3;
wire [7:0] Y3;
wire [7:0] X4;
wire [7:0] Y4;
wire [7:0] X5;
wire [7:0] Y5;
wire [7:0] X6;
wire [7:0] Y6;
wire [7:0] X7;
wire [7:0] Y7;
wire [7:0] X8;
wire [7:0] Y8;
wire [7:0] X9;
wire [7:0] Y9;
wire [7:0] X10;
wire [7:0] Y10;
wire [7:0] X11;
wire [7:0] Y11;
wire [7:0] X12;
wire [7:0] Y12;
wire [7:0] X13;
wire [7:0] Y13;
wire [7:0] X14;
wire [7:0] Y14;
wire [7:0] X15;
wire [7:0] Y15;
wire [7:0] X16;
wire [7:0] Y16;
wire [7:0] X17;
wire [7:0] Y17;
wire [7:0] X18;
wire [7:0] Y18;
wire [7:0] X19;
wire [7:0] Y19;
wire [7:0] X20;
wire [7:0] Y20;
wire [7:0] X21;
wire [7:0] Y21;
wire [7:0] X22;
wire [7:0] Y22;
wire [7:0] X23;
wire [7:0] Y23;
wire [7:0] X24;
wire [7:0] Y24;
wire [7:0] X25;
wire [7:0] Y25;
wire [7:0] X26;
wire [7:0] Y26;
wire [7:0] X27;
wire [7:0] Y27;
wire [7:0] X28;
wire [7:0] Y28;
wire [7:0] X29;
wire [7:0] Y29;
wire [7:0] X30;
wire [7:0] Y30;
wire [7:0] X31;
wire [7:0] Y31;
reg clrCnt;
assign X0 = in[0];
assign X1 = in[1];
assign X2 = in[2];
assign X3 = in[3];
assign X4 = in[4];
assign X5 = in[5];
assign X6 = in[6];
assign X7 = in[7];
assign X8 = in[8];
assign X9 = in[9];
assign X10 = in[10];
assign X11 = in[11];
assign X12 = in[12];
assign X13 = in[13];
assign X14 = in[14];
assign X15 = in[15];
assign X16 = in[16];
assign X17 = in[17];
assign X18 = in[18];
assign X19 = in[19];
assign X20 = in[20];
assign X21 = in[21];
assign X22 = in[22];
assign X23 = in[23];
assign X24 = in[24];
assign X25 = in[25];
assign X26 = in[26];
assign X27 = in[27];
assign X28 = in[28];
assign X29 = in[29];
assign X30 = in[30];
assign X31 = in[31];

initial clk = 0;

always #10000 clk = ~clk;

// Instantiate top-level module of core 'X' signals are system inputs


// and 'Y' signals are system outputs
dft_top dft_top_instance (.clk(clk), .reset(reset), .next(next),
.next_out(next_out),
.X0(X0), .Y0(Y0),
.X1(X1), .Y1(Y1),
.X2(X2), .Y2(Y2),
.X3(X3), .Y3(Y3),
.X4(X4), .Y4(Y4),
.X5(X5), .Y5(Y5),
.X6(X6), .Y6(Y6),
.X7(X7), .Y7(Y7),
.X8(X8), .Y8(Y8),
.X9(X9), .Y9(Y9),
.X10(X10), .Y10(Y10),
.X11(X11), .Y11(Y11),
.X12(X12), .Y12(Y12),
.X13(X13), .Y13(Y13),
.X14(X14), .Y14(Y14),
.X15(X15), .Y15(Y15),
.X16(X16), .Y16(Y16),
.X17(X17), .Y17(Y17),
.X18(X18), .Y18(Y18),
.X19(X19), .Y19(Y19),
.X20(X20), .Y20(Y20),
.X21(X21), .Y21(Y21),
.X22(X22), .Y22(Y22),
.X23(X23), .Y23(Y23),
.X24(X24), .Y24(Y24),
.X25(X25), .Y25(Y25),
.X26(X26), .Y26(Y26),
.X27(X27), .Y27(Y27),
.X28(X28), .Y28(Y28),
.X29(X29), .Y29(Y29),
.X30(X30), .Y30(Y30),
.X31(X31), .Y31(Y31));

// You can use this counter to verify that the gap and latency are as expected.
always @(posedge clk) begin
if (clrCnt) counter <= 0;
else counter <= counter+1;
end

initial begin
@(posedge clk);
@(posedge clk);

// On the next cycle, begin loading input vector.


next <= 1;
clrCnt <= 1;
@(posedge clk);
clrCnt <= 0;
next <= 0;

// The 256 complex data points enter the system over 16 cycles
for (j=0; j < 15; j = j+1) begin
// Input: 16 complex words per cycle
for (k=0; k < 32; k = k+1) begin
in[k] <= j*32 + k;
end
@(posedge clk);
end
j = 15;
for (k=0; k < 32; k = k+1) begin
in[k] <= j*32 + k;
end

@(posedge clk);
// Wait until the next data vector can be entered
while (counter < 14)
@(posedge clk);

// On the next cycle, we will start the next data vector


next <= 1;
clrCnt <= 1;
@(posedge clk);
clrCnt <= 0;
next <= 0;

// Start entering next input vector


for (j=0; j < 15; j = j+1) begin
// Input 32 words per cycle
for (k=0; k < 32; k = k+1) begin
in[k] <= 512 + j*32 + k;
end
@(posedge clk);
end
j = 15;
for (k=0; k < 32; k = k+1) begin
in[k] <= 512 + j*32 + k;
end
end

initial begin
// set initial values
in[0] <= 0;
in[1] <= 0;
in[2] <= 0;
in[3] <= 0;
in[4] <= 0;
in[5] <= 0;
in[6] <= 0;
in[7] <= 0;
in[8] <= 0;
in[9] <= 0;
in[10] <= 0;
in[11] <= 0;
in[12] <= 0;
in[13] <= 0;
in[14] <= 0;
in[15] <= 0;
in[16] <= 0;
in[17] <= 0;
in[18] <= 0;
in[19] <= 0;
in[20] <= 0;
in[21] <= 0;
in[22] <= 0;
in[23] <= 0;
in[24] <= 0;
in[25] <= 0;
in[26] <= 0;
in[27] <= 0;
in[28] <= 0;
in[29] <= 0;
in[30] <= 0;
in[31] <= 0;
next <= 0;
reset <= 0;

@(posedge clk);
reset <= 1;
@(posedge clk);
reset <= 0;
@(posedge clk);
@(posedge clk);
// Wait until next_out goes high, then wait one clock cycle and begin
receiving data
@(posedge next_out);
@(posedge clk); #1;
$display("--- begin output 1---");

for (m=0; m < 15; m=m+1) begin


$display("%x", Y0);
$display("%x", Y1);
$display("%x", Y2);
$display("%x", Y3);
$display("%x", Y4);
$display("%x", Y5);
$display("%x", Y6);
$display("%x", Y7);
$display("%x", Y8);
$display("%x", Y9);
$display("%x", Y10);
$display("%x", Y11);
$display("%x", Y12);
$display("%x", Y13);
$display("%x", Y14);
$display("%x", Y15);
$display("%x", Y16);
$display("%x", Y17);
$display("%x", Y18);
$display("%x", Y19);
$display("%x", Y20);
$display("%x", Y21);
$display("%x", Y22);
$display("%x", Y23);
$display("%x", Y24);
$display("%x", Y25);
$display("%x", Y26);
$display("%x", Y27);
$display("%x", Y28);
$display("%x", Y29);
$display("%x", Y30);
$display("%x", Y31);
@(posedge clk); #1;
end
$display("%x", Y0);
$display("%x", Y1);
$display("%x", Y2);
$display("%x", Y3);
$display("%x", Y4);
$display("%x", Y5);
$display("%x", Y6);
$display("%x", Y7);
$display("%x", Y8);
$display("%x", Y9);
$display("%x", Y10);
$display("%x", Y11);
$display("%x", Y12);
$display("%x", Y13);
$display("%x", Y14);
$display("%x", Y15);
$display("%x", Y16);
$display("%x", Y17);
$display("%x", Y18);
$display("%x", Y19);
$display("%x", Y20);
$display("%x", Y21);
$display("%x", Y22);
$display("%x", Y23);
$display("%x", Y24);
$display("%x", Y25);
$display("%x", Y26);
$display("%x", Y27);
$display("%x", Y28);
$display("%x", Y29);
$display("%x", Y30);
$display("%x", Y31);
// Wait until next_out goes high, then wait one clock cycle and begin
receiving data
@(posedge next_out);
@(posedge clk); #1;
$display("--- begin output 2---");

for (m=0; m < 15; m=m+1) begin


$display("%x", Y0);
$display("%x", Y1);
$display("%x", Y2);
$display("%x", Y3);
$display("%x", Y4);
$display("%x", Y5);
$display("%x", Y6);
$display("%x", Y7);
$display("%x", Y8);
$display("%x", Y9);
$display("%x", Y10);
$display("%x", Y11);
$display("%x", Y12);
$display("%x", Y13);
$display("%x", Y14);
$display("%x", Y15);
$display("%x", Y16);
$display("%x", Y17);
$display("%x", Y18);
$display("%x", Y19);
$display("%x", Y20);
$display("%x", Y21);
$display("%x", Y22);
$display("%x", Y23);
$display("%x", Y24);
$display("%x", Y25);
$display("%x", Y26);
$display("%x", Y27);
$display("%x", Y28);
$display("%x", Y29);
$display("%x", Y30);
$display("%x", Y31);
@(posedge clk); #1;
end
$display("%x", Y0);
$display("%x", Y1);
$display("%x", Y2);
$display("%x", Y3);
$display("%x", Y4);
$display("%x", Y5);
$display("%x", Y6);
$display("%x", Y7);
$display("%x", Y8);
$display("%x", Y9);
$display("%x", Y10);
$display("%x", Y11);
$display("%x", Y12);
$display("%x", Y13);
$display("%x", Y14);
$display("%x", Y15);
$display("%x", Y16);
$display("%x", Y17);
$display("%x", Y18);
$display("%x", Y19);
$display("%x", Y20);
$display("%x", Y21);
$display("%x", Y22);
$display("%x", Y23);
$display("%x", Y24);
$display("%x", Y25);
$display("%x", Y26);
$display("%x", Y27);
$display("%x", Y28);
$display("%x", Y29);
$display("%x", Y30);
$display("%x", Y31);
$finish;
end
endmodule

// Latency: 165
// Gap: 16
// module_name_is:dft_top
module dft_top(clk, reset, next, next_out,
X0, Y0,
X1, Y1,
X2, Y2,
X3, Y3,
X4, Y4,
X5, Y5,
X6, Y6,
X7, Y7,
X8, Y8,
X9, Y9,
X10, Y10,
X11, Y11,
X12, Y12,
X13, Y13,
X14, Y14,
X15, Y15,
X16, Y16,
X17, Y17,
X18, Y18,
X19, Y19,
X20, Y20,
X21, Y21,
X22, Y22,
X23, Y23,
X24, Y24,
X25, Y25,
X26, Y26,
X27, Y27,
X28, Y28,
X29, Y29,
X30, Y30,
X31, Y31);

output next_out;
input clk, reset, next;

input [7:0] X0,


X1,
X2,
X3,
X4,
X5,
X6,
X7,
X8,
X9,
X10,
X11,
X12,
X13,
X14,
X15,
X16,
X17,
X18,
X19,
X20,
X21,
X22,
X23,
X24,
X25,
X26,
X27,
X28,
X29,
X30,
X31;

output [7:0] Y0,


Y1,
Y2,
Y3,
Y4,
Y5,
Y6,
Y7,
Y8,
Y9,
Y10,
Y11,
Y12,
Y13,
Y14,
Y15,
Y16,
Y17,
Y18,
Y19,
Y20,
Y21,
Y22,
Y23,
Y24,
Y25,
Y26,
Y27,
Y28,
Y29,
Y30,
Y31;

wire [7:0] t0_0;


wire [7:0] t0_1;
wire [7:0] t0_2;
wire [7:0] t0_3;
wire [7:0] t0_4;
wire [7:0] t0_5;
wire [7:0] t0_6;
wire [7:0] t0_7;
wire [7:0] t0_8;
wire [7:0] t0_9;
wire [7:0] t0_10;
wire [7:0] t0_11;
wire [7:0] t0_12;
wire [7:0] t0_13;
wire [7:0] t0_14;
wire [7:0] t0_15;
wire [7:0] t0_16;
wire [7:0] t0_17;
wire [7:0] t0_18;
wire [7:0] t0_19;
wire [7:0] t0_20;
wire [7:0] t0_21;
wire [7:0] t0_22;
wire [7:0] t0_23;
wire [7:0] t0_24;
wire [7:0] t0_25;
wire [7:0] t0_26;
wire [7:0] t0_27;
wire [7:0] t0_28;
wire [7:0] t0_29;
wire [7:0] t0_30;
wire [7:0] t0_31;
wire next_0;
wire [7:0] t1_0;
wire [7:0] t1_1;
wire [7:0] t1_2;
wire [7:0] t1_3;
wire [7:0] t1_4;
wire [7:0] t1_5;
wire [7:0] t1_6;
wire [7:0] t1_7;
wire [7:0] t1_8;
wire [7:0] t1_9;
wire [7:0] t1_10;
wire [7:0] t1_11;
wire [7:0] t1_12;
wire [7:0] t1_13;
wire [7:0] t1_14;
wire [7:0] t1_15;
wire [7:0] t1_16;
wire [7:0] t1_17;
wire [7:0] t1_18;
wire [7:0] t1_19;
wire [7:0] t1_20;
wire [7:0] t1_21;
wire [7:0] t1_22;
wire [7:0] t1_23;
wire [7:0] t1_24;
wire [7:0] t1_25;
wire [7:0] t1_26;
wire [7:0] t1_27;
wire [7:0] t1_28;
wire [7:0] t1_29;
wire [7:0] t1_30;
wire [7:0] t1_31;
wire next_1;
wire [7:0] t2_0;
wire [7:0] t2_1;
wire [7:0] t2_2;
wire [7:0] t2_3;
wire [7:0] t2_4;
wire [7:0] t2_5;
wire [7:0] t2_6;
wire [7:0] t2_7;
wire [7:0] t2_8;
wire [7:0] t2_9;
wire [7:0] t2_10;
wire [7:0] t2_11;
wire [7:0] t2_12;
wire [7:0] t2_13;
wire [7:0] t2_14;
wire [7:0] t2_15;
wire [7:0] t2_16;
wire [7:0] t2_17;
wire [7:0] t2_18;
wire [7:0] t2_19;
wire [7:0] t2_20;
wire [7:0] t2_21;
wire [7:0] t2_22;
wire [7:0] t2_23;
wire [7:0] t2_24;
wire [7:0] t2_25;
wire [7:0] t2_26;
wire [7:0] t2_27;
wire [7:0] t2_28;
wire [7:0] t2_29;
wire [7:0] t2_30;
wire [7:0] t2_31;
wire next_2;
wire [7:0] t3_0;
wire [7:0] t3_1;
wire [7:0] t3_2;
wire [7:0] t3_3;
wire [7:0] t3_4;
wire [7:0] t3_5;
wire [7:0] t3_6;
wire [7:0] t3_7;
wire [7:0] t3_8;
wire [7:0] t3_9;
wire [7:0] t3_10;
wire [7:0] t3_11;
wire [7:0] t3_12;
wire [7:0] t3_13;
wire [7:0] t3_14;
wire [7:0] t3_15;
wire [7:0] t3_16;
wire [7:0] t3_17;
wire [7:0] t3_18;
wire [7:0] t3_19;
wire [7:0] t3_20;
wire [7:0] t3_21;
wire [7:0] t3_22;
wire [7:0] t3_23;
wire [7:0] t3_24;
wire [7:0] t3_25;
wire [7:0] t3_26;
wire [7:0] t3_27;
wire [7:0] t3_28;
wire [7:0] t3_29;
wire [7:0] t3_30;
wire [7:0] t3_31;
wire next_3;
wire [7:0] t4_0;
wire [7:0] t4_1;
wire [7:0] t4_2;
wire [7:0] t4_3;
wire [7:0] t4_4;
wire [7:0] t4_5;
wire [7:0] t4_6;
wire [7:0] t4_7;
wire [7:0] t4_8;
wire [7:0] t4_9;
wire [7:0] t4_10;
wire [7:0] t4_11;
wire [7:0] t4_12;
wire [7:0] t4_13;
wire [7:0] t4_14;
wire [7:0] t4_15;
wire [7:0] t4_16;
wire [7:0] t4_17;
wire [7:0] t4_18;
wire [7:0] t4_19;
wire [7:0] t4_20;
wire [7:0] t4_21;
wire [7:0] t4_22;
wire [7:0] t4_23;
wire [7:0] t4_24;
wire [7:0] t4_25;
wire [7:0] t4_26;
wire [7:0] t4_27;
wire [7:0] t4_28;
wire [7:0] t4_29;
wire [7:0] t4_30;
wire [7:0] t4_31;
wire next_4;
wire [7:0] t5_0;
wire [7:0] t5_1;
wire [7:0] t5_2;
wire [7:0] t5_3;
wire [7:0] t5_4;
wire [7:0] t5_5;
wire [7:0] t5_6;
wire [7:0] t5_7;
wire [7:0] t5_8;
wire [7:0] t5_9;
wire [7:0] t5_10;
wire [7:0] t5_11;
wire [7:0] t5_12;
wire [7:0] t5_13;
wire [7:0] t5_14;
wire [7:0] t5_15;
wire [7:0] t5_16;
wire [7:0] t5_17;
wire [7:0] t5_18;
wire [7:0] t5_19;
wire [7:0] t5_20;
wire [7:0] t5_21;
wire [7:0] t5_22;
wire [7:0] t5_23;
wire [7:0] t5_24;
wire [7:0] t5_25;
wire [7:0] t5_26;
wire [7:0] t5_27;
wire [7:0] t5_28;
wire [7:0] t5_29;
wire [7:0] t5_30;
wire [7:0] t5_31;
wire next_5;
wire [7:0] t6_0;
wire [7:0] t6_1;
wire [7:0] t6_2;
wire [7:0] t6_3;
wire [7:0] t6_4;
wire [7:0] t6_5;
wire [7:0] t6_6;
wire [7:0] t6_7;
wire [7:0] t6_8;
wire [7:0] t6_9;
wire [7:0] t6_10;
wire [7:0] t6_11;
wire [7:0] t6_12;
wire [7:0] t6_13;
wire [7:0] t6_14;
wire [7:0] t6_15;
wire [7:0] t6_16;
wire [7:0] t6_17;
wire [7:0] t6_18;
wire [7:0] t6_19;
wire [7:0] t6_20;
wire [7:0] t6_21;
wire [7:0] t6_22;
wire [7:0] t6_23;
wire [7:0] t6_24;
wire [7:0] t6_25;
wire [7:0] t6_26;
wire [7:0] t6_27;
wire [7:0] t6_28;
wire [7:0] t6_29;
wire [7:0] t6_30;
wire [7:0] t6_31;
wire next_6;
wire [7:0] t7_0;
wire [7:0] t7_1;
wire [7:0] t7_2;
wire [7:0] t7_3;
wire [7:0] t7_4;
wire [7:0] t7_5;
wire [7:0] t7_6;
wire [7:0] t7_7;
wire [7:0] t7_8;
wire [7:0] t7_9;
wire [7:0] t7_10;
wire [7:0] t7_11;
wire [7:0] t7_12;
wire [7:0] t7_13;
wire [7:0] t7_14;
wire [7:0] t7_15;
wire [7:0] t7_16;
wire [7:0] t7_17;
wire [7:0] t7_18;
wire [7:0] t7_19;
wire [7:0] t7_20;
wire [7:0] t7_21;
wire [7:0] t7_22;
wire [7:0] t7_23;
wire [7:0] t7_24;
wire [7:0] t7_25;
wire [7:0] t7_26;
wire [7:0] t7_27;
wire [7:0] t7_28;
wire [7:0] t7_29;
wire [7:0] t7_30;
wire [7:0] t7_31;
wire next_7;
wire [7:0] t8_0;
wire [7:0] t8_1;
wire [7:0] t8_2;
wire [7:0] t8_3;
wire [7:0] t8_4;
wire [7:0] t8_5;
wire [7:0] t8_6;
wire [7:0] t8_7;
wire [7:0] t8_8;
wire [7:0] t8_9;
wire [7:0] t8_10;
wire [7:0] t8_11;
wire [7:0] t8_12;
wire [7:0] t8_13;
wire [7:0] t8_14;
wire [7:0] t8_15;
wire [7:0] t8_16;
wire [7:0] t8_17;
wire [7:0] t8_18;
wire [7:0] t8_19;
wire [7:0] t8_20;
wire [7:0] t8_21;
wire [7:0] t8_22;
wire [7:0] t8_23;
wire [7:0] t8_24;
wire [7:0] t8_25;
wire [7:0] t8_26;
wire [7:0] t8_27;
wire [7:0] t8_28;
wire [7:0] t8_29;
wire [7:0] t8_30;
wire [7:0] t8_31;
wire next_8;
wire [7:0] t9_0;
wire [7:0] t9_1;
wire [7:0] t9_2;
wire [7:0] t9_3;
wire [7:0] t9_4;
wire [7:0] t9_5;
wire [7:0] t9_6;
wire [7:0] t9_7;
wire [7:0] t9_8;
wire [7:0] t9_9;
wire [7:0] t9_10;
wire [7:0] t9_11;
wire [7:0] t9_12;
wire [7:0] t9_13;
wire [7:0] t9_14;
wire [7:0] t9_15;
wire [7:0] t9_16;
wire [7:0] t9_17;
wire [7:0] t9_18;
wire [7:0] t9_19;
wire [7:0] t9_20;
wire [7:0] t9_21;
wire [7:0] t9_22;
wire [7:0] t9_23;
wire [7:0] t9_24;
wire [7:0] t9_25;
wire [7:0] t9_26;
wire [7:0] t9_27;
wire [7:0] t9_28;
wire [7:0] t9_29;
wire [7:0] t9_30;
wire [7:0] t9_31;
wire next_9;
assign t0_0 = X0;
assign Y0 = t9_0;
assign t0_1 = X1;
assign Y1 = t9_1;
assign t0_2 = X2;
assign Y2 = t9_2;
assign t0_3 = X3;
assign Y3 = t9_3;
assign t0_4 = X4;
assign Y4 = t9_4;
assign t0_5 = X5;
assign Y5 = t9_5;
assign t0_6 = X6;
assign Y6 = t9_6;
assign t0_7 = X7;
assign Y7 = t9_7;
assign t0_8 = X8;
assign Y8 = t9_8;
assign t0_9 = X9;
assign Y9 = t9_9;
assign t0_10 = X10;
assign Y10 = t9_10;
assign t0_11 = X11;
assign Y11 = t9_11;
assign t0_12 = X12;
assign Y12 = t9_12;
assign t0_13 = X13;
assign Y13 = t9_13;
assign t0_14 = X14;
assign Y14 = t9_14;
assign t0_15 = X15;
assign Y15 = t9_15;
assign t0_16 = X16;
assign Y16 = t9_16;
assign t0_17 = X17;
assign Y17 = t9_17;
assign t0_18 = X18;
assign Y18 = t9_18;
assign t0_19 = X19;
assign Y19 = t9_19;
assign t0_20 = X20;
assign Y20 = t9_20;
assign t0_21 = X21;
assign Y21 = t9_21;
assign t0_22 = X22;
assign Y22 = t9_22;
assign t0_23 = X23;
assign Y23 = t9_23;
assign t0_24 = X24;
assign Y24 = t9_24;
assign t0_25 = X25;
assign Y25 = t9_25;
assign t0_26 = X26;
assign Y26 = t9_26;
assign t0_27 = X27;
assign Y27 = t9_27;
assign t0_28 = X28;
assign Y28 = t9_28;
assign t0_29 = X29;
assign Y29 = t9_29;
assign t0_30 = X30;
assign Y30 = t9_30;
assign t0_31 = X31;
assign Y31 = t9_31;
assign next_0 = next;
assign next_out = next_9;

// latency=39, gap=16
rc17612 stage0(.clk(clk), .reset(reset), .next(next_0), .next_out(next_1),
.X0(t0_0), .Y0(t1_0),
.X1(t0_1), .Y1(t1_1),
.X2(t0_2), .Y2(t1_2),
.X3(t0_3), .Y3(t1_3),
.X4(t0_4), .Y4(t1_4),
.X5(t0_5), .Y5(t1_5),
.X6(t0_6), .Y6(t1_6),
.X7(t0_7), .Y7(t1_7),
.X8(t0_8), .Y8(t1_8),
.X9(t0_9), .Y9(t1_9),
.X10(t0_10), .Y10(t1_10),
.X11(t0_11), .Y11(t1_11),
.X12(t0_12), .Y12(t1_12),
.X13(t0_13), .Y13(t1_13),
.X14(t0_14), .Y14(t1_14),
.X15(t0_15), .Y15(t1_15),
.X16(t0_16), .Y16(t1_16),
.X17(t0_17), .Y17(t1_17),
.X18(t0_18), .Y18(t1_18),
.X19(t0_19), .Y19(t1_19),
.X20(t0_20), .Y20(t1_20),
.X21(t0_21), .Y21(t1_21),
.X22(t0_22), .Y22(t1_22),
.X23(t0_23), .Y23(t1_23),
.X24(t0_24), .Y24(t1_24),
.X25(t0_25), .Y25(t1_25),
.X26(t0_26), .Y26(t1_26),
.X27(t0_27), .Y27(t1_27),
.X28(t0_28), .Y28(t1_28),
.X29(t0_29), .Y29(t1_29),
.X30(t0_30), .Y30(t1_30),
.X31(t0_31), .Y31(t1_31));

// latency=7, gap=16
codeBlock17614 stage1(.clk(clk), .reset(reset), .next_in(next_1),
.next_out(next_2),
.X0_in(t1_0), .Y0(t2_0),
.X1_in(t1_1), .Y1(t2_1),
.X2_in(t1_2), .Y2(t2_2),
.X3_in(t1_3), .Y3(t2_3),
.X4_in(t1_4), .Y4(t2_4),
.X5_in(t1_5), .Y5(t2_5),
.X6_in(t1_6), .Y6(t2_6),
.X7_in(t1_7), .Y7(t2_7),
.X8_in(t1_8), .Y8(t2_8),
.X9_in(t1_9), .Y9(t2_9),
.X10_in(t1_10), .Y10(t2_10),
.X11_in(t1_11), .Y11(t2_11),
.X12_in(t1_12), .Y12(t2_12),
.X13_in(t1_13), .Y13(t2_13),
.X14_in(t1_14), .Y14(t2_14),
.X15_in(t1_15), .Y15(t2_15),
.X16_in(t1_16), .Y16(t2_16),
.X17_in(t1_17), .Y17(t2_17),
.X18_in(t1_18), .Y18(t2_18),
.X19_in(t1_19), .Y19(t2_19),
.X20_in(t1_20), .Y20(t2_20),
.X21_in(t1_21), .Y21(t2_21),
.X22_in(t1_22), .Y22(t2_22),
.X23_in(t1_23), .Y23(t2_23),
.X24_in(t1_24), .Y24(t2_24),
.X25_in(t1_25), .Y25(t2_25),
.X26_in(t1_26), .Y26(t2_26),
.X27_in(t1_27), .Y27(t2_27),
.X28_in(t1_28), .Y28(t2_28),
.X29_in(t1_29), .Y29(t2_29),
.X30_in(t1_30), .Y30(t2_30),
.X31_in(t1_31), .Y31(t2_31));

// latency=15, gap=16
rc18788 stage2(.clk(clk), .reset(reset), .next(next_2), .next_out(next_3),
.X0(t2_0), .Y0(t3_0),
.X1(t2_1), .Y1(t3_1),
.X2(t2_2), .Y2(t3_2),
.X3(t2_3), .Y3(t3_3),
.X4(t2_4), .Y4(t3_4),
.X5(t2_5), .Y5(t3_5),
.X6(t2_6), .Y6(t3_6),
.X7(t2_7), .Y7(t3_7),
.X8(t2_8), .Y8(t3_8),
.X9(t2_9), .Y9(t3_9),
.X10(t2_10), .Y10(t3_10),
.X11(t2_11), .Y11(t3_11),
.X12(t2_12), .Y12(t3_12),
.X13(t2_13), .Y13(t3_13),
.X14(t2_14), .Y14(t3_14),
.X15(t2_15), .Y15(t3_15),
.X16(t2_16), .Y16(t3_16),
.X17(t2_17), .Y17(t3_17),
.X18(t2_18), .Y18(t3_18),
.X19(t2_19), .Y19(t3_19),
.X20(t2_20), .Y20(t3_20),
.X21(t2_21), .Y21(t3_21),
.X22(t2_22), .Y22(t3_22),
.X23(t2_23), .Y23(t3_23),
.X24(t2_24), .Y24(t3_24),
.X25(t2_25), .Y25(t3_25),
.X26(t2_26), .Y26(t3_26),
.X27(t2_27), .Y27(t3_27),
.X28(t2_28), .Y28(t3_28),
.X29(t2_29), .Y29(t3_29),
.X30(t2_30), .Y30(t3_30),
.X31(t2_31), .Y31(t3_31));

// latency=8, gap=16
DirSum_20265 stage3(.next(next_3), .clk(clk), .reset(reset), .next_out(next_4),
.X0(t3_0), .Y0(t4_0),
.X1(t3_1), .Y1(t4_1),
.X2(t3_2), .Y2(t4_2),
.X3(t3_3), .Y3(t4_3),
.X4(t3_4), .Y4(t4_4),
.X5(t3_5), .Y5(t4_5),
.X6(t3_6), .Y6(t4_6),
.X7(t3_7), .Y7(t4_7),
.X8(t3_8), .Y8(t4_8),
.X9(t3_9), .Y9(t4_9),
.X10(t3_10), .Y10(t4_10),
.X11(t3_11), .Y11(t4_11),
.X12(t3_12), .Y12(t4_12),
.X13(t3_13), .Y13(t4_13),
.X14(t3_14), .Y14(t4_14),
.X15(t3_15), .Y15(t4_15),
.X16(t3_16), .Y16(t4_16),
.X17(t3_17), .Y17(t4_17),
.X18(t3_18), .Y18(t4_18),
.X19(t3_19), .Y19(t4_19),
.X20(t3_20), .Y20(t4_20),
.X21(t3_21), .Y21(t4_21),
.X22(t3_22), .Y22(t4_22),
.X23(t3_23), .Y23(t4_23),
.X24(t3_24), .Y24(t4_24),
.X25(t3_25), .Y25(t4_25),
.X26(t3_26), .Y26(t4_26),
.X27(t3_27), .Y27(t4_27),
.X28(t3_28), .Y28(t4_28),
.X29(t3_29), .Y29(t4_29),
.X30(t3_30), .Y30(t4_30),
.X31(t3_31), .Y31(t4_31));
// latency=7, gap=16
codeBlock20268 stage4(.clk(clk), .reset(reset), .next_in(next_4),
.next_out(next_5),
.X0_in(t4_0), .Y0(t5_0),
.X1_in(t4_1), .Y1(t5_1),
.X2_in(t4_2), .Y2(t5_2),
.X3_in(t4_3), .Y3(t5_3),
.X4_in(t4_4), .Y4(t5_4),
.X5_in(t4_5), .Y5(t5_5),
.X6_in(t4_6), .Y6(t5_6),
.X7_in(t4_7), .Y7(t5_7),
.X8_in(t4_8), .Y8(t5_8),
.X9_in(t4_9), .Y9(t5_9),
.X10_in(t4_10), .Y10(t5_10),
.X11_in(t4_11), .Y11(t5_11),
.X12_in(t4_12), .Y12(t5_12),
.X13_in(t4_13), .Y13(t5_13),
.X14_in(t4_14), .Y14(t5_14),
.X15_in(t4_15), .Y15(t5_15),
.X16_in(t4_16), .Y16(t5_16),
.X17_in(t4_17), .Y17(t5_17),
.X18_in(t4_18), .Y18(t5_18),
.X19_in(t4_19), .Y19(t5_19),
.X20_in(t4_20), .Y20(t5_20),
.X21_in(t4_21), .Y21(t5_21),
.X22_in(t4_22), .Y22(t5_22),
.X23_in(t4_23), .Y23(t5_23),
.X24_in(t4_24), .Y24(t5_24),
.X25_in(t4_25), .Y25(t5_25),
.X26_in(t4_26), .Y26(t5_26),
.X27_in(t4_27), .Y27(t5_27),
.X28_in(t4_28), .Y28(t5_28),
.X29_in(t4_29), .Y29(t5_29),
.X30_in(t4_30), .Y30(t5_30),
.X31_in(t4_31), .Y31(t5_31));

// latency=39, gap=16
rc21442 stage5(.clk(clk), .reset(reset), .next(next_5), .next_out(next_6),
.X0(t5_0), .Y0(t6_0),
.X1(t5_1), .Y1(t6_1),
.X2(t5_2), .Y2(t6_2),
.X3(t5_3), .Y3(t6_3),
.X4(t5_4), .Y4(t6_4),
.X5(t5_5), .Y5(t6_5),
.X6(t5_6), .Y6(t6_6),
.X7(t5_7), .Y7(t6_7),
.X8(t5_8), .Y8(t6_8),
.X9(t5_9), .Y9(t6_9),
.X10(t5_10), .Y10(t6_10),
.X11(t5_11), .Y11(t6_11),
.X12(t5_12), .Y12(t6_12),
.X13(t5_13), .Y13(t6_13),
.X14(t5_14), .Y14(t6_14),
.X15(t5_15), .Y15(t6_15),
.X16(t5_16), .Y16(t6_16),
.X17(t5_17), .Y17(t6_17),
.X18(t5_18), .Y18(t6_18),
.X19(t5_19), .Y19(t6_19),
.X20(t5_20), .Y20(t6_20),
.X21(t5_21), .Y21(t6_21),
.X22(t5_22), .Y22(t6_22),
.X23(t5_23), .Y23(t6_23),
.X24(t5_24), .Y24(t6_24),
.X25(t5_25), .Y25(t6_25),
.X26(t5_26), .Y26(t6_26),
.X27(t5_27), .Y27(t6_27),
.X28(t5_28), .Y28(t6_28),
.X29(t5_29), .Y29(t6_29),
.X30(t5_30), .Y30(t6_30),
.X31(t5_31), .Y31(t6_31));

// latency=8, gap=16
DirSum_23302 stage6(.next(next_6), .clk(clk), .reset(reset), .next_out(next_7),
.X0(t6_0), .Y0(t7_0),
.X1(t6_1), .Y1(t7_1),
.X2(t6_2), .Y2(t7_2),
.X3(t6_3), .Y3(t7_3),
.X4(t6_4), .Y4(t7_4),
.X5(t6_5), .Y5(t7_5),
.X6(t6_6), .Y6(t7_6),
.X7(t6_7), .Y7(t7_7),
.X8(t6_8), .Y8(t7_8),
.X9(t6_9), .Y9(t7_9),
.X10(t6_10), .Y10(t7_10),
.X11(t6_11), .Y11(t7_11),
.X12(t6_12), .Y12(t7_12),
.X13(t6_13), .Y13(t7_13),
.X14(t6_14), .Y14(t7_14),
.X15(t6_15), .Y15(t7_15),
.X16(t6_16), .Y16(t7_16),
.X17(t6_17), .Y17(t7_17),
.X18(t6_18), .Y18(t7_18),
.X19(t6_19), .Y19(t7_19),
.X20(t6_20), .Y20(t7_20),
.X21(t6_21), .Y21(t7_21),
.X22(t6_22), .Y22(t7_22),
.X23(t6_23), .Y23(t7_23),
.X24(t6_24), .Y24(t7_24),
.X25(t6_25), .Y25(t7_25),
.X26(t6_26), .Y26(t7_26),
.X27(t6_27), .Y27(t7_27),
.X28(t6_28), .Y28(t7_28),
.X29(t6_29), .Y29(t7_29),
.X30(t6_30), .Y30(t7_30),
.X31(t6_31), .Y31(t7_31));

// latency=3, gap=16
codeBlock23304 stage7(.clk(clk), .reset(reset), .next_in(next_7),
.next_out(next_8),
.X0_in(t7_0), .Y0(t8_0),
.X1_in(t7_1), .Y1(t8_1),
.X2_in(t7_2), .Y2(t8_2),
.X3_in(t7_3), .Y3(t8_3),
.X4_in(t7_4), .Y4(t8_4),
.X5_in(t7_5), .Y5(t8_5),
.X6_in(t7_6), .Y6(t8_6),
.X7_in(t7_7), .Y7(t8_7),
.X8_in(t7_8), .Y8(t8_8),
.X9_in(t7_9), .Y9(t8_9),
.X10_in(t7_10), .Y10(t8_10),
.X11_in(t7_11), .Y11(t8_11),
.X12_in(t7_12), .Y12(t8_12),
.X13_in(t7_13), .Y13(t8_13),
.X14_in(t7_14), .Y14(t8_14),
.X15_in(t7_15), .Y15(t8_15),
.X16_in(t7_16), .Y16(t8_16),
.X17_in(t7_17), .Y17(t8_17),
.X18_in(t7_18), .Y18(t8_18),
.X19_in(t7_19), .Y19(t8_19),
.X20_in(t7_20), .Y20(t8_20),
.X21_in(t7_21), .Y21(t8_21),
.X22_in(t7_22), .Y22(t8_22),
.X23_in(t7_23), .Y23(t8_23),
.X24_in(t7_24), .Y24(t8_24),
.X25_in(t7_25), .Y25(t8_25),
.X26_in(t7_26), .Y26(t8_26),
.X27_in(t7_27), .Y27(t8_27),
.X28_in(t7_28), .Y28(t8_28),
.X29_in(t7_29), .Y29(t8_29),
.X30_in(t7_30), .Y30(t8_30),
.X31_in(t7_31), .Y31(t8_31));

// latency=39, gap=16
rc24142 stage8(.clk(clk), .reset(reset), .next(next_8), .next_out(next_9),
.X0(t8_0), .Y0(t9_0),
.X1(t8_1), .Y1(t9_1),
.X2(t8_2), .Y2(t9_2),
.X3(t8_3), .Y3(t9_3),
.X4(t8_4), .Y4(t9_4),
.X5(t8_5), .Y5(t9_5),
.X6(t8_6), .Y6(t9_6),
.X7(t8_7), .Y7(t9_7),
.X8(t8_8), .Y8(t9_8),
.X9(t8_9), .Y9(t9_9),
.X10(t8_10), .Y10(t9_10),
.X11(t8_11), .Y11(t9_11),
.X12(t8_12), .Y12(t9_12),
.X13(t8_13), .Y13(t9_13),
.X14(t8_14), .Y14(t9_14),
.X15(t8_15), .Y15(t9_15),
.X16(t8_16), .Y16(t9_16),
.X17(t8_17), .Y17(t9_17),
.X18(t8_18), .Y18(t9_18),
.X19(t8_19), .Y19(t9_19),
.X20(t8_20), .Y20(t9_20),
.X21(t8_21), .Y21(t9_21),
.X22(t8_22), .Y22(t9_22),
.X23(t8_23), .Y23(t9_23),
.X24(t8_24), .Y24(t9_24),
.X25(t8_25), .Y25(t9_25),
.X26(t8_26), .Y26(t9_26),
.X27(t8_27), .Y27(t9_27),
.X28(t8_28), .Y28(t9_28),
.X29(t8_29), .Y29(t9_29),
.X30(t8_30), .Y30(t9_30),
.X31(t8_31), .Y31(t9_31));

endmodule

// Latency: 39
// Gap: 16
module rc17612(clk, reset, next, next_out,
X0, Y0,
X1, Y1,
X2, Y2,
X3, Y3,
X4, Y4,
X5, Y5,
X6, Y6,
X7, Y7,
X8, Y8,
X9, Y9,
X10, Y10,
X11, Y11,
X12, Y12,
X13, Y13,
X14, Y14,
X15, Y15,
X16, Y16,
X17, Y17,
X18, Y18,
X19, Y19,
X20, Y20,
X21, Y21,
X22, Y22,
X23, Y23,
X24, Y24,
X25, Y25,
X26, Y26,
X27, Y27,
X28, Y28,
X29, Y29,
X30, Y30,
X31, Y31);

output next_out;
input clk, reset, next;

input [7:0] X0,


X1,
X2,
X3,
X4,
X5,
X6,
X7,
X8,
X9,
X10,
X11,
X12,
X13,
X14,
X15,
X16,
X17,
X18,
X19,
X20,
X21,
X22,
X23,
X24,
X25,
X26,
X27,
X28,
X29,
X30,
X31;

output [7:0] Y0,


Y1,
Y2,
Y3,
Y4,
Y5,
Y6,
Y7,
Y8,
Y9,
Y10,
Y11,
Y12,
Y13,
Y14,
Y15,
Y16,
Y17,
Y18,
Y19,
Y20,
Y21,
Y22,
Y23,
Y24,
Y25,
Y26,
Y27,
Y28,
Y29,
Y30,
Y31;

wire [15:0] t0;


wire [15:0] s0;
assign t0 = {X0, X1};
wire [15:0] t1;
wire [15:0] s1;
assign t1 = {X2, X3};
wire [15:0] t2;
wire [15:0] s2;
assign t2 = {X4, X5};
wire [15:0] t3;
wire [15:0] s3;
assign t3 = {X6, X7};
wire [15:0] t4;
wire [15:0] s4;
assign t4 = {X8, X9};
wire [15:0] t5;
wire [15:0] s5;
assign t5 = {X10, X11};
wire [15:0] t6;
wire [15:0] s6;
assign t6 = {X12, X13};
wire [15:0] t7;
wire [15:0] s7;
assign t7 = {X14, X15};
wire [15:0] t8;
wire [15:0] s8;
assign t8 = {X16, X17};
wire [15:0] t9;
wire [15:0] s9;
assign t9 = {X18, X19};
wire [15:0] t10;
wire [15:0] s10;
assign t10 = {X20, X21};
wire [15:0] t11;
wire [15:0] s11;
assign t11 = {X22, X23};
wire [15:0] t12;
wire [15:0] s12;
assign t12 = {X24, X25};
wire [15:0] t13;
wire [15:0] s13;
assign t13 = {X26, X27};
wire [15:0] t14;
wire [15:0] s14;
assign t14 = {X28, X29};
wire [15:0] t15;
wire [15:0] s15;
assign t15 = {X30, X31};
assign Y0 = s0[15:8];
assign Y1 = s0[7:0];
assign Y2 = s1[15:8];
assign Y3 = s1[7:0];
assign Y4 = s2[15:8];
assign Y5 = s2[7:0];
assign Y6 = s3[15:8];
assign Y7 = s3[7:0];
assign Y8 = s4[15:8];
assign Y9 = s4[7:0];
assign Y10 = s5[15:8];
assign Y11 = s5[7:0];
assign Y12 = s6[15:8];
assign Y13 = s6[7:0];
assign Y14 = s7[15:8];
assign Y15 = s7[7:0];
assign Y16 = s8[15:8];
assign Y17 = s8[7:0];
assign Y18 = s9[15:8];
assign Y19 = s9[7:0];
assign Y20 = s10[15:8];
assign Y21 = s10[7:0];
assign Y22 = s11[15:8];
assign Y23 = s11[7:0];
assign Y24 = s12[15:8];
assign Y25 = s12[7:0];
assign Y26 = s13[15:8];
assign Y27 = s13[7:0];
assign Y28 = s14[15:8];
assign Y29 = s14[7:0];
assign Y30 = s15[15:8];
assign Y31 = s15[7:0];

perm17610 instPerm27493(.x0(t0), .y0(s0),


.x1(t1), .y1(s1),
.x2(t2), .y2(s2),
.x3(t3), .y3(s3),
.x4(t4), .y4(s4),
.x5(t5), .y5(s5),
.x6(t6), .y6(s6),
.x7(t7), .y7(s7),
.x8(t8), .y8(s8),
.x9(t9), .y9(s9),
.x10(t10), .y10(s10),
.x11(t11), .y11(s11),
.x12(t12), .y12(s12),
.x13(t13), .y13(s13),
.x14(t14), .y14(s14),
.x15(t15), .y15(s15),
.clk(clk), .next(next), .next_out(next_out), .reset(reset)
);

endmodule

module swNet17610(itr, clk, ct


, x0, y0
, x1, y1
, x2, y2
, x3, y3
, x4, y4
, x5, y5
, x6, y6
, x7, y7
, x8, y8
, x9, y9
, x10, y10
, x11, y11
, x12, y12
, x13, y13
, x14, y14
, x15, y15
);
parameter width = 16;

input [3:0] ct;


input clk;
input [0:0] itr;
input [width-1:0] x0;
output reg [width-1:0] y0;
input [width-1:0] x1;
output reg [width-1:0] y1;
input [width-1:0] x2;
output reg [width-1:0] y2;
input [width-1:0] x3;
output reg [width-1:0] y3;
input [width-1:0] x4;
output reg [width-1:0] y4;
input [width-1:0] x5;
output reg [width-1:0] y5;
input [width-1:0] x6;
output reg [width-1:0] y6;
input [width-1:0] x7;
output reg [width-1:0] y7;
input [width-1:0] x8;
output reg [width-1:0] y8;
input [width-1:0] x9;
output reg [width-1:0] y9;
input [width-1:0] x10;
output reg [width-1:0] y10;
input [width-1:0] x11;
output reg [width-1:0] y11;
input [width-1:0] x12;
output reg [width-1:0] y12;
input [width-1:0] x13;
output reg [width-1:0] y13;
input [width-1:0] x14;
output reg [width-1:0] y14;
input [width-1:0] x15;
output reg [width-1:0] y15;
wire [width-1:0] t0_0, t0_1, t0_2, t0_3, t0_4, t0_5, t0_6, t0_7, t0_8, t0_9,
t0_10, t0_11, t0_12, t0_13, t0_14, t0_15;
wire [width-1:0] t1_0, t1_1, t1_2, t1_3, t1_4, t1_5, t1_6, t1_7, t1_8, t1_9,
t1_10, t1_11, t1_12, t1_13, t1_14, t1_15;
wire [width-1:0] t2_0, t2_1, t2_2, t2_3, t2_4, t2_5, t2_6, t2_7, t2_8, t2_9,
t2_10, t2_11, t2_12, t2_13, t2_14, t2_15;
reg [width-1:0] t3_0, t3_1, t3_2, t3_3, t3_4, t3_5, t3_6, t3_7, t3_8, t3_9,
t3_10, t3_11, t3_12, t3_13, t3_14, t3_15;
wire [width-1:0] t4_0, t4_1, t4_2, t4_3, t4_4, t4_5, t4_6, t4_7, t4_8, t4_9,
t4_10, t4_11, t4_12, t4_13, t4_14, t4_15;
wire [width-1:0] t5_0, t5_1, t5_2, t5_3, t5_4, t5_5, t5_6, t5_7, t5_8, t5_9,
t5_10, t5_11, t5_12, t5_13, t5_14, t5_15;
wire [width-1:0] t6_0, t6_1, t6_2, t6_3, t6_4, t6_5, t6_6, t6_7, t6_8, t6_9,
t6_10, t6_11, t6_12, t6_13, t6_14, t6_15;
reg [width-1:0] t7_0, t7_1, t7_2, t7_3, t7_4, t7_5, t7_6, t7_7, t7_8, t7_9,
t7_10, t7_11, t7_12, t7_13, t7_14, t7_15;
wire [width-1:0] t8_0, t8_1, t8_2, t8_3, t8_4, t8_5, t8_6, t8_7, t8_8, t8_9,
t8_10, t8_11, t8_12, t8_13, t8_14, t8_15;
wire [width-1:0] t9_0, t9_1, t9_2, t9_3, t9_4, t9_5, t9_6, t9_7, t9_8, t9_9,
t9_10, t9_11, t9_12, t9_13, t9_14, t9_15;
wire [width-1:0] t10_0, t10_1, t10_2, t10_3, t10_4, t10_5, t10_6, t10_7, t10_8,
t10_9, t10_10, t10_11, t10_12, t10_13, t10_14, t10_15;
reg [width-1:0] t11_0, t11_1, t11_2, t11_3, t11_4, t11_5, t11_6, t11_7, t11_8,
t11_9, t11_10, t11_11, t11_12, t11_13, t11_14, t11_15;
wire [width-1:0] t12_0, t12_1, t12_2, t12_3, t12_4, t12_5, t12_6, t12_7, t12_8,
t12_9, t12_10, t12_11, t12_12, t12_13, t12_14, t12_15;
reg [width-1:0] t13_0, t13_1, t13_2, t13_3, t13_4, t13_5, t13_6, t13_7, t13_8,
t13_9, t13_10, t13_11, t13_12, t13_13, t13_14, t13_15;

reg [31:0] control;

always @(posedge clk) begin


case(ct)
4'd0: control <= 32'b11111111111111111010101011110000;
4'd1: control <= 32'b11111111111111111010101011110000;
4'd2: control <= 32'b00000000111111111010101011110000;
4'd3: control <= 32'b00000000111111111010101011110000;
4'd4: control <= 32'b11111111000000001010101011110000;
4'd5: control <= 32'b11111111000000001010101011110000;
4'd6: control <= 32'b00000000000000001010101011110000;
4'd7: control <= 32'b00000000000000001010101011110000;
4'd8: control <= 32'b11111111111111110101010100001111;
4'd9: control <= 32'b11111111111111110101010100001111;
4'd10: control <= 32'b00000000111111110101010100001111;
4'd11: control <= 32'b00000000111111110101010100001111;
4'd12: control <= 32'b11111111000000000101010100001111;
4'd13: control <= 32'b11111111000000000101010100001111;
4'd14: control <= 32'b00000000000000000101010100001111;
4'd15: control <= 32'b00000000000000000101010100001111;
endcase
end

// synthesis attribute rom_style of control is "distributed"


reg [31:0] control0;
reg [31:0] control1;
reg [31:0] control2;
reg [31:0] control3;
always @(posedge clk) begin
control0 <= control;
control1 <= control0;
control2 <= control1;
control3 <= control2;
end
assign t0_0 = x0;
assign t0_1 = x8;
assign t0_2 = x1;
assign t0_3 = x9;
assign t0_4 = x2;
assign t0_5 = x10;
assign t0_6 = x3;
assign t0_7 = x11;
assign t0_8 = x4;
assign t0_9 = x12;
assign t0_10 = x5;
assign t0_11 = x13;
assign t0_12 = x6;
assign t0_13 = x14;
assign t0_14 = x7;
assign t0_15 = x15;
assign t1_0 = t0_0;
assign t1_1 = t0_1;
assign t1_2 = t0_2;
assign t1_3 = t0_3;
assign t1_4 = t0_4;
assign t1_5 = t0_5;
assign t1_6 = t0_6;
assign t1_7 = t0_7;
assign t1_8 = t0_9;
assign t1_9 = t0_8;
assign t1_10 = t0_11;
assign t1_11 = t0_10;
assign t1_12 = t0_13;
assign t1_13 = t0_12;
assign t1_14 = t0_15;
assign t1_15 = t0_14;
assign t2_0 = t1_0;
assign t2_1 = t1_8;
assign t2_2 = t1_1;
assign t2_3 = t1_9;
assign t2_4 = t1_2;
assign t2_5 = t1_10;
assign t2_6 = t1_3;
assign t2_7 = t1_11;
assign t2_8 = t1_4;
assign t2_9 = t1_12;
assign t2_10 = t1_5;
assign t2_11 = t1_13;
assign t2_12 = t1_6;
assign t2_13 = t1_14;
assign t2_14 = t1_7;
assign t2_15 = t1_15;
always @(posedge clk) begin
t3_0 <= t2_0;
t3_1 <= t2_1;
t3_2 <= t2_2;
t3_3 <= t2_3;
t3_4 <= t2_4;
t3_5 <= t2_5;
t3_6 <= t2_6;
t3_7 <= t2_7;
t3_8 <= t2_8;
t3_9 <= t2_9;
t3_10 <= t2_10;
t3_11 <= t2_11;
t3_12 <= t2_12;
t3_13 <= t2_13;
t3_14 <= t2_14;
t3_15 <= t2_15;
end
assign t4_0 = t3_0;
assign t4_1 = t3_8;
assign t4_2 = t3_1;
assign t4_3 = t3_9;
assign t4_4 = t3_2;
assign t4_5 = t3_10;
assign t4_6 = t3_3;
assign t4_7 = t3_11;
assign t4_8 = t3_4;
assign t4_9 = t3_12;
assign t4_10 = t3_5;
assign t4_11 = t3_13;
assign t4_12 = t3_6;
assign t4_13 = t3_14;
assign t4_14 = t3_7;
assign t4_15 = t3_15;
assign t5_0 = t4_0;
assign t5_1 = t4_1;
assign t5_2 = t4_2;
assign t5_3 = t4_3;
assign t5_4 = t4_4;
assign t5_5 = t4_5;
assign t5_6 = t4_6;
assign t5_7 = t4_7;
assign t5_8 = t4_8;
assign t5_9 = t4_9;
assign t5_10 = t4_10;
assign t5_11 = t4_11;
assign t5_12 = t4_12;
assign t5_13 = t4_13;
assign t5_14 = t4_14;
assign t5_15 = t4_15;
assign t6_0 = t5_0;
assign t6_1 = t5_8;
assign t6_2 = t5_1;
assign t6_3 = t5_9;
assign t6_4 = t5_2;
assign t6_5 = t5_10;
assign t6_6 = t5_3;
assign t6_7 = t5_11;
assign t6_8 = t5_4;
assign t6_9 = t5_12;
assign t6_10 = t5_5;
assign t6_11 = t5_13;
assign t6_12 = t5_6;
assign t6_13 = t5_14;
assign t6_14 = t5_7;
assign t6_15 = t5_15;
always @(posedge clk) begin
t7_0 <= (control1[31] == 0) ? t6_0 : t6_1;
t7_1 <= (control1[31] == 0) ? t6_1 : t6_0;
t7_2 <= (control1[30] == 0) ? t6_2 : t6_3;
t7_3 <= (control1[30] == 0) ? t6_3 : t6_2;
t7_4 <= (control1[29] == 0) ? t6_4 : t6_5;
t7_5 <= (control1[29] == 0) ? t6_5 : t6_4;
t7_6 <= (control1[28] == 0) ? t6_6 : t6_7;
t7_7 <= (control1[28] == 0) ? t6_7 : t6_6;
t7_8 <= (control1[27] == 0) ? t6_8 : t6_9;
t7_9 <= (control1[27] == 0) ? t6_9 : t6_8;
t7_10 <= (control1[26] == 0) ? t6_10 : t6_11;
t7_11 <= (control1[26] == 0) ? t6_11 : t6_10;
t7_12 <= (control1[25] == 0) ? t6_12 : t6_13;
t7_13 <= (control1[25] == 0) ? t6_13 : t6_12;
t7_14 <= (control1[24] == 0) ? t6_14 : t6_15;
t7_15 <= (control1[24] == 0) ? t6_15 : t6_14;
end
assign t8_0 = t7_0;
assign t8_1 = t7_2;
assign t8_2 = t7_4;
assign t8_3 = t7_6;
assign t8_4 = t7_8;
assign t8_5 = t7_10;
assign t8_6 = t7_12;
assign t8_7 = t7_14;
assign t8_8 = t7_1;
assign t8_9 = t7_3;
assign t8_10 = t7_5;
assign t8_11 = t7_7;
assign t8_12 = t7_9;
assign t8_13 = t7_11;
assign t8_14 = t7_13;
assign t8_15 = t7_15;
assign t9_0 = (control2[23] == 0) ? t8_0 : t8_1;
assign t9_1 = (control2[23] == 0) ? t8_1 : t8_0;
assign t9_2 = (control2[22] == 0) ? t8_2 : t8_3;
assign t9_3 = (control2[22] == 0) ? t8_3 : t8_2;
assign t9_4 = (control2[21] == 0) ? t8_4 : t8_5;
assign t9_5 = (control2[21] == 0) ? t8_5 : t8_4;
assign t9_6 = (control2[20] == 0) ? t8_6 : t8_7;
assign t9_7 = (control2[20] == 0) ? t8_7 : t8_6;
assign t9_8 = (control2[19] == 0) ? t8_8 : t8_9;
assign t9_9 = (control2[19] == 0) ? t8_9 : t8_8;
assign t9_10 = (control2[18] == 0) ? t8_10 : t8_11;
assign t9_11 = (control2[18] == 0) ? t8_11 : t8_10;
assign t9_12 = (control2[17] == 0) ? t8_12 : t8_13;
assign t9_13 = (control2[17] == 0) ? t8_13 : t8_12;
assign t9_14 = (control2[16] == 0) ? t8_14 : t8_15;
assign t9_15 = (control2[16] == 0) ? t8_15 : t8_14;
assign t10_0 = t9_0;
assign t10_1 = t9_2;
assign t10_2 = t9_4;
assign t10_3 = t9_6;
assign t10_4 = t9_8;
assign t10_5 = t9_10;
assign t10_6 = t9_12;
assign t10_7 = t9_14;
assign t10_8 = t9_1;
assign t10_9 = t9_3;
assign t10_10 = t9_5;
assign t10_11 = t9_7;
assign t10_12 = t9_9;
assign t10_13 = t9_11;
assign t10_14 = t9_13;
assign t10_15 = t9_15;
always @(posedge clk) begin
t11_0 <= (control2[15] == 0) ? t10_0 : t10_1;
t11_1 <= (control2[15] == 0) ? t10_1 : t10_0;
t11_2 <= (control2[14] == 0) ? t10_2 : t10_3;
t11_3 <= (control2[14] == 0) ? t10_3 : t10_2;
t11_4 <= (control2[13] == 0) ? t10_4 : t10_5;
t11_5 <= (control2[13] == 0) ? t10_5 : t10_4;
t11_6 <= (control2[12] == 0) ? t10_6 : t10_7;
t11_7 <= (control2[12] == 0) ? t10_7 : t10_6;
t11_8 <= (control2[11] == 0) ? t10_8 : t10_9;
t11_9 <= (control2[11] == 0) ? t10_9 : t10_8;
t11_10 <= (control2[10] == 0) ? t10_10 : t10_11;
t11_11 <= (control2[10] == 0) ? t10_11 : t10_10;
t11_12 <= (control2[9] == 0) ? t10_12 : t10_13;
t11_13 <= (control2[9] == 0) ? t10_13 : t10_12;
t11_14 <= (control2[8] == 0) ? t10_14 : t10_15;
t11_15 <= (control2[8] == 0) ? t10_15 : t10_14;
end
assign t12_0 = t11_0;
assign t12_1 = t11_2;
assign t12_2 = t11_4;
assign t12_3 = t11_6;
assign t12_4 = t11_8;
assign t12_5 = t11_10;
assign t12_6 = t11_12;
assign t12_7 = t11_14;
assign t12_8 = t11_1;
assign t12_9 = t11_3;
assign t12_10 = t11_5;
assign t12_11 = t11_7;
assign t12_12 = t11_9;
assign t12_13 = t11_11;
assign t12_14 = t11_13;
assign t12_15 = t11_15;
always @(posedge clk) begin
t13_0 <= (control3[7] == 0) ? t12_0 : t12_1;
t13_1 <= (control3[7] == 0) ? t12_1 : t12_0;
t13_2 <= (control3[6] == 0) ? t12_2 : t12_3;
t13_3 <= (control3[6] == 0) ? t12_3 : t12_2;
t13_4 <= (control3[5] == 0) ? t12_4 : t12_5;
t13_5 <= (control3[5] == 0) ? t12_5 : t12_4;
t13_6 <= (control3[4] == 0) ? t12_6 : t12_7;
t13_7 <= (control3[4] == 0) ? t12_7 : t12_6;
t13_8 <= (control3[3] == 0) ? t12_8 : t12_9;
t13_9 <= (control3[3] == 0) ? t12_9 : t12_8;
t13_10 <= (control3[2] == 0) ? t12_10 : t12_11;
t13_11 <= (control3[2] == 0) ? t12_11 : t12_10;
t13_12 <= (control3[1] == 0) ? t12_12 : t12_13;
t13_13 <= (control3[1] == 0) ? t12_13 : t12_12;
t13_14 <= (control3[0] == 0) ? t12_14 : t12_15;
t13_15 <= (control3[0] == 0) ? t12_15 : t12_14;
end
always @(posedge clk) begin
y0 <= t13_0;
y1 <= t13_2;
y2 <= t13_4;
y3 <= t13_6;
y4 <= t13_8;
y5 <= t13_10;
y6 <= t13_12;
y7 <= t13_14;
y8 <= t13_1;
y9 <= t13_3;
y10 <= t13_5;
y11 <= t13_7;
y12 <= t13_9;
y13 <= t13_11;
y14 <= t13_13;
y15 <= t13_15;
end
endmodule

// Latency: 39
// Gap: 16
module perm17610(clk, next, reset, next_out,
x0, y0,
x1, y1,
x2, y2,
x3, y3,
x4, y4,
x5, y5,
x6, y6,
x7, y7,
x8, y8,
x9, y9,
x10, y10,
x11, y11,
x12, y12,
x13, y13,
x14, y14,
x15, y15);
parameter width = 16;

parameter depth = 16;

parameter addrbits = 4;

parameter muxbits = 4;

input [width-1:0] x0;


output [width-1:0] y0;
wire [width-1:0] t0;
wire [width-1:0] s0;
input [width-1:0] x1;
output [width-1:0] y1;
wire [width-1:0] t1;
wire [width-1:0] s1;
input [width-1:0] x2;
output [width-1:0] y2;
wire [width-1:0] t2;
wire [width-1:0] s2;
input [width-1:0] x3;
output [width-1:0] y3;
wire [width-1:0] t3;
wire [width-1:0] s3;
input [width-1:0] x4;
output [width-1:0] y4;
wire [width-1:0] t4;
wire [width-1:0] s4;
input [width-1:0] x5;
output [width-1:0] y5;
wire [width-1:0] t5;
wire [width-1:0] s5;
input [width-1:0] x6;
output [width-1:0] y6;
wire [width-1:0] t6;
wire [width-1:0] s6;
input [width-1:0] x7;
output [width-1:0] y7;
wire [width-1:0] t7;
wire [width-1:0] s7;
input [width-1:0] x8;
output [width-1:0] y8;
wire [width-1:0] t8;
wire [width-1:0] s8;
input [width-1:0] x9;
output [width-1:0] y9;
wire [width-1:0] t9;
wire [width-1:0] s9;
input [width-1:0] x10;
output [width-1:0] y10;
wire [width-1:0] t10;
wire [width-1:0] s10;
input [width-1:0] x11;
output [width-1:0] y11;
wire [width-1:0] t11;
wire [width-1:0] s11;
input [width-1:0] x12;
output [width-1:0] y12;
wire [width-1:0] t12;
wire [width-1:0] s12;
input [width-1:0] x13;
output [width-1:0] y13;
wire [width-1:0] t13;
wire [width-1:0] s13;
input [width-1:0] x14;
output [width-1:0] y14;
wire [width-1:0] t14;
wire [width-1:0] s14;
input [width-1:0] x15;
output [width-1:0] y15;
wire [width-1:0] t15;
wire [width-1:0] s15;
input next, reset, clk;
output next_out;
reg [addrbits-1:0] s1rdloc, s2rdloc;

reg [addrbits-1:0] s1wr0;


reg [addrbits-1:0] s1rd0, s2wr0, s2rd0;
reg [addrbits-1:0] s1rd1, s2wr1, s2rd1;
reg [addrbits-1:0] s1rd2, s2wr2, s2rd2;
reg [addrbits-1:0] s1rd3, s2wr3, s2rd3;
reg [addrbits-1:0] s1rd4, s2wr4, s2rd4;
reg [addrbits-1:0] s1rd5, s2wr5, s2rd5;
reg [addrbits-1:0] s1rd6, s2wr6, s2rd6;
reg [addrbits-1:0] s1rd7, s2wr7, s2rd7;
reg [addrbits-1:0] s1rd8, s2wr8, s2rd8;
reg [addrbits-1:0] s1rd9, s2wr9, s2rd9;
reg [addrbits-1:0] s1rd10, s2wr10, s2rd10;
reg [addrbits-1:0] s1rd11, s2wr11, s2rd11;
reg [addrbits-1:0] s1rd12, s2wr12, s2rd12;
reg [addrbits-1:0] s1rd13, s2wr13, s2rd13;
reg [addrbits-1:0] s1rd14, s2wr14, s2rd14;
reg [addrbits-1:0] s1rd15, s2wr15, s2rd15;
reg s1wr_en, state1, state2, state3;
wire next2, next3, next4;
reg inFlip0, outFlip0_z, outFlip1;
wire inFlip1, outFlip0;

wire [0:0] tm0;


assign tm0 = 0;
shiftRegFIFO #(6, 1) shiftFIFO_27498(.X(outFlip0), .Y(inFlip1), .clk(clk));
shiftRegFIFO #(1, 1) shiftFIFO_27499(.X(outFlip0_z), .Y(outFlip0), .clk(clk));
// shiftRegFIFO #(2, 1) inFlip1Reg(outFlip0, inFlip1, clk);
// shiftRegFIFO #(1, 1) outFlip0Reg(outFlip0_z, outFlip0, clk);

memMod_dist #(depth*2, width, addrbits+1) s1mem0(x0, t0, {inFlip0, s1wr0},


{outFlip0, s1rd0}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem1(x1, t1, {inFlip0, s1wr0},
{outFlip0, s1rd1}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem2(x2, t2, {inFlip0, s1wr0},
{outFlip0, s1rd2}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem3(x3, t3, {inFlip0, s1wr0},
{outFlip0, s1rd3}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem4(x4, t4, {inFlip0, s1wr0},
{outFlip0, s1rd4}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem5(x5, t5, {inFlip0, s1wr0},
{outFlip0, s1rd5}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem6(x6, t6, {inFlip0, s1wr0},
{outFlip0, s1rd6}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem7(x7, t7, {inFlip0, s1wr0},
{outFlip0, s1rd7}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem8(x8, t8, {inFlip0, s1wr0},
{outFlip0, s1rd8}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem9(x9, t9, {inFlip0, s1wr0},
{outFlip0, s1rd9}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem10(x10, t10, {inFlip0, s1wr0},
{outFlip0, s1rd10}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem11(x11, t11, {inFlip0, s1wr0},
{outFlip0, s1rd11}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem12(x12, t12, {inFlip0, s1wr0},
{outFlip0, s1rd12}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem13(x13, t13, {inFlip0, s1wr0},
{outFlip0, s1rd13}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem14(x14, t14, {inFlip0, s1wr0},
{outFlip0, s1rd14}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem15(x15, t15, {inFlip0, s1wr0},
{outFlip0, s1rd15}, s1wr_en, clk);

nextReg #(15, 4) nextReg_27510(.X(next), .Y(next2), .reset(reset), .clk(clk));


shiftRegFIFO #(7, 1) shiftFIFO_27511(.X(next2), .Y(next3), .clk(clk));
nextReg #(16, 4) nextReg_27514(.X(next3), .Y(next4), .reset(reset), .clk(clk));
shiftRegFIFO #(1, 1) shiftFIFO_27515(.X(next4), .Y(next_out), .clk(clk));
shiftRegFIFO #(15, 1) shiftFIFO_27518(.X(tm0), .Y(tm0_d), .clk(clk));
shiftRegFIFO #(6, 1) shiftFIFO_27521(.X(tm0_d), .Y(tm0_dd), .clk(clk));

wire [addrbits-1:0] muxCycle, writeCycle;


assign muxCycle = s1rdloc;
shiftRegFIFO #(6, 4) shiftFIFO_27526(.X(muxCycle), .Y(writeCycle), .clk(clk));

wire readInt, s2wr_en;


assign readInt = (state2 == 1);

shiftRegFIFO #(7, 1) writeIntReg(readInt, s2wr_en, clk);

memMod_dist #(depth*2, width, addrbits+1) s2mem0(s0, y0, {inFlip1, s2wr0},


{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem1(s1, y1, {inFlip1, s2wr1},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem2(s2, y2, {inFlip1, s2wr2},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem3(s3, y3, {inFlip1, s2wr3},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem4(s4, y4, {inFlip1, s2wr4},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem5(s5, y5, {inFlip1, s2wr5},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem6(s6, y6, {inFlip1, s2wr6},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem7(s7, y7, {inFlip1, s2wr7},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem8(s8, y8, {inFlip1, s2wr8},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem9(s9, y9, {inFlip1, s2wr9},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem10(s10, y10, {inFlip1, s2wr10},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem11(s11, y11, {inFlip1, s2wr11},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem12(s12, y12, {inFlip1, s2wr12},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem13(s13, y13, {inFlip1, s2wr13},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem14(s14, y14, {inFlip1, s2wr14},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem15(s15, y15, {inFlip1, s2wr15},
{outFlip1, s2rdloc}, s2wr_en, clk);
always @(posedge clk) begin
if (reset == 1) begin
state1 <= 0;
inFlip0 <= 0;
s1wr0 <= 0;
end
else if (next == 1) begin
s1wr0 <= 0;
state1 <= 1;
s1wr_en <= 1;
inFlip0 <= (s1wr0 == depth-1) ? ~inFlip0 : inFlip0;
end
else begin
case(state1)
0: begin
s1wr0 <= 0;
state1 <= 0;
s1wr_en <= 0;
inFlip0 <= inFlip0;
end
1: begin
s1wr0 <= (s1wr0 == depth-1) ? 0 : s1wr0 + 1;
state1 <= 1;
s1wr_en <= 1;
inFlip0 <= (s1wr0 == depth-1) ? ~inFlip0 : inFlip0;
end
endcase
end
end

always @(posedge clk) begin


if (reset == 1) begin
state2 <= 0;
outFlip0_z <= 0;
end
else if (next2 == 1) begin
s1rdloc <= 0;
state2 <= 1;
outFlip0_z <= (s1rdloc == depth-1) ? ~outFlip0_z : outFlip0_z;
end
else begin
case(state2)
0: begin
s1rdloc <= 0;
state2 <= 0;
outFlip0_z <= outFlip0_z;
end
1: begin
s1rdloc <= (s1rdloc == depth-1) ? 0 : s1rdloc + 1;
state2 <= 1;
outFlip0_z <= (s1rdloc == depth-1) ? ~outFlip0_z : outFlip0_z;
end
endcase
end
end

always @(posedge clk) begin


if (reset == 1) begin
state3 <= 0;
outFlip1 <= 0;
end
else if (next4 == 1) begin
s2rdloc <= 0;
state3 <= 1;
outFlip1 <= (s2rdloc == depth-1) ? ~outFlip1 : outFlip1;
end
else begin
case(state3)
0: begin
s2rdloc <= 0;
state3 <= 0;
outFlip1 <= outFlip1;
end
1: begin
s2rdloc <= (s2rdloc == depth-1) ? 0 : s2rdloc + 1;
state3 <= 1;
outFlip1 <= (s2rdloc == depth-1) ? ~outFlip1 : outFlip1;
end
endcase
end
end
always @(posedge clk) begin
case({tm0_d, s1rdloc})
{1'd0, 4'd0}: s1rd0 <= 14;
{1'd0, 4'd1}: s1rd0 <= 15;
{1'd0, 4'd2}: s1rd0 <= 12;
{1'd0, 4'd3}: s1rd0 <= 13;
{1'd0, 4'd4}: s1rd0 <= 10;
{1'd0, 4'd5}: s1rd0 <= 11;
{1'd0, 4'd6}: s1rd0 <= 8;
{1'd0, 4'd7}: s1rd0 <= 9;
{1'd0, 4'd8}: s1rd0 <= 6;
{1'd0, 4'd9}: s1rd0 <= 7;
{1'd0, 4'd10}: s1rd0 <= 4;
{1'd0, 4'd11}: s1rd0 <= 5;
{1'd0, 4'd12}: s1rd0 <= 2;
{1'd0, 4'd13}: s1rd0 <= 3;
{1'd0, 4'd14}: s1rd0 <= 0;
{1'd0, 4'd15}: s1rd0 <= 1;
endcase
end

// synthesis attribute rom_style of s1rd0 is "block"


always @(posedge clk) begin
case({tm0_d, s1rdloc})
{1'd0, 4'd0}: s1rd1 <= 12;
{1'd0, 4'd1}: s1rd1 <= 13;
{1'd0, 4'd2}: s1rd1 <= 14;
{1'd0, 4'd3}: s1rd1 <= 15;
{1'd0, 4'd4}: s1rd1 <= 8;
{1'd0, 4'd5}: s1rd1 <= 9;
{1'd0, 4'd6}: s1rd1 <= 10;
{1'd0, 4'd7}: s1rd1 <= 11;
{1'd0, 4'd8}: s1rd1 <= 4;
{1'd0, 4'd9}: s1rd1 <= 5;
{1'd0, 4'd10}: s1rd1 <= 6;
{1'd0, 4'd11}: s1rd1 <= 7;
{1'd0, 4'd12}: s1rd1 <= 0;
{1'd0, 4'd13}: s1rd1 <= 1;
{1'd0, 4'd14}: s1rd1 <= 2;
{1'd0, 4'd15}: s1rd1 <= 3;
endcase
end

// synthesis attribute rom_style of s1rd1 is "block"


always @(posedge clk) begin
case({tm0_d, s1rdloc})
{1'd0, 4'd0}: s1rd2 <= 10;
{1'd0, 4'd1}: s1rd2 <= 11;
{1'd0, 4'd2}: s1rd2 <= 8;
{1'd0, 4'd3}: s1rd2 <= 9;
{1'd0, 4'd4}: s1rd2 <= 14;
{1'd0, 4'd5}: s1rd2 <= 15;
{1'd0, 4'd6}: s1rd2 <= 12;
{1'd0, 4'd7}: s1rd2 <= 13;
{1'd0, 4'd8}: s1rd2 <= 2;
{1'd0, 4'd9}: s1rd2 <= 3;
{1'd0, 4'd10}: s1rd2 <= 0;
{1'd0, 4'd11}: s1rd2 <= 1;
{1'd0, 4'd12}: s1rd2 <= 6;
{1'd0, 4'd13}: s1rd2 <= 7;
{1'd0, 4'd14}: s1rd2 <= 4;
{1'd0, 4'd15}: s1rd2 <= 5;
endcase
end

// synthesis attribute rom_style of s1rd2 is "block"


always @(posedge clk) begin
case({tm0_d, s1rdloc})
{1'd0, 4'd0}: s1rd3 <= 8;
{1'd0, 4'd1}: s1rd3 <= 9;
{1'd0, 4'd2}: s1rd3 <= 10;
{1'd0, 4'd3}: s1rd3 <= 11;
{1'd0, 4'd4}: s1rd3 <= 12;
{1'd0, 4'd5}: s1rd3 <= 13;
{1'd0, 4'd6}: s1rd3 <= 14;
{1'd0, 4'd7}: s1rd3 <= 15;
{1'd0, 4'd8}: s1rd3 <= 0;
{1'd0, 4'd9}: s1rd3 <= 1;
{1'd0, 4'd10}: s1rd3 <= 2;
{1'd0, 4'd11}: s1rd3 <= 3;
{1'd0, 4'd12}: s1rd3 <= 4;
{1'd0, 4'd13}: s1rd3 <= 5;
{1'd0, 4'd14}: s1rd3 <= 6;
{1'd0, 4'd15}: s1rd3 <= 7;
endcase
end

// synthesis attribute rom_style of s1rd3 is "block"


always @(posedge clk) begin
case({tm0_d, s1rdloc})
{1'd0, 4'd0}: s1rd4 <= 14;
{1'd0, 4'd1}: s1rd4 <= 15;
{1'd0, 4'd2}: s1rd4 <= 12;
{1'd0, 4'd3}: s1rd4 <= 13;
{1'd0, 4'd4}: s1rd4 <= 10;
{1'd0, 4'd5}: s1rd4 <= 11;
{1'd0, 4'd6}: s1rd4 <= 8;
{1'd0, 4'd7}: s1rd4 <= 9;
{1'd0, 4'd8}: s1rd4 <= 6;
{1'd0, 4'd9}: s1rd4 <= 7;
{1'd0, 4'd10}: s1rd4 <= 4;
{1'd0, 4'd11}: s1rd4 <= 5;
{1'd0, 4'd12}: s1rd4 <= 2;
{1'd0, 4'd13}: s1rd4 <= 3;
{1'd0, 4'd14}: s1rd4 <= 0;
{1'd0, 4'd15}: s1rd4 <= 1;
endcase
end

// synthesis attribute rom_style of s1rd4 is "block"


always @(posedge clk) begin
case({tm0_d, s1rdloc})
{1'd0, 4'd0}: s1rd5 <= 12;
{1'd0, 4'd1}: s1rd5 <= 13;
{1'd0, 4'd2}: s1rd5 <= 14;
{1'd0, 4'd3}: s1rd5 <= 15;
{1'd0, 4'd4}: s1rd5 <= 8;
{1'd0, 4'd5}: s1rd5 <= 9;
{1'd0, 4'd6}: s1rd5 <= 10;
{1'd0, 4'd7}: s1rd5 <= 11;
{1'd0, 4'd8}: s1rd5 <= 4;
{1'd0, 4'd9}: s1rd5 <= 5;
{1'd0, 4'd10}: s1rd5 <= 6;
{1'd0, 4'd11}: s1rd5 <= 7;
{1'd0, 4'd12}: s1rd5 <= 0;
{1'd0, 4'd13}: s1rd5 <= 1;
{1'd0, 4'd14}: s1rd5 <= 2;
{1'd0, 4'd15}: s1rd5 <= 3;
endcase
end

// synthesis attribute rom_style of s1rd5 is "block"


always @(posedge clk) begin
case({tm0_d, s1rdloc})
{1'd0, 4'd0}: s1rd6 <= 10;
{1'd0, 4'd1}: s1rd6 <= 11;
{1'd0, 4'd2}: s1rd6 <= 8;
{1'd0, 4'd3}: s1rd6 <= 9;
{1'd0, 4'd4}: s1rd6 <= 14;
{1'd0, 4'd5}: s1rd6 <= 15;
{1'd0, 4'd6}: s1rd6 <= 12;
{1'd0, 4'd7}: s1rd6 <= 13;
{1'd0, 4'd8}: s1rd6 <= 2;
{1'd0, 4'd9}: s1rd6 <= 3;
{1'd0, 4'd10}: s1rd6 <= 0;
{1'd0, 4'd11}: s1rd6 <= 1;
{1'd0, 4'd12}: s1rd6 <= 6;
{1'd0, 4'd13}: s1rd6 <= 7;
{1'd0, 4'd14}: s1rd6 <= 4;
{1'd0, 4'd15}: s1rd6 <= 5;
endcase
end

// synthesis attribute rom_style of s1rd6 is "block"


always @(posedge clk) begin
case({tm0_d, s1rdloc})
{1'd0, 4'd0}: s1rd7 <= 8;
{1'd0, 4'd1}: s1rd7 <= 9;
{1'd0, 4'd2}: s1rd7 <= 10;
{1'd0, 4'd3}: s1rd7 <= 11;
{1'd0, 4'd4}: s1rd7 <= 12;
{1'd0, 4'd5}: s1rd7 <= 13;
{1'd0, 4'd6}: s1rd7 <= 14;
{1'd0, 4'd7}: s1rd7 <= 15;
{1'd0, 4'd8}: s1rd7 <= 0;
{1'd0, 4'd9}: s1rd7 <= 1;
{1'd0, 4'd10}: s1rd7 <= 2;
{1'd0, 4'd11}: s1rd7 <= 3;
{1'd0, 4'd12}: s1rd7 <= 4;
{1'd0, 4'd13}: s1rd7 <= 5;
{1'd0, 4'd14}: s1rd7 <= 6;
{1'd0, 4'd15}: s1rd7 <= 7;
endcase
end

// synthesis attribute rom_style of s1rd7 is "block"


always @(posedge clk) begin
case({tm0_d, s1rdloc})
{1'd0, 4'd0}: s1rd8 <= 6;
{1'd0, 4'd1}: s1rd8 <= 7;
{1'd0, 4'd2}: s1rd8 <= 4;
{1'd0, 4'd3}: s1rd8 <= 5;
{1'd0, 4'd4}: s1rd8 <= 2;
{1'd0, 4'd5}: s1rd8 <= 3;
{1'd0, 4'd6}: s1rd8 <= 0;
{1'd0, 4'd7}: s1rd8 <= 1;
{1'd0, 4'd8}: s1rd8 <= 14;
{1'd0, 4'd9}: s1rd8 <= 15;
{1'd0, 4'd10}: s1rd8 <= 12;
{1'd0, 4'd11}: s1rd8 <= 13;
{1'd0, 4'd12}: s1rd8 <= 10;
{1'd0, 4'd13}: s1rd8 <= 11;
{1'd0, 4'd14}: s1rd8 <= 8;
{1'd0, 4'd15}: s1rd8 <= 9;
endcase
end

// synthesis attribute rom_style of s1rd8 is "block"


always @(posedge clk) begin
case({tm0_d, s1rdloc})
{1'd0, 4'd0}: s1rd9 <= 4;
{1'd0, 4'd1}: s1rd9 <= 5;
{1'd0, 4'd2}: s1rd9 <= 6;
{1'd0, 4'd3}: s1rd9 <= 7;
{1'd0, 4'd4}: s1rd9 <= 0;
{1'd0, 4'd5}: s1rd9 <= 1;
{1'd0, 4'd6}: s1rd9 <= 2;
{1'd0, 4'd7}: s1rd9 <= 3;
{1'd0, 4'd8}: s1rd9 <= 12;
{1'd0, 4'd9}: s1rd9 <= 13;
{1'd0, 4'd10}: s1rd9 <= 14;
{1'd0, 4'd11}: s1rd9 <= 15;
{1'd0, 4'd12}: s1rd9 <= 8;
{1'd0, 4'd13}: s1rd9 <= 9;
{1'd0, 4'd14}: s1rd9 <= 10;
{1'd0, 4'd15}: s1rd9 <= 11;
endcase
end

// synthesis attribute rom_style of s1rd9 is "block"


always @(posedge clk) begin
case({tm0_d, s1rdloc})
{1'd0, 4'd0}: s1rd10 <= 2;
{1'd0, 4'd1}: s1rd10 <= 3;
{1'd0, 4'd2}: s1rd10 <= 0;
{1'd0, 4'd3}: s1rd10 <= 1;
{1'd0, 4'd4}: s1rd10 <= 6;
{1'd0, 4'd5}: s1rd10 <= 7;
{1'd0, 4'd6}: s1rd10 <= 4;
{1'd0, 4'd7}: s1rd10 <= 5;
{1'd0, 4'd8}: s1rd10 <= 10;
{1'd0, 4'd9}: s1rd10 <= 11;
{1'd0, 4'd10}: s1rd10 <= 8;
{1'd0, 4'd11}: s1rd10 <= 9;
{1'd0, 4'd12}: s1rd10 <= 14;
{1'd0, 4'd13}: s1rd10 <= 15;
{1'd0, 4'd14}: s1rd10 <= 12;
{1'd0, 4'd15}: s1rd10 <= 13;
endcase
end

// synthesis attribute rom_style of s1rd10 is "block"


always @(posedge clk) begin
case({tm0_d, s1rdloc})
{1'd0, 4'd0}: s1rd11 <= 0;
{1'd0, 4'd1}: s1rd11 <= 1;
{1'd0, 4'd2}: s1rd11 <= 2;
{1'd0, 4'd3}: s1rd11 <= 3;
{1'd0, 4'd4}: s1rd11 <= 4;
{1'd0, 4'd5}: s1rd11 <= 5;
{1'd0, 4'd6}: s1rd11 <= 6;
{1'd0, 4'd7}: s1rd11 <= 7;
{1'd0, 4'd8}: s1rd11 <= 8;
{1'd0, 4'd9}: s1rd11 <= 9;
{1'd0, 4'd10}: s1rd11 <= 10;
{1'd0, 4'd11}: s1rd11 <= 11;
{1'd0, 4'd12}: s1rd11 <= 12;
{1'd0, 4'd13}: s1rd11 <= 13;
{1'd0, 4'd14}: s1rd11 <= 14;
{1'd0, 4'd15}: s1rd11 <= 15;
endcase
end

// synthesis attribute rom_style of s1rd11 is "block"


always @(posedge clk) begin
case({tm0_d, s1rdloc})
{1'd0, 4'd0}: s1rd12 <= 6;
{1'd0, 4'd1}: s1rd12 <= 7;
{1'd0, 4'd2}: s1rd12 <= 4;
{1'd0, 4'd3}: s1rd12 <= 5;
{1'd0, 4'd4}: s1rd12 <= 2;
{1'd0, 4'd5}: s1rd12 <= 3;
{1'd0, 4'd6}: s1rd12 <= 0;
{1'd0, 4'd7}: s1rd12 <= 1;
{1'd0, 4'd8}: s1rd12 <= 14;
{1'd0, 4'd9}: s1rd12 <= 15;
{1'd0, 4'd10}: s1rd12 <= 12;
{1'd0, 4'd11}: s1rd12 <= 13;
{1'd0, 4'd12}: s1rd12 <= 10;
{1'd0, 4'd13}: s1rd12 <= 11;
{1'd0, 4'd14}: s1rd12 <= 8;
{1'd0, 4'd15}: s1rd12 <= 9;
endcase
end

// synthesis attribute rom_style of s1rd12 is "block"


always @(posedge clk) begin
case({tm0_d, s1rdloc})
{1'd0, 4'd0}: s1rd13 <= 4;
{1'd0, 4'd1}: s1rd13 <= 5;
{1'd0, 4'd2}: s1rd13 <= 6;
{1'd0, 4'd3}: s1rd13 <= 7;
{1'd0, 4'd4}: s1rd13 <= 0;
{1'd0, 4'd5}: s1rd13 <= 1;
{1'd0, 4'd6}: s1rd13 <= 2;
{1'd0, 4'd7}: s1rd13 <= 3;
{1'd0, 4'd8}: s1rd13 <= 12;
{1'd0, 4'd9}: s1rd13 <= 13;
{1'd0, 4'd10}: s1rd13 <= 14;
{1'd0, 4'd11}: s1rd13 <= 15;
{1'd0, 4'd12}: s1rd13 <= 8;
{1'd0, 4'd13}: s1rd13 <= 9;
{1'd0, 4'd14}: s1rd13 <= 10;
{1'd0, 4'd15}: s1rd13 <= 11;
endcase
end

// synthesis attribute rom_style of s1rd13 is "block"


always @(posedge clk) begin
case({tm0_d, s1rdloc})
{1'd0, 4'd0}: s1rd14 <= 2;
{1'd0, 4'd1}: s1rd14 <= 3;
{1'd0, 4'd2}: s1rd14 <= 0;
{1'd0, 4'd3}: s1rd14 <= 1;
{1'd0, 4'd4}: s1rd14 <= 6;
{1'd0, 4'd5}: s1rd14 <= 7;
{1'd0, 4'd6}: s1rd14 <= 4;
{1'd0, 4'd7}: s1rd14 <= 5;
{1'd0, 4'd8}: s1rd14 <= 10;
{1'd0, 4'd9}: s1rd14 <= 11;
{1'd0, 4'd10}: s1rd14 <= 8;
{1'd0, 4'd11}: s1rd14 <= 9;
{1'd0, 4'd12}: s1rd14 <= 14;
{1'd0, 4'd13}: s1rd14 <= 15;
{1'd0, 4'd14}: s1rd14 <= 12;
{1'd0, 4'd15}: s1rd14 <= 13;
endcase
end

// synthesis attribute rom_style of s1rd14 is "block"


always @(posedge clk) begin
case({tm0_d, s1rdloc})
{1'd0, 4'd0}: s1rd15 <= 0;
{1'd0, 4'd1}: s1rd15 <= 1;
{1'd0, 4'd2}: s1rd15 <= 2;
{1'd0, 4'd3}: s1rd15 <= 3;
{1'd0, 4'd4}: s1rd15 <= 4;
{1'd0, 4'd5}: s1rd15 <= 5;
{1'd0, 4'd6}: s1rd15 <= 6;
{1'd0, 4'd7}: s1rd15 <= 7;
{1'd0, 4'd8}: s1rd15 <= 8;
{1'd0, 4'd9}: s1rd15 <= 9;
{1'd0, 4'd10}: s1rd15 <= 10;
{1'd0, 4'd11}: s1rd15 <= 11;
{1'd0, 4'd12}: s1rd15 <= 12;
{1'd0, 4'd13}: s1rd15 <= 13;
{1'd0, 4'd14}: s1rd15 <= 14;
{1'd0, 4'd15}: s1rd15 <= 15;
endcase
end

// synthesis attribute rom_style of s1rd15 is "block"


swNet17610 sw(tm0_d, clk, muxCycle, t0, s0, t1, s1, t2, s2, t3, s3, t4, s4, t5,
s5, t6, s6, t7, s7, t8, s8, t9, s9, t10, s10, t11, s11, t12, s12, t13, s13, t14,
s14, t15, s15);

always @(posedge clk) begin


case({tm0_dd, writeCycle})
{1'd0, 4'd0}: s2wr0 <= 13;
{1'd0, 4'd1}: s2wr0 <= 15;
{1'd0, 4'd2}: s2wr0 <= 9;
{1'd0, 4'd3}: s2wr0 <= 11;
{1'd0, 4'd4}: s2wr0 <= 5;
{1'd0, 4'd5}: s2wr0 <= 7;
{1'd0, 4'd6}: s2wr0 <= 1;
{1'd0, 4'd7}: s2wr0 <= 3;
{1'd0, 4'd8}: s2wr0 <= 12;
{1'd0, 4'd9}: s2wr0 <= 14;
{1'd0, 4'd10}: s2wr0 <= 8;
{1'd0, 4'd11}: s2wr0 <= 10;
{1'd0, 4'd12}: s2wr0 <= 4;
{1'd0, 4'd13}: s2wr0 <= 6;
{1'd0, 4'd14}: s2wr0 <= 0;
{1'd0, 4'd15}: s2wr0 <= 2;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr0 is "block"


always @(posedge clk) begin
case({tm0_dd, writeCycle})
{1'd0, 4'd0}: s2wr1 <= 9;
{1'd0, 4'd1}: s2wr1 <= 11;
{1'd0, 4'd2}: s2wr1 <= 13;
{1'd0, 4'd3}: s2wr1 <= 15;
{1'd0, 4'd4}: s2wr1 <= 1;
{1'd0, 4'd5}: s2wr1 <= 3;
{1'd0, 4'd6}: s2wr1 <= 5;
{1'd0, 4'd7}: s2wr1 <= 7;
{1'd0, 4'd8}: s2wr1 <= 8;
{1'd0, 4'd9}: s2wr1 <= 10;
{1'd0, 4'd10}: s2wr1 <= 12;
{1'd0, 4'd11}: s2wr1 <= 14;
{1'd0, 4'd12}: s2wr1 <= 0;
{1'd0, 4'd13}: s2wr1 <= 2;
{1'd0, 4'd14}: s2wr1 <= 4;
{1'd0, 4'd15}: s2wr1 <= 6;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr1 is "block"


always @(posedge clk) begin
case({tm0_dd, writeCycle})
{1'd0, 4'd0}: s2wr2 <= 5;
{1'd0, 4'd1}: s2wr2 <= 7;
{1'd0, 4'd2}: s2wr2 <= 1;
{1'd0, 4'd3}: s2wr2 <= 3;
{1'd0, 4'd4}: s2wr2 <= 13;
{1'd0, 4'd5}: s2wr2 <= 15;
{1'd0, 4'd6}: s2wr2 <= 9;
{1'd0, 4'd7}: s2wr2 <= 11;
{1'd0, 4'd8}: s2wr2 <= 4;
{1'd0, 4'd9}: s2wr2 <= 6;
{1'd0, 4'd10}: s2wr2 <= 0;
{1'd0, 4'd11}: s2wr2 <= 2;
{1'd0, 4'd12}: s2wr2 <= 12;
{1'd0, 4'd13}: s2wr2 <= 14;
{1'd0, 4'd14}: s2wr2 <= 8;
{1'd0, 4'd15}: s2wr2 <= 10;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr2 is "block"


always @(posedge clk) begin
case({tm0_dd, writeCycle})
{1'd0, 4'd0}: s2wr3 <= 1;
{1'd0, 4'd1}: s2wr3 <= 3;
{1'd0, 4'd2}: s2wr3 <= 5;
{1'd0, 4'd3}: s2wr3 <= 7;
{1'd0, 4'd4}: s2wr3 <= 9;
{1'd0, 4'd5}: s2wr3 <= 11;
{1'd0, 4'd6}: s2wr3 <= 13;
{1'd0, 4'd7}: s2wr3 <= 15;
{1'd0, 4'd8}: s2wr3 <= 0;
{1'd0, 4'd9}: s2wr3 <= 2;
{1'd0, 4'd10}: s2wr3 <= 4;
{1'd0, 4'd11}: s2wr3 <= 6;
{1'd0, 4'd12}: s2wr3 <= 8;
{1'd0, 4'd13}: s2wr3 <= 10;
{1'd0, 4'd14}: s2wr3 <= 12;
{1'd0, 4'd15}: s2wr3 <= 14;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr3 is "block"


always @(posedge clk) begin
case({tm0_dd, writeCycle})
{1'd0, 4'd0}: s2wr4 <= 12;
{1'd0, 4'd1}: s2wr4 <= 14;
{1'd0, 4'd2}: s2wr4 <= 8;
{1'd0, 4'd3}: s2wr4 <= 10;
{1'd0, 4'd4}: s2wr4 <= 4;
{1'd0, 4'd5}: s2wr4 <= 6;
{1'd0, 4'd6}: s2wr4 <= 0;
{1'd0, 4'd7}: s2wr4 <= 2;
{1'd0, 4'd8}: s2wr4 <= 13;
{1'd0, 4'd9}: s2wr4 <= 15;
{1'd0, 4'd10}: s2wr4 <= 9;
{1'd0, 4'd11}: s2wr4 <= 11;
{1'd0, 4'd12}: s2wr4 <= 5;
{1'd0, 4'd13}: s2wr4 <= 7;
{1'd0, 4'd14}: s2wr4 <= 1;
{1'd0, 4'd15}: s2wr4 <= 3;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr4 is "block"


always @(posedge clk) begin
case({tm0_dd, writeCycle})
{1'd0, 4'd0}: s2wr5 <= 8;
{1'd0, 4'd1}: s2wr5 <= 10;
{1'd0, 4'd2}: s2wr5 <= 12;
{1'd0, 4'd3}: s2wr5 <= 14;
{1'd0, 4'd4}: s2wr5 <= 0;
{1'd0, 4'd5}: s2wr5 <= 2;
{1'd0, 4'd6}: s2wr5 <= 4;
{1'd0, 4'd7}: s2wr5 <= 6;
{1'd0, 4'd8}: s2wr5 <= 9;
{1'd0, 4'd9}: s2wr5 <= 11;
{1'd0, 4'd10}: s2wr5 <= 13;
{1'd0, 4'd11}: s2wr5 <= 15;
{1'd0, 4'd12}: s2wr5 <= 1;
{1'd0, 4'd13}: s2wr5 <= 3;
{1'd0, 4'd14}: s2wr5 <= 5;
{1'd0, 4'd15}: s2wr5 <= 7;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr5 is "block"


always @(posedge clk) begin
case({tm0_dd, writeCycle})
{1'd0, 4'd0}: s2wr6 <= 4;
{1'd0, 4'd1}: s2wr6 <= 6;
{1'd0, 4'd2}: s2wr6 <= 0;
{1'd0, 4'd3}: s2wr6 <= 2;
{1'd0, 4'd4}: s2wr6 <= 12;
{1'd0, 4'd5}: s2wr6 <= 14;
{1'd0, 4'd6}: s2wr6 <= 8;
{1'd0, 4'd7}: s2wr6 <= 10;
{1'd0, 4'd8}: s2wr6 <= 5;
{1'd0, 4'd9}: s2wr6 <= 7;
{1'd0, 4'd10}: s2wr6 <= 1;
{1'd0, 4'd11}: s2wr6 <= 3;
{1'd0, 4'd12}: s2wr6 <= 13;
{1'd0, 4'd13}: s2wr6 <= 15;
{1'd0, 4'd14}: s2wr6 <= 9;
{1'd0, 4'd15}: s2wr6 <= 11;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr6 is "block"


always @(posedge clk) begin
case({tm0_dd, writeCycle})
{1'd0, 4'd0}: s2wr7 <= 0;
{1'd0, 4'd1}: s2wr7 <= 2;
{1'd0, 4'd2}: s2wr7 <= 4;
{1'd0, 4'd3}: s2wr7 <= 6;
{1'd0, 4'd4}: s2wr7 <= 8;
{1'd0, 4'd5}: s2wr7 <= 10;
{1'd0, 4'd6}: s2wr7 <= 12;
{1'd0, 4'd7}: s2wr7 <= 14;
{1'd0, 4'd8}: s2wr7 <= 1;
{1'd0, 4'd9}: s2wr7 <= 3;
{1'd0, 4'd10}: s2wr7 <= 5;
{1'd0, 4'd11}: s2wr7 <= 7;
{1'd0, 4'd12}: s2wr7 <= 9;
{1'd0, 4'd13}: s2wr7 <= 11;
{1'd0, 4'd14}: s2wr7 <= 13;
{1'd0, 4'd15}: s2wr7 <= 15;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr7 is "block"


always @(posedge clk) begin
case({tm0_dd, writeCycle})
{1'd0, 4'd0}: s2wr8 <= 13;
{1'd0, 4'd1}: s2wr8 <= 15;
{1'd0, 4'd2}: s2wr8 <= 9;
{1'd0, 4'd3}: s2wr8 <= 11;
{1'd0, 4'd4}: s2wr8 <= 5;
{1'd0, 4'd5}: s2wr8 <= 7;
{1'd0, 4'd6}: s2wr8 <= 1;
{1'd0, 4'd7}: s2wr8 <= 3;
{1'd0, 4'd8}: s2wr8 <= 12;
{1'd0, 4'd9}: s2wr8 <= 14;
{1'd0, 4'd10}: s2wr8 <= 8;
{1'd0, 4'd11}: s2wr8 <= 10;
{1'd0, 4'd12}: s2wr8 <= 4;
{1'd0, 4'd13}: s2wr8 <= 6;
{1'd0, 4'd14}: s2wr8 <= 0;
{1'd0, 4'd15}: s2wr8 <= 2;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr8 is "block"


always @(posedge clk) begin
case({tm0_dd, writeCycle})
{1'd0, 4'd0}: s2wr9 <= 9;
{1'd0, 4'd1}: s2wr9 <= 11;
{1'd0, 4'd2}: s2wr9 <= 13;
{1'd0, 4'd3}: s2wr9 <= 15;
{1'd0, 4'd4}: s2wr9 <= 1;
{1'd0, 4'd5}: s2wr9 <= 3;
{1'd0, 4'd6}: s2wr9 <= 5;
{1'd0, 4'd7}: s2wr9 <= 7;
{1'd0, 4'd8}: s2wr9 <= 8;
{1'd0, 4'd9}: s2wr9 <= 10;
{1'd0, 4'd10}: s2wr9 <= 12;
{1'd0, 4'd11}: s2wr9 <= 14;
{1'd0, 4'd12}: s2wr9 <= 0;
{1'd0, 4'd13}: s2wr9 <= 2;
{1'd0, 4'd14}: s2wr9 <= 4;
{1'd0, 4'd15}: s2wr9 <= 6;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr9 is "block"


always @(posedge clk) begin
case({tm0_dd, writeCycle})
{1'd0, 4'd0}: s2wr10 <= 5;
{1'd0, 4'd1}: s2wr10 <= 7;
{1'd0, 4'd2}: s2wr10 <= 1;
{1'd0, 4'd3}: s2wr10 <= 3;
{1'd0, 4'd4}: s2wr10 <= 13;
{1'd0, 4'd5}: s2wr10 <= 15;
{1'd0, 4'd6}: s2wr10 <= 9;
{1'd0, 4'd7}: s2wr10 <= 11;
{1'd0, 4'd8}: s2wr10 <= 4;
{1'd0, 4'd9}: s2wr10 <= 6;
{1'd0, 4'd10}: s2wr10 <= 0;
{1'd0, 4'd11}: s2wr10 <= 2;
{1'd0, 4'd12}: s2wr10 <= 12;
{1'd0, 4'd13}: s2wr10 <= 14;
{1'd0, 4'd14}: s2wr10 <= 8;
{1'd0, 4'd15}: s2wr10 <= 10;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr10 is "block"


always @(posedge clk) begin
case({tm0_dd, writeCycle})
{1'd0, 4'd0}: s2wr11 <= 1;
{1'd0, 4'd1}: s2wr11 <= 3;
{1'd0, 4'd2}: s2wr11 <= 5;
{1'd0, 4'd3}: s2wr11 <= 7;
{1'd0, 4'd4}: s2wr11 <= 9;
{1'd0, 4'd5}: s2wr11 <= 11;
{1'd0, 4'd6}: s2wr11 <= 13;
{1'd0, 4'd7}: s2wr11 <= 15;
{1'd0, 4'd8}: s2wr11 <= 0;
{1'd0, 4'd9}: s2wr11 <= 2;
{1'd0, 4'd10}: s2wr11 <= 4;
{1'd0, 4'd11}: s2wr11 <= 6;
{1'd0, 4'd12}: s2wr11 <= 8;
{1'd0, 4'd13}: s2wr11 <= 10;
{1'd0, 4'd14}: s2wr11 <= 12;
{1'd0, 4'd15}: s2wr11 <= 14;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr11 is "block"


always @(posedge clk) begin
case({tm0_dd, writeCycle})
{1'd0, 4'd0}: s2wr12 <= 12;
{1'd0, 4'd1}: s2wr12 <= 14;
{1'd0, 4'd2}: s2wr12 <= 8;
{1'd0, 4'd3}: s2wr12 <= 10;
{1'd0, 4'd4}: s2wr12 <= 4;
{1'd0, 4'd5}: s2wr12 <= 6;
{1'd0, 4'd6}: s2wr12 <= 0;
{1'd0, 4'd7}: s2wr12 <= 2;
{1'd0, 4'd8}: s2wr12 <= 13;
{1'd0, 4'd9}: s2wr12 <= 15;
{1'd0, 4'd10}: s2wr12 <= 9;
{1'd0, 4'd11}: s2wr12 <= 11;
{1'd0, 4'd12}: s2wr12 <= 5;
{1'd0, 4'd13}: s2wr12 <= 7;
{1'd0, 4'd14}: s2wr12 <= 1;
{1'd0, 4'd15}: s2wr12 <= 3;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr12 is "block"


always @(posedge clk) begin
case({tm0_dd, writeCycle})
{1'd0, 4'd0}: s2wr13 <= 8;
{1'd0, 4'd1}: s2wr13 <= 10;
{1'd0, 4'd2}: s2wr13 <= 12;
{1'd0, 4'd3}: s2wr13 <= 14;
{1'd0, 4'd4}: s2wr13 <= 0;
{1'd0, 4'd5}: s2wr13 <= 2;
{1'd0, 4'd6}: s2wr13 <= 4;
{1'd0, 4'd7}: s2wr13 <= 6;
{1'd0, 4'd8}: s2wr13 <= 9;
{1'd0, 4'd9}: s2wr13 <= 11;
{1'd0, 4'd10}: s2wr13 <= 13;
{1'd0, 4'd11}: s2wr13 <= 15;
{1'd0, 4'd12}: s2wr13 <= 1;
{1'd0, 4'd13}: s2wr13 <= 3;
{1'd0, 4'd14}: s2wr13 <= 5;
{1'd0, 4'd15}: s2wr13 <= 7;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr13 is "block"


always @(posedge clk) begin
case({tm0_dd, writeCycle})
{1'd0, 4'd0}: s2wr14 <= 4;
{1'd0, 4'd1}: s2wr14 <= 6;
{1'd0, 4'd2}: s2wr14 <= 0;
{1'd0, 4'd3}: s2wr14 <= 2;
{1'd0, 4'd4}: s2wr14 <= 12;
{1'd0, 4'd5}: s2wr14 <= 14;
{1'd0, 4'd6}: s2wr14 <= 8;
{1'd0, 4'd7}: s2wr14 <= 10;
{1'd0, 4'd8}: s2wr14 <= 5;
{1'd0, 4'd9}: s2wr14 <= 7;
{1'd0, 4'd10}: s2wr14 <= 1;
{1'd0, 4'd11}: s2wr14 <= 3;
{1'd0, 4'd12}: s2wr14 <= 13;
{1'd0, 4'd13}: s2wr14 <= 15;
{1'd0, 4'd14}: s2wr14 <= 9;
{1'd0, 4'd15}: s2wr14 <= 11;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr14 is "block"


always @(posedge clk) begin
case({tm0_dd, writeCycle})
{1'd0, 4'd0}: s2wr15 <= 0;
{1'd0, 4'd1}: s2wr15 <= 2;
{1'd0, 4'd2}: s2wr15 <= 4;
{1'd0, 4'd3}: s2wr15 <= 6;
{1'd0, 4'd4}: s2wr15 <= 8;
{1'd0, 4'd5}: s2wr15 <= 10;
{1'd0, 4'd6}: s2wr15 <= 12;
{1'd0, 4'd7}: s2wr15 <= 14;
{1'd0, 4'd8}: s2wr15 <= 1;
{1'd0, 4'd9}: s2wr15 <= 3;
{1'd0, 4'd10}: s2wr15 <= 5;
{1'd0, 4'd11}: s2wr15 <= 7;
{1'd0, 4'd12}: s2wr15 <= 9;
{1'd0, 4'd13}: s2wr15 <= 11;
{1'd0, 4'd14}: s2wr15 <= 13;
{1'd0, 4'd15}: s2wr15 <= 15;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr15 is "block"


endmodule

module memMod(in, out, inAddr, outAddr, writeSel, clk);

parameter depth=1024, width=16, logDepth=10;


input [width-1:0] in;
input [logDepth-1:0] inAddr, outAddr;
input writeSel, clk;
output [width-1:0] out;
reg [width-1:0] out;

// synthesis attribute ram_style of mem is block

reg [width-1:0] mem[depth-1:0];

always @(posedge clk) begin


out <= mem[outAddr];

if (writeSel)
mem[inAddr] <= in;
end
endmodule

module memMod_dist(in, out, inAddr, outAddr, writeSel, clk);

parameter depth=1024, width=16, logDepth=10;

input [width-1:0] in;


input [logDepth-1:0] inAddr, outAddr;
input writeSel, clk;
output [width-1:0] out;
reg [width-1:0] out;

// synthesis attribute ram_style of mem is distributed

reg [width-1:0] mem[depth-1:0];

always @(posedge clk) begin


out <= mem[outAddr];

if (writeSel)
mem[inAddr] <= in;
end
endmodule

module shiftRegFIFO(X, Y, clk);


parameter depth=1, width=1;

output [width-1:0] Y;
input [width-1:0] X;
input clk;

reg [width-1:0] mem [depth-1:0];


integer index;

assign Y = mem[depth-1];

always @ (posedge clk) begin


for(index=1;index<depth;index=index+1) begin
mem[index] <= mem[index-1];
end
mem[0]<=X;
end
endmodule

module nextReg(X, Y, reset, clk);


parameter depth=2, logDepth=1;

output Y;
input X;
input clk, reset;
reg [logDepth:0] count;
reg active;

assign Y = (count == depth) ? 1 : 0;

always @ (posedge clk) begin


if (reset == 1) begin
count <= 0;
active <= 0;
end
else if (X == 1) begin
active <= 1;
count <= 1;
end
else if (count == depth) begin
count <= 0;
active <= 0;
end
else if (active)
count <= count+1;
end
endmodule

// Latency: 7
// Gap: 1
module codeBlock17614(clk, reset, next_in, next_out,
X0_in, Y0,
X1_in, Y1,
X2_in, Y2,
X3_in, Y3,
X4_in, Y4,
X5_in, Y5,
X6_in, Y6,
X7_in, Y7,
X8_in, Y8,
X9_in, Y9,
X10_in, Y10,
X11_in, Y11,
X12_in, Y12,
X13_in, Y13,
X14_in, Y14,
X15_in, Y15,
X16_in, Y16,
X17_in, Y17,
X18_in, Y18,
X19_in, Y19,
X20_in, Y20,
X21_in, Y21,
X22_in, Y22,
X23_in, Y23,
X24_in, Y24,
X25_in, Y25,
X26_in, Y26,
X27_in, Y27,
X28_in, Y28,
X29_in, Y29,
X30_in, Y30,
X31_in, Y31);

output next_out;
input clk, reset, next_in;

reg next;

input [7:0] X0_in,


X1_in,
X2_in,
X3_in,
X4_in,
X5_in,
X6_in,
X7_in,
X8_in,
X9_in,
X10_in,
X11_in,
X12_in,
X13_in,
X14_in,
X15_in,
X16_in,
X17_in,
X18_in,
X19_in,
X20_in,
X21_in,
X22_in,
X23_in,
X24_in,
X25_in,
X26_in,
X27_in,
X28_in,
X29_in,
X30_in,
X31_in;

reg [7:0] X0,


X1,
X2,
X3,
X4,
X5,
X6,
X7,
X8,
X9,
X10,
X11,
X12,
X13,
X14,
X15,
X16,
X17,
X18,
X19,
X20,
X21,
X22,
X23,
X24,
X25,
X26,
X27,
X28,
X29,
X30,
X31;

output [7:0] Y0,


Y1,
Y2,
Y3,
Y4,
Y5,
Y6,
Y7,
Y8,
Y9,
Y10,
Y11,
Y12,
Y13,
Y14,
Y15,
Y16,
Y17,
Y18,
Y19,
Y20,
Y21,
Y22,
Y23,
Y24,
Y25,
Y26,
Y27,
Y28,
Y29,
Y30,
Y31;

shiftRegFIFO #(6, 1) shiftFIFO_27533(.X(next), .Y(next_out), .clk(clk));

wire signed [7:0] a1074;


wire signed [7:0] a1075;
wire signed [7:0] a1076;
wire signed [7:0] a1077;
wire signed [7:0] a1082;
wire signed [7:0] a1083;
wire signed [7:0] a1084;
wire signed [7:0] a1085;
wire signed [7:0] a1090;
wire signed [7:0] a1091;
wire signed [7:0] a1092;
wire signed [7:0] a1093;
wire signed [7:0] a1098;
wire signed [7:0] a1099;
wire signed [7:0] a1100;
wire signed [7:0] a1101;
wire signed [7:0] a1106;
wire signed [7:0] a1107;
wire signed [7:0] a1108;
wire signed [7:0] a1109;
wire signed [7:0] a1114;
wire signed [7:0] a1115;
wire signed [7:0] a1116;
wire signed [7:0] a1117;
wire signed [7:0] a1122;
wire signed [7:0] a1123;
wire signed [7:0] a1124;
wire signed [7:0] a1125;
wire signed [7:0] a1130;
wire signed [7:0] a1131;
wire signed [7:0] a1132;
wire signed [7:0] a1133;
wire signed [7:0] t1850;
wire signed [7:0] t1851;
wire signed [7:0] t1852;
wire signed [7:0] t1853;
wire signed [7:0] t1854;
wire signed [7:0] t1855;
wire signed [7:0] t1856;
wire signed [7:0] t1857;
wire signed [7:0] t1860;
wire signed [7:0] t1861;
wire signed [7:0] t1862;
wire signed [7:0] t1863;
wire signed [7:0] t1864;
wire signed [7:0] t1865;
wire signed [7:0] t1866;
wire signed [7:0] t1867;
wire signed [7:0] t1902;
wire signed [7:0] t1903;
wire signed [7:0] t1904;
wire signed [7:0] t1905;
wire signed [7:0] t1906;
wire signed [7:0] t1907;
wire signed [7:0] t1908;
wire signed [7:0] t1909;
wire signed [7:0] t1912;
wire signed [7:0] t1913;
wire signed [7:0] t1914;
wire signed [7:0] t1915;
wire signed [7:0] t1916;
wire signed [7:0] t1917;
wire signed [7:0] t1918;
wire signed [7:0] t1919;
wire signed [7:0] t1870;
wire signed [7:0] t1871;
wire signed [7:0] t1872;
wire signed [7:0] t1873;
wire signed [7:0] t1874;
wire signed [7:0] t1875;
wire signed [7:0] t1876;
wire signed [7:0] t1877;
wire signed [7:0] t1886;
wire signed [7:0] t1887;
wire signed [7:0] t1888;
wire signed [7:0] t1889;
wire signed [7:0] t1922;
wire signed [7:0] t1923;
wire signed [7:0] t1924;
wire signed [7:0] t1925;
wire signed [7:0] t1926;
wire signed [7:0] t1927;
wire signed [7:0] t1928;
wire signed [7:0] t1929;
wire signed [7:0] t1938;
wire signed [7:0] t1939;
wire signed [7:0] t1940;
wire signed [7:0] t1941;
wire signed [7:0] a1066;
wire signed [7:0] a1067;
wire signed [7:0] a1068;
wire signed [7:0] a1069;
wire signed [7:0] t1878;
wire signed [7:0] t1879;
wire signed [7:0] t1880;
wire signed [7:0] t1881;
wire signed [7:0] t1882;
wire signed [7:0] t1883;
wire signed [7:0] t1884;
wire signed [7:0] t1885;
wire signed [7:0] a1070;
wire signed [7:0] a1071;
wire signed [7:0] a1072;
wire signed [7:0] a1073;
wire signed [7:0] t1930;
wire signed [7:0] t1931;
wire signed [7:0] t1932;
wire signed [7:0] t1933;
wire signed [7:0] t1934;
wire signed [7:0] t1935;
wire signed [7:0] t1936;
wire signed [7:0] t1937;
reg signed [7:0] tm296;
reg signed [7:0] tm299;
reg signed [7:0] tm308;
reg signed [7:0] tm311;
reg signed [7:0] tm320;
reg signed [7:0] tm323;
reg signed [7:0] tm332;
reg signed [7:0] tm335;
wire signed [7:0] t1858;
wire signed [7:0] t1859;
wire signed [7:0] t1868;
wire signed [7:0] t1869;
wire signed [7:0] t1910;
wire signed [7:0] t1911;
wire signed [7:0] t1920;
wire signed [7:0] t1921;
reg signed [7:0] tm297;
reg signed [7:0] tm300;
reg signed [7:0] tm309;
reg signed [7:0] tm312;
reg signed [7:0] tm321;
reg signed [7:0] tm324;
reg signed [7:0] tm333;
reg signed [7:0] tm336;
reg signed [7:0] tm344;
reg signed [7:0] tm347;
reg signed [7:0] tm350;
reg signed [7:0] tm353;
reg signed [7:0] tm356;
reg signed [7:0] tm359;
reg signed [7:0] tm362;
reg signed [7:0] tm365;
reg signed [7:0] tm368;
reg signed [7:0] tm371;
reg signed [7:0] tm374;
reg signed [7:0] tm377;
reg signed [7:0] tm380;
reg signed [7:0] tm383;
reg signed [7:0] tm386;
reg signed [7:0] tm389;
wire signed [7:0] t1890;
wire signed [7:0] t1891;
wire signed [7:0] t1892;
wire signed [7:0] t1893;
wire signed [7:0] t1942;
wire signed [7:0] t1943;
wire signed [7:0] t1944;
wire signed [7:0] t1945;
reg signed [7:0] tm298;
reg signed [7:0] tm301;
reg signed [7:0] tm310;
reg signed [7:0] tm313;
reg signed [7:0] tm322;
reg signed [7:0] tm325;
reg signed [7:0] tm334;
reg signed [7:0] tm337;
reg signed [7:0] tm345;
reg signed [7:0] tm348;
reg signed [7:0] tm351;
reg signed [7:0] tm354;
reg signed [7:0] tm357;
reg signed [7:0] tm360;
reg signed [7:0] tm363;
reg signed [7:0] tm366;
reg signed [7:0] tm369;
reg signed [7:0] tm372;
reg signed [7:0] tm375;
reg signed [7:0] tm378;
reg signed [7:0] tm381;
reg signed [7:0] tm384;
reg signed [7:0] tm387;
reg signed [7:0] tm390;
wire signed [7:0] Y0;
wire signed [7:0] Y1;
wire signed [7:0] Y8;
wire signed [7:0] Y9;
wire signed [7:0] Y4;
wire signed [7:0] Y5;
wire signed [7:0] Y12;
wire signed [7:0] Y13;
wire signed [7:0] t1894;
wire signed [7:0] t1895;
wire signed [7:0] t1896;
wire signed [7:0] t1897;
wire signed [7:0] Y2;
wire signed [7:0] Y3;
wire signed [7:0] Y10;
wire signed [7:0] Y11;
wire signed [7:0] t1898;
wire signed [7:0] t1899;
wire signed [7:0] t1900;
wire signed [7:0] t1901;
wire signed [7:0] Y6;
wire signed [7:0] Y7;
wire signed [7:0] Y14;
wire signed [7:0] Y15;
wire signed [7:0] Y16;
wire signed [7:0] Y17;
wire signed [7:0] Y24;
wire signed [7:0] Y25;
wire signed [7:0] Y20;
wire signed [7:0] Y21;
wire signed [7:0] Y28;
wire signed [7:0] Y29;
wire signed [7:0] t1946;
wire signed [7:0] t1947;
wire signed [7:0] t1948;
wire signed [7:0] t1949;
wire signed [7:0] Y18;
wire signed [7:0] Y19;
wire signed [7:0] Y26;
wire signed [7:0] Y27;
wire signed [7:0] t1950;
wire signed [7:0] t1951;
wire signed [7:0] t1952;
wire signed [7:0] t1953;
wire signed [7:0] Y22;
wire signed [7:0] Y23;
wire signed [7:0] Y30;
wire signed [7:0] Y31;
reg signed [7:0] tm346;
reg signed [7:0] tm349;
reg signed [7:0] tm352;
reg signed [7:0] tm355;
reg signed [7:0] tm358;
reg signed [7:0] tm361;
reg signed [7:0] tm364;
reg signed [7:0] tm367;
reg signed [7:0] tm370;
reg signed [7:0] tm373;
reg signed [7:0] tm376;
reg signed [7:0] tm379;
reg signed [7:0] tm382;
reg signed [7:0] tm385;
reg signed [7:0] tm388;
reg signed [7:0] tm391;

wire signed [7:0] tm1;


assign tm1 = 8'h2d;

assign a1074 = X0;


assign a1075 = X8;
assign a1076 = X1;
assign a1077 = X9;
assign a1082 = X2;
assign a1083 = X10;
assign a1084 = X3;
assign a1085 = X11;
assign a1090 = X4;
assign a1091 = X12;
assign a1092 = X5;
assign a1093 = X13;
assign a1098 = X6;
assign a1099 = X14;
assign a1100 = X7;
assign a1101 = X15;
assign a1106 = X16;
assign a1107 = X24;
assign a1108 = X17;
assign a1109 = X25;
assign a1114 = X18;
assign a1115 = X26;
assign a1116 = X19;
assign a1117 = X27;
assign a1122 = X20;
assign a1123 = X28;
assign a1124 = X21;
assign a1125 = X29;
assign a1130 = X22;
assign a1131 = X30;
assign a1132 = X23;
assign a1133 = X31;
assign Y0 = tm346;
assign Y1 = tm349;
assign Y8 = tm352;
assign Y9 = tm355;
assign Y4 = tm358;
assign Y5 = tm361;
assign Y12 = tm364;
assign Y13 = tm367;
assign Y2 = t1894;
assign Y3 = t1895;
assign Y10 = t1896;
assign Y11 = t1897;
assign Y6 = t1898;
assign Y7 = t1899;
assign Y14 = t1900;
assign Y15 = t1901;
assign Y16 = tm370;
assign Y17 = tm373;
assign Y24 = tm376;
assign Y25 = tm379;
assign Y20 = tm382;
assign Y21 = tm385;
assign Y28 = tm388;
assign Y29 = tm391;
assign Y18 = t1946;
assign Y19 = t1947;
assign Y26 = t1948;
assign Y27 = t1949;
assign Y22 = t1950;
assign Y23 = t1951;
assign Y30 = t1952;
assign Y31 = t1953;

addfxp #(8, 1) add17626(.a(a1074), .b(a1075), .clk(clk), .q(t1850)); // 0


addfxp #(8, 1) add17641(.a(a1076), .b(a1077), .clk(clk), .q(t1851)); // 0
subfxp #(8, 1) sub17656(.a(a1074), .b(a1075), .clk(clk), .q(t1852)); // 0
subfxp #(8, 1) sub17671(.a(a1076), .b(a1077), .clk(clk), .q(t1853)); // 0
addfxp #(8, 1) add17686(.a(a1082), .b(a1083), .clk(clk), .q(t1854)); // 0
addfxp #(8, 1) add17701(.a(a1084), .b(a1085), .clk(clk), .q(t1855)); // 0
subfxp #(8, 1) sub17716(.a(a1082), .b(a1083), .clk(clk), .q(t1856)); // 0
subfxp #(8, 1) sub17731(.a(a1084), .b(a1085), .clk(clk), .q(t1857)); // 0
addfxp #(8, 1) add17774(.a(a1090), .b(a1091), .clk(clk), .q(t1860)); // 0
addfxp #(8, 1) add17789(.a(a1092), .b(a1093), .clk(clk), .q(t1861)); // 0
subfxp #(8, 1) sub17804(.a(a1090), .b(a1091), .clk(clk), .q(t1862)); // 0
subfxp #(8, 1) sub17819(.a(a1092), .b(a1093), .clk(clk), .q(t1863)); // 0
addfxp #(8, 1) add17834(.a(a1098), .b(a1099), .clk(clk), .q(t1864)); // 0
addfxp #(8, 1) add17849(.a(a1100), .b(a1101), .clk(clk), .q(t1865)); // 0
subfxp #(8, 1) sub17864(.a(a1098), .b(a1099), .clk(clk), .q(t1866)); // 0
subfxp #(8, 1) sub17879(.a(a1100), .b(a1101), .clk(clk), .q(t1867)); // 0
addfxp #(8, 1) add18210(.a(a1106), .b(a1107), .clk(clk), .q(t1902)); // 0
addfxp #(8, 1) add18225(.a(a1108), .b(a1109), .clk(clk), .q(t1903)); // 0
subfxp #(8, 1) sub18240(.a(a1106), .b(a1107), .clk(clk), .q(t1904)); // 0
subfxp #(8, 1) sub18255(.a(a1108), .b(a1109), .clk(clk), .q(t1905)); // 0
addfxp #(8, 1) add18270(.a(a1114), .b(a1115), .clk(clk), .q(t1906)); // 0
addfxp #(8, 1) add18285(.a(a1116), .b(a1117), .clk(clk), .q(t1907)); // 0
subfxp #(8, 1) sub18300(.a(a1114), .b(a1115), .clk(clk), .q(t1908)); // 0
subfxp #(8, 1) sub18315(.a(a1116), .b(a1117), .clk(clk), .q(t1909)); // 0
addfxp #(8, 1) add18358(.a(a1122), .b(a1123), .clk(clk), .q(t1912)); // 0
addfxp #(8, 1) add18373(.a(a1124), .b(a1125), .clk(clk), .q(t1913)); // 0
subfxp #(8, 1) sub18388(.a(a1122), .b(a1123), .clk(clk), .q(t1914)); // 0
subfxp #(8, 1) sub18403(.a(a1124), .b(a1125), .clk(clk), .q(t1915)); // 0
addfxp #(8, 1) add18418(.a(a1130), .b(a1131), .clk(clk), .q(t1916)); // 0
addfxp #(8, 1) add18433(.a(a1132), .b(a1133), .clk(clk), .q(t1917)); // 0
subfxp #(8, 1) sub18448(.a(a1130), .b(a1131), .clk(clk), .q(t1918)); // 0
subfxp #(8, 1) sub18463(.a(a1132), .b(a1133), .clk(clk), .q(t1919)); // 0
addfxp #(8, 1) add17914(.a(t1850), .b(t1860), .clk(clk), .q(t1870)); // 1
addfxp #(8, 1) add17921(.a(t1851), .b(t1861), .clk(clk), .q(t1871)); // 1
subfxp #(8, 1) sub17928(.a(t1850), .b(t1860), .clk(clk), .q(t1872)); // 1
subfxp #(8, 1) sub17935(.a(t1851), .b(t1861), .clk(clk), .q(t1873)); // 1
addfxp #(8, 1) add17942(.a(t1854), .b(t1864), .clk(clk), .q(t1874)); // 1
addfxp #(8, 1) add17949(.a(t1855), .b(t1865), .clk(clk), .q(t1875)); // 1
subfxp #(8, 1) sub17956(.a(t1854), .b(t1864), .clk(clk), .q(t1876)); // 1
subfxp #(8, 1) sub17963(.a(t1855), .b(t1865), .clk(clk), .q(t1877)); // 1
addfxp #(8, 1) add18058(.a(t1852), .b(t1863), .clk(clk), .q(t1886)); // 1
subfxp #(8, 1) sub18065(.a(t1853), .b(t1862), .clk(clk), .q(t1887)); // 1
subfxp #(8, 1) sub18072(.a(t1852), .b(t1863), .clk(clk), .q(t1888)); // 1
addfxp #(8, 1) add18079(.a(t1853), .b(t1862), .clk(clk), .q(t1889)); // 1
addfxp #(8, 1) add18498(.a(t1902), .b(t1912), .clk(clk), .q(t1922)); // 1
addfxp #(8, 1) add18505(.a(t1903), .b(t1913), .clk(clk), .q(t1923)); // 1
subfxp #(8, 1) sub18512(.a(t1902), .b(t1912), .clk(clk), .q(t1924)); // 1
subfxp #(8, 1) sub18519(.a(t1903), .b(t1913), .clk(clk), .q(t1925)); // 1
addfxp #(8, 1) add18526(.a(t1906), .b(t1916), .clk(clk), .q(t1926)); // 1
addfxp #(8, 1) add18533(.a(t1907), .b(t1917), .clk(clk), .q(t1927)); // 1
subfxp #(8, 1) sub18540(.a(t1906), .b(t1916), .clk(clk), .q(t1928)); // 1
subfxp #(8, 1) sub18547(.a(t1907), .b(t1917), .clk(clk), .q(t1929)); // 1
addfxp #(8, 1) add18642(.a(t1904), .b(t1915), .clk(clk), .q(t1938)); // 1
subfxp #(8, 1) sub18649(.a(t1905), .b(t1914), .clk(clk), .q(t1939)); // 1
subfxp #(8, 1) sub18656(.a(t1904), .b(t1915), .clk(clk), .q(t1940)); // 1
addfxp #(8, 1) add18663(.a(t1905), .b(t1914), .clk(clk), .q(t1941)); // 1
multfix #(8, 2) m17738(.a(tm1), .b(t1856), .clk(clk), .q_sc(a1066),
.q_unsc(), .rst(reset));
multfix #(8, 2) m17745(.a(tm1), .b(t1857), .clk(clk), .q_sc(a1067),
.q_unsc(), .rst(reset));
multfix #(8, 2) m17886(.a(tm1), .b(t1867), .clk(clk), .q_sc(a1068),
.q_unsc(), .rst(reset));
multfix #(8, 2) m17893(.a(tm1), .b(t1866), .clk(clk), .q_sc(a1069),
.q_unsc(), .rst(reset));
addfxp #(8, 1) add17970(.a(t1870), .b(t1874), .clk(clk), .q(t1878)); // 2
addfxp #(8, 1) add17977(.a(t1871), .b(t1875), .clk(clk), .q(t1879)); // 2
subfxp #(8, 1) sub17984(.a(t1870), .b(t1874), .clk(clk), .q(t1880)); // 2
subfxp #(8, 1) sub17991(.a(t1871), .b(t1875), .clk(clk), .q(t1881)); // 2
addfxp #(8, 1) add18014(.a(t1872), .b(t1877), .clk(clk), .q(t1882)); // 2
subfxp #(8, 1) sub18021(.a(t1873), .b(t1876), .clk(clk), .q(t1883)); // 2
subfxp #(8, 1) sub18028(.a(t1872), .b(t1877), .clk(clk), .q(t1884)); // 2
addfxp #(8, 1) add18035(.a(t1873), .b(t1876), .clk(clk), .q(t1885)); // 2
multfix #(8, 2) m18322(.a(tm1), .b(t1908), .clk(clk), .q_sc(a1070),
.q_unsc(), .rst(reset));
multfix #(8, 2) m18329(.a(tm1), .b(t1909), .clk(clk), .q_sc(a1071),
.q_unsc(), .rst(reset));
multfix #(8, 2) m18470(.a(tm1), .b(t1919), .clk(clk), .q_sc(a1072),
.q_unsc(), .rst(reset));
multfix #(8, 2) m18477(.a(tm1), .b(t1918), .clk(clk), .q_sc(a1073),
.q_unsc(), .rst(reset));
addfxp #(8, 1) add18554(.a(t1922), .b(t1926), .clk(clk), .q(t1930)); // 2
addfxp #(8, 1) add18561(.a(t1923), .b(t1927), .clk(clk), .q(t1931)); // 2
subfxp #(8, 1) sub18568(.a(t1922), .b(t1926), .clk(clk), .q(t1932)); // 2
subfxp #(8, 1) sub18575(.a(t1923), .b(t1927), .clk(clk), .q(t1933)); // 2
addfxp #(8, 1) add18598(.a(t1924), .b(t1929), .clk(clk), .q(t1934)); // 2
subfxp #(8, 1) sub18605(.a(t1925), .b(t1928), .clk(clk), .q(t1935)); // 2
subfxp #(8, 1) sub18612(.a(t1924), .b(t1929), .clk(clk), .q(t1936)); // 2
addfxp #(8, 1) add18619(.a(t1925), .b(t1928), .clk(clk), .q(t1937)); // 2
addfxp #(8, 1) add17752(.a(a1066), .b(a1067), .clk(clk), .q(t1858)); // 3
subfxp #(8, 1) sub17759(.a(a1067), .b(a1066), .clk(clk), .q(t1859)); // 3
subfxp #(8, 1) sub17900(.a(a1068), .b(a1069), .clk(clk), .q(t1868)); // 3
addfxp #(8, 1) add17907(.a(a1069), .b(a1068), .clk(clk), .q(t1869)); // 3
addfxp #(8, 1) add18336(.a(a1070), .b(a1071), .clk(clk), .q(t1910)); // 3
subfxp #(8, 1) sub18343(.a(a1071), .b(a1070), .clk(clk), .q(t1911)); // 3
subfxp #(8, 1) sub18484(.a(a1072), .b(a1073), .clk(clk), .q(t1920)); // 3
addfxp #(8, 1) add18491(.a(a1073), .b(a1072), .clk(clk), .q(t1921)); // 3
addfxp #(8, 1) add18086(.a(t1858), .b(t1868), .clk(clk), .q(t1890)); // 4
subfxp #(8, 1) sub18093(.a(t1859), .b(t1869), .clk(clk), .q(t1891)); // 4
subfxp #(8, 1) sub18100(.a(t1858), .b(t1868), .clk(clk), .q(t1892)); // 4
addfxp #(8, 1) add18107(.a(t1859), .b(t1869), .clk(clk), .q(t1893)); // 4
addfxp #(8, 1) add18670(.a(t1910), .b(t1920), .clk(clk), .q(t1942)); // 4
subfxp #(8, 1) sub18677(.a(t1911), .b(t1921), .clk(clk), .q(t1943)); // 4
subfxp #(8, 1) sub18684(.a(t1910), .b(t1920), .clk(clk), .q(t1944)); // 4
addfxp #(8, 1) add18691(.a(t1911), .b(t1921), .clk(clk), .q(t1945)); // 4
addfxp #(8, 1) add18114(.a(tm298), .b(t1890), .clk(clk), .q(t1894)); // 5
addfxp #(8, 1) add18121(.a(tm301), .b(t1891), .clk(clk), .q(t1895)); // 5
subfxp #(8, 1) sub18128(.a(tm298), .b(t1890), .clk(clk), .q(t1896)); // 5
subfxp #(8, 1) sub18135(.a(tm301), .b(t1891), .clk(clk), .q(t1897)); // 5
addfxp #(8, 1) add18158(.a(tm310), .b(t1893), .clk(clk), .q(t1898)); // 5
subfxp #(8, 1) sub18165(.a(tm313), .b(t1892), .clk(clk), .q(t1899)); // 5
subfxp #(8, 1) sub18172(.a(tm310), .b(t1893), .clk(clk), .q(t1900)); // 5
addfxp #(8, 1) add18179(.a(tm313), .b(t1892), .clk(clk), .q(t1901)); // 5
addfxp #(8, 1) add18698(.a(tm322), .b(t1942), .clk(clk), .q(t1946)); // 5
addfxp #(8, 1) add18705(.a(tm325), .b(t1943), .clk(clk), .q(t1947)); // 5
subfxp #(8, 1) sub18712(.a(tm322), .b(t1942), .clk(clk), .q(t1948)); // 5
subfxp #(8, 1) sub18719(.a(tm325), .b(t1943), .clk(clk), .q(t1949)); // 5
addfxp #(8, 1) add18742(.a(tm334), .b(t1945), .clk(clk), .q(t1950)); // 5
subfxp #(8, 1) sub18749(.a(tm337), .b(t1944), .clk(clk), .q(t1951)); // 5
subfxp #(8, 1) sub18756(.a(tm334), .b(t1945), .clk(clk), .q(t1952)); // 5
addfxp #(8, 1) add18763(.a(tm337), .b(t1944), .clk(clk), .q(t1953)); // 5

always @(posedge clk) begin


if (reset == 1) begin
end
else begin
X0 <= X0_in;
X1 <= X1_in;
X2 <= X2_in;
X3 <= X3_in;
X4 <= X4_in;
X5 <= X5_in;
X6 <= X6_in;
X7 <= X7_in;
X8 <= X8_in;
X9 <= X9_in;
X10 <= X10_in;
X11 <= X11_in;
X12 <= X12_in;
X13 <= X13_in;
X14 <= X14_in;
X15 <= X15_in;
X16 <= X16_in;
X17 <= X17_in;
X18 <= X18_in;
X19 <= X19_in;
X20 <= X20_in;
X21 <= X21_in;
X22 <= X22_in;
X23 <= X23_in;
X24 <= X24_in;
X25 <= X25_in;
X26 <= X26_in;
X27 <= X27_in;
X28 <= X28_in;
X29 <= X29_in;
X30 <= X30_in;
X31 <= X31_in;
next <= next_in;
tm296 <= t1886;
tm299 <= t1887;
tm308 <= t1888;
tm311 <= t1889;
tm320 <= t1938;
tm323 <= t1939;
tm332 <= t1940;
tm335 <= t1941;
tm297 <= tm296;
tm300 <= tm299;
tm309 <= tm308;
tm312 <= tm311;
tm321 <= tm320;
tm324 <= tm323;
tm333 <= tm332;
tm336 <= tm335;
tm344 <= t1878;
tm347 <= t1879;
tm350 <= t1880;
tm353 <= t1881;
tm356 <= t1882;
tm359 <= t1883;
tm362 <= t1884;
tm365 <= t1885;
tm368 <= t1930;
tm371 <= t1931;
tm374 <= t1932;
tm377 <= t1933;
tm380 <= t1934;
tm383 <= t1935;
tm386 <= t1936;
tm389 <= t1937;
tm298 <= tm297;
tm301 <= tm300;
tm310 <= tm309;
tm313 <= tm312;
tm322 <= tm321;
tm325 <= tm324;
tm334 <= tm333;
tm337 <= tm336;
tm345 <= tm344;
tm348 <= tm347;
tm351 <= tm350;
tm354 <= tm353;
tm357 <= tm356;
tm360 <= tm359;
tm363 <= tm362;
tm366 <= tm365;
tm369 <= tm368;
tm372 <= tm371;
tm375 <= tm374;
tm378 <= tm377;
tm381 <= tm380;
tm384 <= tm383;
tm387 <= tm386;
tm390 <= tm389;
tm346 <= tm345;
tm349 <= tm348;
tm352 <= tm351;
tm355 <= tm354;
tm358 <= tm357;
tm361 <= tm360;
tm364 <= tm363;
tm367 <= tm366;
tm370 <= tm369;
tm373 <= tm372;
tm376 <= tm375;
tm379 <= tm378;
tm382 <= tm381;
tm385 <= tm384;
tm388 <= tm387;
tm391 <= tm390;
end
end
endmodule

// Latency: 15
// Gap: 4
module rc18788(clk, reset, next, next_out,
X0, Y0,
X1, Y1,
X2, Y2,
X3, Y3,
X4, Y4,
X5, Y5,
X6, Y6,
X7, Y7,
X8, Y8,
X9, Y9,
X10, Y10,
X11, Y11,
X12, Y12,
X13, Y13,
X14, Y14,
X15, Y15,
X16, Y16,
X17, Y17,
X18, Y18,
X19, Y19,
X20, Y20,
X21, Y21,
X22, Y22,
X23, Y23,
X24, Y24,
X25, Y25,
X26, Y26,
X27, Y27,
X28, Y28,
X29, Y29,
X30, Y30,
X31, Y31);

output next_out;
input clk, reset, next;

input [7:0] X0,


X1,
X2,
X3,
X4,
X5,
X6,
X7,
X8,
X9,
X10,
X11,
X12,
X13,
X14,
X15,
X16,
X17,
X18,
X19,
X20,
X21,
X22,
X23,
X24,
X25,
X26,
X27,
X28,
X29,
X30,
X31;

output [7:0] Y0,


Y1,
Y2,
Y3,
Y4,
Y5,
Y6,
Y7,
Y8,
Y9,
Y10,
Y11,
Y12,
Y13,
Y14,
Y15,
Y16,
Y17,
Y18,
Y19,
Y20,
Y21,
Y22,
Y23,
Y24,
Y25,
Y26,
Y27,
Y28,
Y29,
Y30,
Y31;

wire [15:0] t0;


wire [15:0] s0;
assign t0 = {X0, X1};
wire [15:0] t1;
wire [15:0] s1;
assign t1 = {X2, X3};
wire [15:0] t2;
wire [15:0] s2;
assign t2 = {X4, X5};
wire [15:0] t3;
wire [15:0] s3;
assign t3 = {X6, X7};
wire [15:0] t4;
wire [15:0] s4;
assign t4 = {X8, X9};
wire [15:0] t5;
wire [15:0] s5;
assign t5 = {X10, X11};
wire [15:0] t6;
wire [15:0] s6;
assign t6 = {X12, X13};
wire [15:0] t7;
wire [15:0] s7;
assign t7 = {X14, X15};
wire [15:0] t8;
wire [15:0] s8;
assign t8 = {X16, X17};
wire [15:0] t9;
wire [15:0] s9;
assign t9 = {X18, X19};
wire [15:0] t10;
wire [15:0] s10;
assign t10 = {X20, X21};
wire [15:0] t11;
wire [15:0] s11;
assign t11 = {X22, X23};
wire [15:0] t12;
wire [15:0] s12;
assign t12 = {X24, X25};
wire [15:0] t13;
wire [15:0] s13;
assign t13 = {X26, X27};
wire [15:0] t14;
wire [15:0] s14;
assign t14 = {X28, X29};
wire [15:0] t15;
wire [15:0] s15;
assign t15 = {X30, X31};
assign Y0 = s0[15:8];
assign Y1 = s0[7:0];
assign Y2 = s1[15:8];
assign Y3 = s1[7:0];
assign Y4 = s2[15:8];
assign Y5 = s2[7:0];
assign Y6 = s3[15:8];
assign Y7 = s3[7:0];
assign Y8 = s4[15:8];
assign Y9 = s4[7:0];
assign Y10 = s5[15:8];
assign Y11 = s5[7:0];
assign Y12 = s6[15:8];
assign Y13 = s6[7:0];
assign Y14 = s7[15:8];
assign Y15 = s7[7:0];
assign Y16 = s8[15:8];
assign Y17 = s8[7:0];
assign Y18 = s9[15:8];
assign Y19 = s9[7:0];
assign Y20 = s10[15:8];
assign Y21 = s10[7:0];
assign Y22 = s11[15:8];
assign Y23 = s11[7:0];
assign Y24 = s12[15:8];
assign Y25 = s12[7:0];
assign Y26 = s13[15:8];
assign Y27 = s13[7:0];
assign Y28 = s14[15:8];
assign Y29 = s14[7:0];
assign Y30 = s15[15:8];
assign Y31 = s15[7:0];

perm18786 instPerm27534(.x0(t0), .y0(s0),


.x1(t1), .y1(s1),
.x2(t2), .y2(s2),
.x3(t3), .y3(s3),
.x4(t4), .y4(s4),
.x5(t5), .y5(s5),
.x6(t6), .y6(s6),
.x7(t7), .y7(s7),
.x8(t8), .y8(s8),
.x9(t9), .y9(s9),
.x10(t10), .y10(s10),
.x11(t11), .y11(s11),
.x12(t12), .y12(s12),
.x13(t13), .y13(s13),
.x14(t14), .y14(s14),
.x15(t15), .y15(s15),
.clk(clk), .next(next), .next_out(next_out), .reset(reset)
);

endmodule

module swNet18786(itr, clk, ct


, x0, y0
, x1, y1
, x2, y2
, x3, y3
, x4, y4
, x5, y5
, x6, y6
, x7, y7
, x8, y8
, x9, y9
, x10, y10
, x11, y11
, x12, y12
, x13, y13
, x14, y14
, x15, y15
);

parameter width = 16;

input [1:0] ct;


input clk;
input [0:0] itr;
input [width-1:0] x0;
output reg [width-1:0] y0;
input [width-1:0] x1;
output reg [width-1:0] y1;
input [width-1:0] x2;
output reg [width-1:0] y2;
input [width-1:0] x3;
output reg [width-1:0] y3;
input [width-1:0] x4;
output reg [width-1:0] y4;
input [width-1:0] x5;
output reg [width-1:0] y5;
input [width-1:0] x6;
output reg [width-1:0] y6;
input [width-1:0] x7;
output reg [width-1:0] y7;
input [width-1:0] x8;
output reg [width-1:0] y8;
input [width-1:0] x9;
output reg [width-1:0] y9;
input [width-1:0] x10;
output reg [width-1:0] y10;
input [width-1:0] x11;
output reg [width-1:0] y11;
input [width-1:0] x12;
output reg [width-1:0] y12;
input [width-1:0] x13;
output reg [width-1:0] y13;
input [width-1:0] x14;
output reg [width-1:0] y14;
input [width-1:0] x15;
output reg [width-1:0] y15;
wire [width-1:0] t0_0, t0_1, t0_2, t0_3, t0_4, t0_5, t0_6, t0_7, t0_8, t0_9,
t0_10, t0_11, t0_12, t0_13, t0_14, t0_15;
wire [width-1:0] t1_0, t1_1, t1_2, t1_3, t1_4, t1_5, t1_6, t1_7, t1_8, t1_9,
t1_10, t1_11, t1_12, t1_13, t1_14, t1_15;
wire [width-1:0] t2_0, t2_1, t2_2, t2_3, t2_4, t2_5, t2_6, t2_7, t2_8, t2_9,
t2_10, t2_11, t2_12, t2_13, t2_14, t2_15;
reg [width-1:0] t3_0, t3_1, t3_2, t3_3, t3_4, t3_5, t3_6, t3_7, t3_8, t3_9,
t3_10, t3_11, t3_12, t3_13, t3_14, t3_15;
wire [width-1:0] t4_0, t4_1, t4_2, t4_3, t4_4, t4_5, t4_6, t4_7, t4_8, t4_9,
t4_10, t4_11, t4_12, t4_13, t4_14, t4_15;
wire [width-1:0] t5_0, t5_1, t5_2, t5_3, t5_4, t5_5, t5_6, t5_7, t5_8, t5_9,
t5_10, t5_11, t5_12, t5_13, t5_14, t5_15;
wire [width-1:0] t6_0, t6_1, t6_2, t6_3, t6_4, t6_5, t6_6, t6_7, t6_8, t6_9,
t6_10, t6_11, t6_12, t6_13, t6_14, t6_15;
reg [width-1:0] t7_0, t7_1, t7_2, t7_3, t7_4, t7_5, t7_6, t7_7, t7_8, t7_9,
t7_10, t7_11, t7_12, t7_13, t7_14, t7_15;
wire [width-1:0] t8_0, t8_1, t8_2, t8_3, t8_4, t8_5, t8_6, t8_7, t8_8, t8_9,
t8_10, t8_11, t8_12, t8_13, t8_14, t8_15;
wire [width-1:0] t9_0, t9_1, t9_2, t9_3, t9_4, t9_5, t9_6, t9_7, t9_8, t9_9,
t9_10, t9_11, t9_12, t9_13, t9_14, t9_15;
wire [width-1:0] t10_0, t10_1, t10_2, t10_3, t10_4, t10_5, t10_6, t10_7, t10_8,
t10_9, t10_10, t10_11, t10_12, t10_13, t10_14, t10_15;
reg [width-1:0] t11_0, t11_1, t11_2, t11_3, t11_4, t11_5, t11_6, t11_7, t11_8,
t11_9, t11_10, t11_11, t11_12, t11_13, t11_14, t11_15;
wire [width-1:0] t12_0, t12_1, t12_2, t12_3, t12_4, t12_5, t12_6, t12_7, t12_8,
t12_9, t12_10, t12_11, t12_12, t12_13, t12_14, t12_15;
reg [width-1:0] t13_0, t13_1, t13_2, t13_3, t13_4, t13_5, t13_6, t13_7, t13_8,
t13_9, t13_10, t13_11, t13_12, t13_13, t13_14, t13_15;

reg [15:0] control;

always @(posedge clk) begin


case(ct)
2'd0: control <= 16'b1111111111111111;
2'd1: control <= 16'b0000000011111111;
2'd2: control <= 16'b1111111100000000;
2'd3: control <= 16'b0000000000000000;
endcase
end

// synthesis attribute rom_style of control is "distributed"


reg [15:0] control0;
reg [15:0] control1;
reg [15:0] control2;
reg [15:0] control3;
always @(posedge clk) begin
control0 <= control;
control1 <= control0;
control2 <= control1;
control3 <= control2;
end
assign t0_0 = x0;
assign t0_1 = x8;
assign t0_2 = x1;
assign t0_3 = x9;
assign t0_4 = x2;
assign t0_5 = x10;
assign t0_6 = x3;
assign t0_7 = x11;
assign t0_8 = x4;
assign t0_9 = x12;
assign t0_10 = x5;
assign t0_11 = x13;
assign t0_12 = x6;
assign t0_13 = x14;
assign t0_14 = x7;
assign t0_15 = x15;
assign t1_0 = t0_0;
assign t1_1 = t0_1;
assign t1_2 = t0_3;
assign t1_3 = t0_2;
assign t1_4 = t0_4;
assign t1_5 = t0_5;
assign t1_6 = t0_7;
assign t1_7 = t0_6;
assign t1_8 = t0_8;
assign t1_9 = t0_9;
assign t1_10 = t0_11;
assign t1_11 = t0_10;
assign t1_12 = t0_12;
assign t1_13 = t0_13;
assign t1_14 = t0_15;
assign t1_15 = t0_14;
assign t2_0 = t1_0;
assign t2_1 = t1_8;
assign t2_2 = t1_1;
assign t2_3 = t1_9;
assign t2_4 = t1_2;
assign t2_5 = t1_10;
assign t2_6 = t1_3;
assign t2_7 = t1_11;
assign t2_8 = t1_4;
assign t2_9 = t1_12;
assign t2_10 = t1_5;
assign t2_11 = t1_13;
assign t2_12 = t1_6;
assign t2_13 = t1_14;
assign t2_14 = t1_7;
assign t2_15 = t1_15;
always @(posedge clk) begin
t3_0 <= t2_0;
t3_1 <= t2_1;
t3_2 <= t2_2;
t3_3 <= t2_3;
t3_4 <= t2_4;
t3_5 <= t2_5;
t3_6 <= t2_6;
t3_7 <= t2_7;
t3_8 <= t2_8;
t3_9 <= t2_9;
t3_10 <= t2_10;
t3_11 <= t2_11;
t3_12 <= t2_12;
t3_13 <= t2_13;
t3_14 <= t2_14;
t3_15 <= t2_15;
end
assign t4_0 = t3_0;
assign t4_1 = t3_8;
assign t4_2 = t3_1;
assign t4_3 = t3_9;
assign t4_4 = t3_2;
assign t4_5 = t3_10;
assign t4_6 = t3_3;
assign t4_7 = t3_11;
assign t4_8 = t3_4;
assign t4_9 = t3_12;
assign t4_10 = t3_5;
assign t4_11 = t3_13;
assign t4_12 = t3_6;
assign t4_13 = t3_14;
assign t4_14 = t3_7;
assign t4_15 = t3_15;
assign t5_0 = t4_0;
assign t5_1 = t4_1;
assign t5_2 = t4_2;
assign t5_3 = t4_3;
assign t5_4 = t4_4;
assign t5_5 = t4_5;
assign t5_6 = t4_6;
assign t5_7 = t4_7;
assign t5_8 = t4_8;
assign t5_9 = t4_9;
assign t5_10 = t4_10;
assign t5_11 = t4_11;
assign t5_12 = t4_12;
assign t5_13 = t4_13;
assign t5_14 = t4_14;
assign t5_15 = t4_15;
assign t6_0 = t5_0;
assign t6_1 = t5_8;
assign t6_2 = t5_1;
assign t6_3 = t5_9;
assign t6_4 = t5_2;
assign t6_5 = t5_10;
assign t6_6 = t5_3;
assign t6_7 = t5_11;
assign t6_8 = t5_4;
assign t6_9 = t5_12;
assign t6_10 = t5_5;
assign t6_11 = t5_13;
assign t6_12 = t5_6;
assign t6_13 = t5_14;
assign t6_14 = t5_7;
assign t6_15 = t5_15;
always @(posedge clk) begin
t7_0 <= t6_0;
t7_1 <= t6_1;
t7_2 <= t6_2;
t7_3 <= t6_3;
t7_4 <= t6_4;
t7_5 <= t6_5;
t7_6 <= t6_6;
t7_7 <= t6_7;
t7_8 <= t6_9;
t7_9 <= t6_8;
t7_10 <= t6_11;
t7_11 <= t6_10;
t7_12 <= t6_13;
t7_13 <= t6_12;
t7_14 <= t6_15;
t7_15 <= t6_14;
end
assign t8_0 = t7_0;
assign t8_1 = t7_2;
assign t8_2 = t7_4;
assign t8_3 = t7_6;
assign t8_4 = t7_8;
assign t8_5 = t7_10;
assign t8_6 = t7_12;
assign t8_7 = t7_14;
assign t8_8 = t7_1;
assign t8_9 = t7_3;
assign t8_10 = t7_5;
assign t8_11 = t7_7;
assign t8_12 = t7_9;
assign t8_13 = t7_11;
assign t8_14 = t7_13;
assign t8_15 = t7_15;
assign t9_0 = (control2[15] == 0) ? t8_0 : t8_1;
assign t9_1 = (control2[15] == 0) ? t8_1 : t8_0;
assign t9_2 = (control2[14] == 0) ? t8_2 : t8_3;
assign t9_3 = (control2[14] == 0) ? t8_3 : t8_2;
assign t9_4 = (control2[13] == 0) ? t8_4 : t8_5;
assign t9_5 = (control2[13] == 0) ? t8_5 : t8_4;
assign t9_6 = (control2[12] == 0) ? t8_6 : t8_7;
assign t9_7 = (control2[12] == 0) ? t8_7 : t8_6;
assign t9_8 = (control2[11] == 0) ? t8_8 : t8_9;
assign t9_9 = (control2[11] == 0) ? t8_9 : t8_8;
assign t9_10 = (control2[10] == 0) ? t8_10 : t8_11;
assign t9_11 = (control2[10] == 0) ? t8_11 : t8_10;
assign t9_12 = (control2[9] == 0) ? t8_12 : t8_13;
assign t9_13 = (control2[9] == 0) ? t8_13 : t8_12;
assign t9_14 = (control2[8] == 0) ? t8_14 : t8_15;
assign t9_15 = (control2[8] == 0) ? t8_15 : t8_14;
assign t10_0 = t9_0;
assign t10_1 = t9_2;
assign t10_2 = t9_4;
assign t10_3 = t9_6;
assign t10_4 = t9_8;
assign t10_5 = t9_10;
assign t10_6 = t9_12;
assign t10_7 = t9_14;
assign t10_8 = t9_1;
assign t10_9 = t9_3;
assign t10_10 = t9_5;
assign t10_11 = t9_7;
assign t10_12 = t9_9;
assign t10_13 = t9_11;
assign t10_14 = t9_13;
assign t10_15 = t9_15;
always @(posedge clk) begin
t11_0 <= (control2[7] == 0) ? t10_0 : t10_1;
t11_1 <= (control2[7] == 0) ? t10_1 : t10_0;
t11_2 <= (control2[6] == 0) ? t10_2 : t10_3;
t11_3 <= (control2[6] == 0) ? t10_3 : t10_2;
t11_4 <= (control2[5] == 0) ? t10_4 : t10_5;
t11_5 <= (control2[5] == 0) ? t10_5 : t10_4;
t11_6 <= (control2[4] == 0) ? t10_6 : t10_7;
t11_7 <= (control2[4] == 0) ? t10_7 : t10_6;
t11_8 <= (control2[3] == 0) ? t10_8 : t10_9;
t11_9 <= (control2[3] == 0) ? t10_9 : t10_8;
t11_10 <= (control2[2] == 0) ? t10_10 : t10_11;
t11_11 <= (control2[2] == 0) ? t10_11 : t10_10;
t11_12 <= (control2[1] == 0) ? t10_12 : t10_13;
t11_13 <= (control2[1] == 0) ? t10_13 : t10_12;
t11_14 <= (control2[0] == 0) ? t10_14 : t10_15;
t11_15 <= (control2[0] == 0) ? t10_15 : t10_14;
end
assign t12_0 = t11_0;
assign t12_1 = t11_2;
assign t12_2 = t11_4;
assign t12_3 = t11_6;
assign t12_4 = t11_8;
assign t12_5 = t11_10;
assign t12_6 = t11_12;
assign t12_7 = t11_14;
assign t12_8 = t11_1;
assign t12_9 = t11_3;
assign t12_10 = t11_5;
assign t12_11 = t11_7;
assign t12_12 = t11_9;
assign t12_13 = t11_11;
assign t12_14 = t11_13;
assign t12_15 = t11_15;
always @(posedge clk) begin
t13_0 <= t12_0;
t13_1 <= t12_1;
t13_2 <= t12_3;
t13_3 <= t12_2;
t13_4 <= t12_4;
t13_5 <= t12_5;
t13_6 <= t12_7;
t13_7 <= t12_6;
t13_8 <= t12_8;
t13_9 <= t12_9;
t13_10 <= t12_11;
t13_11 <= t12_10;
t13_12 <= t12_12;
t13_13 <= t12_13;
t13_14 <= t12_15;
t13_15 <= t12_14;
end
always @(posedge clk) begin
y0 <= t13_0;
y1 <= t13_2;
y2 <= t13_4;
y3 <= t13_6;
y4 <= t13_8;
y5 <= t13_10;
y6 <= t13_12;
y7 <= t13_14;
y8 <= t13_1;
y9 <= t13_3;
y10 <= t13_5;
y11 <= t13_7;
y12 <= t13_9;
y13 <= t13_11;
y14 <= t13_13;
y15 <= t13_15;
end
endmodule

// Latency: 15
// Gap: 4
module perm18786(clk, next, reset, next_out,
x0, y0,
x1, y1,
x2, y2,
x3, y3,
x4, y4,
x5, y5,
x6, y6,
x7, y7,
x8, y8,
x9, y9,
x10, y10,
x11, y11,
x12, y12,
x13, y13,
x14, y14,
x15, y15);
parameter width = 16;

parameter depth = 4;

parameter addrbits = 2;

parameter muxbits = 4;

input [width-1:0] x0;


output [width-1:0] y0;
wire [width-1:0] t0;
wire [width-1:0] s0;
input [width-1:0] x1;
output [width-1:0] y1;
wire [width-1:0] t1;
wire [width-1:0] s1;
input [width-1:0] x2;
output [width-1:0] y2;
wire [width-1:0] t2;
wire [width-1:0] s2;
input [width-1:0] x3;
output [width-1:0] y3;
wire [width-1:0] t3;
wire [width-1:0] s3;
input [width-1:0] x4;
output [width-1:0] y4;
wire [width-1:0] t4;
wire [width-1:0] s4;
input [width-1:0] x5;
output [width-1:0] y5;
wire [width-1:0] t5;
wire [width-1:0] s5;
input [width-1:0] x6;
output [width-1:0] y6;
wire [width-1:0] t6;
wire [width-1:0] s6;
input [width-1:0] x7;
output [width-1:0] y7;
wire [width-1:0] t7;
wire [width-1:0] s7;
input [width-1:0] x8;
output [width-1:0] y8;
wire [width-1:0] t8;
wire [width-1:0] s8;
input [width-1:0] x9;
output [width-1:0] y9;
wire [width-1:0] t9;
wire [width-1:0] s9;
input [width-1:0] x10;
output [width-1:0] y10;
wire [width-1:0] t10;
wire [width-1:0] s10;
input [width-1:0] x11;
output [width-1:0] y11;
wire [width-1:0] t11;
wire [width-1:0] s11;
input [width-1:0] x12;
output [width-1:0] y12;
wire [width-1:0] t12;
wire [width-1:0] s12;
input [width-1:0] x13;
output [width-1:0] y13;
wire [width-1:0] t13;
wire [width-1:0] s13;
input [width-1:0] x14;
output [width-1:0] y14;
wire [width-1:0] t14;
wire [width-1:0] s14;
input [width-1:0] x15;
output [width-1:0] y15;
wire [width-1:0] t15;
wire [width-1:0] s15;
input next, reset, clk;
output next_out;
reg [addrbits-1:0] s1rdloc, s2rdloc;

reg [addrbits-1:0] s1wr0;


reg [addrbits-1:0] s1rd0, s2wr0, s2rd0;
reg [addrbits-1:0] s1rd1, s2wr1, s2rd1;
reg [addrbits-1:0] s1rd2, s2wr2, s2rd2;
reg [addrbits-1:0] s1rd3, s2wr3, s2rd3;
reg [addrbits-1:0] s1rd4, s2wr4, s2rd4;
reg [addrbits-1:0] s1rd5, s2wr5, s2rd5;
reg [addrbits-1:0] s1rd6, s2wr6, s2rd6;
reg [addrbits-1:0] s1rd7, s2wr7, s2rd7;
reg [addrbits-1:0] s1rd8, s2wr8, s2rd8;
reg [addrbits-1:0] s1rd9, s2wr9, s2rd9;
reg [addrbits-1:0] s1rd10, s2wr10, s2rd10;
reg [addrbits-1:0] s1rd11, s2wr11, s2rd11;
reg [addrbits-1:0] s1rd12, s2wr12, s2rd12;
reg [addrbits-1:0] s1rd13, s2wr13, s2rd13;
reg [addrbits-1:0] s1rd14, s2wr14, s2rd14;
reg [addrbits-1:0] s1rd15, s2wr15, s2rd15;
reg s1wr_en, state1, state2, state3;
wire next2, next3, next4;
reg inFlip0, outFlip0_z, outFlip1;
wire inFlip1, outFlip0;

wire [0:0] tm9;


assign tm9 = 0;

shiftRegFIFO #(6, 1) shiftFIFO_27539(.X(outFlip0), .Y(inFlip1), .clk(clk));


shiftRegFIFO #(1, 1) shiftFIFO_27540(.X(outFlip0_z), .Y(outFlip0), .clk(clk));
// shiftRegFIFO #(2, 1) inFlip1Reg(outFlip0, inFlip1, clk);
// shiftRegFIFO #(1, 1) outFlip0Reg(outFlip0_z, outFlip0, clk);

memMod_dist #(depth*2, width, addrbits+1) s1mem0(x0, t0, {inFlip0, s1wr0},


{outFlip0, s1rd0}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem1(x1, t1, {inFlip0, s1wr0},
{outFlip0, s1rd1}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem2(x2, t2, {inFlip0, s1wr0},
{outFlip0, s1rd2}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem3(x3, t3, {inFlip0, s1wr0},
{outFlip0, s1rd3}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem4(x4, t4, {inFlip0, s1wr0},
{outFlip0, s1rd4}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem5(x5, t5, {inFlip0, s1wr0},
{outFlip0, s1rd5}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem6(x6, t6, {inFlip0, s1wr0},
{outFlip0, s1rd6}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem7(x7, t7, {inFlip0, s1wr0},
{outFlip0, s1rd7}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem8(x8, t8, {inFlip0, s1wr0},
{outFlip0, s1rd8}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem9(x9, t9, {inFlip0, s1wr0},
{outFlip0, s1rd9}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem10(x10, t10, {inFlip0, s1wr0},
{outFlip0, s1rd10}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem11(x11, t11, {inFlip0, s1wr0},
{outFlip0, s1rd11}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem12(x12, t12, {inFlip0, s1wr0},
{outFlip0, s1rd12}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem13(x13, t13, {inFlip0, s1wr0},
{outFlip0, s1rd13}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem14(x14, t14, {inFlip0, s1wr0},
{outFlip0, s1rd14}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem15(x15, t15, {inFlip0, s1wr0},
{outFlip0, s1rd15}, s1wr_en, clk);

shiftRegFIFO #(3, 1) shiftFIFO_27549(.X(next), .Y(next2), .clk(clk));


shiftRegFIFO #(7, 1) shiftFIFO_27550(.X(next2), .Y(next3), .clk(clk));
shiftRegFIFO #(4, 1) shiftFIFO_27551(.X(next3), .Y(next4), .clk(clk));
shiftRegFIFO #(1, 1) shiftFIFO_27552(.X(next4), .Y(next_out), .clk(clk));
shiftRegFIFO #(3, 1) shiftFIFO_27555(.X(tm9), .Y(tm9_d), .clk(clk));
shiftRegFIFO #(6, 1) shiftFIFO_27558(.X(tm9_d), .Y(tm9_dd), .clk(clk));

wire [addrbits-1:0] muxCycle, writeCycle;


assign muxCycle = s1rdloc;
shiftRegFIFO #(6, 2) shiftFIFO_27563(.X(muxCycle), .Y(writeCycle), .clk(clk));

wire readInt, s2wr_en;


assign readInt = (state2 == 1);

shiftRegFIFO #(7, 1) writeIntReg(readInt, s2wr_en, clk);

memMod_dist #(depth*2, width, addrbits+1) s2mem0(s0, y0, {inFlip1, s2wr0},


{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem1(s1, y1, {inFlip1, s2wr1},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem2(s2, y2, {inFlip1, s2wr2},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem3(s3, y3, {inFlip1, s2wr3},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem4(s4, y4, {inFlip1, s2wr4},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem5(s5, y5, {inFlip1, s2wr5},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem6(s6, y6, {inFlip1, s2wr6},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem7(s7, y7, {inFlip1, s2wr7},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem8(s8, y8, {inFlip1, s2wr8},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem9(s9, y9, {inFlip1, s2wr9},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem10(s10, y10, {inFlip1, s2wr10},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem11(s11, y11, {inFlip1, s2wr11},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem12(s12, y12, {inFlip1, s2wr12},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem13(s13, y13, {inFlip1, s2wr13},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem14(s14, y14, {inFlip1, s2wr14},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem15(s15, y15, {inFlip1, s2wr15},
{outFlip1, s2rdloc}, s2wr_en, clk);
always @(posedge clk) begin
if (reset == 1) begin
state1 <= 0;
inFlip0 <= 0;
s1wr0 <= 0;
end
else if (next == 1) begin
s1wr0 <= 0;
state1 <= 1;
s1wr_en <= 1;
inFlip0 <= (s1wr0 == depth-1) ? ~inFlip0 : inFlip0;
end
else begin
case(state1)
0: begin
s1wr0 <= 0;
state1 <= 0;
s1wr_en <= 0;
inFlip0 <= inFlip0;
end
1: begin
s1wr0 <= (s1wr0 == depth-1) ? 0 : s1wr0 + 1;
state1 <= 1;
s1wr_en <= 1;
inFlip0 <= (s1wr0 == depth-1) ? ~inFlip0 : inFlip0;
end
endcase
end
end

always @(posedge clk) begin


if (reset == 1) begin
state2 <= 0;
outFlip0_z <= 0;
end
else if (next2 == 1) begin
s1rdloc <= 0;
state2 <= 1;
outFlip0_z <= (s1rdloc == depth-1) ? ~outFlip0_z : outFlip0_z;
end
else begin
case(state2)
0: begin
s1rdloc <= 0;
state2 <= 0;
outFlip0_z <= outFlip0_z;
end
1: begin
s1rdloc <= (s1rdloc == depth-1) ? 0 : s1rdloc + 1;
state2 <= 1;
outFlip0_z <= (s1rdloc == depth-1) ? ~outFlip0_z : outFlip0_z;
end
endcase
end
end

always @(posedge clk) begin


if (reset == 1) begin
state3 <= 0;
outFlip1 <= 0;
end
else if (next4 == 1) begin
s2rdloc <= 0;
state3 <= 1;
outFlip1 <= (s2rdloc == depth-1) ? ~outFlip1 : outFlip1;
end
else begin
case(state3)
0: begin
s2rdloc <= 0;
state3 <= 0;
outFlip1 <= outFlip1;
end
1: begin
s2rdloc <= (s2rdloc == depth-1) ? 0 : s2rdloc + 1;
state3 <= 1;
outFlip1 <= (s2rdloc == depth-1) ? ~outFlip1 : outFlip1;
end
endcase
end
end
always @(posedge clk) begin
case({tm9_d, s1rdloc})
{1'd0, 2'd0}: s1rd0 <= 3;
{1'd0, 2'd1}: s1rd0 <= 2;
{1'd0, 2'd2}: s1rd0 <= 1;
{1'd0, 2'd3}: s1rd0 <= 0;
endcase
end

// synthesis attribute rom_style of s1rd0 is "block"


always @(posedge clk) begin
case({tm9_d, s1rdloc})
{1'd0, 2'd0}: s1rd1 <= 3;
{1'd0, 2'd1}: s1rd1 <= 2;
{1'd0, 2'd2}: s1rd1 <= 1;
{1'd0, 2'd3}: s1rd1 <= 0;
endcase
end

// synthesis attribute rom_style of s1rd1 is "block"


always @(posedge clk) begin
case({tm9_d, s1rdloc})
{1'd0, 2'd0}: s1rd2 <= 2;
{1'd0, 2'd1}: s1rd2 <= 3;
{1'd0, 2'd2}: s1rd2 <= 0;
{1'd0, 2'd3}: s1rd2 <= 1;
endcase
end

// synthesis attribute rom_style of s1rd2 is "block"


always @(posedge clk) begin
case({tm9_d, s1rdloc})
{1'd0, 2'd0}: s1rd3 <= 2;
{1'd0, 2'd1}: s1rd3 <= 3;
{1'd0, 2'd2}: s1rd3 <= 0;
{1'd0, 2'd3}: s1rd3 <= 1;
endcase
end

// synthesis attribute rom_style of s1rd3 is "block"


always @(posedge clk) begin
case({tm9_d, s1rdloc})
{1'd0, 2'd0}: s1rd4 <= 1;
{1'd0, 2'd1}: s1rd4 <= 0;
{1'd0, 2'd2}: s1rd4 <= 3;
{1'd0, 2'd3}: s1rd4 <= 2;
endcase
end

// synthesis attribute rom_style of s1rd4 is "block"


always @(posedge clk) begin
case({tm9_d, s1rdloc})
{1'd0, 2'd0}: s1rd5 <= 1;
{1'd0, 2'd1}: s1rd5 <= 0;
{1'd0, 2'd2}: s1rd5 <= 3;
{1'd0, 2'd3}: s1rd5 <= 2;
endcase
end

// synthesis attribute rom_style of s1rd5 is "block"


always @(posedge clk) begin
case({tm9_d, s1rdloc})
{1'd0, 2'd0}: s1rd6 <= 0;
{1'd0, 2'd1}: s1rd6 <= 1;
{1'd0, 2'd2}: s1rd6 <= 2;
{1'd0, 2'd3}: s1rd6 <= 3;
endcase
end

// synthesis attribute rom_style of s1rd6 is "block"


always @(posedge clk) begin
case({tm9_d, s1rdloc})
{1'd0, 2'd0}: s1rd7 <= 0;
{1'd0, 2'd1}: s1rd7 <= 1;
{1'd0, 2'd2}: s1rd7 <= 2;
{1'd0, 2'd3}: s1rd7 <= 3;
endcase
end

// synthesis attribute rom_style of s1rd7 is "block"


always @(posedge clk) begin
case({tm9_d, s1rdloc})
{1'd0, 2'd0}: s1rd8 <= 3;
{1'd0, 2'd1}: s1rd8 <= 2;
{1'd0, 2'd2}: s1rd8 <= 1;
{1'd0, 2'd3}: s1rd8 <= 0;
endcase
end

// synthesis attribute rom_style of s1rd8 is "block"


always @(posedge clk) begin
case({tm9_d, s1rdloc})
{1'd0, 2'd0}: s1rd9 <= 3;
{1'd0, 2'd1}: s1rd9 <= 2;
{1'd0, 2'd2}: s1rd9 <= 1;
{1'd0, 2'd3}: s1rd9 <= 0;
endcase
end

// synthesis attribute rom_style of s1rd9 is "block"


always @(posedge clk) begin
case({tm9_d, s1rdloc})
{1'd0, 2'd0}: s1rd10 <= 2;
{1'd0, 2'd1}: s1rd10 <= 3;
{1'd0, 2'd2}: s1rd10 <= 0;
{1'd0, 2'd3}: s1rd10 <= 1;
endcase
end

// synthesis attribute rom_style of s1rd10 is "block"


always @(posedge clk) begin
case({tm9_d, s1rdloc})
{1'd0, 2'd0}: s1rd11 <= 2;
{1'd0, 2'd1}: s1rd11 <= 3;
{1'd0, 2'd2}: s1rd11 <= 0;
{1'd0, 2'd3}: s1rd11 <= 1;
endcase
end

// synthesis attribute rom_style of s1rd11 is "block"


always @(posedge clk) begin
case({tm9_d, s1rdloc})
{1'd0, 2'd0}: s1rd12 <= 1;
{1'd0, 2'd1}: s1rd12 <= 0;
{1'd0, 2'd2}: s1rd12 <= 3;
{1'd0, 2'd3}: s1rd12 <= 2;
endcase
end
// synthesis attribute rom_style of s1rd12 is "block"
always @(posedge clk) begin
case({tm9_d, s1rdloc})
{1'd0, 2'd0}: s1rd13 <= 1;
{1'd0, 2'd1}: s1rd13 <= 0;
{1'd0, 2'd2}: s1rd13 <= 3;
{1'd0, 2'd3}: s1rd13 <= 2;
endcase
end

// synthesis attribute rom_style of s1rd13 is "block"


always @(posedge clk) begin
case({tm9_d, s1rdloc})
{1'd0, 2'd0}: s1rd14 <= 0;
{1'd0, 2'd1}: s1rd14 <= 1;
{1'd0, 2'd2}: s1rd14 <= 2;
{1'd0, 2'd3}: s1rd14 <= 3;
endcase
end

// synthesis attribute rom_style of s1rd14 is "block"


always @(posedge clk) begin
case({tm9_d, s1rdloc})
{1'd0, 2'd0}: s1rd15 <= 0;
{1'd0, 2'd1}: s1rd15 <= 1;
{1'd0, 2'd2}: s1rd15 <= 2;
{1'd0, 2'd3}: s1rd15 <= 3;
endcase
end

// synthesis attribute rom_style of s1rd15 is "block"


swNet18786 sw(tm9_d, clk, muxCycle, t0, s0, t1, s1, t2, s2, t3, s3, t4, s4, t5,
s5, t6, s6, t7, s7, t8, s8, t9, s9, t10, s10, t11, s11, t12, s12, t13, s13, t14,
s14, t15, s15);

always @(posedge clk) begin


case({tm9_dd, writeCycle})
{1'd0, 2'd0}: s2wr0 <= 3;
{1'd0, 2'd1}: s2wr0 <= 2;
{1'd0, 2'd2}: s2wr0 <= 1;
{1'd0, 2'd3}: s2wr0 <= 0;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr0 is "block"


always @(posedge clk) begin
case({tm9_dd, writeCycle})
{1'd0, 2'd0}: s2wr1 <= 3;
{1'd0, 2'd1}: s2wr1 <= 2;
{1'd0, 2'd2}: s2wr1 <= 1;
{1'd0, 2'd3}: s2wr1 <= 0;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr1 is "block"


always @(posedge clk) begin
case({tm9_dd, writeCycle})
{1'd0, 2'd0}: s2wr2 <= 2;
{1'd0, 2'd1}: s2wr2 <= 3;
{1'd0, 2'd2}: s2wr2 <= 0;
{1'd0, 2'd3}: s2wr2 <= 1;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr2 is "block"


always @(posedge clk) begin
case({tm9_dd, writeCycle})
{1'd0, 2'd0}: s2wr3 <= 2;
{1'd0, 2'd1}: s2wr3 <= 3;
{1'd0, 2'd2}: s2wr3 <= 0;
{1'd0, 2'd3}: s2wr3 <= 1;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr3 is "block"


always @(posedge clk) begin
case({tm9_dd, writeCycle})
{1'd0, 2'd0}: s2wr4 <= 1;
{1'd0, 2'd1}: s2wr4 <= 0;
{1'd0, 2'd2}: s2wr4 <= 3;
{1'd0, 2'd3}: s2wr4 <= 2;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr4 is "block"


always @(posedge clk) begin
case({tm9_dd, writeCycle})
{1'd0, 2'd0}: s2wr5 <= 1;
{1'd0, 2'd1}: s2wr5 <= 0;
{1'd0, 2'd2}: s2wr5 <= 3;
{1'd0, 2'd3}: s2wr5 <= 2;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr5 is "block"


always @(posedge clk) begin
case({tm9_dd, writeCycle})
{1'd0, 2'd0}: s2wr6 <= 0;
{1'd0, 2'd1}: s2wr6 <= 1;
{1'd0, 2'd2}: s2wr6 <= 2;
{1'd0, 2'd3}: s2wr6 <= 3;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr6 is "block"


always @(posedge clk) begin
case({tm9_dd, writeCycle})
{1'd0, 2'd0}: s2wr7 <= 0;
{1'd0, 2'd1}: s2wr7 <= 1;
{1'd0, 2'd2}: s2wr7 <= 2;
{1'd0, 2'd3}: s2wr7 <= 3;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr7 is "block"


always @(posedge clk) begin
case({tm9_dd, writeCycle})
{1'd0, 2'd0}: s2wr8 <= 3;
{1'd0, 2'd1}: s2wr8 <= 2;
{1'd0, 2'd2}: s2wr8 <= 1;
{1'd0, 2'd3}: s2wr8 <= 0;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr8 is "block"


always @(posedge clk) begin
case({tm9_dd, writeCycle})
{1'd0, 2'd0}: s2wr9 <= 3;
{1'd0, 2'd1}: s2wr9 <= 2;
{1'd0, 2'd2}: s2wr9 <= 1;
{1'd0, 2'd3}: s2wr9 <= 0;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr9 is "block"


always @(posedge clk) begin
case({tm9_dd, writeCycle})
{1'd0, 2'd0}: s2wr10 <= 2;
{1'd0, 2'd1}: s2wr10 <= 3;
{1'd0, 2'd2}: s2wr10 <= 0;
{1'd0, 2'd3}: s2wr10 <= 1;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr10 is "block"


always @(posedge clk) begin
case({tm9_dd, writeCycle})
{1'd0, 2'd0}: s2wr11 <= 2;
{1'd0, 2'd1}: s2wr11 <= 3;
{1'd0, 2'd2}: s2wr11 <= 0;
{1'd0, 2'd3}: s2wr11 <= 1;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr11 is "block"


always @(posedge clk) begin
case({tm9_dd, writeCycle})
{1'd0, 2'd0}: s2wr12 <= 1;
{1'd0, 2'd1}: s2wr12 <= 0;
{1'd0, 2'd2}: s2wr12 <= 3;
{1'd0, 2'd3}: s2wr12 <= 2;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr12 is "block"


always @(posedge clk) begin
case({tm9_dd, writeCycle})
{1'd0, 2'd0}: s2wr13 <= 1;
{1'd0, 2'd1}: s2wr13 <= 0;
{1'd0, 2'd2}: s2wr13 <= 3;
{1'd0, 2'd3}: s2wr13 <= 2;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr13 is "block"


always @(posedge clk) begin
case({tm9_dd, writeCycle})
{1'd0, 2'd0}: s2wr14 <= 0;
{1'd0, 2'd1}: s2wr14 <= 1;
{1'd0, 2'd2}: s2wr14 <= 2;
{1'd0, 2'd3}: s2wr14 <= 3;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr14 is "block"


always @(posedge clk) begin
case({tm9_dd, writeCycle})
{1'd0, 2'd0}: s2wr15 <= 0;
{1'd0, 2'd1}: s2wr15 <= 1;
{1'd0, 2'd2}: s2wr15 <= 2;
{1'd0, 2'd3}: s2wr15 <= 3;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr15 is "block"


endmodule

// Latency: 8
// Gap: 4
module DirSum_20265(clk, reset, next, next_out,
X0, Y0,
X1, Y1,
X2, Y2,
X3, Y3,
X4, Y4,
X5, Y5,
X6, Y6,
X7, Y7,
X8, Y8,
X9, Y9,
X10, Y10,
X11, Y11,
X12, Y12,
X13, Y13,
X14, Y14,
X15, Y15,
X16, Y16,
X17, Y17,
X18, Y18,
X19, Y19,
X20, Y20,
X21, Y21,
X22, Y22,
X23, Y23,
X24, Y24,
X25, Y25,
X26, Y26,
X27, Y27,
X28, Y28,
X29, Y29,
X30, Y30,
X31, Y31);

output next_out;
input clk, reset, next;
reg [1:0] i2;

input [7:0] X0,


X1,
X2,
X3,
X4,
X5,
X6,
X7,
X8,
X9,
X10,
X11,
X12,
X13,
X14,
X15,
X16,
X17,
X18,
X19,
X20,
X21,
X22,
X23,
X24,
X25,
X26,
X27,
X28,
X29,
X30,
X31;

output [7:0] Y0,


Y1,
Y2,
Y3,
Y4,
Y5,
Y6,
Y7,
Y8,
Y9,
Y10,
Y11,
Y12,
Y13,
Y14,
Y15,
Y16,
Y17,
Y18,
Y19,
Y20,
Y21,
Y22,
Y23,
Y24,
Y25,
Y26,
Y27,
Y28,
Y29,
Y30,
Y31;

always @(posedge clk) begin


if (reset == 1) begin
i2 <= 0;
end
else begin
if (next == 1)
i2 <= 0;
else if (i2 == 3)
i2 <= 0;
else
i2 <= i2 + 1;
end
end

codeBlock18791 codeBlockIsnt27564(.clk(clk), .reset(reset), .next_in(next),


.next_out(next_out),
.i2_in(i2),
.X0_in(X0), .Y0(Y0),
.X1_in(X1), .Y1(Y1),
.X2_in(X2), .Y2(Y2),
.X3_in(X3), .Y3(Y3),
.X4_in(X4), .Y4(Y4),
.X5_in(X5), .Y5(Y5),
.X6_in(X6), .Y6(Y6),
.X7_in(X7), .Y7(Y7),
.X8_in(X8), .Y8(Y8),
.X9_in(X9), .Y9(Y9),
.X10_in(X10), .Y10(Y10),
.X11_in(X11), .Y11(Y11),
.X12_in(X12), .Y12(Y12),
.X13_in(X13), .Y13(Y13),
.X14_in(X14), .Y14(Y14),
.X15_in(X15), .Y15(Y15),
.X16_in(X16), .Y16(Y16),
.X17_in(X17), .Y17(Y17),
.X18_in(X18), .Y18(Y18),
.X19_in(X19), .Y19(Y19),
.X20_in(X20), .Y20(Y20),
.X21_in(X21), .Y21(Y21),
.X22_in(X22), .Y22(Y22),
.X23_in(X23), .Y23(Y23),
.X24_in(X24), .Y24(Y24),
.X25_in(X25), .Y25(Y25),
.X26_in(X26), .Y26(Y26),
.X27_in(X27), .Y27(Y27),
.X28_in(X28), .Y28(Y28),
.X29_in(X29), .Y29(Y29),
.X30_in(X30), .Y30(Y30),
.X31_in(X31), .Y31(Y31));
endmodule

module D70_20077(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'hd7;
1: out3 <= 8'hc8;
2: out3 <= 8'h13;
3: out3 <= 8'h40;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D69_20083(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'hdc;
1: out3 <= 8'hc1;
2: out3 <= 8'hf4;
3: out3 <= 8'h35;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D68_20089(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'he2;
1: out3 <= 8'hc0;
2: out3 <= 8'hd7;
3: out3 <= 8'h13;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D67_20095(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'he8;
1: out3 <= 8'hc5;
2: out3 <= 8'hc5;
3: out3 <= 8'he8;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D66_20101(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'hed;
1: out3 <= 8'hcf;
2: out3 <= 8'hc0;
3: out3 <= 8'hc8;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D65_20107(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;
always @(posedge clk) begin
out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'hf4;
1: out3 <= 8'hdc;
2: out3 <= 8'hcb;
3: out3 <= 8'hc1;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D64_20113(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'hfa;
1: out3 <= 8'hed;
2: out3 <= 8'he2;
3: out3 <= 8'hd7;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D62_20125(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h0;
1: out3 <= 8'hc1;
2: out3 <= 8'he8;
3: out3 <= 8'h35;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule
module D61_20131(addr, out, clk);
input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h0;
1: out3 <= 8'hc5;
2: out3 <= 8'hd3;
3: out3 <= 8'h18;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D60_20137(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h0;
1: out3 <= 8'hcb;
2: out3 <= 8'hc5;
3: out3 <= 8'hf4;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D59_20143(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h0;
1: out3 <= 8'hd3;
2: out3 <= 8'hc0;
3: out3 <= 8'hd3;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D58_20149(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h0;
1: out3 <= 8'hdc;
2: out3 <= 8'hc5;
3: out3 <= 8'hc1;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D57_20155(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h0;
1: out3 <= 8'he8;
2: out3 <= 8'hd3;
3: out3 <= 8'hc5;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D56_20161(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;
always @(posedge clk) begin
out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h0;
1: out3 <= 8'hf4;
2: out3 <= 8'he8;
3: out3 <= 8'hdc;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D54_20173(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h31;
1: out3 <= 8'he2;
2: out3 <= 8'hc3;
3: out3 <= 8'h6;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D53_20179(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h35;
1: out3 <= 8'hf4;
2: out3 <= 8'hc1;
3: out3 <= 8'hdc;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule
module D52_20185(addr, out, clk);
input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h38;
1: out3 <= 8'h6;
2: out3 <= 8'hcf;
3: out3 <= 8'hc3;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D51_20191(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h3b;
1: out3 <= 8'h18;
2: out3 <= 8'he8;
3: out3 <= 8'hc5;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D50_20197(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h3d;
1: out3 <= 8'h29;
2: out3 <= 8'h6;
3: out3 <= 8'he2;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D49_20203(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h3f;
1: out3 <= 8'h35;
2: out3 <= 8'h24;
3: out3 <= 8'hc;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D48_20209(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h40;
1: out3 <= 8'h3d;
2: out3 <= 8'h38;
3: out3 <= 8'h31;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D46_20221(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h40;
1: out3 <= 8'hc;
2: out3 <= 8'hc5;
3: out3 <= 8'hdc;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D45_20227(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h40;
1: out3 <= 8'h18;
2: out3 <= 8'hd3;
3: out3 <= 8'hc5;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D44_20233(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h40;
1: out3 <= 8'h24;
2: out3 <= 8'he8;
3: out3 <= 8'hc1;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule
module D43_20239(addr, out, clk);
input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h40;
1: out3 <= 8'h2d;
2: out3 <= 8'h0;
3: out3 <= 8'hd3;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D42_20245(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h40;
1: out3 <= 8'h35;
2: out3 <= 8'h18;
3: out3 <= 8'hf4;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D41_20251(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h40;
1: out3 <= 8'h3b;
2: out3 <= 8'h2d;
3: out3 <= 8'h18;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D40_20257(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [1:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h40;
1: out3 <= 8'h3f;
2: out3 <= 8'h3b;
3: out3 <= 8'h35;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

// Latency: 8
// Gap: 1
module codeBlock18791(clk, reset, next_in, next_out,
i2_in,
X0_in, Y0,
X1_in, Y1,
X2_in, Y2,
X3_in, Y3,
X4_in, Y4,
X5_in, Y5,
X6_in, Y6,
X7_in, Y7,
X8_in, Y8,
X9_in, Y9,
X10_in, Y10,
X11_in, Y11,
X12_in, Y12,
X13_in, Y13,
X14_in, Y14,
X15_in, Y15,
X16_in, Y16,
X17_in, Y17,
X18_in, Y18,
X19_in, Y19,
X20_in, Y20,
X21_in, Y21,
X22_in, Y22,
X23_in, Y23,
X24_in, Y24,
X25_in, Y25,
X26_in, Y26,
X27_in, Y27,
X28_in, Y28,
X29_in, Y29,
X30_in, Y30,
X31_in, Y31);

output next_out;
input clk, reset, next_in;

reg next;
input [1:0] i2_in;
reg [1:0] i2;

input [7:0] X0_in,


X1_in,
X2_in,
X3_in,
X4_in,
X5_in,
X6_in,
X7_in,
X8_in,
X9_in,
X10_in,
X11_in,
X12_in,
X13_in,
X14_in,
X15_in,
X16_in,
X17_in,
X18_in,
X19_in,
X20_in,
X21_in,
X22_in,
X23_in,
X24_in,
X25_in,
X26_in,
X27_in,
X28_in,
X29_in,
X30_in,
X31_in;

reg [7:0] X0,


X1,
X2,
X3,
X4,
X5,
X6,
X7,
X8,
X9,
X10,
X11,
X12,
X13,
X14,
X15,
X16,
X17,
X18,
X19,
X20,
X21,
X22,
X23,
X24,
X25,
X26,
X27,
X28,
X29,
X30,
X31;

output [7:0] Y0,


Y1,
Y2,
Y3,
Y4,
Y5,
Y6,
Y7,
Y8,
Y9,
Y10,
Y11,
Y12,
Y13,
Y14,
Y15,
Y16,
Y17,
Y18,
Y19,
Y20,
Y21,
Y22,
Y23,
Y24,
Y25,
Y26,
Y27,
Y28,
Y29,
Y30,
Y31;

shiftRegFIFO #(7, 1) shiftFIFO_27567(.X(next), .Y(next_out), .clk(clk));

wire signed [7:0] a922;


wire signed [7:0] a827;
wire signed [7:0] a925;
wire signed [7:0] a831;
wire signed [7:0] a926;
wire signed [7:0] a927;
wire signed [7:0] a930;
wire signed [7:0] a931;
wire signed [7:0] a934;
wire signed [7:0] a935;
wire signed [7:0] a938;
wire signed [7:0] a939;
wire signed [7:0] a942;
wire signed [7:0] a943;
wire signed [7:0] a946;
wire signed [7:0] a947;
wire signed [7:0] a950;
wire signed [7:0] a951;
wire signed [7:0] a954;
wire signed [7:0] a875;
wire signed [7:0] a957;
wire signed [7:0] a879;
wire signed [7:0] a958;
wire signed [7:0] a959;
wire signed [7:0] a962;
wire signed [7:0] a963;
wire signed [7:0] a966;
wire signed [7:0] a967;
wire signed [7:0] a970;
wire signed [7:0] a971;
wire signed [7:0] a974;
wire signed [7:0] a975;
wire signed [7:0] a978;
wire signed [7:0] a979;
wire signed [7:0] a982;
wire signed [7:0] a983;
reg signed [7:0] tm392;
reg signed [7:0] tm396;
reg signed [7:0] tm408;
reg signed [7:0] tm412;
reg signed [7:0] tm424;
reg signed [7:0] tm428;
reg signed [7:0] tm440;
reg signed [7:0] tm444;
reg signed [7:0] tm456;
reg signed [7:0] tm460;
reg signed [7:0] tm472;
reg signed [7:0] tm476;
reg signed [7:0] tm488;
reg signed [7:0] tm492;
reg signed [7:0] tm504;
reg signed [7:0] tm508;
reg signed [7:0] tm520;
reg signed [7:0] tm524;
reg signed [7:0] tm536;
reg signed [7:0] tm540;
reg signed [7:0] tm552;
reg signed [7:0] tm556;
reg signed [7:0] tm568;
reg signed [7:0] tm572;
reg signed [7:0] tm584;
reg signed [7:0] tm588;
reg signed [7:0] tm600;
reg signed [7:0] tm604;
reg signed [7:0] tm616;
reg signed [7:0] tm623;
reg signed [7:0] tm630;
reg signed [7:0] tm637;
reg signed [7:0] tm393;
reg signed [7:0] tm397;
reg signed [7:0] tm409;
reg signed [7:0] tm413;
reg signed [7:0] tm425;
reg signed [7:0] tm429;
reg signed [7:0] tm441;
reg signed [7:0] tm445;
reg signed [7:0] tm457;
reg signed [7:0] tm461;
reg signed [7:0] tm473;
reg signed [7:0] tm477;
reg signed [7:0] tm489;
reg signed [7:0] tm493;
reg signed [7:0] tm505;
reg signed [7:0] tm509;
reg signed [7:0] tm521;
reg signed [7:0] tm525;
reg signed [7:0] tm537;
reg signed [7:0] tm541;
reg signed [7:0] tm553;
reg signed [7:0] tm557;
reg signed [7:0] tm569;
reg signed [7:0] tm573;
reg signed [7:0] tm585;
reg signed [7:0] tm589;
reg signed [7:0] tm601;
reg signed [7:0] tm605;
reg signed [7:0] tm617;
reg signed [7:0] tm624;
reg signed [7:0] tm631;
reg signed [7:0] tm638;
wire signed [7:0] tm12;
wire signed [7:0] a832;
wire signed [7:0] tm13;
wire signed [7:0] a834;
wire signed [7:0] tm14;
wire signed [7:0] a838;
wire signed [7:0] tm15;
wire signed [7:0] a840;
wire signed [7:0] tm16;
wire signed [7:0] a844;
wire signed [7:0] tm17;
wire signed [7:0] a846;
wire signed [7:0] tm18;
wire signed [7:0] a850;
wire signed [7:0] tm19;
wire signed [7:0] a852;
wire signed [7:0] tm20;
wire signed [7:0] a856;
wire signed [7:0] tm21;
wire signed [7:0] a858;
wire signed [7:0] tm22;
wire signed [7:0] a862;
wire signed [7:0] tm23;
wire signed [7:0] a864;
wire signed [7:0] tm24;
wire signed [7:0] a868;
wire signed [7:0] tm25;
wire signed [7:0] a870;
wire signed [7:0] tm28;
wire signed [7:0] a880;
wire signed [7:0] tm29;
wire signed [7:0] a882;
wire signed [7:0] tm30;
wire signed [7:0] a886;
wire signed [7:0] tm31;
wire signed [7:0] a888;
wire signed [7:0] tm32;
wire signed [7:0] a892;
wire signed [7:0] tm33;
wire signed [7:0] a894;
wire signed [7:0] tm34;
wire signed [7:0] a898;
wire signed [7:0] tm35;
wire signed [7:0] a900;
wire signed [7:0] tm36;
wire signed [7:0] a904;
wire signed [7:0] tm37;
wire signed [7:0] a906;
wire signed [7:0] tm38;
wire signed [7:0] a910;
wire signed [7:0] tm39;
wire signed [7:0] a912;
wire signed [7:0] tm40;
wire signed [7:0] a916;
wire signed [7:0] tm41;
wire signed [7:0] a918;
reg signed [7:0] tm394;
reg signed [7:0] tm398;
reg signed [7:0] tm410;
reg signed [7:0] tm414;
reg signed [7:0] tm426;
reg signed [7:0] tm430;
reg signed [7:0] tm442;
reg signed [7:0] tm446;
reg signed [7:0] tm458;
reg signed [7:0] tm462;
reg signed [7:0] tm474;
reg signed [7:0] tm478;
reg signed [7:0] tm490;
reg signed [7:0] tm494;
reg signed [7:0] tm506;
reg signed [7:0] tm510;
reg signed [7:0] tm522;
reg signed [7:0] tm526;
reg signed [7:0] tm538;
reg signed [7:0] tm542;
reg signed [7:0] tm554;
reg signed [7:0] tm558;
reg signed [7:0] tm570;
reg signed [7:0] tm574;
reg signed [7:0] tm586;
reg signed [7:0] tm590;
reg signed [7:0] tm602;
reg signed [7:0] tm606;
reg signed [7:0] tm618;
reg signed [7:0] tm625;
reg signed [7:0] tm632;
reg signed [7:0] tm639;
reg signed [7:0] tm88;
reg signed [7:0] tm89;
reg signed [7:0] tm92;
reg signed [7:0] tm93;
reg signed [7:0] tm96;
reg signed [7:0] tm97;
reg signed [7:0] tm100;
reg signed [7:0] tm101;
reg signed [7:0] tm104;
reg signed [7:0] tm105;
reg signed [7:0] tm108;
reg signed [7:0] tm109;
reg signed [7:0] tm112;
reg signed [7:0] tm113;
reg signed [7:0] tm120;
reg signed [7:0] tm121;
reg signed [7:0] tm124;
reg signed [7:0] tm125;
reg signed [7:0] tm128;
reg signed [7:0] tm129;
reg signed [7:0] tm132;
reg signed [7:0] tm133;
reg signed [7:0] tm136;
reg signed [7:0] tm137;
reg signed [7:0] tm140;
reg signed [7:0] tm141;
reg signed [7:0] tm144;
reg signed [7:0] tm145;
reg signed [7:0] tm395;
reg signed [7:0] tm399;
reg signed [7:0] tm411;
reg signed [7:0] tm415;
reg signed [7:0] tm427;
reg signed [7:0] tm431;
reg signed [7:0] tm443;
reg signed [7:0] tm447;
reg signed [7:0] tm459;
reg signed [7:0] tm463;
reg signed [7:0] tm475;
reg signed [7:0] tm479;
reg signed [7:0] tm491;
reg signed [7:0] tm495;
reg signed [7:0] tm507;
reg signed [7:0] tm511;
reg signed [7:0] tm523;
reg signed [7:0] tm527;
reg signed [7:0] tm539;
reg signed [7:0] tm543;
reg signed [7:0] tm555;
reg signed [7:0] tm559;
reg signed [7:0] tm571;
reg signed [7:0] tm575;
reg signed [7:0] tm587;
reg signed [7:0] tm591;
reg signed [7:0] tm603;
reg signed [7:0] tm607;
reg signed [7:0] tm619;
reg signed [7:0] tm626;
reg signed [7:0] tm633;
reg signed [7:0] tm640;
reg signed [7:0] tm620;
reg signed [7:0] tm627;
reg signed [7:0] tm634;
reg signed [7:0] tm641;
wire signed [7:0] a833;
wire signed [7:0] a835;
wire signed [7:0] a836;
wire signed [7:0] a837;
wire signed [7:0] a839;
wire signed [7:0] a841;
wire signed [7:0] a842;
wire signed [7:0] a843;
wire signed [7:0] a845;
wire signed [7:0] a847;
wire signed [7:0] a848;
wire signed [7:0] a849;
wire signed [7:0] a851;
wire signed [7:0] a853;
wire signed [7:0] a854;
wire signed [7:0] a855;
wire signed [7:0] a857;
wire signed [7:0] a859;
wire signed [7:0] a860;
wire signed [7:0] a861;
wire signed [7:0] a863;
wire signed [7:0] a865;
wire signed [7:0] a866;
wire signed [7:0] a867;
wire signed [7:0] a869;
wire signed [7:0] a871;
wire signed [7:0] a872;
wire signed [7:0] a873;
wire signed [7:0] a881;
wire signed [7:0] a883;
wire signed [7:0] a884;
wire signed [7:0] a885;
wire signed [7:0] a887;
wire signed [7:0] a889;
wire signed [7:0] a890;
wire signed [7:0] a891;
wire signed [7:0] a893;
wire signed [7:0] a895;
wire signed [7:0] a896;
wire signed [7:0] a897;
wire signed [7:0] a899;
wire signed [7:0] a901;
wire signed [7:0] a902;
wire signed [7:0] a903;
wire signed [7:0] a905;
wire signed [7:0] a907;
wire signed [7:0] a908;
wire signed [7:0] a909;
wire signed [7:0] a911;
wire signed [7:0] a913;
wire signed [7:0] a914;
wire signed [7:0] a915;
wire signed [7:0] a917;
wire signed [7:0] a919;
wire signed [7:0] a920;
wire signed [7:0] a921;
reg signed [7:0] tm621;
reg signed [7:0] tm628;
reg signed [7:0] tm635;
reg signed [7:0] tm642;
wire signed [7:0] Y0;
wire signed [7:0] Y1;
wire signed [7:0] Y2;
wire signed [7:0] Y3;
wire signed [7:0] Y4;
wire signed [7:0] Y5;
wire signed [7:0] Y6;
wire signed [7:0] Y7;
wire signed [7:0] Y8;
wire signed [7:0] Y9;
wire signed [7:0] Y10;
wire signed [7:0] Y11;
wire signed [7:0] Y12;
wire signed [7:0] Y13;
wire signed [7:0] Y14;
wire signed [7:0] Y15;
wire signed [7:0] Y16;
wire signed [7:0] Y17;
wire signed [7:0] Y18;
wire signed [7:0] Y19;
wire signed [7:0] Y20;
wire signed [7:0] Y21;
wire signed [7:0] Y22;
wire signed [7:0] Y23;
wire signed [7:0] Y24;
wire signed [7:0] Y25;
wire signed [7:0] Y26;
wire signed [7:0] Y27;
wire signed [7:0] Y28;
wire signed [7:0] Y29;
wire signed [7:0] Y30;
wire signed [7:0] Y31;
reg signed [7:0] tm622;
reg signed [7:0] tm629;
reg signed [7:0] tm636;
reg signed [7:0] tm643;

assign a922 = X0;


assign a827 = a922;
assign a925 = X1;
assign a831 = a925;
assign a926 = X2;
assign a927 = X3;
assign a930 = X4;
assign a931 = X5;
assign a934 = X6;
assign a935 = X7;
assign a938 = X8;
assign a939 = X9;
assign a942 = X10;
assign a943 = X11;
assign a946 = X12;
assign a947 = X13;
assign a950 = X14;
assign a951 = X15;
assign a954 = X16;
assign a875 = a954;
assign a957 = X17;
assign a879 = a957;
assign a958 = X18;
assign a959 = X19;
assign a962 = X20;
assign a963 = X21;
assign a966 = X22;
assign a967 = X23;
assign a970 = X24;
assign a971 = X25;
assign a974 = X26;
assign a975 = X27;
assign a978 = X28;
assign a979 = X29;
assign a982 = X30;
assign a983 = X31;
assign a832 = tm12;
assign a834 = tm13;
assign a838 = tm14;
assign a840 = tm15;
assign a844 = tm16;
assign a846 = tm17;
assign a850 = tm18;
assign a852 = tm19;
assign a856 = tm20;
assign a858 = tm21;
assign a862 = tm22;
assign a864 = tm23;
assign a868 = tm24;
assign a870 = tm25;
assign a880 = tm28;
assign a882 = tm29;
assign a886 = tm30;
assign a888 = tm31;
assign a892 = tm32;
assign a894 = tm33;
assign a898 = tm34;
assign a900 = tm35;
assign a904 = tm36;
assign a906 = tm37;
assign a910 = tm38;
assign a912 = tm39;
assign a916 = tm40;
assign a918 = tm41;
assign Y0 = tm622;
assign Y1 = tm629;
assign Y16 = tm636;
assign Y17 = tm643;

D70_20077 instD70inst0_20077(.addr(i2[1:0]), .out(tm41), .clk(clk));

D69_20083 instD69inst0_20083(.addr(i2[1:0]), .out(tm39), .clk(clk));

D68_20089 instD68inst0_20089(.addr(i2[1:0]), .out(tm37), .clk(clk));

D67_20095 instD67inst0_20095(.addr(i2[1:0]), .out(tm35), .clk(clk));

D66_20101 instD66inst0_20101(.addr(i2[1:0]), .out(tm33), .clk(clk));

D65_20107 instD65inst0_20107(.addr(i2[1:0]), .out(tm31), .clk(clk));

D64_20113 instD64inst0_20113(.addr(i2[1:0]), .out(tm29), .clk(clk));

D62_20125 instD62inst0_20125(.addr(i2[1:0]), .out(tm25), .clk(clk));

D61_20131 instD61inst0_20131(.addr(i2[1:0]), .out(tm23), .clk(clk));

D60_20137 instD60inst0_20137(.addr(i2[1:0]), .out(tm21), .clk(clk));

D59_20143 instD59inst0_20143(.addr(i2[1:0]), .out(tm19), .clk(clk));

D58_20149 instD58inst0_20149(.addr(i2[1:0]), .out(tm17), .clk(clk));

D57_20155 instD57inst0_20155(.addr(i2[1:0]), .out(tm15), .clk(clk));

D56_20161 instD56inst0_20161(.addr(i2[1:0]), .out(tm13), .clk(clk));

D54_20173 instD54inst0_20173(.addr(i2[1:0]), .out(tm40), .clk(clk));

D53_20179 instD53inst0_20179(.addr(i2[1:0]), .out(tm38), .clk(clk));

D52_20185 instD52inst0_20185(.addr(i2[1:0]), .out(tm36), .clk(clk));

D51_20191 instD51inst0_20191(.addr(i2[1:0]), .out(tm34), .clk(clk));

D50_20197 instD50inst0_20197(.addr(i2[1:0]), .out(tm32), .clk(clk));

D49_20203 instD49inst0_20203(.addr(i2[1:0]), .out(tm30), .clk(clk));

D48_20209 instD48inst0_20209(.addr(i2[1:0]), .out(tm28), .clk(clk));

D46_20221 instD46inst0_20221(.addr(i2[1:0]), .out(tm24), .clk(clk));

D45_20227 instD45inst0_20227(.addr(i2[1:0]), .out(tm22), .clk(clk));

D44_20233 instD44inst0_20233(.addr(i2[1:0]), .out(tm20), .clk(clk));

D43_20239 instD43inst0_20239(.addr(i2[1:0]), .out(tm18), .clk(clk));

D42_20245 instD42inst0_20245(.addr(i2[1:0]), .out(tm16), .clk(clk));

D41_20251 instD41inst0_20251(.addr(i2[1:0]), .out(tm14), .clk(clk));

D40_20257 instD40inst0_20257(.addr(i2[1:0]), .out(tm12), .clk(clk));


multfix #(8, 2) m18890(.a(tm88), .b(tm395), .clk(clk), .q_sc(a833),
.q_unsc(), .rst(reset));
multfix #(8, 2) m18912(.a(tm89), .b(tm399), .clk(clk), .q_sc(a835),
.q_unsc(), .rst(reset));
multfix #(8, 2) m18930(.a(tm89), .b(tm395), .clk(clk), .q_sc(a836),
.q_unsc(), .rst(reset));
multfix #(8, 2) m18941(.a(tm88), .b(tm399), .clk(clk), .q_sc(a837),
.q_unsc(), .rst(reset));
multfix #(8, 2) m18970(.a(tm92), .b(tm411), .clk(clk), .q_sc(a839),
.q_unsc(), .rst(reset));
multfix #(8, 2) m18992(.a(tm93), .b(tm415), .clk(clk), .q_sc(a841),
.q_unsc(), .rst(reset));
multfix #(8, 2) m19010(.a(tm93), .b(tm411), .clk(clk), .q_sc(a842),
.q_unsc(), .rst(reset));
multfix #(8, 2) m19021(.a(tm92), .b(tm415), .clk(clk), .q_sc(a843),
.q_unsc(), .rst(reset));
multfix #(8, 2) m19050(.a(tm96), .b(tm427), .clk(clk), .q_sc(a845),
.q_unsc(), .rst(reset));
multfix #(8, 2) m19072(.a(tm97), .b(tm431), .clk(clk), .q_sc(a847),
.q_unsc(), .rst(reset));
multfix #(8, 2) m19090(.a(tm97), .b(tm427), .clk(clk), .q_sc(a848),
.q_unsc(), .rst(reset));
multfix #(8, 2) m19101(.a(tm96), .b(tm431), .clk(clk), .q_sc(a849),
.q_unsc(), .rst(reset));
multfix #(8, 2) m19130(.a(tm100), .b(tm443), .clk(clk), .q_sc(a851), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19152(.a(tm101), .b(tm447), .clk(clk), .q_sc(a853), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19170(.a(tm101), .b(tm443), .clk(clk), .q_sc(a854), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19181(.a(tm100), .b(tm447), .clk(clk), .q_sc(a855), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19210(.a(tm104), .b(tm459), .clk(clk), .q_sc(a857), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19232(.a(tm105), .b(tm463), .clk(clk), .q_sc(a859), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19250(.a(tm105), .b(tm459), .clk(clk), .q_sc(a860), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19261(.a(tm104), .b(tm463), .clk(clk), .q_sc(a861), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19290(.a(tm108), .b(tm475), .clk(clk), .q_sc(a863), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19312(.a(tm109), .b(tm479), .clk(clk), .q_sc(a865), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19330(.a(tm109), .b(tm475), .clk(clk), .q_sc(a866), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19341(.a(tm108), .b(tm479), .clk(clk), .q_sc(a867), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19370(.a(tm112), .b(tm491), .clk(clk), .q_sc(a869), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19392(.a(tm113), .b(tm495), .clk(clk), .q_sc(a871), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19410(.a(tm113), .b(tm491), .clk(clk), .q_sc(a872), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19421(.a(tm112), .b(tm495), .clk(clk), .q_sc(a873), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19530(.a(tm120), .b(tm507), .clk(clk), .q_sc(a881), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19552(.a(tm121), .b(tm511), .clk(clk), .q_sc(a883), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19570(.a(tm121), .b(tm507), .clk(clk), .q_sc(a884), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19581(.a(tm120), .b(tm511), .clk(clk), .q_sc(a885), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19610(.a(tm124), .b(tm523), .clk(clk), .q_sc(a887), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19632(.a(tm125), .b(tm527), .clk(clk), .q_sc(a889), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19650(.a(tm125), .b(tm523), .clk(clk), .q_sc(a890), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19661(.a(tm124), .b(tm527), .clk(clk), .q_sc(a891), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19690(.a(tm128), .b(tm539), .clk(clk), .q_sc(a893), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19712(.a(tm129), .b(tm543), .clk(clk), .q_sc(a895), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19730(.a(tm129), .b(tm539), .clk(clk), .q_sc(a896), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19741(.a(tm128), .b(tm543), .clk(clk), .q_sc(a897), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19770(.a(tm132), .b(tm555), .clk(clk), .q_sc(a899), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19792(.a(tm133), .b(tm559), .clk(clk), .q_sc(a901), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19810(.a(tm133), .b(tm555), .clk(clk), .q_sc(a902), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19821(.a(tm132), .b(tm559), .clk(clk), .q_sc(a903), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19850(.a(tm136), .b(tm571), .clk(clk), .q_sc(a905), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19872(.a(tm137), .b(tm575), .clk(clk), .q_sc(a907), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19890(.a(tm137), .b(tm571), .clk(clk), .q_sc(a908), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19901(.a(tm136), .b(tm575), .clk(clk), .q_sc(a909), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19930(.a(tm140), .b(tm587), .clk(clk), .q_sc(a911), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19952(.a(tm141), .b(tm591), .clk(clk), .q_sc(a913), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19970(.a(tm141), .b(tm587), .clk(clk), .q_sc(a914), .q_unsc(),
.rst(reset));
multfix #(8, 2) m19981(.a(tm140), .b(tm591), .clk(clk), .q_sc(a915), .q_unsc(),
.rst(reset));
multfix #(8, 2) m20010(.a(tm144), .b(tm603), .clk(clk), .q_sc(a917), .q_unsc(),
.rst(reset));
multfix #(8, 2) m20032(.a(tm145), .b(tm607), .clk(clk), .q_sc(a919), .q_unsc(),
.rst(reset));
multfix #(8, 2) m20050(.a(tm145), .b(tm603), .clk(clk), .q_sc(a920), .q_unsc(),
.rst(reset));
multfix #(8, 2) m20061(.a(tm144), .b(tm607), .clk(clk), .q_sc(a921), .q_unsc(),
.rst(reset));
subfxp #(8, 1) sub18919(.a(a833), .b(a835), .clk(clk), .q(Y2)); // 6
addfxp #(8, 1) add18948(.a(a836), .b(a837), .clk(clk), .q(Y3)); // 6
subfxp #(8, 1) sub18999(.a(a839), .b(a841), .clk(clk), .q(Y4)); // 6
addfxp #(8, 1) add19028(.a(a842), .b(a843), .clk(clk), .q(Y5)); // 6
subfxp #(8, 1) sub19079(.a(a845), .b(a847), .clk(clk), .q(Y6)); // 6
addfxp #(8, 1) add19108(.a(a848), .b(a849), .clk(clk), .q(Y7)); // 6
subfxp #(8, 1) sub19159(.a(a851), .b(a853), .clk(clk), .q(Y8)); // 6
addfxp #(8, 1) add19188(.a(a854), .b(a855), .clk(clk), .q(Y9)); // 6
subfxp #(8, 1) sub19239(.a(a857), .b(a859), .clk(clk), .q(Y10)); // 6
addfxp #(8, 1) add19268(.a(a860), .b(a861), .clk(clk), .q(Y11)); // 6
subfxp #(8, 1) sub19319(.a(a863), .b(a865), .clk(clk), .q(Y12)); // 6
addfxp #(8, 1) add19348(.a(a866), .b(a867), .clk(clk), .q(Y13)); // 6
subfxp #(8, 1) sub19399(.a(a869), .b(a871), .clk(clk), .q(Y14)); // 6
addfxp #(8, 1) add19428(.a(a872), .b(a873), .clk(clk), .q(Y15)); // 6
subfxp #(8, 1) sub19559(.a(a881), .b(a883), .clk(clk), .q(Y18)); // 6
addfxp #(8, 1) add19588(.a(a884), .b(a885), .clk(clk), .q(Y19)); // 6
subfxp #(8, 1) sub19639(.a(a887), .b(a889), .clk(clk), .q(Y20)); // 6
addfxp #(8, 1) add19668(.a(a890), .b(a891), .clk(clk), .q(Y21)); // 6
subfxp #(8, 1) sub19719(.a(a893), .b(a895), .clk(clk), .q(Y22)); // 6
addfxp #(8, 1) add19748(.a(a896), .b(a897), .clk(clk), .q(Y23)); // 6
subfxp #(8, 1) sub19799(.a(a899), .b(a901), .clk(clk), .q(Y24)); // 6
addfxp #(8, 1) add19828(.a(a902), .b(a903), .clk(clk), .q(Y25)); // 6
subfxp #(8, 1) sub19879(.a(a905), .b(a907), .clk(clk), .q(Y26)); // 6
addfxp #(8, 1) add19908(.a(a908), .b(a909), .clk(clk), .q(Y27)); // 6
subfxp #(8, 1) sub19959(.a(a911), .b(a913), .clk(clk), .q(Y28)); // 6
addfxp #(8, 1) add19988(.a(a914), .b(a915), .clk(clk), .q(Y29)); // 6
subfxp #(8, 1) sub20039(.a(a917), .b(a919), .clk(clk), .q(Y30)); // 6
addfxp #(8, 1) add20068(.a(a920), .b(a921), .clk(clk), .q(Y31)); // 6

always @(posedge clk) begin


if (reset == 1) begin
tm88 <= 0;
tm395 <= 0;
tm89 <= 0;
tm399 <= 0;
tm89 <= 0;
tm395 <= 0;
tm88 <= 0;
tm399 <= 0;
tm92 <= 0;
tm411 <= 0;
tm93 <= 0;
tm415 <= 0;
tm93 <= 0;
tm411 <= 0;
tm92 <= 0;
tm415 <= 0;
tm96 <= 0;
tm427 <= 0;
tm97 <= 0;
tm431 <= 0;
tm97 <= 0;
tm427 <= 0;
tm96 <= 0;
tm431 <= 0;
tm100 <= 0;
tm443 <= 0;
tm101 <= 0;
tm447 <= 0;
tm101 <= 0;
tm443 <= 0;
tm100 <= 0;
tm447 <= 0;
tm104 <= 0;
tm459 <= 0;
tm105 <= 0;
tm463 <= 0;
tm105 <= 0;
tm459 <= 0;
tm104 <= 0;
tm463 <= 0;
tm108 <= 0;
tm475 <= 0;
tm109 <= 0;
tm479 <= 0;
tm109 <= 0;
tm475 <= 0;
tm108 <= 0;
tm479 <= 0;
tm112 <= 0;
tm491 <= 0;
tm113 <= 0;
tm495 <= 0;
tm113 <= 0;
tm491 <= 0;
tm112 <= 0;
tm495 <= 0;
tm120 <= 0;
tm507 <= 0;
tm121 <= 0;
tm511 <= 0;
tm121 <= 0;
tm507 <= 0;
tm120 <= 0;
tm511 <= 0;
tm124 <= 0;
tm523 <= 0;
tm125 <= 0;
tm527 <= 0;
tm125 <= 0;
tm523 <= 0;
tm124 <= 0;
tm527 <= 0;
tm128 <= 0;
tm539 <= 0;
tm129 <= 0;
tm543 <= 0;
tm129 <= 0;
tm539 <= 0;
tm128 <= 0;
tm543 <= 0;
tm132 <= 0;
tm555 <= 0;
tm133 <= 0;
tm559 <= 0;
tm133 <= 0;
tm555 <= 0;
tm132 <= 0;
tm559 <= 0;
tm136 <= 0;
tm571 <= 0;
tm137 <= 0;
tm575 <= 0;
tm137 <= 0;
tm571 <= 0;
tm136 <= 0;
tm575 <= 0;
tm140 <= 0;
tm587 <= 0;
tm141 <= 0;
tm591 <= 0;
tm141 <= 0;
tm587 <= 0;
tm140 <= 0;
tm591 <= 0;
tm144 <= 0;
tm603 <= 0;
tm145 <= 0;
tm607 <= 0;
tm145 <= 0;
tm603 <= 0;
tm144 <= 0;
tm607 <= 0;
end
else begin
i2 <= i2_in;
X0 <= X0_in;
X1 <= X1_in;
X2 <= X2_in;
X3 <= X3_in;
X4 <= X4_in;
X5 <= X5_in;
X6 <= X6_in;
X7 <= X7_in;
X8 <= X8_in;
X9 <= X9_in;
X10 <= X10_in;
X11 <= X11_in;
X12 <= X12_in;
X13 <= X13_in;
X14 <= X14_in;
X15 <= X15_in;
X16 <= X16_in;
X17 <= X17_in;
X18 <= X18_in;
X19 <= X19_in;
X20 <= X20_in;
X21 <= X21_in;
X22 <= X22_in;
X23 <= X23_in;
X24 <= X24_in;
X25 <= X25_in;
X26 <= X26_in;
X27 <= X27_in;
X28 <= X28_in;
X29 <= X29_in;
X30 <= X30_in;
X31 <= X31_in;
next <= next_in;
tm392 <= a926;
tm396 <= a927;
tm408 <= a930;
tm412 <= a931;
tm424 <= a934;
tm428 <= a935;
tm440 <= a938;
tm444 <= a939;
tm456 <= a942;
tm460 <= a943;
tm472 <= a946;
tm476 <= a947;
tm488 <= a950;
tm492 <= a951;
tm504 <= a958;
tm508 <= a959;
tm520 <= a962;
tm524 <= a963;
tm536 <= a966;
tm540 <= a967;
tm552 <= a970;
tm556 <= a971;
tm568 <= a974;
tm572 <= a975;
tm584 <= a978;
tm588 <= a979;
tm600 <= a982;
tm604 <= a983;
tm616 <= a827;
tm623 <= a831;
tm630 <= a875;
tm637 <= a879;
tm393 <= tm392;
tm397 <= tm396;
tm409 <= tm408;
tm413 <= tm412;
tm425 <= tm424;
tm429 <= tm428;
tm441 <= tm440;
tm445 <= tm444;
tm457 <= tm456;
tm461 <= tm460;
tm473 <= tm472;
tm477 <= tm476;
tm489 <= tm488;
tm493 <= tm492;
tm505 <= tm504;
tm509 <= tm508;
tm521 <= tm520;
tm525 <= tm524;
tm537 <= tm536;
tm541 <= tm540;
tm553 <= tm552;
tm557 <= tm556;
tm569 <= tm568;
tm573 <= tm572;
tm585 <= tm584;
tm589 <= tm588;
tm601 <= tm600;
tm605 <= tm604;
tm617 <= tm616;
tm624 <= tm623;
tm631 <= tm630;
tm638 <= tm637;
tm394 <= tm393;
tm398 <= tm397;
tm410 <= tm409;
tm414 <= tm413;
tm426 <= tm425;
tm430 <= tm429;
tm442 <= tm441;
tm446 <= tm445;
tm458 <= tm457;
tm462 <= tm461;
tm474 <= tm473;
tm478 <= tm477;
tm490 <= tm489;
tm494 <= tm493;
tm506 <= tm505;
tm510 <= tm509;
tm522 <= tm521;
tm526 <= tm525;
tm538 <= tm537;
tm542 <= tm541;
tm554 <= tm553;
tm558 <= tm557;
tm570 <= tm569;
tm574 <= tm573;
tm586 <= tm585;
tm590 <= tm589;
tm602 <= tm601;
tm606 <= tm605;
tm618 <= tm617;
tm625 <= tm624;
tm632 <= tm631;
tm639 <= tm638;
tm88 <= a832;
tm89 <= a834;
tm92 <= a838;
tm93 <= a840;
tm96 <= a844;
tm97 <= a846;
tm100 <= a850;
tm101 <= a852;
tm104 <= a856;
tm105 <= a858;
tm108 <= a862;
tm109 <= a864;
tm112 <= a868;
tm113 <= a870;
tm120 <= a880;
tm121 <= a882;
tm124 <= a886;
tm125 <= a888;
tm128 <= a892;
tm129 <= a894;
tm132 <= a898;
tm133 <= a900;
tm136 <= a904;
tm137 <= a906;
tm140 <= a910;
tm141 <= a912;
tm144 <= a916;
tm145 <= a918;
tm395 <= tm394;
tm399 <= tm398;
tm411 <= tm410;
tm415 <= tm414;
tm427 <= tm426;
tm431 <= tm430;
tm443 <= tm442;
tm447 <= tm446;
tm459 <= tm458;
tm463 <= tm462;
tm475 <= tm474;
tm479 <= tm478;
tm491 <= tm490;
tm495 <= tm494;
tm507 <= tm506;
tm511 <= tm510;
tm523 <= tm522;
tm527 <= tm526;
tm539 <= tm538;
tm543 <= tm542;
tm555 <= tm554;
tm559 <= tm558;
tm571 <= tm570;
tm575 <= tm574;
tm587 <= tm586;
tm591 <= tm590;
tm603 <= tm602;
tm607 <= tm606;
tm619 <= tm618;
tm626 <= tm625;
tm633 <= tm632;
tm640 <= tm639;
tm620 <= tm619;
tm627 <= tm626;
tm634 <= tm633;
tm641 <= tm640;
tm621 <= tm620;
tm628 <= tm627;
tm635 <= tm634;
tm642 <= tm641;
tm622 <= tm621;
tm629 <= tm628;
tm636 <= tm635;
tm643 <= tm642;
end
end
endmodule

// Latency: 7
// Gap: 1
module codeBlock20268(clk, reset, next_in, next_out,
X0_in, Y0,
X1_in, Y1,
X2_in, Y2,
X3_in, Y3,
X4_in, Y4,
X5_in, Y5,
X6_in, Y6,
X7_in, Y7,
X8_in, Y8,
X9_in, Y9,
X10_in, Y10,
X11_in, Y11,
X12_in, Y12,
X13_in, Y13,
X14_in, Y14,
X15_in, Y15,
X16_in, Y16,
X17_in, Y17,
X18_in, Y18,
X19_in, Y19,
X20_in, Y20,
X21_in, Y21,
X22_in, Y22,
X23_in, Y23,
X24_in, Y24,
X25_in, Y25,
X26_in, Y26,
X27_in, Y27,
X28_in, Y28,
X29_in, Y29,
X30_in, Y30,
X31_in, Y31);

output next_out;
input clk, reset, next_in;

reg next;

input [7:0] X0_in,


X1_in,
X2_in,
X3_in,
X4_in,
X5_in,
X6_in,
X7_in,
X8_in,
X9_in,
X10_in,
X11_in,
X12_in,
X13_in,
X14_in,
X15_in,
X16_in,
X17_in,
X18_in,
X19_in,
X20_in,
X21_in,
X22_in,
X23_in,
X24_in,
X25_in,
X26_in,
X27_in,
X28_in,
X29_in,
X30_in,
X31_in;

reg [7:0] X0,


X1,
X2,
X3,
X4,
X5,
X6,
X7,
X8,
X9,
X10,
X11,
X12,
X13,
X14,
X15,
X16,
X17,
X18,
X19,
X20,
X21,
X22,
X23,
X24,
X25,
X26,
X27,
X28,
X29,
X30,
X31;

output [7:0] Y0,


Y1,
Y2,
Y3,
Y4,
Y5,
Y6,
Y7,
Y8,
Y9,
Y10,
Y11,
Y12,
Y13,
Y14,
Y15,
Y16,
Y17,
Y18,
Y19,
Y20,
Y21,
Y22,
Y23,
Y24,
Y25,
Y26,
Y27,
Y28,
Y29,
Y30,
Y31;

shiftRegFIFO #(6, 1) shiftFIFO_27570(.X(next), .Y(next_out), .clk(clk));

wire signed [7:0] a570;


wire signed [7:0] a571;
wire signed [7:0] a572;
wire signed [7:0] a573;
wire signed [7:0] a578;
wire signed [7:0] a579;
wire signed [7:0] a580;
wire signed [7:0] a581;
wire signed [7:0] a586;
wire signed [7:0] a587;
wire signed [7:0] a588;
wire signed [7:0] a589;
wire signed [7:0] a594;
wire signed [7:0] a595;
wire signed [7:0] a596;
wire signed [7:0] a597;
wire signed [7:0] a602;
wire signed [7:0] a603;
wire signed [7:0] a604;
wire signed [7:0] a605;
wire signed [7:0] a610;
wire signed [7:0] a611;
wire signed [7:0] a612;
wire signed [7:0] a613;
wire signed [7:0] a618;
wire signed [7:0] a619;
wire signed [7:0] a620;
wire signed [7:0] a621;
wire signed [7:0] a626;
wire signed [7:0] a627;
wire signed [7:0] a628;
wire signed [7:0] a629;
wire signed [7:0] t1106;
wire signed [7:0] t1107;
wire signed [7:0] t1108;
wire signed [7:0] t1109;
wire signed [7:0] t1110;
wire signed [7:0] t1111;
wire signed [7:0] t1112;
wire signed [7:0] t1113;
wire signed [7:0] t1116;
wire signed [7:0] t1117;
wire signed [7:0] t1118;
wire signed [7:0] t1119;
wire signed [7:0] t1120;
wire signed [7:0] t1121;
wire signed [7:0] t1122;
wire signed [7:0] t1123;
wire signed [7:0] t1158;
wire signed [7:0] t1159;
wire signed [7:0] t1160;
wire signed [7:0] t1161;
wire signed [7:0] t1162;
wire signed [7:0] t1163;
wire signed [7:0] t1164;
wire signed [7:0] t1165;
wire signed [7:0] t1168;
wire signed [7:0] t1169;
wire signed [7:0] t1170;
wire signed [7:0] t1171;
wire signed [7:0] t1172;
wire signed [7:0] t1173;
wire signed [7:0] t1174;
wire signed [7:0] t1175;
wire signed [7:0] t1126;
wire signed [7:0] t1127;
wire signed [7:0] t1128;
wire signed [7:0] t1129;
wire signed [7:0] t1130;
wire signed [7:0] t1131;
wire signed [7:0] t1132;
wire signed [7:0] t1133;
wire signed [7:0] t1142;
wire signed [7:0] t1143;
wire signed [7:0] t1144;
wire signed [7:0] t1145;
wire signed [7:0] t1178;
wire signed [7:0] t1179;
wire signed [7:0] t1180;
wire signed [7:0] t1181;
wire signed [7:0] t1182;
wire signed [7:0] t1183;
wire signed [7:0] t1184;
wire signed [7:0] t1185;
wire signed [7:0] t1194;
wire signed [7:0] t1195;
wire signed [7:0] t1196;
wire signed [7:0] t1197;
wire signed [7:0] a562;
wire signed [7:0] a563;
wire signed [7:0] a564;
wire signed [7:0] a565;
wire signed [7:0] t1134;
wire signed [7:0] t1135;
wire signed [7:0] t1136;
wire signed [7:0] t1137;
wire signed [7:0] t1138;
wire signed [7:0] t1139;
wire signed [7:0] t1140;
wire signed [7:0] t1141;
wire signed [7:0] a566;
wire signed [7:0] a567;
wire signed [7:0] a568;
wire signed [7:0] a569;
wire signed [7:0] t1186;
wire signed [7:0] t1187;
wire signed [7:0] t1188;
wire signed [7:0] t1189;
wire signed [7:0] t1190;
wire signed [7:0] t1191;
wire signed [7:0] t1192;
wire signed [7:0] t1193;
reg signed [7:0] tm644;
reg signed [7:0] tm647;
reg signed [7:0] tm656;
reg signed [7:0] tm659;
reg signed [7:0] tm668;
reg signed [7:0] tm671;
reg signed [7:0] tm680;
reg signed [7:0] tm683;
wire signed [7:0] t1114;
wire signed [7:0] t1115;
wire signed [7:0] t1124;
wire signed [7:0] t1125;
wire signed [7:0] t1166;
wire signed [7:0] t1167;
wire signed [7:0] t1176;
wire signed [7:0] t1177;
reg signed [7:0] tm645;
reg signed [7:0] tm648;
reg signed [7:0] tm657;
reg signed [7:0] tm660;
reg signed [7:0] tm669;
reg signed [7:0] tm672;
reg signed [7:0] tm681;
reg signed [7:0] tm684;
reg signed [7:0] tm692;
reg signed [7:0] tm695;
reg signed [7:0] tm698;
reg signed [7:0] tm701;
reg signed [7:0] tm704;
reg signed [7:0] tm707;
reg signed [7:0] tm710;
reg signed [7:0] tm713;
reg signed [7:0] tm716;
reg signed [7:0] tm719;
reg signed [7:0] tm722;
reg signed [7:0] tm725;
reg signed [7:0] tm728;
reg signed [7:0] tm731;
reg signed [7:0] tm734;
reg signed [7:0] tm737;
wire signed [7:0] t1146;
wire signed [7:0] t1147;
wire signed [7:0] t1148;
wire signed [7:0] t1149;
wire signed [7:0] t1198;
wire signed [7:0] t1199;
wire signed [7:0] t1200;
wire signed [7:0] t1201;
reg signed [7:0] tm646;
reg signed [7:0] tm649;
reg signed [7:0] tm658;
reg signed [7:0] tm661;
reg signed [7:0] tm670;
reg signed [7:0] tm673;
reg signed [7:0] tm682;
reg signed [7:0] tm685;
reg signed [7:0] tm693;
reg signed [7:0] tm696;
reg signed [7:0] tm699;
reg signed [7:0] tm702;
reg signed [7:0] tm705;
reg signed [7:0] tm708;
reg signed [7:0] tm711;
reg signed [7:0] tm714;
reg signed [7:0] tm717;
reg signed [7:0] tm720;
reg signed [7:0] tm723;
reg signed [7:0] tm726;
reg signed [7:0] tm729;
reg signed [7:0] tm732;
reg signed [7:0] tm735;
reg signed [7:0] tm738;
wire signed [7:0] Y0;
wire signed [7:0] Y1;
wire signed [7:0] Y8;
wire signed [7:0] Y9;
wire signed [7:0] Y4;
wire signed [7:0] Y5;
wire signed [7:0] Y12;
wire signed [7:0] Y13;
wire signed [7:0] t1150;
wire signed [7:0] t1151;
wire signed [7:0] t1152;
wire signed [7:0] t1153;
wire signed [7:0] Y2;
wire signed [7:0] Y3;
wire signed [7:0] Y10;
wire signed [7:0] Y11;
wire signed [7:0] t1154;
wire signed [7:0] t1155;
wire signed [7:0] t1156;
wire signed [7:0] t1157;
wire signed [7:0] Y6;
wire signed [7:0] Y7;
wire signed [7:0] Y14;
wire signed [7:0] Y15;
wire signed [7:0] Y16;
wire signed [7:0] Y17;
wire signed [7:0] Y24;
wire signed [7:0] Y25;
wire signed [7:0] Y20;
wire signed [7:0] Y21;
wire signed [7:0] Y28;
wire signed [7:0] Y29;
wire signed [7:0] t1202;
wire signed [7:0] t1203;
wire signed [7:0] t1204;
wire signed [7:0] t1205;
wire signed [7:0] Y18;
wire signed [7:0] Y19;
wire signed [7:0] Y26;
wire signed [7:0] Y27;
wire signed [7:0] t1206;
wire signed [7:0] t1207;
wire signed [7:0] t1208;
wire signed [7:0] t1209;
wire signed [7:0] Y22;
wire signed [7:0] Y23;
wire signed [7:0] Y30;
wire signed [7:0] Y31;
reg signed [7:0] tm694;
reg signed [7:0] tm697;
reg signed [7:0] tm700;
reg signed [7:0] tm703;
reg signed [7:0] tm706;
reg signed [7:0] tm709;
reg signed [7:0] tm712;
reg signed [7:0] tm715;
reg signed [7:0] tm718;
reg signed [7:0] tm721;
reg signed [7:0] tm724;
reg signed [7:0] tm727;
reg signed [7:0] tm730;
reg signed [7:0] tm733;
reg signed [7:0] tm736;
reg signed [7:0] tm739;

wire signed [7:0] tm42;


assign tm42 = 8'h2d;

assign a570 = X0;


assign a571 = X8;
assign a572 = X1;
assign a573 = X9;
assign a578 = X2;
assign a579 = X10;
assign a580 = X3;
assign a581 = X11;
assign a586 = X4;
assign a587 = X12;
assign a588 = X5;
assign a589 = X13;
assign a594 = X6;
assign a595 = X14;
assign a596 = X7;
assign a597 = X15;
assign a602 = X16;
assign a603 = X24;
assign a604 = X17;
assign a605 = X25;
assign a610 = X18;
assign a611 = X26;
assign a612 = X19;
assign a613 = X27;
assign a618 = X20;
assign a619 = X28;
assign a620 = X21;
assign a621 = X29;
assign a626 = X22;
assign a627 = X30;
assign a628 = X23;
assign a629 = X31;
assign Y0 = tm694;
assign Y1 = tm697;
assign Y8 = tm700;
assign Y9 = tm703;
assign Y4 = tm706;
assign Y5 = tm709;
assign Y12 = tm712;
assign Y13 = tm715;
assign Y2 = t1150;
assign Y3 = t1151;
assign Y10 = t1152;
assign Y11 = t1153;
assign Y6 = t1154;
assign Y7 = t1155;
assign Y14 = t1156;
assign Y15 = t1157;
assign Y16 = tm718;
assign Y17 = tm721;
assign Y24 = tm724;
assign Y25 = tm727;
assign Y20 = tm730;
assign Y21 = tm733;
assign Y28 = tm736;
assign Y29 = tm739;
assign Y18 = t1202;
assign Y19 = t1203;
assign Y26 = t1204;
assign Y27 = t1205;
assign Y22 = t1206;
assign Y23 = t1207;
assign Y30 = t1208;
assign Y31 = t1209;

addfxp #(8, 1) add20280(.a(a570), .b(a571), .clk(clk), .q(t1106)); // 0


addfxp #(8, 1) add20295(.a(a572), .b(a573), .clk(clk), .q(t1107)); // 0
subfxp #(8, 1) sub20310(.a(a570), .b(a571), .clk(clk), .q(t1108)); // 0
subfxp #(8, 1) sub20325(.a(a572), .b(a573), .clk(clk), .q(t1109)); // 0
addfxp #(8, 1) add20340(.a(a578), .b(a579), .clk(clk), .q(t1110)); // 0
addfxp #(8, 1) add20355(.a(a580), .b(a581), .clk(clk), .q(t1111)); // 0
subfxp #(8, 1) sub20370(.a(a578), .b(a579), .clk(clk), .q(t1112)); // 0
subfxp #(8, 1) sub20385(.a(a580), .b(a581), .clk(clk), .q(t1113)); // 0
addfxp #(8, 1) add20428(.a(a586), .b(a587), .clk(clk), .q(t1116)); // 0
addfxp #(8, 1) add20443(.a(a588), .b(a589), .clk(clk), .q(t1117)); // 0
subfxp #(8, 1) sub20458(.a(a586), .b(a587), .clk(clk), .q(t1118)); // 0
subfxp #(8, 1) sub20473(.a(a588), .b(a589), .clk(clk), .q(t1119)); // 0
addfxp #(8, 1) add20488(.a(a594), .b(a595), .clk(clk), .q(t1120)); // 0
addfxp #(8, 1) add20503(.a(a596), .b(a597), .clk(clk), .q(t1121)); // 0
subfxp #(8, 1) sub20518(.a(a594), .b(a595), .clk(clk), .q(t1122)); // 0
subfxp #(8, 1) sub20533(.a(a596), .b(a597), .clk(clk), .q(t1123)); // 0
addfxp #(8, 1) add20864(.a(a602), .b(a603), .clk(clk), .q(t1158)); // 0
addfxp #(8, 1) add20879(.a(a604), .b(a605), .clk(clk), .q(t1159)); // 0
subfxp #(8, 1) sub20894(.a(a602), .b(a603), .clk(clk), .q(t1160)); // 0
subfxp #(8, 1) sub20909(.a(a604), .b(a605), .clk(clk), .q(t1161)); // 0
addfxp #(8, 1) add20924(.a(a610), .b(a611), .clk(clk), .q(t1162)); // 0
addfxp #(8, 1) add20939(.a(a612), .b(a613), .clk(clk), .q(t1163)); // 0
subfxp #(8, 1) sub20954(.a(a610), .b(a611), .clk(clk), .q(t1164)); // 0
subfxp #(8, 1) sub20969(.a(a612), .b(a613), .clk(clk), .q(t1165)); // 0
addfxp #(8, 1) add21012(.a(a618), .b(a619), .clk(clk), .q(t1168)); // 0
addfxp #(8, 1) add21027(.a(a620), .b(a621), .clk(clk), .q(t1169)); // 0
subfxp #(8, 1) sub21042(.a(a618), .b(a619), .clk(clk), .q(t1170)); // 0
subfxp #(8, 1) sub21057(.a(a620), .b(a621), .clk(clk), .q(t1171)); // 0
addfxp #(8, 1) add21072(.a(a626), .b(a627), .clk(clk), .q(t1172)); // 0
addfxp #(8, 1) add21087(.a(a628), .b(a629), .clk(clk), .q(t1173)); // 0
subfxp #(8, 1) sub21102(.a(a626), .b(a627), .clk(clk), .q(t1174)); // 0
subfxp #(8, 1) sub21117(.a(a628), .b(a629), .clk(clk), .q(t1175)); // 0
addfxp #(8, 1) add20568(.a(t1106), .b(t1116), .clk(clk), .q(t1126)); // 1
addfxp #(8, 1) add20575(.a(t1107), .b(t1117), .clk(clk), .q(t1127)); // 1
subfxp #(8, 1) sub20582(.a(t1106), .b(t1116), .clk(clk), .q(t1128)); // 1
subfxp #(8, 1) sub20589(.a(t1107), .b(t1117), .clk(clk), .q(t1129)); // 1
addfxp #(8, 1) add20596(.a(t1110), .b(t1120), .clk(clk), .q(t1130)); // 1
addfxp #(8, 1) add20603(.a(t1111), .b(t1121), .clk(clk), .q(t1131)); // 1
subfxp #(8, 1) sub20610(.a(t1110), .b(t1120), .clk(clk), .q(t1132)); // 1
subfxp #(8, 1) sub20617(.a(t1111), .b(t1121), .clk(clk), .q(t1133)); // 1
addfxp #(8, 1) add20712(.a(t1108), .b(t1119), .clk(clk), .q(t1142)); // 1
subfxp #(8, 1) sub20719(.a(t1109), .b(t1118), .clk(clk), .q(t1143)); // 1
subfxp #(8, 1) sub20726(.a(t1108), .b(t1119), .clk(clk), .q(t1144)); // 1
addfxp #(8, 1) add20733(.a(t1109), .b(t1118), .clk(clk), .q(t1145)); // 1
addfxp #(8, 1) add21152(.a(t1158), .b(t1168), .clk(clk), .q(t1178)); // 1
addfxp #(8, 1) add21159(.a(t1159), .b(t1169), .clk(clk), .q(t1179)); // 1
subfxp #(8, 1) sub21166(.a(t1158), .b(t1168), .clk(clk), .q(t1180)); // 1
subfxp #(8, 1) sub21173(.a(t1159), .b(t1169), .clk(clk), .q(t1181)); // 1
addfxp #(8, 1) add21180(.a(t1162), .b(t1172), .clk(clk), .q(t1182)); // 1
addfxp #(8, 1) add21187(.a(t1163), .b(t1173), .clk(clk), .q(t1183)); // 1
subfxp #(8, 1) sub21194(.a(t1162), .b(t1172), .clk(clk), .q(t1184)); // 1
subfxp #(8, 1) sub21201(.a(t1163), .b(t1173), .clk(clk), .q(t1185)); // 1
addfxp #(8, 1) add21296(.a(t1160), .b(t1171), .clk(clk), .q(t1194)); // 1
subfxp #(8, 1) sub21303(.a(t1161), .b(t1170), .clk(clk), .q(t1195)); // 1
subfxp #(8, 1) sub21310(.a(t1160), .b(t1171), .clk(clk), .q(t1196)); // 1
addfxp #(8, 1) add21317(.a(t1161), .b(t1170), .clk(clk), .q(t1197)); // 1
multfix #(8, 2) m20392(.a(tm42), .b(t1112), .clk(clk), .q_sc(a562),
.q_unsc(), .rst(reset));
multfix #(8, 2) m20399(.a(tm42), .b(t1113), .clk(clk), .q_sc(a563),
.q_unsc(), .rst(reset));
multfix #(8, 2) m20540(.a(tm42), .b(t1123), .clk(clk), .q_sc(a564),
.q_unsc(), .rst(reset));
multfix #(8, 2) m20547(.a(tm42), .b(t1122), .clk(clk), .q_sc(a565),
.q_unsc(), .rst(reset));
addfxp #(8, 1) add20624(.a(t1126), .b(t1130), .clk(clk), .q(t1134)); // 2
addfxp #(8, 1) add20631(.a(t1127), .b(t1131), .clk(clk), .q(t1135)); // 2
subfxp #(8, 1) sub20638(.a(t1126), .b(t1130), .clk(clk), .q(t1136)); // 2
subfxp #(8, 1) sub20645(.a(t1127), .b(t1131), .clk(clk), .q(t1137)); // 2
addfxp #(8, 1) add20668(.a(t1128), .b(t1133), .clk(clk), .q(t1138)); // 2
subfxp #(8, 1) sub20675(.a(t1129), .b(t1132), .clk(clk), .q(t1139)); // 2
subfxp #(8, 1) sub20682(.a(t1128), .b(t1133), .clk(clk), .q(t1140)); // 2
addfxp #(8, 1) add20689(.a(t1129), .b(t1132), .clk(clk), .q(t1141)); // 2
multfix #(8, 2) m20976(.a(tm42), .b(t1164), .clk(clk), .q_sc(a566),
.q_unsc(), .rst(reset));
multfix #(8, 2) m20983(.a(tm42), .b(t1165), .clk(clk), .q_sc(a567),
.q_unsc(), .rst(reset));
multfix #(8, 2) m21124(.a(tm42), .b(t1175), .clk(clk), .q_sc(a568),
.q_unsc(), .rst(reset));
multfix #(8, 2) m21131(.a(tm42), .b(t1174), .clk(clk), .q_sc(a569),
.q_unsc(), .rst(reset));
addfxp #(8, 1) add21208(.a(t1178), .b(t1182), .clk(clk), .q(t1186)); // 2
addfxp #(8, 1) add21215(.a(t1179), .b(t1183), .clk(clk), .q(t1187)); // 2
subfxp #(8, 1) sub21222(.a(t1178), .b(t1182), .clk(clk), .q(t1188)); // 2
subfxp #(8, 1) sub21229(.a(t1179), .b(t1183), .clk(clk), .q(t1189)); // 2
addfxp #(8, 1) add21252(.a(t1180), .b(t1185), .clk(clk), .q(t1190)); // 2
subfxp #(8, 1) sub21259(.a(t1181), .b(t1184), .clk(clk), .q(t1191)); // 2
subfxp #(8, 1) sub21266(.a(t1180), .b(t1185), .clk(clk), .q(t1192)); // 2
addfxp #(8, 1) add21273(.a(t1181), .b(t1184), .clk(clk), .q(t1193)); // 2
addfxp #(8, 1) add20406(.a(a562), .b(a563), .clk(clk), .q(t1114)); // 3
subfxp #(8, 1) sub20413(.a(a563), .b(a562), .clk(clk), .q(t1115)); // 3
subfxp #(8, 1) sub20554(.a(a564), .b(a565), .clk(clk), .q(t1124)); // 3
addfxp #(8, 1) add20561(.a(a565), .b(a564), .clk(clk), .q(t1125)); // 3
addfxp #(8, 1) add20990(.a(a566), .b(a567), .clk(clk), .q(t1166)); // 3
subfxp #(8, 1) sub20997(.a(a567), .b(a566), .clk(clk), .q(t1167)); // 3
subfxp #(8, 1) sub21138(.a(a568), .b(a569), .clk(clk), .q(t1176)); // 3
addfxp #(8, 1) add21145(.a(a569), .b(a568), .clk(clk), .q(t1177)); // 3
addfxp #(8, 1) add20740(.a(t1114), .b(t1124), .clk(clk), .q(t1146)); // 4
subfxp #(8, 1) sub20747(.a(t1115), .b(t1125), .clk(clk), .q(t1147)); // 4
subfxp #(8, 1) sub20754(.a(t1114), .b(t1124), .clk(clk), .q(t1148)); // 4
addfxp #(8, 1) add20761(.a(t1115), .b(t1125), .clk(clk), .q(t1149)); // 4
addfxp #(8, 1) add21324(.a(t1166), .b(t1176), .clk(clk), .q(t1198)); // 4
subfxp #(8, 1) sub21331(.a(t1167), .b(t1177), .clk(clk), .q(t1199)); // 4
subfxp #(8, 1) sub21338(.a(t1166), .b(t1176), .clk(clk), .q(t1200)); // 4
addfxp #(8, 1) add21345(.a(t1167), .b(t1177), .clk(clk), .q(t1201)); // 4
addfxp #(8, 1) add20768(.a(tm646), .b(t1146), .clk(clk), .q(t1150)); // 5
addfxp #(8, 1) add20775(.a(tm649), .b(t1147), .clk(clk), .q(t1151)); // 5
subfxp #(8, 1) sub20782(.a(tm646), .b(t1146), .clk(clk), .q(t1152)); // 5
subfxp #(8, 1) sub20789(.a(tm649), .b(t1147), .clk(clk), .q(t1153)); // 5
addfxp #(8, 1) add20812(.a(tm658), .b(t1149), .clk(clk), .q(t1154)); // 5
subfxp #(8, 1) sub20819(.a(tm661), .b(t1148), .clk(clk), .q(t1155)); // 5
subfxp #(8, 1) sub20826(.a(tm658), .b(t1149), .clk(clk), .q(t1156)); // 5
addfxp #(8, 1) add20833(.a(tm661), .b(t1148), .clk(clk), .q(t1157)); // 5
addfxp #(8, 1) add21352(.a(tm670), .b(t1198), .clk(clk), .q(t1202)); // 5
addfxp #(8, 1) add21359(.a(tm673), .b(t1199), .clk(clk), .q(t1203)); // 5
subfxp #(8, 1) sub21366(.a(tm670), .b(t1198), .clk(clk), .q(t1204)); // 5
subfxp #(8, 1) sub21373(.a(tm673), .b(t1199), .clk(clk), .q(t1205)); // 5
addfxp #(8, 1) add21396(.a(tm682), .b(t1201), .clk(clk), .q(t1206)); // 5
subfxp #(8, 1) sub21403(.a(tm685), .b(t1200), .clk(clk), .q(t1207)); // 5
subfxp #(8, 1) sub21410(.a(tm682), .b(t1201), .clk(clk), .q(t1208)); // 5
addfxp #(8, 1) add21417(.a(tm685), .b(t1200), .clk(clk), .q(t1209)); // 5

always @(posedge clk) begin


if (reset == 1) begin
end
else begin
X0 <= X0_in;
X1 <= X1_in;
X2 <= X2_in;
X3 <= X3_in;
X4 <= X4_in;
X5 <= X5_in;
X6 <= X6_in;
X7 <= X7_in;
X8 <= X8_in;
X9 <= X9_in;
X10 <= X10_in;
X11 <= X11_in;
X12 <= X12_in;
X13 <= X13_in;
X14 <= X14_in;
X15 <= X15_in;
X16 <= X16_in;
X17 <= X17_in;
X18 <= X18_in;
X19 <= X19_in;
X20 <= X20_in;
X21 <= X21_in;
X22 <= X22_in;
X23 <= X23_in;
X24 <= X24_in;
X25 <= X25_in;
X26 <= X26_in;
X27 <= X27_in;
X28 <= X28_in;
X29 <= X29_in;
X30 <= X30_in;
X31 <= X31_in;
next <= next_in;
tm644 <= t1142;
tm647 <= t1143;
tm656 <= t1144;
tm659 <= t1145;
tm668 <= t1194;
tm671 <= t1195;
tm680 <= t1196;
tm683 <= t1197;
tm645 <= tm644;
tm648 <= tm647;
tm657 <= tm656;
tm660 <= tm659;
tm669 <= tm668;
tm672 <= tm671;
tm681 <= tm680;
tm684 <= tm683;
tm692 <= t1134;
tm695 <= t1135;
tm698 <= t1136;
tm701 <= t1137;
tm704 <= t1138;
tm707 <= t1139;
tm710 <= t1140;
tm713 <= t1141;
tm716 <= t1186;
tm719 <= t1187;
tm722 <= t1188;
tm725 <= t1189;
tm728 <= t1190;
tm731 <= t1191;
tm734 <= t1192;
tm737 <= t1193;
tm646 <= tm645;
tm649 <= tm648;
tm658 <= tm657;
tm661 <= tm660;
tm670 <= tm669;
tm673 <= tm672;
tm682 <= tm681;
tm685 <= tm684;
tm693 <= tm692;
tm696 <= tm695;
tm699 <= tm698;
tm702 <= tm701;
tm705 <= tm704;
tm708 <= tm707;
tm711 <= tm710;
tm714 <= tm713;
tm717 <= tm716;
tm720 <= tm719;
tm723 <= tm722;
tm726 <= tm725;
tm729 <= tm728;
tm732 <= tm731;
tm735 <= tm734;
tm738 <= tm737;
tm694 <= tm693;
tm697 <= tm696;
tm700 <= tm699;
tm703 <= tm702;
tm706 <= tm705;
tm709 <= tm708;
tm712 <= tm711;
tm715 <= tm714;
tm718 <= tm717;
tm721 <= tm720;
tm724 <= tm723;
tm727 <= tm726;
tm730 <= tm729;
tm733 <= tm732;
tm736 <= tm735;
tm739 <= tm738;
end
end
endmodule

// Latency: 39
// Gap: 16
module rc21442(clk, reset, next, next_out,
X0, Y0,
X1, Y1,
X2, Y2,
X3, Y3,
X4, Y4,
X5, Y5,
X6, Y6,
X7, Y7,
X8, Y8,
X9, Y9,
X10, Y10,
X11, Y11,
X12, Y12,
X13, Y13,
X14, Y14,
X15, Y15,
X16, Y16,
X17, Y17,
X18, Y18,
X19, Y19,
X20, Y20,
X21, Y21,
X22, Y22,
X23, Y23,
X24, Y24,
X25, Y25,
X26, Y26,
X27, Y27,
X28, Y28,
X29, Y29,
X30, Y30,
X31, Y31);

output next_out;
input clk, reset, next;

input [7:0] X0,


X1,
X2,
X3,
X4,
X5,
X6,
X7,
X8,
X9,
X10,
X11,
X12,
X13,
X14,
X15,
X16,
X17,
X18,
X19,
X20,
X21,
X22,
X23,
X24,
X25,
X26,
X27,
X28,
X29,
X30,
X31;

output [7:0] Y0,


Y1,
Y2,
Y3,
Y4,
Y5,
Y6,
Y7,
Y8,
Y9,
Y10,
Y11,
Y12,
Y13,
Y14,
Y15,
Y16,
Y17,
Y18,
Y19,
Y20,
Y21,
Y22,
Y23,
Y24,
Y25,
Y26,
Y27,
Y28,
Y29,
Y30,
Y31;

wire [15:0] t0;


wire [15:0] s0;
assign t0 = {X0, X1};
wire [15:0] t1;
wire [15:0] s1;
assign t1 = {X2, X3};
wire [15:0] t2;
wire [15:0] s2;
assign t2 = {X4, X5};
wire [15:0] t3;
wire [15:0] s3;
assign t3 = {X6, X7};
wire [15:0] t4;
wire [15:0] s4;
assign t4 = {X8, X9};
wire [15:0] t5;
wire [15:0] s5;
assign t5 = {X10, X11};
wire [15:0] t6;
wire [15:0] s6;
assign t6 = {X12, X13};
wire [15:0] t7;
wire [15:0] s7;
assign t7 = {X14, X15};
wire [15:0] t8;
wire [15:0] s8;
assign t8 = {X16, X17};
wire [15:0] t9;
wire [15:0] s9;
assign t9 = {X18, X19};
wire [15:0] t10;
wire [15:0] s10;
assign t10 = {X20, X21};
wire [15:0] t11;
wire [15:0] s11;
assign t11 = {X22, X23};
wire [15:0] t12;
wire [15:0] s12;
assign t12 = {X24, X25};
wire [15:0] t13;
wire [15:0] s13;
assign t13 = {X26, X27};
wire [15:0] t14;
wire [15:0] s14;
assign t14 = {X28, X29};
wire [15:0] t15;
wire [15:0] s15;
assign t15 = {X30, X31};
assign Y0 = s0[15:8];
assign Y1 = s0[7:0];
assign Y2 = s1[15:8];
assign Y3 = s1[7:0];
assign Y4 = s2[15:8];
assign Y5 = s2[7:0];
assign Y6 = s3[15:8];
assign Y7 = s3[7:0];
assign Y8 = s4[15:8];
assign Y9 = s4[7:0];
assign Y10 = s5[15:8];
assign Y11 = s5[7:0];
assign Y12 = s6[15:8];
assign Y13 = s6[7:0];
assign Y14 = s7[15:8];
assign Y15 = s7[7:0];
assign Y16 = s8[15:8];
assign Y17 = s8[7:0];
assign Y18 = s9[15:8];
assign Y19 = s9[7:0];
assign Y20 = s10[15:8];
assign Y21 = s10[7:0];
assign Y22 = s11[15:8];
assign Y23 = s11[7:0];
assign Y24 = s12[15:8];
assign Y25 = s12[7:0];
assign Y26 = s13[15:8];
assign Y27 = s13[7:0];
assign Y28 = s14[15:8];
assign Y29 = s14[7:0];
assign Y30 = s15[15:8];
assign Y31 = s15[7:0];

perm21440 instPerm27571(.x0(t0), .y0(s0),


.x1(t1), .y1(s1),
.x2(t2), .y2(s2),
.x3(t3), .y3(s3),
.x4(t4), .y4(s4),
.x5(t5), .y5(s5),
.x6(t6), .y6(s6),
.x7(t7), .y7(s7),
.x8(t8), .y8(s8),
.x9(t9), .y9(s9),
.x10(t10), .y10(s10),
.x11(t11), .y11(s11),
.x12(t12), .y12(s12),
.x13(t13), .y13(s13),
.x14(t14), .y14(s14),
.x15(t15), .y15(s15),
.clk(clk), .next(next), .next_out(next_out), .reset(reset)
);

endmodule

module swNet21440(itr, clk, ct


, x0, y0
, x1, y1
, x2, y2
, x3, y3
, x4, y4
, x5, y5
, x6, y6
, x7, y7
, x8, y8
, x9, y9
, x10, y10
, x11, y11
, x12, y12
, x13, y13
, x14, y14
, x15, y15
);

parameter width = 16;

input [3:0] ct;


input clk;
input [0:0] itr;
input [width-1:0] x0;
output reg [width-1:0] y0;
input [width-1:0] x1;
output reg [width-1:0] y1;
input [width-1:0] x2;
output reg [width-1:0] y2;
input [width-1:0] x3;
output reg [width-1:0] y3;
input [width-1:0] x4;
output reg [width-1:0] y4;
input [width-1:0] x5;
output reg [width-1:0] y5;
input [width-1:0] x6;
output reg [width-1:0] y6;
input [width-1:0] x7;
output reg [width-1:0] y7;
input [width-1:0] x8;
output reg [width-1:0] y8;
input [width-1:0] x9;
output reg [width-1:0] y9;
input [width-1:0] x10;
output reg [width-1:0] y10;
input [width-1:0] x11;
output reg [width-1:0] y11;
input [width-1:0] x12;
output reg [width-1:0] y12;
input [width-1:0] x13;
output reg [width-1:0] y13;
input [width-1:0] x14;
output reg [width-1:0] y14;
input [width-1:0] x15;
output reg [width-1:0] y15;
wire [width-1:0] t0_0, t0_1, t0_2, t0_3, t0_4, t0_5, t0_6, t0_7, t0_8, t0_9,
t0_10, t0_11, t0_12, t0_13, t0_14, t0_15;
wire [width-1:0] t1_0, t1_1, t1_2, t1_3, t1_4, t1_5, t1_6, t1_7, t1_8, t1_9,
t1_10, t1_11, t1_12, t1_13, t1_14, t1_15;
wire [width-1:0] t2_0, t2_1, t2_2, t2_3, t2_4, t2_5, t2_6, t2_7, t2_8, t2_9,
t2_10, t2_11, t2_12, t2_13, t2_14, t2_15;
reg [width-1:0] t3_0, t3_1, t3_2, t3_3, t3_4, t3_5, t3_6, t3_7, t3_8, t3_9,
t3_10, t3_11, t3_12, t3_13, t3_14, t3_15;
wire [width-1:0] t4_0, t4_1, t4_2, t4_3, t4_4, t4_5, t4_6, t4_7, t4_8, t4_9,
t4_10, t4_11, t4_12, t4_13, t4_14, t4_15;
wire [width-1:0] t5_0, t5_1, t5_2, t5_3, t5_4, t5_5, t5_6, t5_7, t5_8, t5_9,
t5_10, t5_11, t5_12, t5_13, t5_14, t5_15;
wire [width-1:0] t6_0, t6_1, t6_2, t6_3, t6_4, t6_5, t6_6, t6_7, t6_8, t6_9,
t6_10, t6_11, t6_12, t6_13, t6_14, t6_15;
reg [width-1:0] t7_0, t7_1, t7_2, t7_3, t7_4, t7_5, t7_6, t7_7, t7_8, t7_9,
t7_10, t7_11, t7_12, t7_13, t7_14, t7_15;
wire [width-1:0] t8_0, t8_1, t8_2, t8_3, t8_4, t8_5, t8_6, t8_7, t8_8, t8_9,
t8_10, t8_11, t8_12, t8_13, t8_14, t8_15;
wire [width-1:0] t9_0, t9_1, t9_2, t9_3, t9_4, t9_5, t9_6, t9_7, t9_8, t9_9,
t9_10, t9_11, t9_12, t9_13, t9_14, t9_15;
wire [width-1:0] t10_0, t10_1, t10_2, t10_3, t10_4, t10_5, t10_6, t10_7, t10_8,
t10_9, t10_10, t10_11, t10_12, t10_13, t10_14, t10_15;
reg [width-1:0] t11_0, t11_1, t11_2, t11_3, t11_4, t11_5, t11_6, t11_7, t11_8,
t11_9, t11_10, t11_11, t11_12, t11_13, t11_14, t11_15;
wire [width-1:0] t12_0, t12_1, t12_2, t12_3, t12_4, t12_5, t12_6, t12_7, t12_8,
t12_9, t12_10, t12_11, t12_12, t12_13, t12_14, t12_15;
reg [width-1:0] t13_0, t13_1, t13_2, t13_3, t13_4, t13_5, t13_6, t13_7, t13_8,
t13_9, t13_10, t13_11, t13_12, t13_13, t13_14, t13_15;

reg [23:0] control;

always @(posedge clk) begin


case(ct)
4'd0: control <= 24'b111111111111111111110000;
4'd1: control <= 24'b111111111111111111110000;
4'd2: control <= 24'b000000001111111111110000;
4'd3: control <= 24'b000000001111111111110000;
4'd4: control <= 24'b111111110000000011110000;
4'd5: control <= 24'b111111110000000011110000;
4'd6: control <= 24'b000000000000000011110000;
4'd7: control <= 24'b000000000000000011110000;
4'd8: control <= 24'b111111111111111100001111;
4'd9: control <= 24'b111111111111111100001111;
4'd10: control <= 24'b000000001111111100001111;
4'd11: control <= 24'b000000001111111100001111;
4'd12: control <= 24'b111111110000000000001111;
4'd13: control <= 24'b111111110000000000001111;
4'd14: control <= 24'b000000000000000000001111;
4'd15: control <= 24'b000000000000000000001111;
endcase
end

// synthesis attribute rom_style of control is "distributed"


reg [23:0] control0;
reg [23:0] control1;
reg [23:0] control2;
reg [23:0] control3;
always @(posedge clk) begin
control0 <= control;
control1 <= control0;
control2 <= control1;
control3 <= control2;
end
assign t0_0 = x0;
assign t0_1 = x8;
assign t0_2 = x1;
assign t0_3 = x9;
assign t0_4 = x2;
assign t0_5 = x10;
assign t0_6 = x3;
assign t0_7 = x11;
assign t0_8 = x4;
assign t0_9 = x12;
assign t0_10 = x5;
assign t0_11 = x13;
assign t0_12 = x6;
assign t0_13 = x14;
assign t0_14 = x7;
assign t0_15 = x15;
assign t1_0 = t0_0;
assign t1_1 = t0_1;
assign t1_2 = t0_2;
assign t1_3 = t0_3;
assign t1_4 = t0_4;
assign t1_5 = t0_5;
assign t1_6 = t0_6;
assign t1_7 = t0_7;
assign t1_8 = t0_9;
assign t1_9 = t0_8;
assign t1_10 = t0_11;
assign t1_11 = t0_10;
assign t1_12 = t0_13;
assign t1_13 = t0_12;
assign t1_14 = t0_15;
assign t1_15 = t0_14;
assign t2_0 = t1_0;
assign t2_1 = t1_8;
assign t2_2 = t1_1;
assign t2_3 = t1_9;
assign t2_4 = t1_2;
assign t2_5 = t1_10;
assign t2_6 = t1_3;
assign t2_7 = t1_11;
assign t2_8 = t1_4;
assign t2_9 = t1_12;
assign t2_10 = t1_5;
assign t2_11 = t1_13;
assign t2_12 = t1_6;
assign t2_13 = t1_14;
assign t2_14 = t1_7;
assign t2_15 = t1_15;
always @(posedge clk) begin
t3_0 <= t2_0;
t3_1 <= t2_1;
t3_2 <= t2_2;
t3_3 <= t2_3;
t3_4 <= t2_4;
t3_5 <= t2_5;
t3_6 <= t2_6;
t3_7 <= t2_7;
t3_8 <= t2_8;
t3_9 <= t2_9;
t3_10 <= t2_10;
t3_11 <= t2_11;
t3_12 <= t2_12;
t3_13 <= t2_13;
t3_14 <= t2_14;
t3_15 <= t2_15;
end
assign t4_0 = t3_0;
assign t4_1 = t3_8;
assign t4_2 = t3_1;
assign t4_3 = t3_9;
assign t4_4 = t3_2;
assign t4_5 = t3_10;
assign t4_6 = t3_3;
assign t4_7 = t3_11;
assign t4_8 = t3_4;
assign t4_9 = t3_12;
assign t4_10 = t3_5;
assign t4_11 = t3_13;
assign t4_12 = t3_6;
assign t4_13 = t3_14;
assign t4_14 = t3_7;
assign t4_15 = t3_15;
assign t5_0 = t4_0;
assign t5_1 = t4_1;
assign t5_2 = t4_2;
assign t5_3 = t4_3;
assign t5_4 = t4_4;
assign t5_5 = t4_5;
assign t5_6 = t4_6;
assign t5_7 = t4_7;
assign t5_8 = t4_8;
assign t5_9 = t4_9;
assign t5_10 = t4_10;
assign t5_11 = t4_11;
assign t5_12 = t4_12;
assign t5_13 = t4_13;
assign t5_14 = t4_14;
assign t5_15 = t4_15;
assign t6_0 = t5_0;
assign t6_1 = t5_8;
assign t6_2 = t5_1;
assign t6_3 = t5_9;
assign t6_4 = t5_2;
assign t6_5 = t5_10;
assign t6_6 = t5_3;
assign t6_7 = t5_11;
assign t6_8 = t5_4;
assign t6_9 = t5_12;
assign t6_10 = t5_5;
assign t6_11 = t5_13;
assign t6_12 = t5_6;
assign t6_13 = t5_14;
assign t6_14 = t5_7;
assign t6_15 = t5_15;
always @(posedge clk) begin
t7_0 <= (control1[23] == 0) ? t6_0 : t6_1;
t7_1 <= (control1[23] == 0) ? t6_1 : t6_0;
t7_2 <= (control1[22] == 0) ? t6_2 : t6_3;
t7_3 <= (control1[22] == 0) ? t6_3 : t6_2;
t7_4 <= (control1[21] == 0) ? t6_4 : t6_5;
t7_5 <= (control1[21] == 0) ? t6_5 : t6_4;
t7_6 <= (control1[20] == 0) ? t6_6 : t6_7;
t7_7 <= (control1[20] == 0) ? t6_7 : t6_6;
t7_8 <= (control1[19] == 0) ? t6_8 : t6_9;
t7_9 <= (control1[19] == 0) ? t6_9 : t6_8;
t7_10 <= (control1[18] == 0) ? t6_10 : t6_11;
t7_11 <= (control1[18] == 0) ? t6_11 : t6_10;
t7_12 <= (control1[17] == 0) ? t6_12 : t6_13;
t7_13 <= (control1[17] == 0) ? t6_13 : t6_12;
t7_14 <= (control1[16] == 0) ? t6_14 : t6_15;
t7_15 <= (control1[16] == 0) ? t6_15 : t6_14;
end
assign t8_0 = t7_0;
assign t8_1 = t7_2;
assign t8_2 = t7_4;
assign t8_3 = t7_6;
assign t8_4 = t7_8;
assign t8_5 = t7_10;
assign t8_6 = t7_12;
assign t8_7 = t7_14;
assign t8_8 = t7_1;
assign t8_9 = t7_3;
assign t8_10 = t7_5;
assign t8_11 = t7_7;
assign t8_12 = t7_9;
assign t8_13 = t7_11;
assign t8_14 = t7_13;
assign t8_15 = t7_15;
assign t9_0 = (control2[15] == 0) ? t8_0 : t8_1;
assign t9_1 = (control2[15] == 0) ? t8_1 : t8_0;
assign t9_2 = (control2[14] == 0) ? t8_2 : t8_3;
assign t9_3 = (control2[14] == 0) ? t8_3 : t8_2;
assign t9_4 = (control2[13] == 0) ? t8_4 : t8_5;
assign t9_5 = (control2[13] == 0) ? t8_5 : t8_4;
assign t9_6 = (control2[12] == 0) ? t8_6 : t8_7;
assign t9_7 = (control2[12] == 0) ? t8_7 : t8_6;
assign t9_8 = (control2[11] == 0) ? t8_8 : t8_9;
assign t9_9 = (control2[11] == 0) ? t8_9 : t8_8;
assign t9_10 = (control2[10] == 0) ? t8_10 : t8_11;
assign t9_11 = (control2[10] == 0) ? t8_11 : t8_10;
assign t9_12 = (control2[9] == 0) ? t8_12 : t8_13;
assign t9_13 = (control2[9] == 0) ? t8_13 : t8_12;
assign t9_14 = (control2[8] == 0) ? t8_14 : t8_15;
assign t9_15 = (control2[8] == 0) ? t8_15 : t8_14;
assign t10_0 = t9_0;
assign t10_1 = t9_2;
assign t10_2 = t9_4;
assign t10_3 = t9_6;
assign t10_4 = t9_8;
assign t10_5 = t9_10;
assign t10_6 = t9_12;
assign t10_7 = t9_14;
assign t10_8 = t9_1;
assign t10_9 = t9_3;
assign t10_10 = t9_5;
assign t10_11 = t9_7;
assign t10_12 = t9_9;
assign t10_13 = t9_11;
assign t10_14 = t9_13;
assign t10_15 = t9_15;
always @(posedge clk) begin
t11_0 <= t10_0;
t11_1 <= t10_1;
t11_2 <= t10_3;
t11_3 <= t10_2;
t11_4 <= t10_4;
t11_5 <= t10_5;
t11_6 <= t10_7;
t11_7 <= t10_6;
t11_8 <= t10_8;
t11_9 <= t10_9;
t11_10 <= t10_11;
t11_11 <= t10_10;
t11_12 <= t10_12;
t11_13 <= t10_13;
t11_14 <= t10_15;
t11_15 <= t10_14;
end
assign t12_0 = t11_0;
assign t12_1 = t11_2;
assign t12_2 = t11_4;
assign t12_3 = t11_6;
assign t12_4 = t11_8;
assign t12_5 = t11_10;
assign t12_6 = t11_12;
assign t12_7 = t11_14;
assign t12_8 = t11_1;
assign t12_9 = t11_3;
assign t12_10 = t11_5;
assign t12_11 = t11_7;
assign t12_12 = t11_9;
assign t12_13 = t11_11;
assign t12_14 = t11_13;
assign t12_15 = t11_15;
always @(posedge clk) begin
t13_0 <= (control3[7] == 0) ? t12_0 : t12_1;
t13_1 <= (control3[7] == 0) ? t12_1 : t12_0;
t13_2 <= (control3[6] == 0) ? t12_2 : t12_3;
t13_3 <= (control3[6] == 0) ? t12_3 : t12_2;
t13_4 <= (control3[5] == 0) ? t12_4 : t12_5;
t13_5 <= (control3[5] == 0) ? t12_5 : t12_4;
t13_6 <= (control3[4] == 0) ? t12_6 : t12_7;
t13_7 <= (control3[4] == 0) ? t12_7 : t12_6;
t13_8 <= (control3[3] == 0) ? t12_8 : t12_9;
t13_9 <= (control3[3] == 0) ? t12_9 : t12_8;
t13_10 <= (control3[2] == 0) ? t12_10 : t12_11;
t13_11 <= (control3[2] == 0) ? t12_11 : t12_10;
t13_12 <= (control3[1] == 0) ? t12_12 : t12_13;
t13_13 <= (control3[1] == 0) ? t12_13 : t12_12;
t13_14 <= (control3[0] == 0) ? t12_14 : t12_15;
t13_15 <= (control3[0] == 0) ? t12_15 : t12_14;
end
always @(posedge clk) begin
y0 <= t13_0;
y1 <= t13_2;
y2 <= t13_4;
y3 <= t13_6;
y4 <= t13_8;
y5 <= t13_10;
y6 <= t13_12;
y7 <= t13_14;
y8 <= t13_1;
y9 <= t13_3;
y10 <= t13_5;
y11 <= t13_7;
y12 <= t13_9;
y13 <= t13_11;
y14 <= t13_13;
y15 <= t13_15;
end
endmodule

// Latency: 39
// Gap: 16
module perm21440(clk, next, reset, next_out,
x0, y0,
x1, y1,
x2, y2,
x3, y3,
x4, y4,
x5, y5,
x6, y6,
x7, y7,
x8, y8,
x9, y9,
x10, y10,
x11, y11,
x12, y12,
x13, y13,
x14, y14,
x15, y15);
parameter width = 16;

parameter depth = 16;

parameter addrbits = 4;

parameter muxbits = 4;

input [width-1:0] x0;


output [width-1:0] y0;
wire [width-1:0] t0;
wire [width-1:0] s0;
input [width-1:0] x1;
output [width-1:0] y1;
wire [width-1:0] t1;
wire [width-1:0] s1;
input [width-1:0] x2;
output [width-1:0] y2;
wire [width-1:0] t2;
wire [width-1:0] s2;
input [width-1:0] x3;
output [width-1:0] y3;
wire [width-1:0] t3;
wire [width-1:0] s3;
input [width-1:0] x4;
output [width-1:0] y4;
wire [width-1:0] t4;
wire [width-1:0] s4;
input [width-1:0] x5;
output [width-1:0] y5;
wire [width-1:0] t5;
wire [width-1:0] s5;
input [width-1:0] x6;
output [width-1:0] y6;
wire [width-1:0] t6;
wire [width-1:0] s6;
input [width-1:0] x7;
output [width-1:0] y7;
wire [width-1:0] t7;
wire [width-1:0] s7;
input [width-1:0] x8;
output [width-1:0] y8;
wire [width-1:0] t8;
wire [width-1:0] s8;
input [width-1:0] x9;
output [width-1:0] y9;
wire [width-1:0] t9;
wire [width-1:0] s9;
input [width-1:0] x10;
output [width-1:0] y10;
wire [width-1:0] t10;
wire [width-1:0] s10;
input [width-1:0] x11;
output [width-1:0] y11;
wire [width-1:0] t11;
wire [width-1:0] s11;
input [width-1:0] x12;
output [width-1:0] y12;
wire [width-1:0] t12;
wire [width-1:0] s12;
input [width-1:0] x13;
output [width-1:0] y13;
wire [width-1:0] t13;
wire [width-1:0] s13;
input [width-1:0] x14;
output [width-1:0] y14;
wire [width-1:0] t14;
wire [width-1:0] s14;
input [width-1:0] x15;
output [width-1:0] y15;
wire [width-1:0] t15;
wire [width-1:0] s15;
input next, reset, clk;
output next_out;
reg [addrbits-1:0] s1rdloc, s2rdloc;

reg [addrbits-1:0] s1wr0;


reg [addrbits-1:0] s1rd0, s2wr0, s2rd0;
reg [addrbits-1:0] s1rd1, s2wr1, s2rd1;
reg [addrbits-1:0] s1rd2, s2wr2, s2rd2;
reg [addrbits-1:0] s1rd3, s2wr3, s2rd3;
reg [addrbits-1:0] s1rd4, s2wr4, s2rd4;
reg [addrbits-1:0] s1rd5, s2wr5, s2rd5;
reg [addrbits-1:0] s1rd6, s2wr6, s2rd6;
reg [addrbits-1:0] s1rd7, s2wr7, s2rd7;
reg [addrbits-1:0] s1rd8, s2wr8, s2rd8;
reg [addrbits-1:0] s1rd9, s2wr9, s2rd9;
reg [addrbits-1:0] s1rd10, s2wr10, s2rd10;
reg [addrbits-1:0] s1rd11, s2wr11, s2rd11;
reg [addrbits-1:0] s1rd12, s2wr12, s2rd12;
reg [addrbits-1:0] s1rd13, s2wr13, s2rd13;
reg [addrbits-1:0] s1rd14, s2wr14, s2rd14;
reg [addrbits-1:0] s1rd15, s2wr15, s2rd15;
reg s1wr_en, state1, state2, state3;
wire next2, next3, next4;
reg inFlip0, outFlip0_z, outFlip1;
wire inFlip1, outFlip0;

wire [0:0] tm50;


assign tm50 = 0;

shiftRegFIFO #(6, 1) shiftFIFO_27576(.X(outFlip0), .Y(inFlip1), .clk(clk));


shiftRegFIFO #(1, 1) shiftFIFO_27577(.X(outFlip0_z), .Y(outFlip0), .clk(clk));
// shiftRegFIFO #(2, 1) inFlip1Reg(outFlip0, inFlip1, clk);
// shiftRegFIFO #(1, 1) outFlip0Reg(outFlip0_z, outFlip0, clk);

memMod_dist #(depth*2, width, addrbits+1) s1mem0(x0, t0, {inFlip0, s1wr0},


{outFlip0, s1rd0}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem1(x1, t1, {inFlip0, s1wr0},
{outFlip0, s1rd1}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem2(x2, t2, {inFlip0, s1wr0},
{outFlip0, s1rd2}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem3(x3, t3, {inFlip0, s1wr0},
{outFlip0, s1rd3}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem4(x4, t4, {inFlip0, s1wr0},
{outFlip0, s1rd4}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem5(x5, t5, {inFlip0, s1wr0},
{outFlip0, s1rd5}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem6(x6, t6, {inFlip0, s1wr0},
{outFlip0, s1rd6}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem7(x7, t7, {inFlip0, s1wr0},
{outFlip0, s1rd7}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem8(x8, t8, {inFlip0, s1wr0},
{outFlip0, s1rd8}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem9(x9, t9, {inFlip0, s1wr0},
{outFlip0, s1rd9}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem10(x10, t10, {inFlip0, s1wr0},
{outFlip0, s1rd10}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem11(x11, t11, {inFlip0, s1wr0},
{outFlip0, s1rd11}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem12(x12, t12, {inFlip0, s1wr0},
{outFlip0, s1rd12}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem13(x13, t13, {inFlip0, s1wr0},
{outFlip0, s1rd13}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem14(x14, t14, {inFlip0, s1wr0},
{outFlip0, s1rd14}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem15(x15, t15, {inFlip0, s1wr0},
{outFlip0, s1rd15}, s1wr_en, clk);

nextReg #(15, 4) nextReg_27588(.X(next), .Y(next2), .reset(reset), .clk(clk));


shiftRegFIFO #(7, 1) shiftFIFO_27589(.X(next2), .Y(next3), .clk(clk));
nextReg #(16, 4) nextReg_27592(.X(next3), .Y(next4), .reset(reset), .clk(clk));
shiftRegFIFO #(1, 1) shiftFIFO_27593(.X(next4), .Y(next_out), .clk(clk));
shiftRegFIFO #(15, 1) shiftFIFO_27596(.X(tm50), .Y(tm50_d), .clk(clk));
shiftRegFIFO #(6, 1) shiftFIFO_27599(.X(tm50_d), .Y(tm50_dd), .clk(clk));

wire [addrbits-1:0] muxCycle, writeCycle;


assign muxCycle = s1rdloc;
shiftRegFIFO #(6, 4) shiftFIFO_27604(.X(muxCycle), .Y(writeCycle), .clk(clk));

wire readInt, s2wr_en;


assign readInt = (state2 == 1);

shiftRegFIFO #(7, 1) writeIntReg(readInt, s2wr_en, clk);

memMod_dist #(depth*2, width, addrbits+1) s2mem0(s0, y0, {inFlip1, s2wr0},


{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem1(s1, y1, {inFlip1, s2wr1},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem2(s2, y2, {inFlip1, s2wr2},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem3(s3, y3, {inFlip1, s2wr3},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem4(s4, y4, {inFlip1, s2wr4},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem5(s5, y5, {inFlip1, s2wr5},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem6(s6, y6, {inFlip1, s2wr6},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem7(s7, y7, {inFlip1, s2wr7},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem8(s8, y8, {inFlip1, s2wr8},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem9(s9, y9, {inFlip1, s2wr9},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem10(s10, y10, {inFlip1, s2wr10},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem11(s11, y11, {inFlip1, s2wr11},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem12(s12, y12, {inFlip1, s2wr12},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem13(s13, y13, {inFlip1, s2wr13},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem14(s14, y14, {inFlip1, s2wr14},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem15(s15, y15, {inFlip1, s2wr15},
{outFlip1, s2rdloc}, s2wr_en, clk);
always @(posedge clk) begin
if (reset == 1) begin
state1 <= 0;
inFlip0 <= 0;
s1wr0 <= 0;
end
else if (next == 1) begin
s1wr0 <= 0;
state1 <= 1;
s1wr_en <= 1;
inFlip0 <= (s1wr0 == depth-1) ? ~inFlip0 : inFlip0;
end
else begin
case(state1)
0: begin
s1wr0 <= 0;
state1 <= 0;
s1wr_en <= 0;
inFlip0 <= inFlip0;
end
1: begin
s1wr0 <= (s1wr0 == depth-1) ? 0 : s1wr0 + 1;
state1 <= 1;
s1wr_en <= 1;
inFlip0 <= (s1wr0 == depth-1) ? ~inFlip0 : inFlip0;
end
endcase
end
end

always @(posedge clk) begin


if (reset == 1) begin
state2 <= 0;
outFlip0_z <= 0;
end
else if (next2 == 1) begin
s1rdloc <= 0;
state2 <= 1;
outFlip0_z <= (s1rdloc == depth-1) ? ~outFlip0_z : outFlip0_z;
end
else begin
case(state2)
0: begin
s1rdloc <= 0;
state2 <= 0;
outFlip0_z <= outFlip0_z;
end
1: begin
s1rdloc <= (s1rdloc == depth-1) ? 0 : s1rdloc + 1;
state2 <= 1;
outFlip0_z <= (s1rdloc == depth-1) ? ~outFlip0_z : outFlip0_z;
end
endcase
end
end

always @(posedge clk) begin


if (reset == 1) begin
state3 <= 0;
outFlip1 <= 0;
end
else if (next4 == 1) begin
s2rdloc <= 0;
state3 <= 1;
outFlip1 <= (s2rdloc == depth-1) ? ~outFlip1 : outFlip1;
end
else begin
case(state3)
0: begin
s2rdloc <= 0;
state3 <= 0;
outFlip1 <= outFlip1;
end
1: begin
s2rdloc <= (s2rdloc == depth-1) ? 0 : s2rdloc + 1;
state3 <= 1;
outFlip1 <= (s2rdloc == depth-1) ? ~outFlip1 : outFlip1;
end
endcase
end
end
always @(posedge clk) begin
case({tm50_d, s1rdloc})
{1'd0, 4'd0}: s1rd0 <= 13;
{1'd0, 4'd1}: s1rd0 <= 15;
{1'd0, 4'd2}: s1rd0 <= 9;
{1'd0, 4'd3}: s1rd0 <= 11;
{1'd0, 4'd4}: s1rd0 <= 5;
{1'd0, 4'd5}: s1rd0 <= 7;
{1'd0, 4'd6}: s1rd0 <= 1;
{1'd0, 4'd7}: s1rd0 <= 3;
{1'd0, 4'd8}: s1rd0 <= 12;
{1'd0, 4'd9}: s1rd0 <= 14;
{1'd0, 4'd10}: s1rd0 <= 8;
{1'd0, 4'd11}: s1rd0 <= 10;
{1'd0, 4'd12}: s1rd0 <= 4;
{1'd0, 4'd13}: s1rd0 <= 6;
{1'd0, 4'd14}: s1rd0 <= 0;
{1'd0, 4'd15}: s1rd0 <= 2;
endcase
end

// synthesis attribute rom_style of s1rd0 is "block"


always @(posedge clk) begin
case({tm50_d, s1rdloc})
{1'd0, 4'd0}: s1rd1 <= 9;
{1'd0, 4'd1}: s1rd1 <= 11;
{1'd0, 4'd2}: s1rd1 <= 13;
{1'd0, 4'd3}: s1rd1 <= 15;
{1'd0, 4'd4}: s1rd1 <= 1;
{1'd0, 4'd5}: s1rd1 <= 3;
{1'd0, 4'd6}: s1rd1 <= 5;
{1'd0, 4'd7}: s1rd1 <= 7;
{1'd0, 4'd8}: s1rd1 <= 8;
{1'd0, 4'd9}: s1rd1 <= 10;
{1'd0, 4'd10}: s1rd1 <= 12;
{1'd0, 4'd11}: s1rd1 <= 14;
{1'd0, 4'd12}: s1rd1 <= 0;
{1'd0, 4'd13}: s1rd1 <= 2;
{1'd0, 4'd14}: s1rd1 <= 4;
{1'd0, 4'd15}: s1rd1 <= 6;
endcase
end

// synthesis attribute rom_style of s1rd1 is "block"


always @(posedge clk) begin
case({tm50_d, s1rdloc})
{1'd0, 4'd0}: s1rd2 <= 5;
{1'd0, 4'd1}: s1rd2 <= 7;
{1'd0, 4'd2}: s1rd2 <= 1;
{1'd0, 4'd3}: s1rd2 <= 3;
{1'd0, 4'd4}: s1rd2 <= 13;
{1'd0, 4'd5}: s1rd2 <= 15;
{1'd0, 4'd6}: s1rd2 <= 9;
{1'd0, 4'd7}: s1rd2 <= 11;
{1'd0, 4'd8}: s1rd2 <= 4;
{1'd0, 4'd9}: s1rd2 <= 6;
{1'd0, 4'd10}: s1rd2 <= 0;
{1'd0, 4'd11}: s1rd2 <= 2;
{1'd0, 4'd12}: s1rd2 <= 12;
{1'd0, 4'd13}: s1rd2 <= 14;
{1'd0, 4'd14}: s1rd2 <= 8;
{1'd0, 4'd15}: s1rd2 <= 10;
endcase
end

// synthesis attribute rom_style of s1rd2 is "block"


always @(posedge clk) begin
case({tm50_d, s1rdloc})
{1'd0, 4'd0}: s1rd3 <= 1;
{1'd0, 4'd1}: s1rd3 <= 3;
{1'd0, 4'd2}: s1rd3 <= 5;
{1'd0, 4'd3}: s1rd3 <= 7;
{1'd0, 4'd4}: s1rd3 <= 9;
{1'd0, 4'd5}: s1rd3 <= 11;
{1'd0, 4'd6}: s1rd3 <= 13;
{1'd0, 4'd7}: s1rd3 <= 15;
{1'd0, 4'd8}: s1rd3 <= 0;
{1'd0, 4'd9}: s1rd3 <= 2;
{1'd0, 4'd10}: s1rd3 <= 4;
{1'd0, 4'd11}: s1rd3 <= 6;
{1'd0, 4'd12}: s1rd3 <= 8;
{1'd0, 4'd13}: s1rd3 <= 10;
{1'd0, 4'd14}: s1rd3 <= 12;
{1'd0, 4'd15}: s1rd3 <= 14;
endcase
end

// synthesis attribute rom_style of s1rd3 is "block"


always @(posedge clk) begin
case({tm50_d, s1rdloc})
{1'd0, 4'd0}: s1rd4 <= 12;
{1'd0, 4'd1}: s1rd4 <= 14;
{1'd0, 4'd2}: s1rd4 <= 8;
{1'd0, 4'd3}: s1rd4 <= 10;
{1'd0, 4'd4}: s1rd4 <= 4;
{1'd0, 4'd5}: s1rd4 <= 6;
{1'd0, 4'd6}: s1rd4 <= 0;
{1'd0, 4'd7}: s1rd4 <= 2;
{1'd0, 4'd8}: s1rd4 <= 13;
{1'd0, 4'd9}: s1rd4 <= 15;
{1'd0, 4'd10}: s1rd4 <= 9;
{1'd0, 4'd11}: s1rd4 <= 11;
{1'd0, 4'd12}: s1rd4 <= 5;
{1'd0, 4'd13}: s1rd4 <= 7;
{1'd0, 4'd14}: s1rd4 <= 1;
{1'd0, 4'd15}: s1rd4 <= 3;
endcase
end

// synthesis attribute rom_style of s1rd4 is "block"


always @(posedge clk) begin
case({tm50_d, s1rdloc})
{1'd0, 4'd0}: s1rd5 <= 8;
{1'd0, 4'd1}: s1rd5 <= 10;
{1'd0, 4'd2}: s1rd5 <= 12;
{1'd0, 4'd3}: s1rd5 <= 14;
{1'd0, 4'd4}: s1rd5 <= 0;
{1'd0, 4'd5}: s1rd5 <= 2;
{1'd0, 4'd6}: s1rd5 <= 4;
{1'd0, 4'd7}: s1rd5 <= 6;
{1'd0, 4'd8}: s1rd5 <= 9;
{1'd0, 4'd9}: s1rd5 <= 11;
{1'd0, 4'd10}: s1rd5 <= 13;
{1'd0, 4'd11}: s1rd5 <= 15;
{1'd0, 4'd12}: s1rd5 <= 1;
{1'd0, 4'd13}: s1rd5 <= 3;
{1'd0, 4'd14}: s1rd5 <= 5;
{1'd0, 4'd15}: s1rd5 <= 7;
endcase
end

// synthesis attribute rom_style of s1rd5 is "block"


always @(posedge clk) begin
case({tm50_d, s1rdloc})
{1'd0, 4'd0}: s1rd6 <= 4;
{1'd0, 4'd1}: s1rd6 <= 6;
{1'd0, 4'd2}: s1rd6 <= 0;
{1'd0, 4'd3}: s1rd6 <= 2;
{1'd0, 4'd4}: s1rd6 <= 12;
{1'd0, 4'd5}: s1rd6 <= 14;
{1'd0, 4'd6}: s1rd6 <= 8;
{1'd0, 4'd7}: s1rd6 <= 10;
{1'd0, 4'd8}: s1rd6 <= 5;
{1'd0, 4'd9}: s1rd6 <= 7;
{1'd0, 4'd10}: s1rd6 <= 1;
{1'd0, 4'd11}: s1rd6 <= 3;
{1'd0, 4'd12}: s1rd6 <= 13;
{1'd0, 4'd13}: s1rd6 <= 15;
{1'd0, 4'd14}: s1rd6 <= 9;
{1'd0, 4'd15}: s1rd6 <= 11;
endcase
end

// synthesis attribute rom_style of s1rd6 is "block"


always @(posedge clk) begin
case({tm50_d, s1rdloc})
{1'd0, 4'd0}: s1rd7 <= 0;
{1'd0, 4'd1}: s1rd7 <= 2;
{1'd0, 4'd2}: s1rd7 <= 4;
{1'd0, 4'd3}: s1rd7 <= 6;
{1'd0, 4'd4}: s1rd7 <= 8;
{1'd0, 4'd5}: s1rd7 <= 10;
{1'd0, 4'd6}: s1rd7 <= 12;
{1'd0, 4'd7}: s1rd7 <= 14;
{1'd0, 4'd8}: s1rd7 <= 1;
{1'd0, 4'd9}: s1rd7 <= 3;
{1'd0, 4'd10}: s1rd7 <= 5;
{1'd0, 4'd11}: s1rd7 <= 7;
{1'd0, 4'd12}: s1rd7 <= 9;
{1'd0, 4'd13}: s1rd7 <= 11;
{1'd0, 4'd14}: s1rd7 <= 13;
{1'd0, 4'd15}: s1rd7 <= 15;
endcase
end

// synthesis attribute rom_style of s1rd7 is "block"


always @(posedge clk) begin
case({tm50_d, s1rdloc})
{1'd0, 4'd0}: s1rd8 <= 13;
{1'd0, 4'd1}: s1rd8 <= 15;
{1'd0, 4'd2}: s1rd8 <= 9;
{1'd0, 4'd3}: s1rd8 <= 11;
{1'd0, 4'd4}: s1rd8 <= 5;
{1'd0, 4'd5}: s1rd8 <= 7;
{1'd0, 4'd6}: s1rd8 <= 1;
{1'd0, 4'd7}: s1rd8 <= 3;
{1'd0, 4'd8}: s1rd8 <= 12;
{1'd0, 4'd9}: s1rd8 <= 14;
{1'd0, 4'd10}: s1rd8 <= 8;
{1'd0, 4'd11}: s1rd8 <= 10;
{1'd0, 4'd12}: s1rd8 <= 4;
{1'd0, 4'd13}: s1rd8 <= 6;
{1'd0, 4'd14}: s1rd8 <= 0;
{1'd0, 4'd15}: s1rd8 <= 2;
endcase
end

// synthesis attribute rom_style of s1rd8 is "block"


always @(posedge clk) begin
case({tm50_d, s1rdloc})
{1'd0, 4'd0}: s1rd9 <= 9;
{1'd0, 4'd1}: s1rd9 <= 11;
{1'd0, 4'd2}: s1rd9 <= 13;
{1'd0, 4'd3}: s1rd9 <= 15;
{1'd0, 4'd4}: s1rd9 <= 1;
{1'd0, 4'd5}: s1rd9 <= 3;
{1'd0, 4'd6}: s1rd9 <= 5;
{1'd0, 4'd7}: s1rd9 <= 7;
{1'd0, 4'd8}: s1rd9 <= 8;
{1'd0, 4'd9}: s1rd9 <= 10;
{1'd0, 4'd10}: s1rd9 <= 12;
{1'd0, 4'd11}: s1rd9 <= 14;
{1'd0, 4'd12}: s1rd9 <= 0;
{1'd0, 4'd13}: s1rd9 <= 2;
{1'd0, 4'd14}: s1rd9 <= 4;
{1'd0, 4'd15}: s1rd9 <= 6;
endcase
end

// synthesis attribute rom_style of s1rd9 is "block"


always @(posedge clk) begin
case({tm50_d, s1rdloc})
{1'd0, 4'd0}: s1rd10 <= 5;
{1'd0, 4'd1}: s1rd10 <= 7;
{1'd0, 4'd2}: s1rd10 <= 1;
{1'd0, 4'd3}: s1rd10 <= 3;
{1'd0, 4'd4}: s1rd10 <= 13;
{1'd0, 4'd5}: s1rd10 <= 15;
{1'd0, 4'd6}: s1rd10 <= 9;
{1'd0, 4'd7}: s1rd10 <= 11;
{1'd0, 4'd8}: s1rd10 <= 4;
{1'd0, 4'd9}: s1rd10 <= 6;
{1'd0, 4'd10}: s1rd10 <= 0;
{1'd0, 4'd11}: s1rd10 <= 2;
{1'd0, 4'd12}: s1rd10 <= 12;
{1'd0, 4'd13}: s1rd10 <= 14;
{1'd0, 4'd14}: s1rd10 <= 8;
{1'd0, 4'd15}: s1rd10 <= 10;
endcase
end

// synthesis attribute rom_style of s1rd10 is "block"


always @(posedge clk) begin
case({tm50_d, s1rdloc})
{1'd0, 4'd0}: s1rd11 <= 1;
{1'd0, 4'd1}: s1rd11 <= 3;
{1'd0, 4'd2}: s1rd11 <= 5;
{1'd0, 4'd3}: s1rd11 <= 7;
{1'd0, 4'd4}: s1rd11 <= 9;
{1'd0, 4'd5}: s1rd11 <= 11;
{1'd0, 4'd6}: s1rd11 <= 13;
{1'd0, 4'd7}: s1rd11 <= 15;
{1'd0, 4'd8}: s1rd11 <= 0;
{1'd0, 4'd9}: s1rd11 <= 2;
{1'd0, 4'd10}: s1rd11 <= 4;
{1'd0, 4'd11}: s1rd11 <= 6;
{1'd0, 4'd12}: s1rd11 <= 8;
{1'd0, 4'd13}: s1rd11 <= 10;
{1'd0, 4'd14}: s1rd11 <= 12;
{1'd0, 4'd15}: s1rd11 <= 14;
endcase
end

// synthesis attribute rom_style of s1rd11 is "block"


always @(posedge clk) begin
case({tm50_d, s1rdloc})
{1'd0, 4'd0}: s1rd12 <= 12;
{1'd0, 4'd1}: s1rd12 <= 14;
{1'd0, 4'd2}: s1rd12 <= 8;
{1'd0, 4'd3}: s1rd12 <= 10;
{1'd0, 4'd4}: s1rd12 <= 4;
{1'd0, 4'd5}: s1rd12 <= 6;
{1'd0, 4'd6}: s1rd12 <= 0;
{1'd0, 4'd7}: s1rd12 <= 2;
{1'd0, 4'd8}: s1rd12 <= 13;
{1'd0, 4'd9}: s1rd12 <= 15;
{1'd0, 4'd10}: s1rd12 <= 9;
{1'd0, 4'd11}: s1rd12 <= 11;
{1'd0, 4'd12}: s1rd12 <= 5;
{1'd0, 4'd13}: s1rd12 <= 7;
{1'd0, 4'd14}: s1rd12 <= 1;
{1'd0, 4'd15}: s1rd12 <= 3;
endcase
end

// synthesis attribute rom_style of s1rd12 is "block"


always @(posedge clk) begin
case({tm50_d, s1rdloc})
{1'd0, 4'd0}: s1rd13 <= 8;
{1'd0, 4'd1}: s1rd13 <= 10;
{1'd0, 4'd2}: s1rd13 <= 12;
{1'd0, 4'd3}: s1rd13 <= 14;
{1'd0, 4'd4}: s1rd13 <= 0;
{1'd0, 4'd5}: s1rd13 <= 2;
{1'd0, 4'd6}: s1rd13 <= 4;
{1'd0, 4'd7}: s1rd13 <= 6;
{1'd0, 4'd8}: s1rd13 <= 9;
{1'd0, 4'd9}: s1rd13 <= 11;
{1'd0, 4'd10}: s1rd13 <= 13;
{1'd0, 4'd11}: s1rd13 <= 15;
{1'd0, 4'd12}: s1rd13 <= 1;
{1'd0, 4'd13}: s1rd13 <= 3;
{1'd0, 4'd14}: s1rd13 <= 5;
{1'd0, 4'd15}: s1rd13 <= 7;
endcase
end

// synthesis attribute rom_style of s1rd13 is "block"


always @(posedge clk) begin
case({tm50_d, s1rdloc})
{1'd0, 4'd0}: s1rd14 <= 4;
{1'd0, 4'd1}: s1rd14 <= 6;
{1'd0, 4'd2}: s1rd14 <= 0;
{1'd0, 4'd3}: s1rd14 <= 2;
{1'd0, 4'd4}: s1rd14 <= 12;
{1'd0, 4'd5}: s1rd14 <= 14;
{1'd0, 4'd6}: s1rd14 <= 8;
{1'd0, 4'd7}: s1rd14 <= 10;
{1'd0, 4'd8}: s1rd14 <= 5;
{1'd0, 4'd9}: s1rd14 <= 7;
{1'd0, 4'd10}: s1rd14 <= 1;
{1'd0, 4'd11}: s1rd14 <= 3;
{1'd0, 4'd12}: s1rd14 <= 13;
{1'd0, 4'd13}: s1rd14 <= 15;
{1'd0, 4'd14}: s1rd14 <= 9;
{1'd0, 4'd15}: s1rd14 <= 11;
endcase
end

// synthesis attribute rom_style of s1rd14 is "block"


always @(posedge clk) begin
case({tm50_d, s1rdloc})
{1'd0, 4'd0}: s1rd15 <= 0;
{1'd0, 4'd1}: s1rd15 <= 2;
{1'd0, 4'd2}: s1rd15 <= 4;
{1'd0, 4'd3}: s1rd15 <= 6;
{1'd0, 4'd4}: s1rd15 <= 8;
{1'd0, 4'd5}: s1rd15 <= 10;
{1'd0, 4'd6}: s1rd15 <= 12;
{1'd0, 4'd7}: s1rd15 <= 14;
{1'd0, 4'd8}: s1rd15 <= 1;
{1'd0, 4'd9}: s1rd15 <= 3;
{1'd0, 4'd10}: s1rd15 <= 5;
{1'd0, 4'd11}: s1rd15 <= 7;
{1'd0, 4'd12}: s1rd15 <= 9;
{1'd0, 4'd13}: s1rd15 <= 11;
{1'd0, 4'd14}: s1rd15 <= 13;
{1'd0, 4'd15}: s1rd15 <= 15;
endcase
end

// synthesis attribute rom_style of s1rd15 is "block"


swNet21440 sw(tm50_d, clk, muxCycle, t0, s0, t1, s1, t2, s2, t3, s3, t4, s4,
t5, s5, t6, s6, t7, s7, t8, s8, t9, s9, t10, s10, t11, s11, t12, s12, t13, s13,
t14, s14, t15, s15);

always @(posedge clk) begin


case({tm50_dd, writeCycle})
{1'd0, 4'd0}: s2wr0 <= 14;
{1'd0, 4'd1}: s2wr0 <= 15;
{1'd0, 4'd2}: s2wr0 <= 12;
{1'd0, 4'd3}: s2wr0 <= 13;
{1'd0, 4'd4}: s2wr0 <= 10;
{1'd0, 4'd5}: s2wr0 <= 11;
{1'd0, 4'd6}: s2wr0 <= 8;
{1'd0, 4'd7}: s2wr0 <= 9;
{1'd0, 4'd8}: s2wr0 <= 6;
{1'd0, 4'd9}: s2wr0 <= 7;
{1'd0, 4'd10}: s2wr0 <= 4;
{1'd0, 4'd11}: s2wr0 <= 5;
{1'd0, 4'd12}: s2wr0 <= 2;
{1'd0, 4'd13}: s2wr0 <= 3;
{1'd0, 4'd14}: s2wr0 <= 0;
{1'd0, 4'd15}: s2wr0 <= 1;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr0 is "block"


always @(posedge clk) begin
case({tm50_dd, writeCycle})
{1'd0, 4'd0}: s2wr1 <= 12;
{1'd0, 4'd1}: s2wr1 <= 13;
{1'd0, 4'd2}: s2wr1 <= 14;
{1'd0, 4'd3}: s2wr1 <= 15;
{1'd0, 4'd4}: s2wr1 <= 8;
{1'd0, 4'd5}: s2wr1 <= 9;
{1'd0, 4'd6}: s2wr1 <= 10;
{1'd0, 4'd7}: s2wr1 <= 11;
{1'd0, 4'd8}: s2wr1 <= 4;
{1'd0, 4'd9}: s2wr1 <= 5;
{1'd0, 4'd10}: s2wr1 <= 6;
{1'd0, 4'd11}: s2wr1 <= 7;
{1'd0, 4'd12}: s2wr1 <= 0;
{1'd0, 4'd13}: s2wr1 <= 1;
{1'd0, 4'd14}: s2wr1 <= 2;
{1'd0, 4'd15}: s2wr1 <= 3;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr1 is "block"


always @(posedge clk) begin
case({tm50_dd, writeCycle})
{1'd0, 4'd0}: s2wr2 <= 10;
{1'd0, 4'd1}: s2wr2 <= 11;
{1'd0, 4'd2}: s2wr2 <= 8;
{1'd0, 4'd3}: s2wr2 <= 9;
{1'd0, 4'd4}: s2wr2 <= 14;
{1'd0, 4'd5}: s2wr2 <= 15;
{1'd0, 4'd6}: s2wr2 <= 12;
{1'd0, 4'd7}: s2wr2 <= 13;
{1'd0, 4'd8}: s2wr2 <= 2;
{1'd0, 4'd9}: s2wr2 <= 3;
{1'd0, 4'd10}: s2wr2 <= 0;
{1'd0, 4'd11}: s2wr2 <= 1;
{1'd0, 4'd12}: s2wr2 <= 6;
{1'd0, 4'd13}: s2wr2 <= 7;
{1'd0, 4'd14}: s2wr2 <= 4;
{1'd0, 4'd15}: s2wr2 <= 5;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr2 is "block"


always @(posedge clk) begin
case({tm50_dd, writeCycle})
{1'd0, 4'd0}: s2wr3 <= 8;
{1'd0, 4'd1}: s2wr3 <= 9;
{1'd0, 4'd2}: s2wr3 <= 10;
{1'd0, 4'd3}: s2wr3 <= 11;
{1'd0, 4'd4}: s2wr3 <= 12;
{1'd0, 4'd5}: s2wr3 <= 13;
{1'd0, 4'd6}: s2wr3 <= 14;
{1'd0, 4'd7}: s2wr3 <= 15;
{1'd0, 4'd8}: s2wr3 <= 0;
{1'd0, 4'd9}: s2wr3 <= 1;
{1'd0, 4'd10}: s2wr3 <= 2;
{1'd0, 4'd11}: s2wr3 <= 3;
{1'd0, 4'd12}: s2wr3 <= 4;
{1'd0, 4'd13}: s2wr3 <= 5;
{1'd0, 4'd14}: s2wr3 <= 6;
{1'd0, 4'd15}: s2wr3 <= 7;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr3 is "block"


always @(posedge clk) begin
case({tm50_dd, writeCycle})
{1'd0, 4'd0}: s2wr4 <= 14;
{1'd0, 4'd1}: s2wr4 <= 15;
{1'd0, 4'd2}: s2wr4 <= 12;
{1'd0, 4'd3}: s2wr4 <= 13;
{1'd0, 4'd4}: s2wr4 <= 10;
{1'd0, 4'd5}: s2wr4 <= 11;
{1'd0, 4'd6}: s2wr4 <= 8;
{1'd0, 4'd7}: s2wr4 <= 9;
{1'd0, 4'd8}: s2wr4 <= 6;
{1'd0, 4'd9}: s2wr4 <= 7;
{1'd0, 4'd10}: s2wr4 <= 4;
{1'd0, 4'd11}: s2wr4 <= 5;
{1'd0, 4'd12}: s2wr4 <= 2;
{1'd0, 4'd13}: s2wr4 <= 3;
{1'd0, 4'd14}: s2wr4 <= 0;
{1'd0, 4'd15}: s2wr4 <= 1;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr4 is "block"


always @(posedge clk) begin
case({tm50_dd, writeCycle})
{1'd0, 4'd0}: s2wr5 <= 12;
{1'd0, 4'd1}: s2wr5 <= 13;
{1'd0, 4'd2}: s2wr5 <= 14;
{1'd0, 4'd3}: s2wr5 <= 15;
{1'd0, 4'd4}: s2wr5 <= 8;
{1'd0, 4'd5}: s2wr5 <= 9;
{1'd0, 4'd6}: s2wr5 <= 10;
{1'd0, 4'd7}: s2wr5 <= 11;
{1'd0, 4'd8}: s2wr5 <= 4;
{1'd0, 4'd9}: s2wr5 <= 5;
{1'd0, 4'd10}: s2wr5 <= 6;
{1'd0, 4'd11}: s2wr5 <= 7;
{1'd0, 4'd12}: s2wr5 <= 0;
{1'd0, 4'd13}: s2wr5 <= 1;
{1'd0, 4'd14}: s2wr5 <= 2;
{1'd0, 4'd15}: s2wr5 <= 3;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr5 is "block"


always @(posedge clk) begin
case({tm50_dd, writeCycle})
{1'd0, 4'd0}: s2wr6 <= 10;
{1'd0, 4'd1}: s2wr6 <= 11;
{1'd0, 4'd2}: s2wr6 <= 8;
{1'd0, 4'd3}: s2wr6 <= 9;
{1'd0, 4'd4}: s2wr6 <= 14;
{1'd0, 4'd5}: s2wr6 <= 15;
{1'd0, 4'd6}: s2wr6 <= 12;
{1'd0, 4'd7}: s2wr6 <= 13;
{1'd0, 4'd8}: s2wr6 <= 2;
{1'd0, 4'd9}: s2wr6 <= 3;
{1'd0, 4'd10}: s2wr6 <= 0;
{1'd0, 4'd11}: s2wr6 <= 1;
{1'd0, 4'd12}: s2wr6 <= 6;
{1'd0, 4'd13}: s2wr6 <= 7;
{1'd0, 4'd14}: s2wr6 <= 4;
{1'd0, 4'd15}: s2wr6 <= 5;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr6 is "block"


always @(posedge clk) begin
case({tm50_dd, writeCycle})
{1'd0, 4'd0}: s2wr7 <= 8;
{1'd0, 4'd1}: s2wr7 <= 9;
{1'd0, 4'd2}: s2wr7 <= 10;
{1'd0, 4'd3}: s2wr7 <= 11;
{1'd0, 4'd4}: s2wr7 <= 12;
{1'd0, 4'd5}: s2wr7 <= 13;
{1'd0, 4'd6}: s2wr7 <= 14;
{1'd0, 4'd7}: s2wr7 <= 15;
{1'd0, 4'd8}: s2wr7 <= 0;
{1'd0, 4'd9}: s2wr7 <= 1;
{1'd0, 4'd10}: s2wr7 <= 2;
{1'd0, 4'd11}: s2wr7 <= 3;
{1'd0, 4'd12}: s2wr7 <= 4;
{1'd0, 4'd13}: s2wr7 <= 5;
{1'd0, 4'd14}: s2wr7 <= 6;
{1'd0, 4'd15}: s2wr7 <= 7;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr7 is "block"


always @(posedge clk) begin
case({tm50_dd, writeCycle})
{1'd0, 4'd0}: s2wr8 <= 6;
{1'd0, 4'd1}: s2wr8 <= 7;
{1'd0, 4'd2}: s2wr8 <= 4;
{1'd0, 4'd3}: s2wr8 <= 5;
{1'd0, 4'd4}: s2wr8 <= 2;
{1'd0, 4'd5}: s2wr8 <= 3;
{1'd0, 4'd6}: s2wr8 <= 0;
{1'd0, 4'd7}: s2wr8 <= 1;
{1'd0, 4'd8}: s2wr8 <= 14;
{1'd0, 4'd9}: s2wr8 <= 15;
{1'd0, 4'd10}: s2wr8 <= 12;
{1'd0, 4'd11}: s2wr8 <= 13;
{1'd0, 4'd12}: s2wr8 <= 10;
{1'd0, 4'd13}: s2wr8 <= 11;
{1'd0, 4'd14}: s2wr8 <= 8;
{1'd0, 4'd15}: s2wr8 <= 9;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr8 is "block"


always @(posedge clk) begin
case({tm50_dd, writeCycle})
{1'd0, 4'd0}: s2wr9 <= 4;
{1'd0, 4'd1}: s2wr9 <= 5;
{1'd0, 4'd2}: s2wr9 <= 6;
{1'd0, 4'd3}: s2wr9 <= 7;
{1'd0, 4'd4}: s2wr9 <= 0;
{1'd0, 4'd5}: s2wr9 <= 1;
{1'd0, 4'd6}: s2wr9 <= 2;
{1'd0, 4'd7}: s2wr9 <= 3;
{1'd0, 4'd8}: s2wr9 <= 12;
{1'd0, 4'd9}: s2wr9 <= 13;
{1'd0, 4'd10}: s2wr9 <= 14;
{1'd0, 4'd11}: s2wr9 <= 15;
{1'd0, 4'd12}: s2wr9 <= 8;
{1'd0, 4'd13}: s2wr9 <= 9;
{1'd0, 4'd14}: s2wr9 <= 10;
{1'd0, 4'd15}: s2wr9 <= 11;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr9 is "block"


always @(posedge clk) begin
case({tm50_dd, writeCycle})
{1'd0, 4'd0}: s2wr10 <= 2;
{1'd0, 4'd1}: s2wr10 <= 3;
{1'd0, 4'd2}: s2wr10 <= 0;
{1'd0, 4'd3}: s2wr10 <= 1;
{1'd0, 4'd4}: s2wr10 <= 6;
{1'd0, 4'd5}: s2wr10 <= 7;
{1'd0, 4'd6}: s2wr10 <= 4;
{1'd0, 4'd7}: s2wr10 <= 5;
{1'd0, 4'd8}: s2wr10 <= 10;
{1'd0, 4'd9}: s2wr10 <= 11;
{1'd0, 4'd10}: s2wr10 <= 8;
{1'd0, 4'd11}: s2wr10 <= 9;
{1'd0, 4'd12}: s2wr10 <= 14;
{1'd0, 4'd13}: s2wr10 <= 15;
{1'd0, 4'd14}: s2wr10 <= 12;
{1'd0, 4'd15}: s2wr10 <= 13;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr10 is "block"


always @(posedge clk) begin
case({tm50_dd, writeCycle})
{1'd0, 4'd0}: s2wr11 <= 0;
{1'd0, 4'd1}: s2wr11 <= 1;
{1'd0, 4'd2}: s2wr11 <= 2;
{1'd0, 4'd3}: s2wr11 <= 3;
{1'd0, 4'd4}: s2wr11 <= 4;
{1'd0, 4'd5}: s2wr11 <= 5;
{1'd0, 4'd6}: s2wr11 <= 6;
{1'd0, 4'd7}: s2wr11 <= 7;
{1'd0, 4'd8}: s2wr11 <= 8;
{1'd0, 4'd9}: s2wr11 <= 9;
{1'd0, 4'd10}: s2wr11 <= 10;
{1'd0, 4'd11}: s2wr11 <= 11;
{1'd0, 4'd12}: s2wr11 <= 12;
{1'd0, 4'd13}: s2wr11 <= 13;
{1'd0, 4'd14}: s2wr11 <= 14;
{1'd0, 4'd15}: s2wr11 <= 15;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr11 is "block"


always @(posedge clk) begin
case({tm50_dd, writeCycle})
{1'd0, 4'd0}: s2wr12 <= 6;
{1'd0, 4'd1}: s2wr12 <= 7;
{1'd0, 4'd2}: s2wr12 <= 4;
{1'd0, 4'd3}: s2wr12 <= 5;
{1'd0, 4'd4}: s2wr12 <= 2;
{1'd0, 4'd5}: s2wr12 <= 3;
{1'd0, 4'd6}: s2wr12 <= 0;
{1'd0, 4'd7}: s2wr12 <= 1;
{1'd0, 4'd8}: s2wr12 <= 14;
{1'd0, 4'd9}: s2wr12 <= 15;
{1'd0, 4'd10}: s2wr12 <= 12;
{1'd0, 4'd11}: s2wr12 <= 13;
{1'd0, 4'd12}: s2wr12 <= 10;
{1'd0, 4'd13}: s2wr12 <= 11;
{1'd0, 4'd14}: s2wr12 <= 8;
{1'd0, 4'd15}: s2wr12 <= 9;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr12 is "block"


always @(posedge clk) begin
case({tm50_dd, writeCycle})
{1'd0, 4'd0}: s2wr13 <= 4;
{1'd0, 4'd1}: s2wr13 <= 5;
{1'd0, 4'd2}: s2wr13 <= 6;
{1'd0, 4'd3}: s2wr13 <= 7;
{1'd0, 4'd4}: s2wr13 <= 0;
{1'd0, 4'd5}: s2wr13 <= 1;
{1'd0, 4'd6}: s2wr13 <= 2;
{1'd0, 4'd7}: s2wr13 <= 3;
{1'd0, 4'd8}: s2wr13 <= 12;
{1'd0, 4'd9}: s2wr13 <= 13;
{1'd0, 4'd10}: s2wr13 <= 14;
{1'd0, 4'd11}: s2wr13 <= 15;
{1'd0, 4'd12}: s2wr13 <= 8;
{1'd0, 4'd13}: s2wr13 <= 9;
{1'd0, 4'd14}: s2wr13 <= 10;
{1'd0, 4'd15}: s2wr13 <= 11;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr13 is "block"


always @(posedge clk) begin
case({tm50_dd, writeCycle})
{1'd0, 4'd0}: s2wr14 <= 2;
{1'd0, 4'd1}: s2wr14 <= 3;
{1'd0, 4'd2}: s2wr14 <= 0;
{1'd0, 4'd3}: s2wr14 <= 1;
{1'd0, 4'd4}: s2wr14 <= 6;
{1'd0, 4'd5}: s2wr14 <= 7;
{1'd0, 4'd6}: s2wr14 <= 4;
{1'd0, 4'd7}: s2wr14 <= 5;
{1'd0, 4'd8}: s2wr14 <= 10;
{1'd0, 4'd9}: s2wr14 <= 11;
{1'd0, 4'd10}: s2wr14 <= 8;
{1'd0, 4'd11}: s2wr14 <= 9;
{1'd0, 4'd12}: s2wr14 <= 14;
{1'd0, 4'd13}: s2wr14 <= 15;
{1'd0, 4'd14}: s2wr14 <= 12;
{1'd0, 4'd15}: s2wr14 <= 13;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr14 is "block"


always @(posedge clk) begin
case({tm50_dd, writeCycle})
{1'd0, 4'd0}: s2wr15 <= 0;
{1'd0, 4'd1}: s2wr15 <= 1;
{1'd0, 4'd2}: s2wr15 <= 2;
{1'd0, 4'd3}: s2wr15 <= 3;
{1'd0, 4'd4}: s2wr15 <= 4;
{1'd0, 4'd5}: s2wr15 <= 5;
{1'd0, 4'd6}: s2wr15 <= 6;
{1'd0, 4'd7}: s2wr15 <= 7;
{1'd0, 4'd8}: s2wr15 <= 8;
{1'd0, 4'd9}: s2wr15 <= 9;
{1'd0, 4'd10}: s2wr15 <= 10;
{1'd0, 4'd11}: s2wr15 <= 11;
{1'd0, 4'd12}: s2wr15 <= 12;
{1'd0, 4'd13}: s2wr15 <= 13;
{1'd0, 4'd14}: s2wr15 <= 14;
{1'd0, 4'd15}: s2wr15 <= 15;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr15 is "block"


endmodule

// Latency: 8
// Gap: 16
module DirSum_23302(clk, reset, next, next_out,
X0, Y0,
X1, Y1,
X2, Y2,
X3, Y3,
X4, Y4,
X5, Y5,
X6, Y6,
X7, Y7,
X8, Y8,
X9, Y9,
X10, Y10,
X11, Y11,
X12, Y12,
X13, Y13,
X14, Y14,
X15, Y15,
X16, Y16,
X17, Y17,
X18, Y18,
X19, Y19,
X20, Y20,
X21, Y21,
X22, Y22,
X23, Y23,
X24, Y24,
X25, Y25,
X26, Y26,
X27, Y27,
X28, Y28,
X29, Y29,
X30, Y30,
X31, Y31);
output next_out;
input clk, reset, next;

reg [3:0] i1;

input [7:0] X0,


X1,
X2,
X3,
X4,
X5,
X6,
X7,
X8,
X9,
X10,
X11,
X12,
X13,
X14,
X15,
X16,
X17,
X18,
X19,
X20,
X21,
X22,
X23,
X24,
X25,
X26,
X27,
X28,
X29,
X30,
X31;

output [7:0] Y0,


Y1,
Y2,
Y3,
Y4,
Y5,
Y6,
Y7,
Y8,
Y9,
Y10,
Y11,
Y12,
Y13,
Y14,
Y15,
Y16,
Y17,
Y18,
Y19,
Y20,
Y21,
Y22,
Y23,
Y24,
Y25,
Y26,
Y27,
Y28,
Y29,
Y30,
Y31;

always @(posedge clk) begin


if (reset == 1) begin
i1 <= 0;
end
else begin
if (next == 1)
i1 <= 0;
else if (i1 == 15)
i1 <= 0;
else
i1 <= i1 + 1;
end
end

codeBlock21444 codeBlockIsnt27609(.clk(clk), .reset(reset), .next_in(next),


.next_out(next_out),
.i1_in(i1),
.X0_in(X0), .Y0(Y0),
.X1_in(X1), .Y1(Y1),
.X2_in(X2), .Y2(Y2),
.X3_in(X3), .Y3(Y3),
.X4_in(X4), .Y4(Y4),
.X5_in(X5), .Y5(Y5),
.X6_in(X6), .Y6(Y6),
.X7_in(X7), .Y7(Y7),
.X8_in(X8), .Y8(Y8),
.X9_in(X9), .Y9(Y9),
.X10_in(X10), .Y10(Y10),
.X11_in(X11), .Y11(Y11),
.X12_in(X12), .Y12(Y12),
.X13_in(X13), .Y13(Y13),
.X14_in(X14), .Y14(Y14),
.X15_in(X15), .Y15(Y15),
.X16_in(X16), .Y16(Y16),
.X17_in(X17), .Y17(Y17),
.X18_in(X18), .Y18(Y18),
.X19_in(X19), .Y19(Y19),
.X20_in(X20), .Y20(Y20),
.X21_in(X21), .Y21(Y21),
.X22_in(X22), .Y22(Y22),
.X23_in(X23), .Y23(Y23),
.X24_in(X24), .Y24(Y24),
.X25_in(X25), .Y25(Y25),
.X26_in(X26), .Y26(Y26),
.X27_in(X27), .Y27(Y27),
.X28_in(X28), .Y28(Y28),
.X29_in(X29), .Y29(Y29),
.X30_in(X30), .Y30(Y30),
.X31_in(X31), .Y31(Y31));

endmodule

module D4_22760(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [3:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h40;
1: out3 <= 8'h40;
2: out3 <= 8'h3f;
3: out3 <= 8'h3d;
4: out3 <= 8'h3b;
5: out3 <= 8'h38;
6: out3 <= 8'h35;
7: out3 <= 8'h31;
8: out3 <= 8'h2d;
9: out3 <= 8'h29;
10: out3 <= 8'h24;
11: out3 <= 8'h1e;
12: out3 <= 8'h18;
13: out3 <= 8'h13;
14: out3 <= 8'hc;
15: out3 <= 8'h6;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D5_22778(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [3:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h40;
1: out3 <= 8'h3f;
2: out3 <= 8'h3b;
3: out3 <= 8'h35;
4: out3 <= 8'h2d;
5: out3 <= 8'h24;
6: out3 <= 8'h18;
7: out3 <= 8'hc;
8: out3 <= 8'h0;
9: out3 <= 8'hf4;
10: out3 <= 8'he8;
11: out3 <= 8'hdc;
12: out3 <= 8'hd3;
13: out3 <= 8'hcb;
14: out3 <= 8'hc5;
15: out3 <= 8'hc1;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D8_22796(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [3:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h40;
1: out3 <= 8'h40;
2: out3 <= 8'h3e;
3: out3 <= 8'h3d;
4: out3 <= 8'h3b;
5: out3 <= 8'h38;
6: out3 <= 8'h34;
7: out3 <= 8'h30;
8: out3 <= 8'h2c;
9: out3 <= 8'h27;
10: out3 <= 8'h22;
11: out3 <= 8'h1d;
12: out3 <= 8'h17;
13: out3 <= 8'h11;
14: out3 <= 8'hb;
15: out3 <= 8'h5;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D9_22814(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [3:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h40;
1: out3 <= 8'h3e;
2: out3 <= 8'h3a;
3: out3 <= 8'h33;
4: out3 <= 8'h2b;
5: out3 <= 8'h21;
6: out3 <= 8'h16;
7: out3 <= 8'h9;
8: out3 <= 8'hfd;
9: out3 <= 8'hf0;
10: out3 <= 8'he5;
11: out3 <= 8'hda;
12: out3 <= 8'hd1;
13: out3 <= 8'hc9;
14: out3 <= 8'hc4;
15: out3 <= 8'hc1;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D10_22832(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [3:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h40;
1: out3 <= 8'h3c;
2: out3 <= 8'h32;
3: out3 <= 8'h25;
4: out3 <= 8'h14;
5: out3 <= 8'h2;
6: out3 <= 8'hef;
7: out3 <= 8'hde;
8: out3 <= 8'hd0;
9: out3 <= 8'hc5;
10: out3 <= 8'hc0;
11: out3 <= 8'hc1;
12: out3 <= 8'hc7;
13: out3 <= 8'hd2;
14: out3 <= 8'he0;
15: out3 <= 8'hf2;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D12_22868(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [3:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h40;
1: out3 <= 8'h3f;
2: out3 <= 8'h3e;
3: out3 <= 8'h3c;
4: out3 <= 8'h3a;
5: out3 <= 8'h37;
6: out3 <= 8'h33;
7: out3 <= 8'h2f;
8: out3 <= 8'h2b;
9: out3 <= 8'h26;
10: out3 <= 8'h21;
11: out3 <= 8'h1b;
12: out3 <= 8'h16;
13: out3 <= 8'h10;
14: out3 <= 8'h9;
15: out3 <= 8'h3;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D13_22886(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [3:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h40;
1: out3 <= 8'h3d;
2: out3 <= 8'h38;
3: out3 <= 8'h31;
4: out3 <= 8'h29;
5: out3 <= 8'h1e;
6: out3 <= 8'h13;
7: out3 <= 8'h6;
8: out3 <= 8'hfa;
9: out3 <= 8'hed;
10: out3 <= 8'he2;
11: out3 <= 8'hd7;
12: out3 <= 8'hcf;
13: out3 <= 8'hc8;
14: out3 <= 8'hc3;
15: out3 <= 8'hc0;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D14_22904(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [3:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h3f;
1: out3 <= 8'h3a;
2: out3 <= 8'h2f;
3: out3 <= 8'h21;
4: out3 <= 8'h10;
5: out3 <= 8'hfd;
6: out3 <= 8'hea;
7: out3 <= 8'hda;
8: out3 <= 8'hcd;
9: out3 <= 8'hc4;
10: out3 <= 8'hc0;
11: out3 <= 8'hc2;
12: out3 <= 8'hc9;
13: out3 <= 8'hd5;
14: out3 <= 8'he5;
15: out3 <= 8'hf7;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D16_22940(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [3:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h40;
1: out3 <= 8'h3f;
2: out3 <= 8'h3e;
3: out3 <= 8'h3c;
4: out3 <= 8'h39;
5: out3 <= 8'h36;
6: out3 <= 8'h32;
7: out3 <= 8'h2e;
8: out3 <= 8'h2a;
9: out3 <= 8'h25;
10: out3 <= 8'h20;
11: out3 <= 8'h1a;
12: out3 <= 8'h14;
13: out3 <= 8'he;
14: out3 <= 8'h8;
15: out3 <= 8'h2;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D17_22958(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [3:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h3f;
1: out3 <= 8'h3c;
2: out3 <= 8'h37;
3: out3 <= 8'h2f;
4: out3 <= 8'h26;
5: out3 <= 8'h1b;
6: out3 <= 8'h10;
7: out3 <= 8'h3;
8: out3 <= 8'hf7;
9: out3 <= 8'hea;
10: out3 <= 8'hdf;
11: out3 <= 8'hd5;
12: out3 <= 8'hcd;
13: out3 <= 8'hc6;
14: out3 <= 8'hc2;
15: out3 <= 8'hc0;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D18_22976(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [3:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h3e;
1: out3 <= 8'h38;
2: out3 <= 8'h2c;
3: out3 <= 8'h1d;
4: out3 <= 8'hb;
5: out3 <= 8'hf8;
6: out3 <= 8'he6;
7: out3 <= 8'hd6;
8: out3 <= 8'hca;
9: out3 <= 8'hc2;
10: out3 <= 8'hc0;
11: out3 <= 8'hc3;
12: out3 <= 8'hcc;
13: out3 <= 8'hd9;
14: out3 <= 8'he9;
15: out3 <= 8'hfb;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D20_23012(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [3:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h0;
1: out3 <= 8'hfa;
2: out3 <= 8'hf4;
3: out3 <= 8'hed;
4: out3 <= 8'he8;
5: out3 <= 8'he2;
6: out3 <= 8'hdc;
7: out3 <= 8'hd7;
8: out3 <= 8'hd3;
9: out3 <= 8'hcf;
10: out3 <= 8'hcb;
11: out3 <= 8'hc8;
12: out3 <= 8'hc5;
13: out3 <= 8'hc3;
14: out3 <= 8'hc1;
15: out3 <= 8'hc0;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule
module D21_23030(addr, out, clk);
input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [3:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h0;
1: out3 <= 8'hf4;
2: out3 <= 8'he8;
3: out3 <= 8'hdc;
4: out3 <= 8'hd3;
5: out3 <= 8'hcb;
6: out3 <= 8'hc5;
7: out3 <= 8'hc1;
8: out3 <= 8'hc0;
9: out3 <= 8'hc1;
10: out3 <= 8'hc5;
11: out3 <= 8'hcb;
12: out3 <= 8'hd3;
13: out3 <= 8'hdc;
14: out3 <= 8'he8;
15: out3 <= 8'hf4;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D22_23048(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [3:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h0;
1: out3 <= 8'hed;
2: out3 <= 8'hdc;
3: out3 <= 8'hcf;
4: out3 <= 8'hc5;
5: out3 <= 8'hc0;
6: out3 <= 8'hc1;
7: out3 <= 8'hc8;
8: out3 <= 8'hd3;
9: out3 <= 8'he2;
10: out3 <= 8'hf4;
11: out3 <= 8'h6;
12: out3 <= 8'h18;
13: out3 <= 8'h29;
14: out3 <= 8'h35;
15: out3 <= 8'h3d;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D24_23084(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [3:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'hfe;
1: out3 <= 8'hf8;
2: out3 <= 8'hf2;
3: out3 <= 8'hec;
4: out3 <= 8'he6;
5: out3 <= 8'he0;
6: out3 <= 8'hdb;
7: out3 <= 8'hd6;
8: out3 <= 8'hd2;
9: out3 <= 8'hce;
10: out3 <= 8'hca;
11: out3 <= 8'hc7;
12: out3 <= 8'hc4;
13: out3 <= 8'hc2;
14: out3 <= 8'hc1;
15: out3 <= 8'hc0;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D25_23102(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [3:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'hfd;
1: out3 <= 8'hf0;
2: out3 <= 8'he5;
3: out3 <= 8'hda;
4: out3 <= 8'hd1;
5: out3 <= 8'hc9;
6: out3 <= 8'hc4;
7: out3 <= 8'hc1;
8: out3 <= 8'hc0;
9: out3 <= 8'hc2;
10: out3 <= 8'hc6;
11: out3 <= 8'hcd;
12: out3 <= 8'hd5;
13: out3 <= 8'hdf;
14: out3 <= 8'hea;
15: out3 <= 8'hf7;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D26_23120(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [3:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'hfb;
1: out3 <= 8'he9;
2: out3 <= 8'hd9;
3: out3 <= 8'hcc;
4: out3 <= 8'hc3;
5: out3 <= 8'hc0;
6: out3 <= 8'hc2;
7: out3 <= 8'hca;
8: out3 <= 8'hd6;
9: out3 <= 8'he6;
10: out3 <= 8'hf8;
11: out3 <= 8'hb;
12: out3 <= 8'h1d;
13: out3 <= 8'h2c;
14: out3 <= 8'h38;
15: out3 <= 8'h3e;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D34_23138(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [3:0] addr;
always @(posedge clk) begin
out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'hf2;
1: out3 <= 8'he0;
2: out3 <= 8'hd2;
3: out3 <= 8'hc7;
4: out3 <= 8'hc1;
5: out3 <= 8'hc0;
6: out3 <= 8'hc5;
7: out3 <= 8'hd0;
8: out3 <= 8'hde;
9: out3 <= 8'hef;
10: out3 <= 8'h2;
11: out3 <= 8'h14;
12: out3 <= 8'h25;
13: out3 <= 8'h32;
14: out3 <= 8'h3c;
15: out3 <= 8'h40;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D33_23174(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [3:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'hf7;
1: out3 <= 8'hea;
2: out3 <= 8'hdf;
3: out3 <= 8'hd5;
4: out3 <= 8'hcd;
5: out3 <= 8'hc6;
6: out3 <= 8'hc2;
7: out3 <= 8'hc0;
8: out3 <= 8'hc1;
9: out3 <= 8'hc4;
10: out3 <= 8'hc9;
11: out3 <= 8'hd1;
12: out3 <= 8'hda;
13: out3 <= 8'he5;
14: out3 <= 8'hf0;
15: out3 <= 8'hfd;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule
module D28_23192(addr, out, clk);
input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [3:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'hfd;
1: out3 <= 8'hf7;
2: out3 <= 8'hf0;
3: out3 <= 8'hea;
4: out3 <= 8'he5;
5: out3 <= 8'hdf;
6: out3 <= 8'hda;
7: out3 <= 8'hd5;
8: out3 <= 8'hd1;
9: out3 <= 8'hcd;
10: out3 <= 8'hc9;
11: out3 <= 8'hc6;
12: out3 <= 8'hc4;
13: out3 <= 8'hc2;
14: out3 <= 8'hc1;
15: out3 <= 8'hc0;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D32_23210(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [3:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'hfb;
1: out3 <= 8'hf5;
2: out3 <= 8'hef;
3: out3 <= 8'he9;
4: out3 <= 8'he3;
5: out3 <= 8'hde;
6: out3 <= 8'hd9;
7: out3 <= 8'hd4;
8: out3 <= 8'hd0;
9: out3 <= 8'hcc;
10: out3 <= 8'hc8;
11: out3 <= 8'hc5;
12: out3 <= 8'hc3;
13: out3 <= 8'hc2;
14: out3 <= 8'hc0;
15: out3 <= 8'hc0;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D29_23228(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [3:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'hfa;
1: out3 <= 8'hed;
2: out3 <= 8'he2;
3: out3 <= 8'hd7;
4: out3 <= 8'hcf;
5: out3 <= 8'hc8;
6: out3 <= 8'hc3;
7: out3 <= 8'hc0;
8: out3 <= 8'hc0;
9: out3 <= 8'hc3;
10: out3 <= 8'hc8;
11: out3 <= 8'hcf;
12: out3 <= 8'hd7;
13: out3 <= 8'he2;
14: out3 <= 8'hed;
15: out3 <= 8'hfa;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D30_23264(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [3:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'hf7;
1: out3 <= 8'he5;
2: out3 <= 8'hd5;
3: out3 <= 8'hc9;
4: out3 <= 8'hc2;
5: out3 <= 8'hc0;
6: out3 <= 8'hc4;
7: out3 <= 8'hcd;
8: out3 <= 8'hda;
9: out3 <= 8'hea;
10: out3 <= 8'hfd;
11: out3 <= 8'h10;
12: out3 <= 8'h21;
13: out3 <= 8'h2f;
14: out3 <= 8'h3a;
15: out3 <= 8'h3f;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

module D6_23300(addr, out, clk);


input clk;
output [7:0] out;
reg [7:0] out, out2, out3;
input [3:0] addr;

always @(posedge clk) begin


out2 <= out3;
out <= out2;
case(addr)
0: out3 <= 8'h40;
1: out3 <= 8'h3d;
2: out3 <= 8'h35;
3: out3 <= 8'h29;
4: out3 <= 8'h18;
5: out3 <= 8'h6;
6: out3 <= 8'hf4;
7: out3 <= 8'he2;
8: out3 <= 8'hd3;
9: out3 <= 8'hc8;
10: out3 <= 8'hc1;
11: out3 <= 8'hc0;
12: out3 <= 8'hc5;
13: out3 <= 8'hcf;
14: out3 <= 8'hdc;
15: out3 <= 8'hed;
default: out3 <= 0;
endcase
end
// synthesis attribute rom_style of out3 is "block"
endmodule

// Latency: 8
// Gap: 1
module codeBlock21444(clk, reset, next_in, next_out,
i1_in,
X0_in, Y0,
X1_in, Y1,
X2_in, Y2,
X3_in, Y3,
X4_in, Y4,
X5_in, Y5,
X6_in, Y6,
X7_in, Y7,
X8_in, Y8,
X9_in, Y9,
X10_in, Y10,
X11_in, Y11,
X12_in, Y12,
X13_in, Y13,
X14_in, Y14,
X15_in, Y15,
X16_in, Y16,
X17_in, Y17,
X18_in, Y18,
X19_in, Y19,
X20_in, Y20,
X21_in, Y21,
X22_in, Y22,
X23_in, Y23,
X24_in, Y24,
X25_in, Y25,
X26_in, Y26,
X27_in, Y27,
X28_in, Y28,
X29_in, Y29,
X30_in, Y30,
X31_in, Y31);

output next_out;
input clk, reset, next_in;

reg next;
input [3:0] i1_in;
reg [3:0] i1;

input [7:0] X0_in,


X1_in,
X2_in,
X3_in,
X4_in,
X5_in,
X6_in,
X7_in,
X8_in,
X9_in,
X10_in,
X11_in,
X12_in,
X13_in,
X14_in,
X15_in,
X16_in,
X17_in,
X18_in,
X19_in,
X20_in,
X21_in,
X22_in,
X23_in,
X24_in,
X25_in,
X26_in,
X27_in,
X28_in,
X29_in,
X30_in,
X31_in;

reg [7:0] X0,


X1,
X2,
X3,
X4,
X5,
X6,
X7,
X8,
X9,
X10,
X11,
X12,
X13,
X14,
X15,
X16,
X17,
X18,
X19,
X20,
X21,
X22,
X23,
X24,
X25,
X26,
X27,
X28,
X29,
X30,
X31;

output [7:0] Y0,


Y1,
Y2,
Y3,
Y4,
Y5,
Y6,
Y7,
Y8,
Y9,
Y10,
Y11,
Y12,
Y13,
Y14,
Y15,
Y16,
Y17,
Y18,
Y19,
Y20,
Y21,
Y22,
Y23,
Y24,
Y25,
Y26,
Y27,
Y28,
Y29,
Y30,
Y31;

shiftRegFIFO #(7, 1) shiftFIFO_27612(.X(next), .Y(next_out), .clk(clk));

wire signed [7:0] a418;


wire signed [7:0] a322;
wire signed [7:0] a421;
wire signed [7:0] a326;
wire signed [7:0] a422;
wire signed [7:0] a423;
wire signed [7:0] a426;
wire signed [7:0] a427;
wire signed [7:0] a430;
wire signed [7:0] a431;
wire signed [7:0] a434;
wire signed [7:0] a346;
wire signed [7:0] a437;
wire signed [7:0] a350;
wire signed [7:0] a438;
wire signed [7:0] a439;
wire signed [7:0] a442;
wire signed [7:0] a443;
wire signed [7:0] a446;
wire signed [7:0] a447;
wire signed [7:0] a450;
wire signed [7:0] a370;
wire signed [7:0] a453;
wire signed [7:0] a374;
wire signed [7:0] a454;
wire signed [7:0] a455;
wire signed [7:0] a458;
wire signed [7:0] a459;
wire signed [7:0] a462;
wire signed [7:0] a463;
wire signed [7:0] a466;
wire signed [7:0] a395;
wire signed [7:0] a469;
wire signed [7:0] a399;
wire signed [7:0] a470;
wire signed [7:0] a471;
wire signed [7:0] a474;
wire signed [7:0] a475;
wire signed [7:0] a478;
wire signed [7:0] a479;
reg signed [7:0] tm740;
reg signed [7:0] tm744;
reg signed [7:0] tm756;
reg signed [7:0] tm760;
reg signed [7:0] tm772;
reg signed [7:0] tm776;
reg signed [7:0] tm788;
reg signed [7:0] tm792;
reg signed [7:0] tm804;
reg signed [7:0] tm808;
reg signed [7:0] tm820;
reg signed [7:0] tm824;
reg signed [7:0] tm836;
reg signed [7:0] tm840;
reg signed [7:0] tm852;
reg signed [7:0] tm856;
reg signed [7:0] tm868;
reg signed [7:0] tm872;
reg signed [7:0] tm884;
reg signed [7:0] tm888;
reg signed [7:0] tm900;
reg signed [7:0] tm904;
reg signed [7:0] tm916;
reg signed [7:0] tm920;
reg signed [7:0] tm932;
reg signed [7:0] tm939;
reg signed [7:0] tm946;
reg signed [7:0] tm953;
reg signed [7:0] tm960;
reg signed [7:0] tm967;
reg signed [7:0] tm974;
reg signed [7:0] tm981;
reg signed [7:0] tm741;
reg signed [7:0] tm745;
reg signed [7:0] tm757;
reg signed [7:0] tm761;
reg signed [7:0] tm773;
reg signed [7:0] tm777;
reg signed [7:0] tm789;
reg signed [7:0] tm793;
reg signed [7:0] tm805;
reg signed [7:0] tm809;
reg signed [7:0] tm821;
reg signed [7:0] tm825;
reg signed [7:0] tm837;
reg signed [7:0] tm841;
reg signed [7:0] tm853;
reg signed [7:0] tm857;
reg signed [7:0] tm869;
reg signed [7:0] tm873;
reg signed [7:0] tm885;
reg signed [7:0] tm889;
reg signed [7:0] tm901;
reg signed [7:0] tm905;
reg signed [7:0] tm917;
reg signed [7:0] tm921;
reg signed [7:0] tm933;
reg signed [7:0] tm940;
reg signed [7:0] tm947;
reg signed [7:0] tm954;
reg signed [7:0] tm961;
reg signed [7:0] tm968;
reg signed [7:0] tm975;
reg signed [7:0] tm982;
wire signed [7:0] tm53;
wire signed [7:0] a327;
wire signed [7:0] tm54;
wire signed [7:0] a329;
wire signed [7:0] tm55;
wire signed [7:0] a333;
wire signed [7:0] tm56;
wire signed [7:0] a335;
wire signed [7:0] tm57;
wire signed [7:0] a339;
wire signed [7:0] tm58;
wire signed [7:0] a341;
wire signed [7:0] tm61;
wire signed [7:0] a351;
wire signed [7:0] tm62;
wire signed [7:0] a353;
wire signed [7:0] tm63;
wire signed [7:0] a357;
wire signed [7:0] tm64;
wire signed [7:0] a359;
wire signed [7:0] tm65;
wire signed [7:0] a363;
wire signed [7:0] tm66;
wire signed [7:0] a365;
wire signed [7:0] tm69;
wire signed [7:0] a375;
wire signed [7:0] tm70;
wire signed [7:0] a377;
wire signed [7:0] tm71;
wire signed [7:0] a381;
wire signed [7:0] tm72;
wire signed [7:0] a383;
wire signed [7:0] tm73;
wire signed [7:0] a388;
wire signed [7:0] tm74;
wire signed [7:0] a390;
wire signed [7:0] tm77;
wire signed [7:0] a400;
wire signed [7:0] tm78;
wire signed [7:0] a402;
wire signed [7:0] tm79;
wire signed [7:0] a406;
wire signed [7:0] tm80;
wire signed [7:0] a408;
wire signed [7:0] tm81;
wire signed [7:0] a412;
wire signed [7:0] tm82;
wire signed [7:0] a414;
reg signed [7:0] tm742;
reg signed [7:0] tm746;
reg signed [7:0] tm758;
reg signed [7:0] tm762;
reg signed [7:0] tm774;
reg signed [7:0] tm778;
reg signed [7:0] tm790;
reg signed [7:0] tm794;
reg signed [7:0] tm806;
reg signed [7:0] tm810;
reg signed [7:0] tm822;
reg signed [7:0] tm826;
reg signed [7:0] tm838;
reg signed [7:0] tm842;
reg signed [7:0] tm854;
reg signed [7:0] tm858;
reg signed [7:0] tm870;
reg signed [7:0] tm874;
reg signed [7:0] tm886;
reg signed [7:0] tm890;
reg signed [7:0] tm902;
reg signed [7:0] tm906;
reg signed [7:0] tm918;
reg signed [7:0] tm922;
reg signed [7:0] tm934;
reg signed [7:0] tm941;
reg signed [7:0] tm948;
reg signed [7:0] tm955;
reg signed [7:0] tm962;
reg signed [7:0] tm969;
reg signed [7:0] tm976;
reg signed [7:0] tm983;
reg signed [7:0] tm152;
reg signed [7:0] tm153;
reg signed [7:0] tm156;
reg signed [7:0] tm157;
reg signed [7:0] tm160;
reg signed [7:0] tm161;
reg signed [7:0] tm168;
reg signed [7:0] tm169;
reg signed [7:0] tm172;
reg signed [7:0] tm173;
reg signed [7:0] tm176;
reg signed [7:0] tm177;
reg signed [7:0] tm184;
reg signed [7:0] tm185;
reg signed [7:0] tm188;
reg signed [7:0] tm189;
reg signed [7:0] tm192;
reg signed [7:0] tm193;
reg signed [7:0] tm200;
reg signed [7:0] tm201;
reg signed [7:0] tm204;
reg signed [7:0] tm205;
reg signed [7:0] tm208;
reg signed [7:0] tm209;
reg signed [7:0] tm743;
reg signed [7:0] tm747;
reg signed [7:0] tm759;
reg signed [7:0] tm763;
reg signed [7:0] tm775;
reg signed [7:0] tm779;
reg signed [7:0] tm791;
reg signed [7:0] tm795;
reg signed [7:0] tm807;
reg signed [7:0] tm811;
reg signed [7:0] tm823;
reg signed [7:0] tm827;
reg signed [7:0] tm839;
reg signed [7:0] tm843;
reg signed [7:0] tm855;
reg signed [7:0] tm859;
reg signed [7:0] tm871;
reg signed [7:0] tm875;
reg signed [7:0] tm887;
reg signed [7:0] tm891;
reg signed [7:0] tm903;
reg signed [7:0] tm907;
reg signed [7:0] tm919;
reg signed [7:0] tm923;
reg signed [7:0] tm935;
reg signed [7:0] tm942;
reg signed [7:0] tm949;
reg signed [7:0] tm956;
reg signed [7:0] tm963;
reg signed [7:0] tm970;
reg signed [7:0] tm977;
reg signed [7:0] tm984;
reg signed [7:0] tm936;
reg signed [7:0] tm943;
reg signed [7:0] tm950;
reg signed [7:0] tm957;
reg signed [7:0] tm964;
reg signed [7:0] tm971;
reg signed [7:0] tm978;
reg signed [7:0] tm985;
wire signed [7:0] a328;
wire signed [7:0] a330;
wire signed [7:0] a331;
wire signed [7:0] a332;
wire signed [7:0] a334;
wire signed [7:0] a336;
wire signed [7:0] a337;
wire signed [7:0] a338;
wire signed [7:0] a340;
wire signed [7:0] a342;
wire signed [7:0] a343;
wire signed [7:0] a344;
wire signed [7:0] a352;
wire signed [7:0] a354;
wire signed [7:0] a355;
wire signed [7:0] a356;
wire signed [7:0] a358;
wire signed [7:0] a360;
wire signed [7:0] a361;
wire signed [7:0] a362;
wire signed [7:0] a364;
wire signed [7:0] a366;
wire signed [7:0] a367;
wire signed [7:0] a368;
wire signed [7:0] a376;
wire signed [7:0] a378;
wire signed [7:0] a379;
wire signed [7:0] a380;
wire signed [7:0] a382;
wire signed [7:0] a384;
wire signed [7:0] a385;
wire signed [7:0] a387;
wire signed [7:0] a389;
wire signed [7:0] a391;
wire signed [7:0] a392;
wire signed [7:0] a393;
wire signed [7:0] a401;
wire signed [7:0] a403;
wire signed [7:0] a404;
wire signed [7:0] a405;
wire signed [7:0] a407;
wire signed [7:0] a409;
wire signed [7:0] a410;
wire signed [7:0] a411;
wire signed [7:0] a413;
wire signed [7:0] a415;
wire signed [7:0] a416;
wire signed [7:0] a417;
reg signed [7:0] tm937;
reg signed [7:0] tm944;
reg signed [7:0] tm951;
reg signed [7:0] tm958;
reg signed [7:0] tm965;
reg signed [7:0] tm972;
reg signed [7:0] tm979;
reg signed [7:0] tm986;
wire signed [7:0] Y0;
wire signed [7:0] Y1;
wire signed [7:0] Y2;
wire signed [7:0] Y3;
wire signed [7:0] Y4;
wire signed [7:0] Y5;
wire signed [7:0] Y6;
wire signed [7:0] Y7;
wire signed [7:0] Y8;
wire signed [7:0] Y9;
wire signed [7:0] Y10;
wire signed [7:0] Y11;
wire signed [7:0] Y12;
wire signed [7:0] Y13;
wire signed [7:0] Y14;
wire signed [7:0] Y15;
wire signed [7:0] Y16;
wire signed [7:0] Y17;
wire signed [7:0] Y18;
wire signed [7:0] Y19;
wire signed [7:0] Y20;
wire signed [7:0] Y21;
wire signed [7:0] Y22;
wire signed [7:0] Y23;
wire signed [7:0] Y24;
wire signed [7:0] Y25;
wire signed [7:0] Y26;
wire signed [7:0] Y27;
wire signed [7:0] Y28;
wire signed [7:0] Y29;
wire signed [7:0] Y30;
wire signed [7:0] Y31;
reg signed [7:0] tm938;
reg signed [7:0] tm945;
reg signed [7:0] tm952;
reg signed [7:0] tm959;
reg signed [7:0] tm966;
reg signed [7:0] tm973;
reg signed [7:0] tm980;
reg signed [7:0] tm987;

assign a418 = X0;


assign a322 = a418;
assign a421 = X1;
assign a326 = a421;
assign a422 = X2;
assign a423 = X3;
assign a426 = X4;
assign a427 = X5;
assign a430 = X6;
assign a431 = X7;
assign a434 = X8;
assign a346 = a434;
assign a437 = X9;
assign a350 = a437;
assign a438 = X10;
assign a439 = X11;
assign a442 = X12;
assign a443 = X13;
assign a446 = X14;
assign a447 = X15;
assign a450 = X16;
assign a370 = a450;
assign a453 = X17;
assign a374 = a453;
assign a454 = X18;
assign a455 = X19;
assign a458 = X20;
assign a459 = X21;
assign a462 = X22;
assign a463 = X23;
assign a466 = X24;
assign a395 = a466;
assign a469 = X25;
assign a399 = a469;
assign a470 = X26;
assign a471 = X27;
assign a474 = X28;
assign a475 = X29;
assign a478 = X30;
assign a479 = X31;
assign a327 = tm53;
assign a329 = tm54;
assign a333 = tm55;
assign a335 = tm56;
assign a339 = tm57;
assign a341 = tm58;
assign a351 = tm61;
assign a353 = tm62;
assign a357 = tm63;
assign a359 = tm64;
assign a363 = tm65;
assign a365 = tm66;
assign a375 = tm69;
assign a377 = tm70;
assign a381 = tm71;
assign a383 = tm72;
assign a388 = tm73;
assign a390 = tm74;
assign a400 = tm77;
assign a402 = tm78;
assign a406 = tm79;
assign a408 = tm80;
assign a412 = tm81;
assign a414 = tm82;
assign Y0 = tm938;
assign Y1 = tm945;
assign Y8 = tm952;
assign Y9 = tm959;
assign Y16 = tm966;
assign Y17 = tm973;
assign Y24 = tm980;
assign Y25 = tm987;

D4_22760 instD4inst0_22760(.addr(i1[3:0]), .out(tm53), .clk(clk));

D5_22778 instD5inst0_22778(.addr(i1[3:0]), .out(tm55), .clk(clk));

D8_22796 instD8inst0_22796(.addr(i1[3:0]), .out(tm61), .clk(clk));

D9_22814 instD9inst0_22814(.addr(i1[3:0]), .out(tm63), .clk(clk));

D10_22832 instD10inst0_22832(.addr(i1[3:0]), .out(tm65), .clk(clk));

D12_22868 instD12inst0_22868(.addr(i1[3:0]), .out(tm69), .clk(clk));

D13_22886 instD13inst0_22886(.addr(i1[3:0]), .out(tm71), .clk(clk));

D14_22904 instD14inst0_22904(.addr(i1[3:0]), .out(tm73), .clk(clk));

D16_22940 instD16inst0_22940(.addr(i1[3:0]), .out(tm77), .clk(clk));

D17_22958 instD17inst0_22958(.addr(i1[3:0]), .out(tm79), .clk(clk));

D18_22976 instD18inst0_22976(.addr(i1[3:0]), .out(tm81), .clk(clk));

D20_23012 instD20inst0_23012(.addr(i1[3:0]), .out(tm54), .clk(clk));

D21_23030 instD21inst0_23030(.addr(i1[3:0]), .out(tm56), .clk(clk));

D22_23048 instD22inst0_23048(.addr(i1[3:0]), .out(tm58), .clk(clk));

D24_23084 instD24inst0_23084(.addr(i1[3:0]), .out(tm62), .clk(clk));


D25_23102 instD25inst0_23102(.addr(i1[3:0]), .out(tm64), .clk(clk));

D26_23120 instD26inst0_23120(.addr(i1[3:0]), .out(tm66), .clk(clk));

D34_23138 instD34inst0_23138(.addr(i1[3:0]), .out(tm82), .clk(clk));

D33_23174 instD33inst0_23174(.addr(i1[3:0]), .out(tm80), .clk(clk));

D28_23192 instD28inst0_23192(.addr(i1[3:0]), .out(tm70), .clk(clk));

D32_23210 instD32inst0_23210(.addr(i1[3:0]), .out(tm78), .clk(clk));

D29_23228 instD29inst0_23228(.addr(i1[3:0]), .out(tm72), .clk(clk));

D30_23264 instD30inst0_23264(.addr(i1[3:0]), .out(tm74), .clk(clk));

D6_23300 instD6inst0_23300(.addr(i1[3:0]), .out(tm57), .clk(clk));

multfix #(8, 2) m21543(.a(tm152), .b(tm743), .clk(clk), .q_sc(a328), .q_unsc(),


.rst(reset));
multfix #(8, 2) m21565(.a(tm153), .b(tm747), .clk(clk), .q_sc(a330), .q_unsc(),
.rst(reset));
multfix #(8, 2) m21583(.a(tm153), .b(tm743), .clk(clk), .q_sc(a331), .q_unsc(),
.rst(reset));
multfix #(8, 2) m21594(.a(tm152), .b(tm747), .clk(clk), .q_sc(a332), .q_unsc(),
.rst(reset));
multfix #(8, 2) m21623(.a(tm156), .b(tm759), .clk(clk), .q_sc(a334), .q_unsc(),
.rst(reset));
multfix #(8, 2) m21645(.a(tm157), .b(tm763), .clk(clk), .q_sc(a336), .q_unsc(),
.rst(reset));
multfix #(8, 2) m21663(.a(tm157), .b(tm759), .clk(clk), .q_sc(a337), .q_unsc(),
.rst(reset));
multfix #(8, 2) m21674(.a(tm156), .b(tm763), .clk(clk), .q_sc(a338), .q_unsc(),
.rst(reset));
multfix #(8, 2) m21703(.a(tm160), .b(tm775), .clk(clk), .q_sc(a340), .q_unsc(),
.rst(reset));
multfix #(8, 2) m21725(.a(tm161), .b(tm779), .clk(clk), .q_sc(a342), .q_unsc(),
.rst(reset));
multfix #(8, 2) m21743(.a(tm161), .b(tm775), .clk(clk), .q_sc(a343), .q_unsc(),
.rst(reset));
multfix #(8, 2) m21754(.a(tm160), .b(tm779), .clk(clk), .q_sc(a344), .q_unsc(),
.rst(reset));
multfix #(8, 2) m21863(.a(tm168), .b(tm791), .clk(clk), .q_sc(a352), .q_unsc(),
.rst(reset));
multfix #(8, 2) m21885(.a(tm169), .b(tm795), .clk(clk), .q_sc(a354), .q_unsc(),
.rst(reset));
multfix #(8, 2) m21903(.a(tm169), .b(tm791), .clk(clk), .q_sc(a355), .q_unsc(),
.rst(reset));
multfix #(8, 2) m21914(.a(tm168), .b(tm795), .clk(clk), .q_sc(a356), .q_unsc(),
.rst(reset));
multfix #(8, 2) m21943(.a(tm172), .b(tm807), .clk(clk), .q_sc(a358), .q_unsc(),
.rst(reset));
multfix #(8, 2) m21965(.a(tm173), .b(tm811), .clk(clk), .q_sc(a360), .q_unsc(),
.rst(reset));
multfix #(8, 2) m21983(.a(tm173), .b(tm807), .clk(clk), .q_sc(a361), .q_unsc(),
.rst(reset));
multfix #(8, 2) m21994(.a(tm172), .b(tm811), .clk(clk), .q_sc(a362), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22023(.a(tm176), .b(tm823), .clk(clk), .q_sc(a364), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22045(.a(tm177), .b(tm827), .clk(clk), .q_sc(a366), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22063(.a(tm177), .b(tm823), .clk(clk), .q_sc(a367), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22074(.a(tm176), .b(tm827), .clk(clk), .q_sc(a368), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22183(.a(tm184), .b(tm839), .clk(clk), .q_sc(a376), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22205(.a(tm185), .b(tm843), .clk(clk), .q_sc(a378), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22223(.a(tm185), .b(tm839), .clk(clk), .q_sc(a379), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22234(.a(tm184), .b(tm843), .clk(clk), .q_sc(a380), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22263(.a(tm188), .b(tm855), .clk(clk), .q_sc(a382), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22285(.a(tm189), .b(tm859), .clk(clk), .q_sc(a384), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22303(.a(tm189), .b(tm855), .clk(clk), .q_sc(a385), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22314(.a(tm188), .b(tm859), .clk(clk), .q_sc(a387), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22343(.a(tm192), .b(tm871), .clk(clk), .q_sc(a389), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22365(.a(tm193), .b(tm875), .clk(clk), .q_sc(a391), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22383(.a(tm193), .b(tm871), .clk(clk), .q_sc(a392), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22394(.a(tm192), .b(tm875), .clk(clk), .q_sc(a393), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22503(.a(tm200), .b(tm887), .clk(clk), .q_sc(a401), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22525(.a(tm201), .b(tm891), .clk(clk), .q_sc(a403), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22543(.a(tm201), .b(tm887), .clk(clk), .q_sc(a404), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22554(.a(tm200), .b(tm891), .clk(clk), .q_sc(a405), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22583(.a(tm204), .b(tm903), .clk(clk), .q_sc(a407), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22605(.a(tm205), .b(tm907), .clk(clk), .q_sc(a409), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22623(.a(tm205), .b(tm903), .clk(clk), .q_sc(a410), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22634(.a(tm204), .b(tm907), .clk(clk), .q_sc(a411), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22663(.a(tm208), .b(tm919), .clk(clk), .q_sc(a413), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22685(.a(tm209), .b(tm923), .clk(clk), .q_sc(a415), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22703(.a(tm209), .b(tm919), .clk(clk), .q_sc(a416), .q_unsc(),
.rst(reset));
multfix #(8, 2) m22714(.a(tm208), .b(tm923), .clk(clk), .q_sc(a417), .q_unsc(),
.rst(reset));
subfxp #(8, 1) sub21572(.a(a328), .b(a330), .clk(clk), .q(Y2)); // 6
addfxp #(8, 1) add21601(.a(a331), .b(a332), .clk(clk), .q(Y3)); // 6
subfxp #(8, 1) sub21652(.a(a334), .b(a336), .clk(clk), .q(Y4)); // 6
addfxp #(8, 1) add21681(.a(a337), .b(a338), .clk(clk), .q(Y5)); // 6
subfxp #(8, 1) sub21732(.a(a340), .b(a342), .clk(clk), .q(Y6)); // 6
addfxp #(8, 1) add21761(.a(a343), .b(a344), .clk(clk), .q(Y7)); // 6
subfxp #(8, 1) sub21892(.a(a352), .b(a354), .clk(clk), .q(Y10)); // 6
addfxp #(8, 1) add21921(.a(a355), .b(a356), .clk(clk), .q(Y11)); // 6
subfxp #(8, 1) sub21972(.a(a358), .b(a360), .clk(clk), .q(Y12)); // 6
addfxp #(8, 1) add22001(.a(a361), .b(a362), .clk(clk), .q(Y13)); // 6
subfxp #(8, 1) sub22052(.a(a364), .b(a366), .clk(clk), .q(Y14)); // 6
addfxp #(8, 1) add22081(.a(a367), .b(a368), .clk(clk), .q(Y15)); // 6
subfxp #(8, 1) sub22212(.a(a376), .b(a378), .clk(clk), .q(Y18)); // 6
addfxp #(8, 1) add22241(.a(a379), .b(a380), .clk(clk), .q(Y19)); // 6
subfxp #(8, 1) sub22292(.a(a382), .b(a384), .clk(clk), .q(Y20)); // 6
addfxp #(8, 1) add22321(.a(a385), .b(a387), .clk(clk), .q(Y21)); // 6
subfxp #(8, 1) sub22372(.a(a389), .b(a391), .clk(clk), .q(Y22)); // 6
addfxp #(8, 1) add22401(.a(a392), .b(a393), .clk(clk), .q(Y23)); // 6
subfxp #(8, 1) sub22532(.a(a401), .b(a403), .clk(clk), .q(Y26)); // 6
addfxp #(8, 1) add22561(.a(a404), .b(a405), .clk(clk), .q(Y27)); // 6
subfxp #(8, 1) sub22612(.a(a407), .b(a409), .clk(clk), .q(Y28)); // 6
addfxp #(8, 1) add22641(.a(a410), .b(a411), .clk(clk), .q(Y29)); // 6
subfxp #(8, 1) sub22692(.a(a413), .b(a415), .clk(clk), .q(Y30)); // 6
addfxp #(8, 1) add22721(.a(a416), .b(a417), .clk(clk), .q(Y31)); // 6

always @(posedge clk) begin


if (reset == 1) begin
tm152 <= 0;
tm743 <= 0;
tm153 <= 0;
tm747 <= 0;
tm153 <= 0;
tm743 <= 0;
tm152 <= 0;
tm747 <= 0;
tm156 <= 0;
tm759 <= 0;
tm157 <= 0;
tm763 <= 0;
tm157 <= 0;
tm759 <= 0;
tm156 <= 0;
tm763 <= 0;
tm160 <= 0;
tm775 <= 0;
tm161 <= 0;
tm779 <= 0;
tm161 <= 0;
tm775 <= 0;
tm160 <= 0;
tm779 <= 0;
tm168 <= 0;
tm791 <= 0;
tm169 <= 0;
tm795 <= 0;
tm169 <= 0;
tm791 <= 0;
tm168 <= 0;
tm795 <= 0;
tm172 <= 0;
tm807 <= 0;
tm173 <= 0;
tm811 <= 0;
tm173 <= 0;
tm807 <= 0;
tm172 <= 0;
tm811 <= 0;
tm176 <= 0;
tm823 <= 0;
tm177 <= 0;
tm827 <= 0;
tm177 <= 0;
tm823 <= 0;
tm176 <= 0;
tm827 <= 0;
tm184 <= 0;
tm839 <= 0;
tm185 <= 0;
tm843 <= 0;
tm185 <= 0;
tm839 <= 0;
tm184 <= 0;
tm843 <= 0;
tm188 <= 0;
tm855 <= 0;
tm189 <= 0;
tm859 <= 0;
tm189 <= 0;
tm855 <= 0;
tm188 <= 0;
tm859 <= 0;
tm192 <= 0;
tm871 <= 0;
tm193 <= 0;
tm875 <= 0;
tm193 <= 0;
tm871 <= 0;
tm192 <= 0;
tm875 <= 0;
tm200 <= 0;
tm887 <= 0;
tm201 <= 0;
tm891 <= 0;
tm201 <= 0;
tm887 <= 0;
tm200 <= 0;
tm891 <= 0;
tm204 <= 0;
tm903 <= 0;
tm205 <= 0;
tm907 <= 0;
tm205 <= 0;
tm903 <= 0;
tm204 <= 0;
tm907 <= 0;
tm208 <= 0;
tm919 <= 0;
tm209 <= 0;
tm923 <= 0;
tm209 <= 0;
tm919 <= 0;
tm208 <= 0;
tm923 <= 0;
end
else begin
i1 <= i1_in;
X0 <= X0_in;
X1 <= X1_in;
X2 <= X2_in;
X3 <= X3_in;
X4 <= X4_in;
X5 <= X5_in;
X6 <= X6_in;
X7 <= X7_in;
X8 <= X8_in;
X9 <= X9_in;
X10 <= X10_in;
X11 <= X11_in;
X12 <= X12_in;
X13 <= X13_in;
X14 <= X14_in;
X15 <= X15_in;
X16 <= X16_in;
X17 <= X17_in;
X18 <= X18_in;
X19 <= X19_in;
X20 <= X20_in;
X21 <= X21_in;
X22 <= X22_in;
X23 <= X23_in;
X24 <= X24_in;
X25 <= X25_in;
X26 <= X26_in;
X27 <= X27_in;
X28 <= X28_in;
X29 <= X29_in;
X30 <= X30_in;
X31 <= X31_in;
next <= next_in;
tm740 <= a422;
tm744 <= a423;
tm756 <= a426;
tm760 <= a427;
tm772 <= a430;
tm776 <= a431;
tm788 <= a438;
tm792 <= a439;
tm804 <= a442;
tm808 <= a443;
tm820 <= a446;
tm824 <= a447;
tm836 <= a454;
tm840 <= a455;
tm852 <= a458;
tm856 <= a459;
tm868 <= a462;
tm872 <= a463;
tm884 <= a470;
tm888 <= a471;
tm900 <= a474;
tm904 <= a475;
tm916 <= a478;
tm920 <= a479;
tm932 <= a322;
tm939 <= a326;
tm946 <= a346;
tm953 <= a350;
tm960 <= a370;
tm967 <= a374;
tm974 <= a395;
tm981 <= a399;
tm741 <= tm740;
tm745 <= tm744;
tm757 <= tm756;
tm761 <= tm760;
tm773 <= tm772;
tm777 <= tm776;
tm789 <= tm788;
tm793 <= tm792;
tm805 <= tm804;
tm809 <= tm808;
tm821 <= tm820;
tm825 <= tm824;
tm837 <= tm836;
tm841 <= tm840;
tm853 <= tm852;
tm857 <= tm856;
tm869 <= tm868;
tm873 <= tm872;
tm885 <= tm884;
tm889 <= tm888;
tm901 <= tm900;
tm905 <= tm904;
tm917 <= tm916;
tm921 <= tm920;
tm933 <= tm932;
tm940 <= tm939;
tm947 <= tm946;
tm954 <= tm953;
tm961 <= tm960;
tm968 <= tm967;
tm975 <= tm974;
tm982 <= tm981;
tm742 <= tm741;
tm746 <= tm745;
tm758 <= tm757;
tm762 <= tm761;
tm774 <= tm773;
tm778 <= tm777;
tm790 <= tm789;
tm794 <= tm793;
tm806 <= tm805;
tm810 <= tm809;
tm822 <= tm821;
tm826 <= tm825;
tm838 <= tm837;
tm842 <= tm841;
tm854 <= tm853;
tm858 <= tm857;
tm870 <= tm869;
tm874 <= tm873;
tm886 <= tm885;
tm890 <= tm889;
tm902 <= tm901;
tm906 <= tm905;
tm918 <= tm917;
tm922 <= tm921;
tm934 <= tm933;
tm941 <= tm940;
tm948 <= tm947;
tm955 <= tm954;
tm962 <= tm961;
tm969 <= tm968;
tm976 <= tm975;
tm983 <= tm982;
tm152 <= a327;
tm153 <= a329;
tm156 <= a333;
tm157 <= a335;
tm160 <= a339;
tm161 <= a341;
tm168 <= a351;
tm169 <= a353;
tm172 <= a357;
tm173 <= a359;
tm176 <= a363;
tm177 <= a365;
tm184 <= a375;
tm185 <= a377;
tm188 <= a381;
tm189 <= a383;
tm192 <= a388;
tm193 <= a390;
tm200 <= a400;
tm201 <= a402;
tm204 <= a406;
tm205 <= a408;
tm208 <= a412;
tm209 <= a414;
tm743 <= tm742;
tm747 <= tm746;
tm759 <= tm758;
tm763 <= tm762;
tm775 <= tm774;
tm779 <= tm778;
tm791 <= tm790;
tm795 <= tm794;
tm807 <= tm806;
tm811 <= tm810;
tm823 <= tm822;
tm827 <= tm826;
tm839 <= tm838;
tm843 <= tm842;
tm855 <= tm854;
tm859 <= tm858;
tm871 <= tm870;
tm875 <= tm874;
tm887 <= tm886;
tm891 <= tm890;
tm903 <= tm902;
tm907 <= tm906;
tm919 <= tm918;
tm923 <= tm922;
tm935 <= tm934;
tm942 <= tm941;
tm949 <= tm948;
tm956 <= tm955;
tm963 <= tm962;
tm970 <= tm969;
tm977 <= tm976;
tm984 <= tm983;
tm936 <= tm935;
tm943 <= tm942;
tm950 <= tm949;
tm957 <= tm956;
tm964 <= tm963;
tm971 <= tm970;
tm978 <= tm977;
tm985 <= tm984;
tm937 <= tm936;
tm944 <= tm943;
tm951 <= tm950;
tm958 <= tm957;
tm965 <= tm964;
tm972 <= tm971;
tm979 <= tm978;
tm986 <= tm985;
tm938 <= tm937;
tm945 <= tm944;
tm952 <= tm951;
tm959 <= tm958;
tm966 <= tm965;
tm973 <= tm972;
tm980 <= tm979;
tm987 <= tm986;
end
end
endmodule

// Latency: 3
// Gap: 1
module codeBlock23304(clk, reset, next_in, next_out,
X0_in, Y0,
X1_in, Y1,
X2_in, Y2,
X3_in, Y3,
X4_in, Y4,
X5_in, Y5,
X6_in, Y6,
X7_in, Y7,
X8_in, Y8,
X9_in, Y9,
X10_in, Y10,
X11_in, Y11,
X12_in, Y12,
X13_in, Y13,
X14_in, Y14,
X15_in, Y15,
X16_in, Y16,
X17_in, Y17,
X18_in, Y18,
X19_in, Y19,
X20_in, Y20,
X21_in, Y21,
X22_in, Y22,
X23_in, Y23,
X24_in, Y24,
X25_in, Y25,
X26_in, Y26,
X27_in, Y27,
X28_in, Y28,
X29_in, Y29,
X30_in, Y30,
X31_in, Y31);

output next_out;
input clk, reset, next_in;

reg next;

input [7:0] X0_in,


X1_in,
X2_in,
X3_in,
X4_in,
X5_in,
X6_in,
X7_in,
X8_in,
X9_in,
X10_in,
X11_in,
X12_in,
X13_in,
X14_in,
X15_in,
X16_in,
X17_in,
X18_in,
X19_in,
X20_in,
X21_in,
X22_in,
X23_in,
X24_in,
X25_in,
X26_in,
X27_in,
X28_in,
X29_in,
X30_in,
X31_in;

reg [7:0] X0,


X1,
X2,
X3,
X4,
X5,
X6,
X7,
X8,
X9,
X10,
X11,
X12,
X13,
X14,
X15,
X16,
X17,
X18,
X19,
X20,
X21,
X22,
X23,
X24,
X25,
X26,
X27,
X28,
X29,
X30,
X31;

output [7:0] Y0,


Y1,
Y2,
Y3,
Y4,
Y5,
Y6,
Y7,
Y8,
Y9,
Y10,
Y11,
Y12,
Y13,
Y14,
Y15,
Y16,
Y17,
Y18,
Y19,
Y20,
Y21,
Y22,
Y23,
Y24,
Y25,
Y26,
Y27,
Y28,
Y29,
Y30,
Y31;

shiftRegFIFO #(2, 1) shiftFIFO_27615(.X(next), .Y(next_out), .clk(clk));

wire signed [7:0] a65;


wire signed [7:0] a66;
wire signed [7:0] a67;
wire signed [7:0] a68;
wire signed [7:0] a73;
wire signed [7:0] a74;
wire signed [7:0] a75;
wire signed [7:0] a76;
wire signed [7:0] a81;
wire signed [7:0] a82;
wire signed [7:0] a83;
wire signed [7:0] a84;
wire signed [7:0] a89;
wire signed [7:0] a90;
wire signed [7:0] a91;
wire signed [7:0] a92;
wire signed [7:0] a97;
wire signed [7:0] a98;
wire signed [7:0] a99;
wire signed [7:0] a100;
wire signed [7:0] a105;
wire signed [7:0] a106;
wire signed [7:0] a107;
wire signed [7:0] a108;
wire signed [7:0] a113;
wire signed [7:0] a114;
wire signed [7:0] a115;
wire signed [7:0] a116;
wire signed [7:0] a121;
wire signed [7:0] a122;
wire signed [7:0] a123;
wire signed [7:0] a124;
wire signed [7:0] t402;
wire signed [7:0] t403;
wire signed [7:0] t404;
wire signed [7:0] t405;
wire signed [7:0] t406;
wire signed [7:0] t407;
wire signed [7:0] t408;
wire signed [7:0] t409;
wire signed [7:0] t418;
wire signed [7:0] t419;
wire signed [7:0] t420;
wire signed [7:0] t421;
wire signed [7:0] t422;
wire signed [7:0] t423;
wire signed [7:0] t424;
wire signed [7:0] t425;
wire signed [7:0] t434;
wire signed [7:0] t435;
wire signed [7:0] t436;
wire signed [7:0] t437;
wire signed [7:0] t438;
wire signed [7:0] t439;
wire signed [7:0] t440;
wire signed [7:0] t441;
wire signed [7:0] t450;
wire signed [7:0] t451;
wire signed [7:0] t452;
wire signed [7:0] t453;
wire signed [7:0] t454;
wire signed [7:0] t455;
wire signed [7:0] t456;
wire signed [7:0] t457;
wire signed [7:0] t410;
wire signed [7:0] t411;
wire signed [7:0] t412;
wire signed [7:0] t413;
wire signed [7:0] Y0;
wire signed [7:0] Y1;
wire signed [7:0] Y4;
wire signed [7:0] Y5;
wire signed [7:0] t414;
wire signed [7:0] t415;
wire signed [7:0] t416;
wire signed [7:0] t417;
wire signed [7:0] Y2;
wire signed [7:0] Y3;
wire signed [7:0] Y6;
wire signed [7:0] Y7;
wire signed [7:0] t426;
wire signed [7:0] t427;
wire signed [7:0] t428;
wire signed [7:0] t429;
wire signed [7:0] Y8;
wire signed [7:0] Y9;
wire signed [7:0] Y12;
wire signed [7:0] Y13;
wire signed [7:0] t430;
wire signed [7:0] t431;
wire signed [7:0] t432;
wire signed [7:0] t433;
wire signed [7:0] Y10;
wire signed [7:0] Y11;
wire signed [7:0] Y14;
wire signed [7:0] Y15;
wire signed [7:0] t442;
wire signed [7:0] t443;
wire signed [7:0] t444;
wire signed [7:0] t445;
wire signed [7:0] Y16;
wire signed [7:0] Y17;
wire signed [7:0] Y20;
wire signed [7:0] Y21;
wire signed [7:0] t446;
wire signed [7:0] t447;
wire signed [7:0] t448;
wire signed [7:0] t449;
wire signed [7:0] Y18;
wire signed [7:0] Y19;
wire signed [7:0] Y22;
wire signed [7:0] Y23;
wire signed [7:0] t458;
wire signed [7:0] t459;
wire signed [7:0] t460;
wire signed [7:0] t461;
wire signed [7:0] Y24;
wire signed [7:0] Y25;
wire signed [7:0] Y28;
wire signed [7:0] Y29;
wire signed [7:0] t462;
wire signed [7:0] t463;
wire signed [7:0] t464;
wire signed [7:0] t465;
wire signed [7:0] Y26;
wire signed [7:0] Y27;
wire signed [7:0] Y30;
wire signed [7:0] Y31;

assign a65 = X0;


assign a66 = X4;
assign a67 = X1;
assign a68 = X5;
assign a73 = X2;
assign a74 = X6;
assign a75 = X3;
assign a76 = X7;
assign a81 = X8;
assign a82 = X12;
assign a83 = X9;
assign a84 = X13;
assign a89 = X10;
assign a90 = X14;
assign a91 = X11;
assign a92 = X15;
assign a97 = X16;
assign a98 = X20;
assign a99 = X17;
assign a100 = X21;
assign a105 = X18;
assign a106 = X22;
assign a107 = X19;
assign a108 = X23;
assign a113 = X24;
assign a114 = X28;
assign a115 = X25;
assign a116 = X29;
assign a121 = X26;
assign a122 = X30;
assign a123 = X27;
assign a124 = X31;
assign Y0 = t410;
assign Y1 = t411;
assign Y4 = t412;
assign Y5 = t413;
assign Y2 = t414;
assign Y3 = t415;
assign Y6 = t416;
assign Y7 = t417;
assign Y8 = t426;
assign Y9 = t427;
assign Y12 = t428;
assign Y13 = t429;
assign Y10 = t430;
assign Y11 = t431;
assign Y14 = t432;
assign Y15 = t433;
assign Y16 = t442;
assign Y17 = t443;
assign Y20 = t444;
assign Y21 = t445;
assign Y18 = t446;
assign Y19 = t447;
assign Y22 = t448;
assign Y23 = t449;
assign Y24 = t458;
assign Y25 = t459;
assign Y28 = t460;
assign Y29 = t461;
assign Y26 = t462;
assign Y27 = t463;
assign Y30 = t464;
assign Y31 = t465;

addfxp #(8, 1) add23316(.a(a65), .b(a66), .clk(clk), .q(t402)); // 0


addfxp #(8, 1) add23331(.a(a67), .b(a68), .clk(clk), .q(t403)); // 0
subfxp #(8, 1) sub23346(.a(a65), .b(a66), .clk(clk), .q(t404)); // 0
subfxp #(8, 1) sub23361(.a(a67), .b(a68), .clk(clk), .q(t405)); // 0
addfxp #(8, 1) add23376(.a(a73), .b(a74), .clk(clk), .q(t406)); // 0
addfxp #(8, 1) add23391(.a(a75), .b(a76), .clk(clk), .q(t407)); // 0
subfxp #(8, 1) sub23406(.a(a73), .b(a74), .clk(clk), .q(t408)); // 0
subfxp #(8, 1) sub23421(.a(a75), .b(a76), .clk(clk), .q(t409)); // 0
addfxp #(8, 1) add23524(.a(a81), .b(a82), .clk(clk), .q(t418)); // 0
addfxp #(8, 1) add23539(.a(a83), .b(a84), .clk(clk), .q(t419)); // 0
subfxp #(8, 1) sub23554(.a(a81), .b(a82), .clk(clk), .q(t420)); // 0
subfxp #(8, 1) sub23569(.a(a83), .b(a84), .clk(clk), .q(t421)); // 0
addfxp #(8, 1) add23584(.a(a89), .b(a90), .clk(clk), .q(t422)); // 0
addfxp #(8, 1) add23599(.a(a91), .b(a92), .clk(clk), .q(t423)); // 0
subfxp #(8, 1) sub23614(.a(a89), .b(a90), .clk(clk), .q(t424)); // 0
subfxp #(8, 1) sub23629(.a(a91), .b(a92), .clk(clk), .q(t425)); // 0
addfxp #(8, 1) add23732(.a(a97), .b(a98), .clk(clk), .q(t434)); // 0
addfxp #(8, 1) add23747(.a(a99), .b(a100), .clk(clk), .q(t435)); // 0
subfxp #(8, 1) sub23762(.a(a97), .b(a98), .clk(clk), .q(t436)); // 0
subfxp #(8, 1) sub23777(.a(a99), .b(a100), .clk(clk), .q(t437)); // 0
addfxp #(8, 1) add23792(.a(a105), .b(a106), .clk(clk), .q(t438)); // 0
addfxp #(8, 1) add23807(.a(a107), .b(a108), .clk(clk), .q(t439)); // 0
subfxp #(8, 1) sub23822(.a(a105), .b(a106), .clk(clk), .q(t440)); // 0
subfxp #(8, 1) sub23837(.a(a107), .b(a108), .clk(clk), .q(t441)); // 0
addfxp #(8, 1) add23940(.a(a113), .b(a114), .clk(clk), .q(t450)); // 0
addfxp #(8, 1) add23955(.a(a115), .b(a116), .clk(clk), .q(t451)); // 0
subfxp #(8, 1) sub23970(.a(a113), .b(a114), .clk(clk), .q(t452)); // 0
subfxp #(8, 1) sub23985(.a(a115), .b(a116), .clk(clk), .q(t453)); // 0
addfxp #(8, 1) add24000(.a(a121), .b(a122), .clk(clk), .q(t454)); // 0
addfxp #(8, 1) add24015(.a(a123), .b(a124), .clk(clk), .q(t455)); // 0
subfxp #(8, 1) sub24030(.a(a121), .b(a122), .clk(clk), .q(t456)); // 0
subfxp #(8, 1) sub24045(.a(a123), .b(a124), .clk(clk), .q(t457)); // 0
addfxp #(8, 1) add23428(.a(t402), .b(t406), .clk(clk), .q(t410)); // 1
addfxp #(8, 1) add23435(.a(t403), .b(t407), .clk(clk), .q(t411)); // 1
subfxp #(8, 1) sub23442(.a(t402), .b(t406), .clk(clk), .q(t412)); // 1
subfxp #(8, 1) sub23449(.a(t403), .b(t407), .clk(clk), .q(t413)); // 1
addfxp #(8, 1) add23472(.a(t404), .b(t409), .clk(clk), .q(t414)); // 1
subfxp #(8, 1) sub23479(.a(t405), .b(t408), .clk(clk), .q(t415)); // 1
subfxp #(8, 1) sub23486(.a(t404), .b(t409), .clk(clk), .q(t416)); // 1
addfxp #(8, 1) add23493(.a(t405), .b(t408), .clk(clk), .q(t417)); // 1
addfxp #(8, 1) add23636(.a(t418), .b(t422), .clk(clk), .q(t426)); // 1
addfxp #(8, 1) add23643(.a(t419), .b(t423), .clk(clk), .q(t427)); // 1
subfxp #(8, 1) sub23650(.a(t418), .b(t422), .clk(clk), .q(t428)); // 1
subfxp #(8, 1) sub23657(.a(t419), .b(t423), .clk(clk), .q(t429)); // 1
addfxp #(8, 1) add23680(.a(t420), .b(t425), .clk(clk), .q(t430)); // 1
subfxp #(8, 1) sub23687(.a(t421), .b(t424), .clk(clk), .q(t431)); // 1
subfxp #(8, 1) sub23694(.a(t420), .b(t425), .clk(clk), .q(t432)); // 1
addfxp #(8, 1) add23701(.a(t421), .b(t424), .clk(clk), .q(t433)); // 1
addfxp #(8, 1) add23844(.a(t434), .b(t438), .clk(clk), .q(t442)); // 1
addfxp #(8, 1) add23851(.a(t435), .b(t439), .clk(clk), .q(t443)); // 1
subfxp #(8, 1) sub23858(.a(t434), .b(t438), .clk(clk), .q(t444)); // 1
subfxp #(8, 1) sub23865(.a(t435), .b(t439), .clk(clk), .q(t445)); // 1
addfxp #(8, 1) add23888(.a(t436), .b(t441), .clk(clk), .q(t446)); // 1
subfxp #(8, 1) sub23895(.a(t437), .b(t440), .clk(clk), .q(t447)); // 1
subfxp #(8, 1) sub23902(.a(t436), .b(t441), .clk(clk), .q(t448)); // 1
addfxp #(8, 1) add23909(.a(t437), .b(t440), .clk(clk), .q(t449)); // 1
addfxp #(8, 1) add24052(.a(t450), .b(t454), .clk(clk), .q(t458)); // 1
addfxp #(8, 1) add24059(.a(t451), .b(t455), .clk(clk), .q(t459)); // 1
subfxp #(8, 1) sub24066(.a(t450), .b(t454), .clk(clk), .q(t460)); // 1
subfxp #(8, 1) sub24073(.a(t451), .b(t455), .clk(clk), .q(t461)); // 1
addfxp #(8, 1) add24096(.a(t452), .b(t457), .clk(clk), .q(t462)); // 1
subfxp #(8, 1) sub24103(.a(t453), .b(t456), .clk(clk), .q(t463)); // 1
subfxp #(8, 1) sub24110(.a(t452), .b(t457), .clk(clk), .q(t464)); // 1
addfxp #(8, 1) add24117(.a(t453), .b(t456), .clk(clk), .q(t465)); // 1

always @(posedge clk) begin


if (reset == 1) begin
end
else begin
X0 <= X0_in;
X1 <= X1_in;
X2 <= X2_in;
X3 <= X3_in;
X4 <= X4_in;
X5 <= X5_in;
X6 <= X6_in;
X7 <= X7_in;
X8 <= X8_in;
X9 <= X9_in;
X10 <= X10_in;
X11 <= X11_in;
X12 <= X12_in;
X13 <= X13_in;
X14 <= X14_in;
X15 <= X15_in;
X16 <= X16_in;
X17 <= X17_in;
X18 <= X18_in;
X19 <= X19_in;
X20 <= X20_in;
X21 <= X21_in;
X22 <= X22_in;
X23 <= X23_in;
X24 <= X24_in;
X25 <= X25_in;
X26 <= X26_in;
X27 <= X27_in;
X28 <= X28_in;
X29 <= X29_in;
X30 <= X30_in;
X31 <= X31_in;
next <= next_in;
end
end
endmodule

// Latency: 39
// Gap: 16
module rc24142(clk, reset, next, next_out,
X0, Y0,
X1, Y1,
X2, Y2,
X3, Y3,
X4, Y4,
X5, Y5,
X6, Y6,
X7, Y7,
X8, Y8,
X9, Y9,
X10, Y10,
X11, Y11,
X12, Y12,
X13, Y13,
X14, Y14,
X15, Y15,
X16, Y16,
X17, Y17,
X18, Y18,
X19, Y19,
X20, Y20,
X21, Y21,
X22, Y22,
X23, Y23,
X24, Y24,
X25, Y25,
X26, Y26,
X27, Y27,
X28, Y28,
X29, Y29,
X30, Y30,
X31, Y31);

output next_out;
input clk, reset, next;

input [7:0] X0,


X1,
X2,
X3,
X4,
X5,
X6,
X7,
X8,
X9,
X10,
X11,
X12,
X13,
X14,
X15,
X16,
X17,
X18,
X19,
X20,
X21,
X22,
X23,
X24,
X25,
X26,
X27,
X28,
X29,
X30,
X31;

output [7:0] Y0,


Y1,
Y2,
Y3,
Y4,
Y5,
Y6,
Y7,
Y8,
Y9,
Y10,
Y11,
Y12,
Y13,
Y14,
Y15,
Y16,
Y17,
Y18,
Y19,
Y20,
Y21,
Y22,
Y23,
Y24,
Y25,
Y26,
Y27,
Y28,
Y29,
Y30,
Y31;

wire [15:0] t0;


wire [15:0] s0;
assign t0 = {X0, X1};
wire [15:0] t1;
wire [15:0] s1;
assign t1 = {X2, X3};
wire [15:0] t2;
wire [15:0] s2;
assign t2 = {X4, X5};
wire [15:0] t3;
wire [15:0] s3;
assign t3 = {X6, X7};
wire [15:0] t4;
wire [15:0] s4;
assign t4 = {X8, X9};
wire [15:0] t5;
wire [15:0] s5;
assign t5 = {X10, X11};
wire [15:0] t6;
wire [15:0] s6;
assign t6 = {X12, X13};
wire [15:0] t7;
wire [15:0] s7;
assign t7 = {X14, X15};
wire [15:0] t8;
wire [15:0] s8;
assign t8 = {X16, X17};
wire [15:0] t9;
wire [15:0] s9;
assign t9 = {X18, X19};
wire [15:0] t10;
wire [15:0] s10;
assign t10 = {X20, X21};
wire [15:0] t11;
wire [15:0] s11;
assign t11 = {X22, X23};
wire [15:0] t12;
wire [15:0] s12;
assign t12 = {X24, X25};
wire [15:0] t13;
wire [15:0] s13;
assign t13 = {X26, X27};
wire [15:0] t14;
wire [15:0] s14;
assign t14 = {X28, X29};
wire [15:0] t15;
wire [15:0] s15;
assign t15 = {X30, X31};
assign Y0 = s0[15:8];
assign Y1 = s0[7:0];
assign Y2 = s1[15:8];
assign Y3 = s1[7:0];
assign Y4 = s2[15:8];
assign Y5 = s2[7:0];
assign Y6 = s3[15:8];
assign Y7 = s3[7:0];
assign Y8 = s4[15:8];
assign Y9 = s4[7:0];
assign Y10 = s5[15:8];
assign Y11 = s5[7:0];
assign Y12 = s6[15:8];
assign Y13 = s6[7:0];
assign Y14 = s7[15:8];
assign Y15 = s7[7:0];
assign Y16 = s8[15:8];
assign Y17 = s8[7:0];
assign Y18 = s9[15:8];
assign Y19 = s9[7:0];
assign Y20 = s10[15:8];
assign Y21 = s10[7:0];
assign Y22 = s11[15:8];
assign Y23 = s11[7:0];
assign Y24 = s12[15:8];
assign Y25 = s12[7:0];
assign Y26 = s13[15:8];
assign Y27 = s13[7:0];
assign Y28 = s14[15:8];
assign Y29 = s14[7:0];
assign Y30 = s15[15:8];
assign Y31 = s15[7:0];

perm24140 instPerm27616(.x0(t0), .y0(s0),


.x1(t1), .y1(s1),
.x2(t2), .y2(s2),
.x3(t3), .y3(s3),
.x4(t4), .y4(s4),
.x5(t5), .y5(s5),
.x6(t6), .y6(s6),
.x7(t7), .y7(s7),
.x8(t8), .y8(s8),
.x9(t9), .y9(s9),
.x10(t10), .y10(s10),
.x11(t11), .y11(s11),
.x12(t12), .y12(s12),
.x13(t13), .y13(s13),
.x14(t14), .y14(s14),
.x15(t15), .y15(s15),
.clk(clk), .next(next), .next_out(next_out), .reset(reset)
);

endmodule

module swNet24140(itr, clk, ct


, x0, y0
, x1, y1
, x2, y2
, x3, y3
, x4, y4
, x5, y5
, x6, y6
, x7, y7
, x8, y8
, x9, y9
, x10, y10
, x11, y11
, x12, y12
, x13, y13
, x14, y14
, x15, y15
);

parameter width = 16;

input [3:0] ct;


input clk;
input [0:0] itr;
input [width-1:0] x0;
output reg [width-1:0] y0;
input [width-1:0] x1;
output reg [width-1:0] y1;
input [width-1:0] x2;
output reg [width-1:0] y2;
input [width-1:0] x3;
output reg [width-1:0] y3;
input [width-1:0] x4;
output reg [width-1:0] y4;
input [width-1:0] x5;
output reg [width-1:0] y5;
input [width-1:0] x6;
output reg [width-1:0] y6;
input [width-1:0] x7;
output reg [width-1:0] y7;
input [width-1:0] x8;
output reg [width-1:0] y8;
input [width-1:0] x9;
output reg [width-1:0] y9;
input [width-1:0] x10;
output reg [width-1:0] y10;
input [width-1:0] x11;
output reg [width-1:0] y11;
input [width-1:0] x12;
output reg [width-1:0] y12;
input [width-1:0] x13;
output reg [width-1:0] y13;
input [width-1:0] x14;
output reg [width-1:0] y14;
input [width-1:0] x15;
output reg [width-1:0] y15;
wire [width-1:0] t0_0, t0_1, t0_2, t0_3, t0_4, t0_5, t0_6, t0_7, t0_8, t0_9,
t0_10, t0_11, t0_12, t0_13, t0_14, t0_15;
wire [width-1:0] t1_0, t1_1, t1_2, t1_3, t1_4, t1_5, t1_6, t1_7, t1_8, t1_9,
t1_10, t1_11, t1_12, t1_13, t1_14, t1_15;
wire [width-1:0] t2_0, t2_1, t2_2, t2_3, t2_4, t2_5, t2_6, t2_7, t2_8, t2_9,
t2_10, t2_11, t2_12, t2_13, t2_14, t2_15;
reg [width-1:0] t3_0, t3_1, t3_2, t3_3, t3_4, t3_5, t3_6, t3_7, t3_8, t3_9,
t3_10, t3_11, t3_12, t3_13, t3_14, t3_15;
wire [width-1:0] t4_0, t4_1, t4_2, t4_3, t4_4, t4_5, t4_6, t4_7, t4_8, t4_9,
t4_10, t4_11, t4_12, t4_13, t4_14, t4_15;
wire [width-1:0] t5_0, t5_1, t5_2, t5_3, t5_4, t5_5, t5_6, t5_7, t5_8, t5_9,
t5_10, t5_11, t5_12, t5_13, t5_14, t5_15;
wire [width-1:0] t6_0, t6_1, t6_2, t6_3, t6_4, t6_5, t6_6, t6_7, t6_8, t6_9,
t6_10, t6_11, t6_12, t6_13, t6_14, t6_15;
reg [width-1:0] t7_0, t7_1, t7_2, t7_3, t7_4, t7_5, t7_6, t7_7, t7_8, t7_9,
t7_10, t7_11, t7_12, t7_13, t7_14, t7_15;
wire [width-1:0] t8_0, t8_1, t8_2, t8_3, t8_4, t8_5, t8_6, t8_7, t8_8, t8_9,
t8_10, t8_11, t8_12, t8_13, t8_14, t8_15;
wire [width-1:0] t9_0, t9_1, t9_2, t9_3, t9_4, t9_5, t9_6, t9_7, t9_8, t9_9,
t9_10, t9_11, t9_12, t9_13, t9_14, t9_15;
wire [width-1:0] t10_0, t10_1, t10_2, t10_3, t10_4, t10_5, t10_6, t10_7, t10_8,
t10_9, t10_10, t10_11, t10_12, t10_13, t10_14, t10_15;
reg [width-1:0] t11_0, t11_1, t11_2, t11_3, t11_4, t11_5, t11_6, t11_7, t11_8,
t11_9, t11_10, t11_11, t11_12, t11_13, t11_14, t11_15;
wire [width-1:0] t12_0, t12_1, t12_2, t12_3, t12_4, t12_5, t12_6, t12_7, t12_8,
t12_9, t12_10, t12_11, t12_12, t12_13, t12_14, t12_15;
reg [width-1:0] t13_0, t13_1, t13_2, t13_3, t13_4, t13_5, t13_6, t13_7, t13_8,
t13_9, t13_10, t13_11, t13_12, t13_13, t13_14, t13_15;

reg [15:0] control;

always @(posedge clk) begin


case(ct)
4'd0: control <= 16'b1100110011001100;
4'd1: control <= 16'b1100110011001100;
4'd2: control <= 16'b1100110011001100;
4'd3: control <= 16'b1100110011001100;
4'd4: control <= 16'b0011001111001100;
4'd5: control <= 16'b0011001111001100;
4'd6: control <= 16'b0011001111001100;
4'd7: control <= 16'b0011001111001100;
4'd8: control <= 16'b1100110000110011;
4'd9: control <= 16'b1100110000110011;
4'd10: control <= 16'b1100110000110011;
4'd11: control <= 16'b1100110000110011;
4'd12: control <= 16'b0011001100110011;
4'd13: control <= 16'b0011001100110011;
4'd14: control <= 16'b0011001100110011;
4'd15: control <= 16'b0011001100110011;
endcase
end

// synthesis attribute rom_style of control is "distributed"


reg [15:0] control0;
reg [15:0] control1;
reg [15:0] control2;
reg [15:0] control3;
always @(posedge clk) begin
control0 <= control;
control1 <= control0;
control2 <= control1;
control3 <= control2;
end
assign t0_0 = x0;
assign t0_1 = x8;
assign t0_2 = x1;
assign t0_3 = x9;
assign t0_4 = x2;
assign t0_5 = x10;
assign t0_6 = x3;
assign t0_7 = x11;
assign t0_8 = x4;
assign t0_9 = x12;
assign t0_10 = x5;
assign t0_11 = x13;
assign t0_12 = x6;
assign t0_13 = x14;
assign t0_14 = x7;
assign t0_15 = x15;
assign t1_0 = t0_0;
assign t1_1 = t0_1;
assign t1_2 = t0_2;
assign t1_3 = t0_3;
assign t1_4 = t0_5;
assign t1_5 = t0_4;
assign t1_6 = t0_7;
assign t1_7 = t0_6;
assign t1_8 = t0_8;
assign t1_9 = t0_9;
assign t1_10 = t0_10;
assign t1_11 = t0_11;
assign t1_12 = t0_13;
assign t1_13 = t0_12;
assign t1_14 = t0_15;
assign t1_15 = t0_14;
assign t2_0 = t1_0;
assign t2_1 = t1_8;
assign t2_2 = t1_1;
assign t2_3 = t1_9;
assign t2_4 = t1_2;
assign t2_5 = t1_10;
assign t2_6 = t1_3;
assign t2_7 = t1_11;
assign t2_8 = t1_4;
assign t2_9 = t1_12;
assign t2_10 = t1_5;
assign t2_11 = t1_13;
assign t2_12 = t1_6;
assign t2_13 = t1_14;
assign t2_14 = t1_7;
assign t2_15 = t1_15;
always @(posedge clk) begin
t3_0 <= t2_0;
t3_1 <= t2_1;
t3_2 <= t2_2;
t3_3 <= t2_3;
t3_4 <= t2_5;
t3_5 <= t2_4;
t3_6 <= t2_7;
t3_7 <= t2_6;
t3_8 <= t2_8;
t3_9 <= t2_9;
t3_10 <= t2_10;
t3_11 <= t2_11;
t3_12 <= t2_13;
t3_13 <= t2_12;
t3_14 <= t2_15;
t3_15 <= t2_14;
end
assign t4_0 = t3_0;
assign t4_1 = t3_8;
assign t4_2 = t3_1;
assign t4_3 = t3_9;
assign t4_4 = t3_2;
assign t4_5 = t3_10;
assign t4_6 = t3_3;
assign t4_7 = t3_11;
assign t4_8 = t3_4;
assign t4_9 = t3_12;
assign t4_10 = t3_5;
assign t4_11 = t3_13;
assign t4_12 = t3_6;
assign t4_13 = t3_14;
assign t4_14 = t3_7;
assign t4_15 = t3_15;
assign t5_0 = t4_0;
assign t5_1 = t4_1;
assign t5_2 = t4_2;
assign t5_3 = t4_3;
assign t5_4 = t4_4;
assign t5_5 = t4_5;
assign t5_6 = t4_6;
assign t5_7 = t4_7;
assign t5_8 = t4_8;
assign t5_9 = t4_9;
assign t5_10 = t4_10;
assign t5_11 = t4_11;
assign t5_12 = t4_12;
assign t5_13 = t4_13;
assign t5_14 = t4_14;
assign t5_15 = t4_15;
assign t6_0 = t5_0;
assign t6_1 = t5_8;
assign t6_2 = t5_1;
assign t6_3 = t5_9;
assign t6_4 = t5_2;
assign t6_5 = t5_10;
assign t6_6 = t5_3;
assign t6_7 = t5_11;
assign t6_8 = t5_4;
assign t6_9 = t5_12;
assign t6_10 = t5_5;
assign t6_11 = t5_13;
assign t6_12 = t5_6;
assign t6_13 = t5_14;
assign t6_14 = t5_7;
assign t6_15 = t5_15;
always @(posedge clk) begin
t7_0 <= t6_0;
t7_1 <= t6_1;
t7_2 <= t6_2;
t7_3 <= t6_3;
t7_4 <= t6_5;
t7_5 <= t6_4;
t7_6 <= t6_7;
t7_7 <= t6_6;
t7_8 <= t6_8;
t7_9 <= t6_9;
t7_10 <= t6_10;
t7_11 <= t6_11;
t7_12 <= t6_13;
t7_13 <= t6_12;
t7_14 <= t6_15;
t7_15 <= t6_14;
end
assign t8_0 = t7_0;
assign t8_1 = t7_2;
assign t8_2 = t7_4;
assign t8_3 = t7_6;
assign t8_4 = t7_8;
assign t8_5 = t7_10;
assign t8_6 = t7_12;
assign t8_7 = t7_14;
assign t8_8 = t7_1;
assign t8_9 = t7_3;
assign t8_10 = t7_5;
assign t8_11 = t7_7;
assign t8_12 = t7_9;
assign t8_13 = t7_11;
assign t8_14 = t7_13;
assign t8_15 = t7_15;
assign t9_0 = t8_0;
assign t9_1 = t8_1;
assign t9_2 = t8_2;
assign t9_3 = t8_3;
assign t9_4 = t8_5;
assign t9_5 = t8_4;
assign t9_6 = t8_7;
assign t9_7 = t8_6;
assign t9_8 = t8_8;
assign t9_9 = t8_9;
assign t9_10 = t8_10;
assign t9_11 = t8_11;
assign t9_12 = t8_13;
assign t9_13 = t8_12;
assign t9_14 = t8_15;
assign t9_15 = t8_14;
assign t10_0 = t9_0;
assign t10_1 = t9_2;
assign t10_2 = t9_4;
assign t10_3 = t9_6;
assign t10_4 = t9_8;
assign t10_5 = t9_10;
assign t10_6 = t9_12;
assign t10_7 = t9_14;
assign t10_8 = t9_1;
assign t10_9 = t9_3;
assign t10_10 = t9_5;
assign t10_11 = t9_7;
assign t10_12 = t9_9;
assign t10_13 = t9_11;
assign t10_14 = t9_13;
assign t10_15 = t9_15;
always @(posedge clk) begin
t11_0 <= (control2[15] == 0) ? t10_0 : t10_1;
t11_1 <= (control2[15] == 0) ? t10_1 : t10_0;
t11_2 <= (control2[14] == 0) ? t10_2 : t10_3;
t11_3 <= (control2[14] == 0) ? t10_3 : t10_2;
t11_4 <= (control2[13] == 0) ? t10_4 : t10_5;
t11_5 <= (control2[13] == 0) ? t10_5 : t10_4;
t11_6 <= (control2[12] == 0) ? t10_6 : t10_7;
t11_7 <= (control2[12] == 0) ? t10_7 : t10_6;
t11_8 <= (control2[11] == 0) ? t10_8 : t10_9;
t11_9 <= (control2[11] == 0) ? t10_9 : t10_8;
t11_10 <= (control2[10] == 0) ? t10_10 : t10_11;
t11_11 <= (control2[10] == 0) ? t10_11 : t10_10;
t11_12 <= (control2[9] == 0) ? t10_12 : t10_13;
t11_13 <= (control2[9] == 0) ? t10_13 : t10_12;
t11_14 <= (control2[8] == 0) ? t10_14 : t10_15;
t11_15 <= (control2[8] == 0) ? t10_15 : t10_14;
end
assign t12_0 = t11_0;
assign t12_1 = t11_2;
assign t12_2 = t11_4;
assign t12_3 = t11_6;
assign t12_4 = t11_8;
assign t12_5 = t11_10;
assign t12_6 = t11_12;
assign t12_7 = t11_14;
assign t12_8 = t11_1;
assign t12_9 = t11_3;
assign t12_10 = t11_5;
assign t12_11 = t11_7;
assign t12_12 = t11_9;
assign t12_13 = t11_11;
assign t12_14 = t11_13;
assign t12_15 = t11_15;
always @(posedge clk) begin
t13_0 <= (control3[7] == 0) ? t12_0 : t12_1;
t13_1 <= (control3[7] == 0) ? t12_1 : t12_0;
t13_2 <= (control3[6] == 0) ? t12_2 : t12_3;
t13_3 <= (control3[6] == 0) ? t12_3 : t12_2;
t13_4 <= (control3[5] == 0) ? t12_4 : t12_5;
t13_5 <= (control3[5] == 0) ? t12_5 : t12_4;
t13_6 <= (control3[4] == 0) ? t12_6 : t12_7;
t13_7 <= (control3[4] == 0) ? t12_7 : t12_6;
t13_8 <= (control3[3] == 0) ? t12_8 : t12_9;
t13_9 <= (control3[3] == 0) ? t12_9 : t12_8;
t13_10 <= (control3[2] == 0) ? t12_10 : t12_11;
t13_11 <= (control3[2] == 0) ? t12_11 : t12_10;
t13_12 <= (control3[1] == 0) ? t12_12 : t12_13;
t13_13 <= (control3[1] == 0) ? t12_13 : t12_12;
t13_14 <= (control3[0] == 0) ? t12_14 : t12_15;
t13_15 <= (control3[0] == 0) ? t12_15 : t12_14;
end
always @(posedge clk) begin
y0 <= t13_0;
y1 <= t13_2;
y2 <= t13_4;
y3 <= t13_6;
y4 <= t13_8;
y5 <= t13_10;
y6 <= t13_12;
y7 <= t13_14;
y8 <= t13_1;
y9 <= t13_3;
y10 <= t13_5;
y11 <= t13_7;
y12 <= t13_9;
y13 <= t13_11;
y14 <= t13_13;
y15 <= t13_15;
end
endmodule

// Latency: 39
// Gap: 16
module perm24140(clk, next, reset, next_out,
x0, y0,
x1, y1,
x2, y2,
x3, y3,
x4, y4,
x5, y5,
x6, y6,
x7, y7,
x8, y8,
x9, y9,
x10, y10,
x11, y11,
x12, y12,
x13, y13,
x14, y14,
x15, y15);
parameter width = 16;

parameter depth = 16;

parameter addrbits = 4;

parameter muxbits = 4;

input [width-1:0] x0;


output [width-1:0] y0;
wire [width-1:0] t0;
wire [width-1:0] s0;
input [width-1:0] x1;
output [width-1:0] y1;
wire [width-1:0] t1;
wire [width-1:0] s1;
input [width-1:0] x2;
output [width-1:0] y2;
wire [width-1:0] t2;
wire [width-1:0] s2;
input [width-1:0] x3;
output [width-1:0] y3;
wire [width-1:0] t3;
wire [width-1:0] s3;
input [width-1:0] x4;
output [width-1:0] y4;
wire [width-1:0] t4;
wire [width-1:0] s4;
input [width-1:0] x5;
output [width-1:0] y5;
wire [width-1:0] t5;
wire [width-1:0] s5;
input [width-1:0] x6;
output [width-1:0] y6;
wire [width-1:0] t6;
wire [width-1:0] s6;
input [width-1:0] x7;
output [width-1:0] y7;
wire [width-1:0] t7;
wire [width-1:0] s7;
input [width-1:0] x8;
output [width-1:0] y8;
wire [width-1:0] t8;
wire [width-1:0] s8;
input [width-1:0] x9;
output [width-1:0] y9;
wire [width-1:0] t9;
wire [width-1:0] s9;
input [width-1:0] x10;
output [width-1:0] y10;
wire [width-1:0] t10;
wire [width-1:0] s10;
input [width-1:0] x11;
output [width-1:0] y11;
wire [width-1:0] t11;
wire [width-1:0] s11;
input [width-1:0] x12;
output [width-1:0] y12;
wire [width-1:0] t12;
wire [width-1:0] s12;
input [width-1:0] x13;
output [width-1:0] y13;
wire [width-1:0] t13;
wire [width-1:0] s13;
input [width-1:0] x14;
output [width-1:0] y14;
wire [width-1:0] t14;
wire [width-1:0] s14;
input [width-1:0] x15;
output [width-1:0] y15;
wire [width-1:0] t15;
wire [width-1:0] s15;
input next, reset, clk;
output next_out;
reg [addrbits-1:0] s1rdloc, s2rdloc;

reg [addrbits-1:0] s1wr0;


reg [addrbits-1:0] s1rd0, s2wr0, s2rd0;
reg [addrbits-1:0] s1rd1, s2wr1, s2rd1;
reg [addrbits-1:0] s1rd2, s2wr2, s2rd2;
reg [addrbits-1:0] s1rd3, s2wr3, s2rd3;
reg [addrbits-1:0] s1rd4, s2wr4, s2rd4;
reg [addrbits-1:0] s1rd5, s2wr5, s2rd5;
reg [addrbits-1:0] s1rd6, s2wr6, s2rd6;
reg [addrbits-1:0] s1rd7, s2wr7, s2rd7;
reg [addrbits-1:0] s1rd8, s2wr8, s2rd8;
reg [addrbits-1:0] s1rd9, s2wr9, s2rd9;
reg [addrbits-1:0] s1rd10, s2wr10, s2rd10;
reg [addrbits-1:0] s1rd11, s2wr11, s2rd11;
reg [addrbits-1:0] s1rd12, s2wr12, s2rd12;
reg [addrbits-1:0] s1rd13, s2wr13, s2rd13;
reg [addrbits-1:0] s1rd14, s2wr14, s2rd14;
reg [addrbits-1:0] s1rd15, s2wr15, s2rd15;
reg s1wr_en, state1, state2, state3;
wire next2, next3, next4;
reg inFlip0, outFlip0_z, outFlip1;
wire inFlip1, outFlip0;

wire [0:0] tm83;


assign tm83 = 0;

shiftRegFIFO #(6, 1) shiftFIFO_27621(.X(outFlip0), .Y(inFlip1), .clk(clk));


shiftRegFIFO #(1, 1) shiftFIFO_27622(.X(outFlip0_z), .Y(outFlip0), .clk(clk));
// shiftRegFIFO #(2, 1) inFlip1Reg(outFlip0, inFlip1, clk);
// shiftRegFIFO #(1, 1) outFlip0Reg(outFlip0_z, outFlip0, clk);

memMod_dist #(depth*2, width, addrbits+1) s1mem0(x0, t0, {inFlip0, s1wr0},


{outFlip0, s1rd0}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem1(x1, t1, {inFlip0, s1wr0},
{outFlip0, s1rd1}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem2(x2, t2, {inFlip0, s1wr0},
{outFlip0, s1rd2}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem3(x3, t3, {inFlip0, s1wr0},
{outFlip0, s1rd3}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem4(x4, t4, {inFlip0, s1wr0},
{outFlip0, s1rd4}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem5(x5, t5, {inFlip0, s1wr0},
{outFlip0, s1rd5}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem6(x6, t6, {inFlip0, s1wr0},
{outFlip0, s1rd6}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem7(x7, t7, {inFlip0, s1wr0},
{outFlip0, s1rd7}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem8(x8, t8, {inFlip0, s1wr0},
{outFlip0, s1rd8}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem9(x9, t9, {inFlip0, s1wr0},
{outFlip0, s1rd9}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem10(x10, t10, {inFlip0, s1wr0},
{outFlip0, s1rd10}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem11(x11, t11, {inFlip0, s1wr0},
{outFlip0, s1rd11}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem12(x12, t12, {inFlip0, s1wr0},
{outFlip0, s1rd12}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem13(x13, t13, {inFlip0, s1wr0},
{outFlip0, s1rd13}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem14(x14, t14, {inFlip0, s1wr0},
{outFlip0, s1rd14}, s1wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s1mem15(x15, t15, {inFlip0, s1wr0},
{outFlip0, s1rd15}, s1wr_en, clk);

nextReg #(15, 4) nextReg_27633(.X(next), .Y(next2), .reset(reset), .clk(clk));


shiftRegFIFO #(7, 1) shiftFIFO_27634(.X(next2), .Y(next3), .clk(clk));
nextReg #(16, 4) nextReg_27637(.X(next3), .Y(next4), .reset(reset), .clk(clk));
shiftRegFIFO #(1, 1) shiftFIFO_27638(.X(next4), .Y(next_out), .clk(clk));
shiftRegFIFO #(15, 1) shiftFIFO_27641(.X(tm83), .Y(tm83_d), .clk(clk));
shiftRegFIFO #(6, 1) shiftFIFO_27644(.X(tm83_d), .Y(tm83_dd), .clk(clk));

wire [addrbits-1:0] muxCycle, writeCycle;


assign muxCycle = s1rdloc;
shiftRegFIFO #(6, 4) shiftFIFO_27649(.X(muxCycle), .Y(writeCycle), .clk(clk));

wire readInt, s2wr_en;


assign readInt = (state2 == 1);
shiftRegFIFO #(7, 1) writeIntReg(readInt, s2wr_en, clk);

memMod_dist #(depth*2, width, addrbits+1) s2mem0(s0, y0, {inFlip1, s2wr0},


{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem1(s1, y1, {inFlip1, s2wr1},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem2(s2, y2, {inFlip1, s2wr2},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem3(s3, y3, {inFlip1, s2wr3},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem4(s4, y4, {inFlip1, s2wr4},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem5(s5, y5, {inFlip1, s2wr5},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem6(s6, y6, {inFlip1, s2wr6},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem7(s7, y7, {inFlip1, s2wr7},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem8(s8, y8, {inFlip1, s2wr8},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem9(s9, y9, {inFlip1, s2wr9},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem10(s10, y10, {inFlip1, s2wr10},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem11(s11, y11, {inFlip1, s2wr11},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem12(s12, y12, {inFlip1, s2wr12},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem13(s13, y13, {inFlip1, s2wr13},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem14(s14, y14, {inFlip1, s2wr14},
{outFlip1, s2rdloc}, s2wr_en, clk);
memMod_dist #(depth*2, width, addrbits+1) s2mem15(s15, y15, {inFlip1, s2wr15},
{outFlip1, s2rdloc}, s2wr_en, clk);
always @(posedge clk) begin
if (reset == 1) begin
state1 <= 0;
inFlip0 <= 0;
s1wr0 <= 0;
end
else if (next == 1) begin
s1wr0 <= 0;
state1 <= 1;
s1wr_en <= 1;
inFlip0 <= (s1wr0 == depth-1) ? ~inFlip0 : inFlip0;
end
else begin
case(state1)
0: begin
s1wr0 <= 0;
state1 <= 0;
s1wr_en <= 0;
inFlip0 <= inFlip0;
end
1: begin
s1wr0 <= (s1wr0 == depth-1) ? 0 : s1wr0 + 1;
state1 <= 1;
s1wr_en <= 1;
inFlip0 <= (s1wr0 == depth-1) ? ~inFlip0 : inFlip0;
end
endcase
end
end

always @(posedge clk) begin


if (reset == 1) begin
state2 <= 0;
outFlip0_z <= 0;
end
else if (next2 == 1) begin
s1rdloc <= 0;
state2 <= 1;
outFlip0_z <= (s1rdloc == depth-1) ? ~outFlip0_z : outFlip0_z;
end
else begin
case(state2)
0: begin
s1rdloc <= 0;
state2 <= 0;
outFlip0_z <= outFlip0_z;
end
1: begin
s1rdloc <= (s1rdloc == depth-1) ? 0 : s1rdloc + 1;
state2 <= 1;
outFlip0_z <= (s1rdloc == depth-1) ? ~outFlip0_z : outFlip0_z;
end
endcase
end
end

always @(posedge clk) begin


if (reset == 1) begin
state3 <= 0;
outFlip1 <= 0;
end
else if (next4 == 1) begin
s2rdloc <= 0;
state3 <= 1;
outFlip1 <= (s2rdloc == depth-1) ? ~outFlip1 : outFlip1;
end
else begin
case(state3)
0: begin
s2rdloc <= 0;
state3 <= 0;
outFlip1 <= outFlip1;
end
1: begin
s2rdloc <= (s2rdloc == depth-1) ? 0 : s2rdloc + 1;
state3 <= 1;
outFlip1 <= (s2rdloc == depth-1) ? ~outFlip1 : outFlip1;
end
endcase
end
end
always @(posedge clk) begin
case({tm83_d, s1rdloc})
{1'd0, 4'd0}: s1rd0 <= 3;
{1'd0, 4'd1}: s1rd0 <= 7;
{1'd0, 4'd2}: s1rd0 <= 11;
{1'd0, 4'd3}: s1rd0 <= 15;
{1'd0, 4'd4}: s1rd0 <= 2;
{1'd0, 4'd5}: s1rd0 <= 6;
{1'd0, 4'd6}: s1rd0 <= 10;
{1'd0, 4'd7}: s1rd0 <= 14;
{1'd0, 4'd8}: s1rd0 <= 1;
{1'd0, 4'd9}: s1rd0 <= 5;
{1'd0, 4'd10}: s1rd0 <= 9;
{1'd0, 4'd11}: s1rd0 <= 13;
{1'd0, 4'd12}: s1rd0 <= 0;
{1'd0, 4'd13}: s1rd0 <= 4;
{1'd0, 4'd14}: s1rd0 <= 8;
{1'd0, 4'd15}: s1rd0 <= 12;
endcase
end

// synthesis attribute rom_style of s1rd0 is "block"


always @(posedge clk) begin
case({tm83_d, s1rdloc})
{1'd0, 4'd0}: s1rd1 <= 2;
{1'd0, 4'd1}: s1rd1 <= 6;
{1'd0, 4'd2}: s1rd1 <= 10;
{1'd0, 4'd3}: s1rd1 <= 14;
{1'd0, 4'd4}: s1rd1 <= 3;
{1'd0, 4'd5}: s1rd1 <= 7;
{1'd0, 4'd6}: s1rd1 <= 11;
{1'd0, 4'd7}: s1rd1 <= 15;
{1'd0, 4'd8}: s1rd1 <= 0;
{1'd0, 4'd9}: s1rd1 <= 4;
{1'd0, 4'd10}: s1rd1 <= 8;
{1'd0, 4'd11}: s1rd1 <= 12;
{1'd0, 4'd12}: s1rd1 <= 1;
{1'd0, 4'd13}: s1rd1 <= 5;
{1'd0, 4'd14}: s1rd1 <= 9;
{1'd0, 4'd15}: s1rd1 <= 13;
endcase
end

// synthesis attribute rom_style of s1rd1 is "block"


always @(posedge clk) begin
case({tm83_d, s1rdloc})
{1'd0, 4'd0}: s1rd2 <= 1;
{1'd0, 4'd1}: s1rd2 <= 5;
{1'd0, 4'd2}: s1rd2 <= 9;
{1'd0, 4'd3}: s1rd2 <= 13;
{1'd0, 4'd4}: s1rd2 <= 0;
{1'd0, 4'd5}: s1rd2 <= 4;
{1'd0, 4'd6}: s1rd2 <= 8;
{1'd0, 4'd7}: s1rd2 <= 12;
{1'd0, 4'd8}: s1rd2 <= 3;
{1'd0, 4'd9}: s1rd2 <= 7;
{1'd0, 4'd10}: s1rd2 <= 11;
{1'd0, 4'd11}: s1rd2 <= 15;
{1'd0, 4'd12}: s1rd2 <= 2;
{1'd0, 4'd13}: s1rd2 <= 6;
{1'd0, 4'd14}: s1rd2 <= 10;
{1'd0, 4'd15}: s1rd2 <= 14;
endcase
end

// synthesis attribute rom_style of s1rd2 is "block"


always @(posedge clk) begin
case({tm83_d, s1rdloc})
{1'd0, 4'd0}: s1rd3 <= 0;
{1'd0, 4'd1}: s1rd3 <= 4;
{1'd0, 4'd2}: s1rd3 <= 8;
{1'd0, 4'd3}: s1rd3 <= 12;
{1'd0, 4'd4}: s1rd3 <= 1;
{1'd0, 4'd5}: s1rd3 <= 5;
{1'd0, 4'd6}: s1rd3 <= 9;
{1'd0, 4'd7}: s1rd3 <= 13;
{1'd0, 4'd8}: s1rd3 <= 2;
{1'd0, 4'd9}: s1rd3 <= 6;
{1'd0, 4'd10}: s1rd3 <= 10;
{1'd0, 4'd11}: s1rd3 <= 14;
{1'd0, 4'd12}: s1rd3 <= 3;
{1'd0, 4'd13}: s1rd3 <= 7;
{1'd0, 4'd14}: s1rd3 <= 11;
{1'd0, 4'd15}: s1rd3 <= 15;
endcase
end

// synthesis attribute rom_style of s1rd3 is "block"


always @(posedge clk) begin
case({tm83_d, s1rdloc})
{1'd0, 4'd0}: s1rd4 <= 3;
{1'd0, 4'd1}: s1rd4 <= 7;
{1'd0, 4'd2}: s1rd4 <= 11;
{1'd0, 4'd3}: s1rd4 <= 15;
{1'd0, 4'd4}: s1rd4 <= 2;
{1'd0, 4'd5}: s1rd4 <= 6;
{1'd0, 4'd6}: s1rd4 <= 10;
{1'd0, 4'd7}: s1rd4 <= 14;
{1'd0, 4'd8}: s1rd4 <= 1;
{1'd0, 4'd9}: s1rd4 <= 5;
{1'd0, 4'd10}: s1rd4 <= 9;
{1'd0, 4'd11}: s1rd4 <= 13;
{1'd0, 4'd12}: s1rd4 <= 0;
{1'd0, 4'd13}: s1rd4 <= 4;
{1'd0, 4'd14}: s1rd4 <= 8;
{1'd0, 4'd15}: s1rd4 <= 12;
endcase
end

// synthesis attribute rom_style of s1rd4 is "block"


always @(posedge clk) begin
case({tm83_d, s1rdloc})
{1'd0, 4'd0}: s1rd5 <= 2;
{1'd0, 4'd1}: s1rd5 <= 6;
{1'd0, 4'd2}: s1rd5 <= 10;
{1'd0, 4'd3}: s1rd5 <= 14;
{1'd0, 4'd4}: s1rd5 <= 3;
{1'd0, 4'd5}: s1rd5 <= 7;
{1'd0, 4'd6}: s1rd5 <= 11;
{1'd0, 4'd7}: s1rd5 <= 15;
{1'd0, 4'd8}: s1rd5 <= 0;
{1'd0, 4'd9}: s1rd5 <= 4;
{1'd0, 4'd10}: s1rd5 <= 8;
{1'd0, 4'd11}: s1rd5 <= 12;
{1'd0, 4'd12}: s1rd5 <= 1;
{1'd0, 4'd13}: s1rd5 <= 5;
{1'd0, 4'd14}: s1rd5 <= 9;
{1'd0, 4'd15}: s1rd5 <= 13;
endcase
end

// synthesis attribute rom_style of s1rd5 is "block"


always @(posedge clk) begin
case({tm83_d, s1rdloc})
{1'd0, 4'd0}: s1rd6 <= 1;
{1'd0, 4'd1}: s1rd6 <= 5;
{1'd0, 4'd2}: s1rd6 <= 9;
{1'd0, 4'd3}: s1rd6 <= 13;
{1'd0, 4'd4}: s1rd6 <= 0;
{1'd0, 4'd5}: s1rd6 <= 4;
{1'd0, 4'd6}: s1rd6 <= 8;
{1'd0, 4'd7}: s1rd6 <= 12;
{1'd0, 4'd8}: s1rd6 <= 3;
{1'd0, 4'd9}: s1rd6 <= 7;
{1'd0, 4'd10}: s1rd6 <= 11;
{1'd0, 4'd11}: s1rd6 <= 15;
{1'd0, 4'd12}: s1rd6 <= 2;
{1'd0, 4'd13}: s1rd6 <= 6;
{1'd0, 4'd14}: s1rd6 <= 10;
{1'd0, 4'd15}: s1rd6 <= 14;
endcase
end

// synthesis attribute rom_style of s1rd6 is "block"


always @(posedge clk) begin
case({tm83_d, s1rdloc})
{1'd0, 4'd0}: s1rd7 <= 0;
{1'd0, 4'd1}: s1rd7 <= 4;
{1'd0, 4'd2}: s1rd7 <= 8;
{1'd0, 4'd3}: s1rd7 <= 12;
{1'd0, 4'd4}: s1rd7 <= 1;
{1'd0, 4'd5}: s1rd7 <= 5;
{1'd0, 4'd6}: s1rd7 <= 9;
{1'd0, 4'd7}: s1rd7 <= 13;
{1'd0, 4'd8}: s1rd7 <= 2;
{1'd0, 4'd9}: s1rd7 <= 6;
{1'd0, 4'd10}: s1rd7 <= 10;
{1'd0, 4'd11}: s1rd7 <= 14;
{1'd0, 4'd12}: s1rd7 <= 3;
{1'd0, 4'd13}: s1rd7 <= 7;
{1'd0, 4'd14}: s1rd7 <= 11;
{1'd0, 4'd15}: s1rd7 <= 15;
endcase
end

// synthesis attribute rom_style of s1rd7 is "block"


always @(posedge clk) begin
case({tm83_d, s1rdloc})
{1'd0, 4'd0}: s1rd8 <= 3;
{1'd0, 4'd1}: s1rd8 <= 7;
{1'd0, 4'd2}: s1rd8 <= 11;
{1'd0, 4'd3}: s1rd8 <= 15;
{1'd0, 4'd4}: s1rd8 <= 2;
{1'd0, 4'd5}: s1rd8 <= 6;
{1'd0, 4'd6}: s1rd8 <= 10;
{1'd0, 4'd7}: s1rd8 <= 14;
{1'd0, 4'd8}: s1rd8 <= 1;
{1'd0, 4'd9}: s1rd8 <= 5;
{1'd0, 4'd10}: s1rd8 <= 9;
{1'd0, 4'd11}: s1rd8 <= 13;
{1'd0, 4'd12}: s1rd8 <= 0;
{1'd0, 4'd13}: s1rd8 <= 4;
{1'd0, 4'd14}: s1rd8 <= 8;
{1'd0, 4'd15}: s1rd8 <= 12;
endcase
end

// synthesis attribute rom_style of s1rd8 is "block"


always @(posedge clk) begin
case({tm83_d, s1rdloc})
{1'd0, 4'd0}: s1rd9 <= 2;
{1'd0, 4'd1}: s1rd9 <= 6;
{1'd0, 4'd2}: s1rd9 <= 10;
{1'd0, 4'd3}: s1rd9 <= 14;
{1'd0, 4'd4}: s1rd9 <= 3;
{1'd0, 4'd5}: s1rd9 <= 7;
{1'd0, 4'd6}: s1rd9 <= 11;
{1'd0, 4'd7}: s1rd9 <= 15;
{1'd0, 4'd8}: s1rd9 <= 0;
{1'd0, 4'd9}: s1rd9 <= 4;
{1'd0, 4'd10}: s1rd9 <= 8;
{1'd0, 4'd11}: s1rd9 <= 12;
{1'd0, 4'd12}: s1rd9 <= 1;
{1'd0, 4'd13}: s1rd9 <= 5;
{1'd0, 4'd14}: s1rd9 <= 9;
{1'd0, 4'd15}: s1rd9 <= 13;
endcase
end

// synthesis attribute rom_style of s1rd9 is "block"


always @(posedge clk) begin
case({tm83_d, s1rdloc})
{1'd0, 4'd0}: s1rd10 <= 1;
{1'd0, 4'd1}: s1rd10 <= 5;
{1'd0, 4'd2}: s1rd10 <= 9;
{1'd0, 4'd3}: s1rd10 <= 13;
{1'd0, 4'd4}: s1rd10 <= 0;
{1'd0, 4'd5}: s1rd10 <= 4;
{1'd0, 4'd6}: s1rd10 <= 8;
{1'd0, 4'd7}: s1rd10 <= 12;
{1'd0, 4'd8}: s1rd10 <= 3;
{1'd0, 4'd9}: s1rd10 <= 7;
{1'd0, 4'd10}: s1rd10 <= 11;
{1'd0, 4'd11}: s1rd10 <= 15;
{1'd0, 4'd12}: s1rd10 <= 2;
{1'd0, 4'd13}: s1rd10 <= 6;
{1'd0, 4'd14}: s1rd10 <= 10;
{1'd0, 4'd15}: s1rd10 <= 14;
endcase
end

// synthesis attribute rom_style of s1rd10 is "block"


always @(posedge clk) begin
case({tm83_d, s1rdloc})
{1'd0, 4'd0}: s1rd11 <= 0;
{1'd0, 4'd1}: s1rd11 <= 4;
{1'd0, 4'd2}: s1rd11 <= 8;
{1'd0, 4'd3}: s1rd11 <= 12;
{1'd0, 4'd4}: s1rd11 <= 1;
{1'd0, 4'd5}: s1rd11 <= 5;
{1'd0, 4'd6}: s1rd11 <= 9;
{1'd0, 4'd7}: s1rd11 <= 13;
{1'd0, 4'd8}: s1rd11 <= 2;
{1'd0, 4'd9}: s1rd11 <= 6;
{1'd0, 4'd10}: s1rd11 <= 10;
{1'd0, 4'd11}: s1rd11 <= 14;
{1'd0, 4'd12}: s1rd11 <= 3;
{1'd0, 4'd13}: s1rd11 <= 7;
{1'd0, 4'd14}: s1rd11 <= 11;
{1'd0, 4'd15}: s1rd11 <= 15;
endcase
end

// synthesis attribute rom_style of s1rd11 is "block"


always @(posedge clk) begin
case({tm83_d, s1rdloc})
{1'd0, 4'd0}: s1rd12 <= 3;
{1'd0, 4'd1}: s1rd12 <= 7;
{1'd0, 4'd2}: s1rd12 <= 11;
{1'd0, 4'd3}: s1rd12 <= 15;
{1'd0, 4'd4}: s1rd12 <= 2;
{1'd0, 4'd5}: s1rd12 <= 6;
{1'd0, 4'd6}: s1rd12 <= 10;
{1'd0, 4'd7}: s1rd12 <= 14;
{1'd0, 4'd8}: s1rd12 <= 1;
{1'd0, 4'd9}: s1rd12 <= 5;
{1'd0, 4'd10}: s1rd12 <= 9;
{1'd0, 4'd11}: s1rd12 <= 13;
{1'd0, 4'd12}: s1rd12 <= 0;
{1'd0, 4'd13}: s1rd12 <= 4;
{1'd0, 4'd14}: s1rd12 <= 8;
{1'd0, 4'd15}: s1rd12 <= 12;
endcase
end

// synthesis attribute rom_style of s1rd12 is "block"


always @(posedge clk) begin
case({tm83_d, s1rdloc})
{1'd0, 4'd0}: s1rd13 <= 2;
{1'd0, 4'd1}: s1rd13 <= 6;
{1'd0, 4'd2}: s1rd13 <= 10;
{1'd0, 4'd3}: s1rd13 <= 14;
{1'd0, 4'd4}: s1rd13 <= 3;
{1'd0, 4'd5}: s1rd13 <= 7;
{1'd0, 4'd6}: s1rd13 <= 11;
{1'd0, 4'd7}: s1rd13 <= 15;
{1'd0, 4'd8}: s1rd13 <= 0;
{1'd0, 4'd9}: s1rd13 <= 4;
{1'd0, 4'd10}: s1rd13 <= 8;
{1'd0, 4'd11}: s1rd13 <= 12;
{1'd0, 4'd12}: s1rd13 <= 1;
{1'd0, 4'd13}: s1rd13 <= 5;
{1'd0, 4'd14}: s1rd13 <= 9;
{1'd0, 4'd15}: s1rd13 <= 13;
endcase
end

// synthesis attribute rom_style of s1rd13 is "block"


always @(posedge clk) begin
case({tm83_d, s1rdloc})
{1'd0, 4'd0}: s1rd14 <= 1;
{1'd0, 4'd1}: s1rd14 <= 5;
{1'd0, 4'd2}: s1rd14 <= 9;
{1'd0, 4'd3}: s1rd14 <= 13;
{1'd0, 4'd4}: s1rd14 <= 0;
{1'd0, 4'd5}: s1rd14 <= 4;
{1'd0, 4'd6}: s1rd14 <= 8;
{1'd0, 4'd7}: s1rd14 <= 12;
{1'd0, 4'd8}: s1rd14 <= 3;
{1'd0, 4'd9}: s1rd14 <= 7;
{1'd0, 4'd10}: s1rd14 <= 11;
{1'd0, 4'd11}: s1rd14 <= 15;
{1'd0, 4'd12}: s1rd14 <= 2;
{1'd0, 4'd13}: s1rd14 <= 6;
{1'd0, 4'd14}: s1rd14 <= 10;
{1'd0, 4'd15}: s1rd14 <= 14;
endcase
end

// synthesis attribute rom_style of s1rd14 is "block"


always @(posedge clk) begin
case({tm83_d, s1rdloc})
{1'd0, 4'd0}: s1rd15 <= 0;
{1'd0, 4'd1}: s1rd15 <= 4;
{1'd0, 4'd2}: s1rd15 <= 8;
{1'd0, 4'd3}: s1rd15 <= 12;
{1'd0, 4'd4}: s1rd15 <= 1;
{1'd0, 4'd5}: s1rd15 <= 5;
{1'd0, 4'd6}: s1rd15 <= 9;
{1'd0, 4'd7}: s1rd15 <= 13;
{1'd0, 4'd8}: s1rd15 <= 2;
{1'd0, 4'd9}: s1rd15 <= 6;
{1'd0, 4'd10}: s1rd15 <= 10;
{1'd0, 4'd11}: s1rd15 <= 14;
{1'd0, 4'd12}: s1rd15 <= 3;
{1'd0, 4'd13}: s1rd15 <= 7;
{1'd0, 4'd14}: s1rd15 <= 11;
{1'd0, 4'd15}: s1rd15 <= 15;
endcase
end

// synthesis attribute rom_style of s1rd15 is "block"


swNet24140 sw(tm83_d, clk, muxCycle, t0, s0, t1, s1, t2, s2, t3, s3, t4, s4,
t5, s5, t6, s6, t7, s7, t8, s8, t9, s9, t10, s10, t11, s11, t12, s12, t13, s13,
t14, s14, t15, s15);

always @(posedge clk) begin


case({tm83_dd, writeCycle})
{1'd0, 4'd0}: s2wr0 <= 12;
{1'd0, 4'd1}: s2wr0 <= 13;
{1'd0, 4'd2}: s2wr0 <= 14;
{1'd0, 4'd3}: s2wr0 <= 15;
{1'd0, 4'd4}: s2wr0 <= 8;
{1'd0, 4'd5}: s2wr0 <= 9;
{1'd0, 4'd6}: s2wr0 <= 10;
{1'd0, 4'd7}: s2wr0 <= 11;
{1'd0, 4'd8}: s2wr0 <= 4;
{1'd0, 4'd9}: s2wr0 <= 5;
{1'd0, 4'd10}: s2wr0 <= 6;
{1'd0, 4'd11}: s2wr0 <= 7;
{1'd0, 4'd12}: s2wr0 <= 0;
{1'd0, 4'd13}: s2wr0 <= 1;
{1'd0, 4'd14}: s2wr0 <= 2;
{1'd0, 4'd15}: s2wr0 <= 3;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr0 is "block"


always @(posedge clk) begin
case({tm83_dd, writeCycle})
{1'd0, 4'd0}: s2wr1 <= 12;
{1'd0, 4'd1}: s2wr1 <= 13;
{1'd0, 4'd2}: s2wr1 <= 14;
{1'd0, 4'd3}: s2wr1 <= 15;
{1'd0, 4'd4}: s2wr1 <= 8;
{1'd0, 4'd5}: s2wr1 <= 9;
{1'd0, 4'd6}: s2wr1 <= 10;
{1'd0, 4'd7}: s2wr1 <= 11;
{1'd0, 4'd8}: s2wr1 <= 4;
{1'd0, 4'd9}: s2wr1 <= 5;
{1'd0, 4'd10}: s2wr1 <= 6;
{1'd0, 4'd11}: s2wr1 <= 7;
{1'd0, 4'd12}: s2wr1 <= 0;
{1'd0, 4'd13}: s2wr1 <= 1;
{1'd0, 4'd14}: s2wr1 <= 2;
{1'd0, 4'd15}: s2wr1 <= 3;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr1 is "block"


always @(posedge clk) begin
case({tm83_dd, writeCycle})
{1'd0, 4'd0}: s2wr2 <= 12;
{1'd0, 4'd1}: s2wr2 <= 13;
{1'd0, 4'd2}: s2wr2 <= 14;
{1'd0, 4'd3}: s2wr2 <= 15;
{1'd0, 4'd4}: s2wr2 <= 8;
{1'd0, 4'd5}: s2wr2 <= 9;
{1'd0, 4'd6}: s2wr2 <= 10;
{1'd0, 4'd7}: s2wr2 <= 11;
{1'd0, 4'd8}: s2wr2 <= 4;
{1'd0, 4'd9}: s2wr2 <= 5;
{1'd0, 4'd10}: s2wr2 <= 6;
{1'd0, 4'd11}: s2wr2 <= 7;
{1'd0, 4'd12}: s2wr2 <= 0;
{1'd0, 4'd13}: s2wr2 <= 1;
{1'd0, 4'd14}: s2wr2 <= 2;
{1'd0, 4'd15}: s2wr2 <= 3;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr2 is "block"


always @(posedge clk) begin
case({tm83_dd, writeCycle})
{1'd0, 4'd0}: s2wr3 <= 12;
{1'd0, 4'd1}: s2wr3 <= 13;
{1'd0, 4'd2}: s2wr3 <= 14;
{1'd0, 4'd3}: s2wr3 <= 15;
{1'd0, 4'd4}: s2wr3 <= 8;
{1'd0, 4'd5}: s2wr3 <= 9;
{1'd0, 4'd6}: s2wr3 <= 10;
{1'd0, 4'd7}: s2wr3 <= 11;
{1'd0, 4'd8}: s2wr3 <= 4;
{1'd0, 4'd9}: s2wr3 <= 5;
{1'd0, 4'd10}: s2wr3 <= 6;
{1'd0, 4'd11}: s2wr3 <= 7;
{1'd0, 4'd12}: s2wr3 <= 0;
{1'd0, 4'd13}: s2wr3 <= 1;
{1'd0, 4'd14}: s2wr3 <= 2;
{1'd0, 4'd15}: s2wr3 <= 3;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr3 is "block"


always @(posedge clk) begin
case({tm83_dd, writeCycle})
{1'd0, 4'd0}: s2wr4 <= 8;
{1'd0, 4'd1}: s2wr4 <= 9;
{1'd0, 4'd2}: s2wr4 <= 10;
{1'd0, 4'd3}: s2wr4 <= 11;
{1'd0, 4'd4}: s2wr4 <= 12;
{1'd0, 4'd5}: s2wr4 <= 13;
{1'd0, 4'd6}: s2wr4 <= 14;
{1'd0, 4'd7}: s2wr4 <= 15;
{1'd0, 4'd8}: s2wr4 <= 0;
{1'd0, 4'd9}: s2wr4 <= 1;
{1'd0, 4'd10}: s2wr4 <= 2;
{1'd0, 4'd11}: s2wr4 <= 3;
{1'd0, 4'd12}: s2wr4 <= 4;
{1'd0, 4'd13}: s2wr4 <= 5;
{1'd0, 4'd14}: s2wr4 <= 6;
{1'd0, 4'd15}: s2wr4 <= 7;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr4 is "block"


always @(posedge clk) begin
case({tm83_dd, writeCycle})
{1'd0, 4'd0}: s2wr5 <= 8;
{1'd0, 4'd1}: s2wr5 <= 9;
{1'd0, 4'd2}: s2wr5 <= 10;
{1'd0, 4'd3}: s2wr5 <= 11;
{1'd0, 4'd4}: s2wr5 <= 12;
{1'd0, 4'd5}: s2wr5 <= 13;
{1'd0, 4'd6}: s2wr5 <= 14;
{1'd0, 4'd7}: s2wr5 <= 15;
{1'd0, 4'd8}: s2wr5 <= 0;
{1'd0, 4'd9}: s2wr5 <= 1;
{1'd0, 4'd10}: s2wr5 <= 2;
{1'd0, 4'd11}: s2wr5 <= 3;
{1'd0, 4'd12}: s2wr5 <= 4;
{1'd0, 4'd13}: s2wr5 <= 5;
{1'd0, 4'd14}: s2wr5 <= 6;
{1'd0, 4'd15}: s2wr5 <= 7;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr5 is "block"


always @(posedge clk) begin
case({tm83_dd, writeCycle})
{1'd0, 4'd0}: s2wr6 <= 8;
{1'd0, 4'd1}: s2wr6 <= 9;
{1'd0, 4'd2}: s2wr6 <= 10;
{1'd0, 4'd3}: s2wr6 <= 11;
{1'd0, 4'd4}: s2wr6 <= 12;
{1'd0, 4'd5}: s2wr6 <= 13;
{1'd0, 4'd6}: s2wr6 <= 14;
{1'd0, 4'd7}: s2wr6 <= 15;
{1'd0, 4'd8}: s2wr6 <= 0;
{1'd0, 4'd9}: s2wr6 <= 1;
{1'd0, 4'd10}: s2wr6 <= 2;
{1'd0, 4'd11}: s2wr6 <= 3;
{1'd0, 4'd12}: s2wr6 <= 4;
{1'd0, 4'd13}: s2wr6 <= 5;
{1'd0, 4'd14}: s2wr6 <= 6;
{1'd0, 4'd15}: s2wr6 <= 7;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr6 is "block"


always @(posedge clk) begin
case({tm83_dd, writeCycle})
{1'd0, 4'd0}: s2wr7 <= 8;
{1'd0, 4'd1}: s2wr7 <= 9;
{1'd0, 4'd2}: s2wr7 <= 10;
{1'd0, 4'd3}: s2wr7 <= 11;
{1'd0, 4'd4}: s2wr7 <= 12;
{1'd0, 4'd5}: s2wr7 <= 13;
{1'd0, 4'd6}: s2wr7 <= 14;
{1'd0, 4'd7}: s2wr7 <= 15;
{1'd0, 4'd8}: s2wr7 <= 0;
{1'd0, 4'd9}: s2wr7 <= 1;
{1'd0, 4'd10}: s2wr7 <= 2;
{1'd0, 4'd11}: s2wr7 <= 3;
{1'd0, 4'd12}: s2wr7 <= 4;
{1'd0, 4'd13}: s2wr7 <= 5;
{1'd0, 4'd14}: s2wr7 <= 6;
{1'd0, 4'd15}: s2wr7 <= 7;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr7 is "block"


always @(posedge clk) begin
case({tm83_dd, writeCycle})
{1'd0, 4'd0}: s2wr8 <= 4;
{1'd0, 4'd1}: s2wr8 <= 5;
{1'd0, 4'd2}: s2wr8 <= 6;
{1'd0, 4'd3}: s2wr8 <= 7;
{1'd0, 4'd4}: s2wr8 <= 0;
{1'd0, 4'd5}: s2wr8 <= 1;
{1'd0, 4'd6}: s2wr8 <= 2;
{1'd0, 4'd7}: s2wr8 <= 3;
{1'd0, 4'd8}: s2wr8 <= 12;
{1'd0, 4'd9}: s2wr8 <= 13;
{1'd0, 4'd10}: s2wr8 <= 14;
{1'd0, 4'd11}: s2wr8 <= 15;
{1'd0, 4'd12}: s2wr8 <= 8;
{1'd0, 4'd13}: s2wr8 <= 9;
{1'd0, 4'd14}: s2wr8 <= 10;
{1'd0, 4'd15}: s2wr8 <= 11;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr8 is "block"


always @(posedge clk) begin
case({tm83_dd, writeCycle})
{1'd0, 4'd0}: s2wr9 <= 4;
{1'd0, 4'd1}: s2wr9 <= 5;
{1'd0, 4'd2}: s2wr9 <= 6;
{1'd0, 4'd3}: s2wr9 <= 7;
{1'd0, 4'd4}: s2wr9 <= 0;
{1'd0, 4'd5}: s2wr9 <= 1;
{1'd0, 4'd6}: s2wr9 <= 2;
{1'd0, 4'd7}: s2wr9 <= 3;
{1'd0, 4'd8}: s2wr9 <= 12;
{1'd0, 4'd9}: s2wr9 <= 13;
{1'd0, 4'd10}: s2wr9 <= 14;
{1'd0, 4'd11}: s2wr9 <= 15;
{1'd0, 4'd12}: s2wr9 <= 8;
{1'd0, 4'd13}: s2wr9 <= 9;
{1'd0, 4'd14}: s2wr9 <= 10;
{1'd0, 4'd15}: s2wr9 <= 11;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr9 is "block"


always @(posedge clk) begin
case({tm83_dd, writeCycle})
{1'd0, 4'd0}: s2wr10 <= 4;
{1'd0, 4'd1}: s2wr10 <= 5;
{1'd0, 4'd2}: s2wr10 <= 6;
{1'd0, 4'd3}: s2wr10 <= 7;
{1'd0, 4'd4}: s2wr10 <= 0;
{1'd0, 4'd5}: s2wr10 <= 1;
{1'd0, 4'd6}: s2wr10 <= 2;
{1'd0, 4'd7}: s2wr10 <= 3;
{1'd0, 4'd8}: s2wr10 <= 12;
{1'd0, 4'd9}: s2wr10 <= 13;
{1'd0, 4'd10}: s2wr10 <= 14;
{1'd0, 4'd11}: s2wr10 <= 15;
{1'd0, 4'd12}: s2wr10 <= 8;
{1'd0, 4'd13}: s2wr10 <= 9;
{1'd0, 4'd14}: s2wr10 <= 10;
{1'd0, 4'd15}: s2wr10 <= 11;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr10 is "block"


always @(posedge clk) begin
case({tm83_dd, writeCycle})
{1'd0, 4'd0}: s2wr11 <= 4;
{1'd0, 4'd1}: s2wr11 <= 5;
{1'd0, 4'd2}: s2wr11 <= 6;
{1'd0, 4'd3}: s2wr11 <= 7;
{1'd0, 4'd4}: s2wr11 <= 0;
{1'd0, 4'd5}: s2wr11 <= 1;
{1'd0, 4'd6}: s2wr11 <= 2;
{1'd0, 4'd7}: s2wr11 <= 3;
{1'd0, 4'd8}: s2wr11 <= 12;
{1'd0, 4'd9}: s2wr11 <= 13;
{1'd0, 4'd10}: s2wr11 <= 14;
{1'd0, 4'd11}: s2wr11 <= 15;
{1'd0, 4'd12}: s2wr11 <= 8;
{1'd0, 4'd13}: s2wr11 <= 9;
{1'd0, 4'd14}: s2wr11 <= 10;
{1'd0, 4'd15}: s2wr11 <= 11;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr11 is "block"


always @(posedge clk) begin
case({tm83_dd, writeCycle})
{1'd0, 4'd0}: s2wr12 <= 0;
{1'd0, 4'd1}: s2wr12 <= 1;
{1'd0, 4'd2}: s2wr12 <= 2;
{1'd0, 4'd3}: s2wr12 <= 3;
{1'd0, 4'd4}: s2wr12 <= 4;
{1'd0, 4'd5}: s2wr12 <= 5;
{1'd0, 4'd6}: s2wr12 <= 6;
{1'd0, 4'd7}: s2wr12 <= 7;
{1'd0, 4'd8}: s2wr12 <= 8;
{1'd0, 4'd9}: s2wr12 <= 9;
{1'd0, 4'd10}: s2wr12 <= 10;
{1'd0, 4'd11}: s2wr12 <= 11;
{1'd0, 4'd12}: s2wr12 <= 12;
{1'd0, 4'd13}: s2wr12 <= 13;
{1'd0, 4'd14}: s2wr12 <= 14;
{1'd0, 4'd15}: s2wr12 <= 15;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr12 is "block"


always @(posedge clk) begin
case({tm83_dd, writeCycle})
{1'd0, 4'd0}: s2wr13 <= 0;
{1'd0, 4'd1}: s2wr13 <= 1;
{1'd0, 4'd2}: s2wr13 <= 2;
{1'd0, 4'd3}: s2wr13 <= 3;
{1'd0, 4'd4}: s2wr13 <= 4;
{1'd0, 4'd5}: s2wr13 <= 5;
{1'd0, 4'd6}: s2wr13 <= 6;
{1'd0, 4'd7}: s2wr13 <= 7;
{1'd0, 4'd8}: s2wr13 <= 8;
{1'd0, 4'd9}: s2wr13 <= 9;
{1'd0, 4'd10}: s2wr13 <= 10;
{1'd0, 4'd11}: s2wr13 <= 11;
{1'd0, 4'd12}: s2wr13 <= 12;
{1'd0, 4'd13}: s2wr13 <= 13;
{1'd0, 4'd14}: s2wr13 <= 14;
{1'd0, 4'd15}: s2wr13 <= 15;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr13 is "block"


always @(posedge clk) begin
case({tm83_dd, writeCycle})
{1'd0, 4'd0}: s2wr14 <= 0;
{1'd0, 4'd1}: s2wr14 <= 1;
{1'd0, 4'd2}: s2wr14 <= 2;
{1'd0, 4'd3}: s2wr14 <= 3;
{1'd0, 4'd4}: s2wr14 <= 4;
{1'd0, 4'd5}: s2wr14 <= 5;
{1'd0, 4'd6}: s2wr14 <= 6;
{1'd0, 4'd7}: s2wr14 <= 7;
{1'd0, 4'd8}: s2wr14 <= 8;
{1'd0, 4'd9}: s2wr14 <= 9;
{1'd0, 4'd10}: s2wr14 <= 10;
{1'd0, 4'd11}: s2wr14 <= 11;
{1'd0, 4'd12}: s2wr14 <= 12;
{1'd0, 4'd13}: s2wr14 <= 13;
{1'd0, 4'd14}: s2wr14 <= 14;
{1'd0, 4'd15}: s2wr14 <= 15;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr14 is "block"


always @(posedge clk) begin
case({tm83_dd, writeCycle})
{1'd0, 4'd0}: s2wr15 <= 0;
{1'd0, 4'd1}: s2wr15 <= 1;
{1'd0, 4'd2}: s2wr15 <= 2;
{1'd0, 4'd3}: s2wr15 <= 3;
{1'd0, 4'd4}: s2wr15 <= 4;
{1'd0, 4'd5}: s2wr15 <= 5;
{1'd0, 4'd6}: s2wr15 <= 6;
{1'd0, 4'd7}: s2wr15 <= 7;
{1'd0, 4'd8}: s2wr15 <= 8;
{1'd0, 4'd9}: s2wr15 <= 9;
{1'd0, 4'd10}: s2wr15 <= 10;
{1'd0, 4'd11}: s2wr15 <= 11;
{1'd0, 4'd12}: s2wr15 <= 12;
{1'd0, 4'd13}: s2wr15 <= 13;
{1'd0, 4'd14}: s2wr15 <= 14;
{1'd0, 4'd15}: s2wr15 <= 15;
endcase // case(writeCycle)
end // always @ (posedge clk)

// synthesis attribute rom_style of s2wr15 is "block"


endmodule
module multfix(clk, rst, a, b, q_sc, q_unsc);
parameter WIDTH=35, CYCLES=6;

input signed [WIDTH-1:0] a,b;


output [WIDTH-1:0] q_sc;
output [WIDTH-1:0] q_unsc;

input clk, rst;

reg signed [2*WIDTH-1:0] q[CYCLES-1:0];


wire signed [2*WIDTH-1:0] res;
integer i;

assign res = q[CYCLES-


1];

assign q_unsc =
res[WIDTH-1:0];
assign q_sc =
{res[2*WIDTH-1], res[2*WIDTH-4:WIDTH-2]};

always @(posedge clk) begin


q[0] <= a * b;
for (i = 1; i < CYCLES; i=i+1) begin
q[i] <= q[i-1];
end
end

endmodule
module addfxp(a, b, q, clk);

parameter width = 16, cycles=1;

input signed [width-1:0] a, b;


input clk;
output signed [width-1:0] q;
reg signed [width-1:0] res[cycles-1:0];

assign q = res[cycles-1];

integer i;

always @(posedge clk) begin


res[0] <= a+b;
for (i=1; i < cycles; i = i+1)
res[i] <= res[i-1];

end

endmodule

module subfxp(a, b, q, clk);

parameter width = 16, cycles=1;

input signed [width-1:0] a, b;


input clk;
output signed [width-1:0] q;
reg signed [width-1:0] res[cycles-1:0];

assign q = res[cycles-1];

integer i;

always @(posedge clk) begin


res[0] <= a-b;
for (i=1; i < cycles; i = i+1)
res[i] <= res[i-1];

end

endmodule

You might also like