From 5b04327dfa7a3005819045c9cc19e558e86d59d5 Mon Sep 17 00:00:00 2001 From: functionpointersuss Date: Sat, 23 Dec 2023 10:23:39 +0800 Subject: renamed to sv --- multiplier/hdl/full_adder.sv | 12 + multiplier/hdl/gen_wallace.py | 354 +++++++++ multiplier/hdl/half_adder.v | 11 + multiplier/hdl/multiplier.sv | 15 + multiplier/hdl/partial_products.sv | 15 + multiplier/hdl/wallace_adder.sv | 1521 ++++++++++++++++++++++++++++++++++++ 6 files changed, 1928 insertions(+) create mode 100644 multiplier/hdl/full_adder.sv create mode 100755 multiplier/hdl/gen_wallace.py create mode 100644 multiplier/hdl/half_adder.v create mode 100644 multiplier/hdl/multiplier.sv create mode 100644 multiplier/hdl/partial_products.sv create mode 100644 multiplier/hdl/wallace_adder.sv (limited to 'multiplier/hdl') diff --git a/multiplier/hdl/full_adder.sv b/multiplier/hdl/full_adder.sv new file mode 100644 index 0000000..1238aa7 --- /dev/null +++ b/multiplier/hdl/full_adder.sv @@ -0,0 +1,12 @@ +module full_adder ( + input logic a, + input logic b, + input logic c, + output logic sum, + output logic carry +); + +assign sum = a ^ b ^ c; +assign carry = (a & b) | (c & (a ^ b)); + +endmodule diff --git a/multiplier/hdl/gen_wallace.py b/multiplier/hdl/gen_wallace.py new file mode 100755 index 0000000..579041f --- /dev/null +++ b/multiplier/hdl/gen_wallace.py @@ -0,0 +1,354 @@ +#!/usr/bin/python3 +import argparse + +def gen_half_adder(): + print(f"---------- Half adder generation ----------") + f = open(f"half_adder.sv", "w") + f.write(f"""module half_adder ( + input logic a, + input logic b, + output logic sum, + output logic carry +); + +assign sum = a ^ b; +assign carry = a & b; + +endmodule +""") + f.close() + +def gen_full_adder(): + print(f"---------- Full adder generation ----------") + f = open(f"full_adder.sv", "w") + f.write(f"""module full_adder ( + input logic a, + input logic b, + input logic c, + output logic sum, + output logic carry +); + +assign sum = a ^ b ^ c; +assign carry = (a & b) | (c & (a ^ b)); + +endmodule +""") + f.close() + +def gen_multiplier(bits): + print(f"\n---------- {bits} Bit Top Level Multiplier Generation ----------") + f = open(f"multiplier.sv", "w") + f.write(f"""module multiplier( + input logic [{bits-1}:0] a, + input logic [{bits-1}:0] b, + output logic [{2*bits-1}:0] c +); + + logic [{bits-1}:0] partial_prod [0:{bits-1}]; + logic [{2*bits-1}:0] partial_sum; + + assign c = partial_sum; + + wallace_adder wadder0(partial_prod, partial_sum); + partial_products partprod0(a, b, partial_prod); + +endmodule +""") + f.close() + +def gen_partial_products(bits): + print(f"------------ {bits} Bit Partial Products Generation ------------") + f = open(f"partial_products.sv", "w") + f.write(f"""module partial_products +( + input logic [{bits-1}:0] a, + input logic [{bits-1}:0] b, + output logic [{bits-1}:0] c [0:{bits-1}] +); + +always @ (*) begin + integer i; + for (i = 0; i < {bits}; i=i+1) begin + c[i][{bits-1}:0] = {{{bits}{{b[i]}}}} & a; + end +end + +endmodule +""") + + f.close() + +def add_half_adder(reduction_layers, instantiations, net_names, col, col_idx, curr_layer, prev_layer, debug): + # Generates nets and updates the layer net array + curr_col_net_idx = len(reduction_layers[curr_layer][col_idx]) + next_col_net_idx = len(reduction_layers[curr_layer][col_idx+1]) + cout = f"layer{curr_layer}_col{col_idx}_net{curr_col_net_idx}" + sout = f"layer{curr_layer}_col{col_idx+1}_net{next_col_net_idx}" + + reduction_layers[curr_layer][col_idx].append(cout) + reduction_layers[curr_layer][col_idx+1].append(sout) + + # Adds half adder to instantiations + net_names[prev_layer].append(cout) + net_names[prev_layer].append(sout) + a, b = [col.pop() for i in range(2)] + instantiations[prev_layer].append(f"half_adder ha_add{curr_layer}_{len(instantiations[prev_layer])} ({a}, {b}, {cout}, {sout});") + + # Debug Print half adder + if debug: + print(f"half_adder ha_add{curr_layer}_{len(instantiations[prev_layer])} ({a}, {b}, {cout}, {sout});") + + pass + +def add_full_adder(reduction_layers, instantiations, net_names, col, col_idx, curr_layer, prev_layer, debug): + # Generates nets and updates the layer net array + curr_col_net_idx = len(reduction_layers[curr_layer][col_idx]) + next_col_net_idx = len(reduction_layers[curr_layer][col_idx+1]) + cout = f"layer{curr_layer}_col{col_idx}_net{curr_col_net_idx}" + sout = f"layer{curr_layer}_col{col_idx+1}_net{next_col_net_idx}" + reduction_layers[curr_layer][col_idx].append(cout) + reduction_layers[curr_layer][col_idx+1].append(sout) + + # Adds nets and adders to be instantiated + net_names[prev_layer].append(cout) + net_names[prev_layer].append(sout) + a, b, cin = [col.pop() for i in range(3)] + instantiations[prev_layer].append(f"full_adder fa_add{curr_layer}_{len(instantiations[prev_layer])} ({a}, {b}, {cin}, {cout}, {sout});") + + # Debug Print half adder + if debug: + print(f"full_adder fa_add{curr_layer}_{len(instantiations[prev_layer])} ({a}, {b}, {cin}, {cout}, {sout});") + +def add_passthrough(reduction_layers, instantiations, net_names, col, col_idx, curr_layer, prev_layer, debug): +# Assigns passthrough for remaining logic and updates the counter + curr_col_net_idx = len(reduction_layers[curr_layer][col_idx]) + passthrough = f"layer{curr_layer}_col{col_idx}_net{curr_col_net_idx}" + + # Adds passthrough to netlist array + reduction_layers[curr_layer][col_idx].append(passthrough) + + # Adds the assign statement to passthrough + net_names[prev_layer].append(passthrough) + input_net1 = col.pop() + instantiations[prev_layer].append(f"assign {passthrough} = {input_net1};") + + if debug: + print(f"assign {passthrough} = {input_net1};") + +def gen_adder_tree(bits, debug): + print(f"--------------- {bits} Bit Adder Tree Generation ---------------") + + # Parameters of the adder tree generate script + num_cols = (2 * bits) + layer_limit = 50 + + # Initialize reduction layer array + reduction_layers = [] + + # Initialize instantiations and net names + ha_instantiations = [] + fa_instantiations = [] + pass_instantiations = [] + net_names = [] + + # Partial layer is the "zeroeth" reduction layer, initialize it + curr_layer = 0 + reduction_layers.append([[] for i in range(num_cols)]) + + # Fill up partial layer + for i in range(bits): + for j in range(bits): + reduction_layers[curr_layer][i+j].append(f"partial_prod[{i}][{j}]") + + # Debug partial layer print + if debug: + print(f"\n--------- LAYER {curr_layer} -------------") + for col_idx, reduce in enumerate(reduction_layers[curr_layer]): + print(f"Col: {col_idx}, Length: {len(reduce)}, {reduce}") + + # Build out subsequent reduction layers + curr_layer = 1 + prev_layer = 0 + + instantiation_idx = 0 + + # Run until we can add the remaining bit vectors together or non-convergent solution + while (len(max(reduction_layers[prev_layer], key=len)) > 2 and curr_layer < layer_limit): + # Allocate next layer + if debug: + print(f"--------- LAYER {prev_layer} -------------") + reduction_layers.append([[] for i in range(num_cols)]) + pass_instantiations.append([]) + ha_instantiations.append([]) + fa_instantiations.append([]) + net_names.append([]) + + carry_propogation = 0 + extra_ha = (len(max(reduction_layers[prev_layer], key=len)) == 3) + fa_used = False + ha_used = False + + # Counts how many bits need to be eventually removed by this bit + for col_idx, col in enumerate(reduction_layers[prev_layer]): + + # Check that this is actually solvable using only 2*bits output + if (col_idx+1 == len(reduction_layers[prev_layer]) and (len(col) + carry_propogation) > 2): + print("Cannot SOLVE") + return -1 + + # Debug print for this column + if debug: + print(f"Index: {col_idx}, Length: {len(col)}") + + next_layer_size = carry_propogation + carry_propogation = 0 + + # Add full adders if needed + while (len(col) > 3): + add_full_adder(reduction_layers, fa_instantiations, net_names, col, col_idx, curr_layer, prev_layer, debug) + fa_used = True + # 1 carry will go to the next column next layer, and the sum will go to this col next layer + carry_propogation += 1 + next_layer_size += 1 + + if (len(col) == 3): + # Only add half adder if no propogations or other adders created + if (fa_used == False and (ha_used == False or extra_ha == True) and next_layer_size == 0): + add_half_adder(reduction_layers, ha_instantiations, net_names, col, col_idx, curr_layer, prev_layer, debug) + ha_used = True + else: + fa_used = True + add_full_adder(reduction_layers, fa_instantiations, net_names, col, col_idx, curr_layer, prev_layer, debug) + + # Increment the propogation and current size + carry_propogation += 1 + next_layer_size += 1 + + if (len(col) == 2): + # Only add half adder if there is propogation from previous columns and if there is less than three in the next col, else pass through both + if (fa_used == False and (ha_used == False or extra_ha == True) and next_layer_size == 1 ): + add_half_adder(reduction_layers, ha_instantiations, net_names, col, col_idx, curr_layer, prev_layer, debug) + ha_used = True + carry_propogation += 1 + next_layer_size += 1 + else: + add_passthrough(reduction_layers, pass_instantiations, net_names, col, col_idx, curr_layer, prev_layer, debug) + add_passthrough(reduction_layers, pass_instantiations, net_names, col, col_idx, curr_layer, prev_layer, debug) + + if (len(col) == 1): + add_passthrough(reduction_layers, pass_instantiations, net_names, col, col_idx, curr_layer, prev_layer, debug) + + # Update the layer indices + prev_layer = curr_layer + curr_layer += 1 + + # Debug reduction layer print + if debug: + for col_idx, reduce in enumerate(reduction_layers[prev_layer]): + print(f"Col: {col_idx}, Length: {len(reduce)}, {reduce}") + + + # Debug final reduction layer to be added + if debug: + print("\n--------- BIT PAIRS ----------") + add_layer = list(zip(reduction_layers[prev_layer])) + add_layer.reverse() + for bit_pair in add_layer: + print(bit_pair[0]) + + # Add the two remaining rows of bits at the end + bit_vector_0 = "{ " + bit_vector_1 = "{ " + for bit_pair_idx, bit_pair in enumerate(reversed(list(zip(reduction_layers[prev_layer])))): + + # Exclude MSB if no overflows to it + if (len(bit_pair[0]) == 0 and bit_pair_idx == 0): + continue + + # Generate bit string for both vectors, order doesn't matter here + bit_vector_0 += f"{bit_pair[0][0]}, " + if (len(bit_pair[0]) == 2): + bit_vector_1 += f"{bit_pair[0][1]}, " + else: + bit_vector_1 += "1'b0, " + + bit_vector_0 = bit_vector_0[:-2] + "}" + bit_vector_1 = bit_vector_1[:-2] + "};" + + f = open(f"wallace_adder.sv", "w") + + # Start by printing module declaration + f.write(f"module wallace_adder (\n") + f.write(f"\tinput logic [{bits-1}:0] partial_prod[0:{bits-1}],\n") + f.write(f"\toutput logic [{2*bits-1}:0] partial_sum\n") + f.write(");\n\n") + + # Print out net names + for net_layer in net_names: + netstring = "logic " + net_idx_len = len(net_layer) + for net_idx, net in enumerate(net_layer): + if (net_idx != net_idx_len - 1): + netstring += f"{net}, " + else: + netstring += f"{net};" + f.write(netstring + '\n') + + # Print out entire reduction tree and calculate stats + ha_count = 0 + fa_count = 0 + for layer in range(len(pass_instantiations)): + f.write(f"\n//----------- Reduction Layer {layer+1} Start --------------\n\n") + for passthrough in pass_instantiations[layer]: + f.write(passthrough + '\n') + + for half_adder in ha_instantiations[layer]: + ha_count += 1 + f.write(half_adder + '\n') + + for full_adder in fa_instantiations[layer]: + fa_count += 1 + f.write(full_adder + '\n') + + # Print final two number adder + + f.write(f"\n//----------- Adding Layer Start --------------\n\n") + f.write(f"assign partial_sum = {bit_vector_0} + {bit_vector_1}\n") + + # Endmodule + f.write("\nendmodule\n") + + f.close() + + # Print stats of the wallace adder + print(f"{ha_count} Half Adders Used") + print(f"{fa_count} Full Adders Used") + print(f"{len(pass_instantiations)-1} Reduction Layers") + +def main(): + parser = argparse.ArgumentParser(prog="Multiplier Generator", description="Generates a n bit multiplier based on the bits argument provided", + epilog="bits sets the bit width of the multiplier, the output of the multiplier is 2 times the number of bits") + parser.add_argument("bits", type=int, help="The bit width of the multiplier") + parser.add_argument("-a", "--adder", help="Generates the full and half adders for you to use", action='store_true') + parser.add_argument("-d", "--debug", help="Enables debug prints during generation scripting", action='store_true') + args = parser.parse_args() + + bits = args.bits + debug = args.debug + adder = args.adder + + if (adder): + gen_half_adder() + gen_full_adder() + + gen_multiplier(bits) + gen_partial_products(bits) + + if (gen_adder_tree(bits, debug) == -1): + return -1 + + print("----------- GENERATION COMPLETE WITHOUT ERROR ----------- \n\n") + +if __name__ == "__main__": + main() diff --git a/multiplier/hdl/half_adder.v b/multiplier/hdl/half_adder.v new file mode 100644 index 0000000..a322900 --- /dev/null +++ b/multiplier/hdl/half_adder.v @@ -0,0 +1,11 @@ +module half_adder ( + input logic a, + input logic b, + output logic sum, + output logic carry +); + +assign sum = a ^ b; +assign carry = a & b; + +endmodule diff --git a/multiplier/hdl/multiplier.sv b/multiplier/hdl/multiplier.sv new file mode 100644 index 0000000..0522800 --- /dev/null +++ b/multiplier/hdl/multiplier.sv @@ -0,0 +1,15 @@ +module multiplier( + input logic [31:0] a, + input logic [31:0] b, + output logic [63:0] c +); + + logic [31:0] partial_prod [0:31]; + logic [63:0] partial_sum; + + assign c = partial_sum; + + wallace_adder wadder0(partial_prod, partial_sum); + partial_products partprod0(a, b, partial_prod); + +endmodule diff --git a/multiplier/hdl/partial_products.sv b/multiplier/hdl/partial_products.sv new file mode 100644 index 0000000..e05c859 --- /dev/null +++ b/multiplier/hdl/partial_products.sv @@ -0,0 +1,15 @@ +module partial_products +( + input logic [31:0] a, + input logic [31:0] b, + output logic [31:0] c [0:31] +); + +always @ (*) begin + integer i; + for (i = 0; i < 32; i=i+1) begin + c[i][31:0] = {32{b[i]}} & a; + end +end + +endmodule diff --git a/multiplier/hdl/wallace_adder.sv b/multiplier/hdl/wallace_adder.sv new file mode 100644 index 0000000..34c9ecd --- /dev/null +++ b/multiplier/hdl/wallace_adder.sv @@ -0,0 +1,1521 @@ +module wallace_adder ( + input logic [31:0] partial_prod[0:31], + output logic [63:0] partial_sum +); + +logic layer1_col0_net0, layer1_col1_net0, layer1_col1_net1, layer1_col2_net0, layer1_col3_net0, layer1_col2_net1, layer1_col3_net1, layer1_col4_net0, layer1_col3_net2, layer1_col4_net1, layer1_col5_net0, layer1_col4_net2, layer1_col4_net3, layer1_col5_net1, layer1_col6_net0, layer1_col5_net2, layer1_col6_net1, layer1_col6_net2, layer1_col7_net0, layer1_col6_net3, layer1_col7_net1, layer1_col6_net4, layer1_col7_net2, layer1_col8_net0, layer1_col7_net3, layer1_col8_net1, layer1_col7_net4, layer1_col7_net5, layer1_col8_net2, layer1_col9_net0, layer1_col8_net3, layer1_col9_net1, layer1_col8_net4, layer1_col9_net2, layer1_col9_net3, layer1_col10_net0, layer1_col9_net4, layer1_col10_net1, layer1_col9_net5, layer1_col10_net2, layer1_col9_net6, layer1_col10_net3, layer1_col11_net0, layer1_col10_net4, layer1_col11_net1, layer1_col10_net5, layer1_col11_net2, layer1_col10_net6, layer1_col10_net7, layer1_col11_net3, layer1_col12_net0, layer1_col11_net4, layer1_col12_net1, layer1_col11_net5, layer1_col12_net2, layer1_col11_net6, layer1_col12_net3, layer1_col12_net4, layer1_col13_net0, layer1_col12_net5, layer1_col13_net1, layer1_col12_net6, layer1_col13_net2, layer1_col12_net7, layer1_col13_net3, layer1_col12_net8, layer1_col13_net4, layer1_col14_net0, layer1_col13_net5, layer1_col14_net1, layer1_col13_net6, layer1_col14_net2, layer1_col13_net7, layer1_col14_net3, layer1_col13_net8, layer1_col13_net9, layer1_col14_net4, layer1_col15_net0, layer1_col14_net5, layer1_col15_net1, layer1_col14_net6, layer1_col15_net2, layer1_col14_net7, layer1_col15_net3, layer1_col14_net8, layer1_col15_net4, layer1_col15_net5, layer1_col16_net0, layer1_col15_net6, layer1_col16_net1, layer1_col15_net7, layer1_col16_net2, layer1_col15_net8, layer1_col16_net3, layer1_col15_net9, layer1_col16_net4, layer1_col15_net10, layer1_col16_net5, layer1_col17_net0, layer1_col16_net6, layer1_col17_net1, layer1_col16_net7, layer1_col17_net2, layer1_col16_net8, layer1_col17_net3, layer1_col16_net9, layer1_col17_net4, layer1_col16_net10, layer1_col16_net11, layer1_col17_net5, layer1_col18_net0, layer1_col17_net6, layer1_col18_net1, layer1_col17_net7, layer1_col18_net2, layer1_col17_net8, layer1_col18_net3, layer1_col17_net9, layer1_col18_net4, layer1_col17_net10, layer1_col18_net5, layer1_col18_net6, layer1_col19_net0, layer1_col18_net7, layer1_col19_net1, layer1_col18_net8, layer1_col19_net2, layer1_col18_net9, layer1_col19_net3, layer1_col18_net10, layer1_col19_net4, layer1_col18_net11, layer1_col19_net5, layer1_col18_net12, layer1_col19_net6, layer1_col20_net0, layer1_col19_net7, layer1_col20_net1, layer1_col19_net8, layer1_col20_net2, layer1_col19_net9, layer1_col20_net3, layer1_col19_net10, layer1_col20_net4, layer1_col19_net11, layer1_col20_net5, layer1_col19_net12, layer1_col19_net13, layer1_col20_net6, layer1_col21_net0, layer1_col20_net7, layer1_col21_net1, layer1_col20_net8, layer1_col21_net2, layer1_col20_net9, layer1_col21_net3, layer1_col20_net10, layer1_col21_net4, layer1_col20_net11, layer1_col21_net5, layer1_col20_net12, layer1_col21_net6, layer1_col21_net7, layer1_col22_net0, layer1_col21_net8, layer1_col22_net1, layer1_col21_net9, layer1_col22_net2, layer1_col21_net10, layer1_col22_net3, layer1_col21_net11, layer1_col22_net4, layer1_col21_net12, layer1_col22_net5, layer1_col21_net13, layer1_col22_net6, layer1_col21_net14, layer1_col22_net7, layer1_col23_net0, layer1_col22_net8, layer1_col23_net1, layer1_col22_net9, layer1_col23_net2, layer1_col22_net10, layer1_col23_net3, layer1_col22_net11, layer1_col23_net4, layer1_col22_net12, layer1_col23_net5, layer1_col22_net13, layer1_col23_net6, layer1_col22_net14, layer1_col22_net15, layer1_col23_net7, layer1_col24_net0, layer1_col23_net8, layer1_col24_net1, layer1_col23_net9, layer1_col24_net2, layer1_col23_net10, layer1_col24_net3, layer1_col23_net11, layer1_col24_net4, layer1_col23_net12, layer1_col24_net5, layer1_col23_net13, layer1_col24_net6, layer1_col23_net14, layer1_col24_net7, layer1_col24_net8, layer1_col25_net0, layer1_col24_net9, layer1_col25_net1, layer1_col24_net10, layer1_col25_net2, layer1_col24_net11, layer1_col25_net3, layer1_col24_net12, layer1_col25_net4, layer1_col24_net13, layer1_col25_net5, layer1_col24_net14, layer1_col25_net6, layer1_col24_net15, layer1_col25_net7, layer1_col24_net16, layer1_col25_net8, layer1_col26_net0, layer1_col25_net9, layer1_col26_net1, layer1_col25_net10, layer1_col26_net2, layer1_col25_net11, layer1_col26_net3, layer1_col25_net12, layer1_col26_net4, layer1_col25_net13, layer1_col26_net5, layer1_col25_net14, layer1_col26_net6, layer1_col25_net15, layer1_col26_net7, layer1_col25_net16, layer1_col25_net17, layer1_col26_net8, layer1_col27_net0, layer1_col26_net9, layer1_col27_net1, layer1_col26_net10, layer1_col27_net2, layer1_col26_net11, layer1_col27_net3, layer1_col26_net12, layer1_col27_net4, layer1_col26_net13, layer1_col27_net5, layer1_col26_net14, layer1_col27_net6, layer1_col26_net15, layer1_col27_net7, layer1_col26_net16, layer1_col27_net8, layer1_col27_net9, layer1_col28_net0, layer1_col27_net10, layer1_col28_net1, layer1_col27_net11, layer1_col28_net2, layer1_col27_net12, layer1_col28_net3, layer1_col27_net13, layer1_col28_net4, layer1_col27_net14, layer1_col28_net5, layer1_col27_net15, layer1_col28_net6, layer1_col27_net16, layer1_col28_net7, layer1_col27_net17, layer1_col28_net8, layer1_col27_net18, layer1_col28_net9, layer1_col29_net0, layer1_col28_net10, layer1_col29_net1, layer1_col28_net11, layer1_col29_net2, layer1_col28_net12, layer1_col29_net3, layer1_col28_net13, layer1_col29_net4, layer1_col28_net14, layer1_col29_net5, layer1_col28_net15, layer1_col29_net6, layer1_col28_net16, layer1_col29_net7, layer1_col28_net17, layer1_col29_net8, layer1_col28_net18, layer1_col28_net19, layer1_col29_net9, layer1_col30_net0, layer1_col29_net10, layer1_col30_net1, layer1_col29_net11, layer1_col30_net2, layer1_col29_net12, layer1_col30_net3, layer1_col29_net13, layer1_col30_net4, layer1_col29_net14, layer1_col30_net5, layer1_col29_net15, layer1_col30_net6, layer1_col29_net16, layer1_col30_net7, layer1_col29_net17, layer1_col30_net8, layer1_col29_net18, layer1_col30_net9, layer1_col30_net10, layer1_col31_net0, layer1_col30_net11, layer1_col31_net1, layer1_col30_net12, layer1_col31_net2, layer1_col30_net13, layer1_col31_net3, layer1_col30_net14, layer1_col31_net4, layer1_col30_net15, layer1_col31_net5, layer1_col30_net16, layer1_col31_net6, layer1_col30_net17, layer1_col31_net7, layer1_col30_net18, layer1_col31_net8, layer1_col30_net19, layer1_col31_net9, layer1_col30_net20, layer1_col31_net10, layer1_col32_net0, layer1_col31_net11, layer1_col32_net1, layer1_col31_net12, layer1_col32_net2, layer1_col31_net13, layer1_col32_net3, layer1_col31_net14, layer1_col32_net4, layer1_col31_net15, layer1_col32_net5, layer1_col31_net16, layer1_col32_net6, layer1_col31_net17, layer1_col32_net7, layer1_col31_net18, layer1_col32_net8, layer1_col31_net19, layer1_col32_net9, layer1_col31_net20, layer1_col31_net21, layer1_col32_net10, layer1_col33_net0, layer1_col32_net11, layer1_col33_net1, layer1_col32_net12, layer1_col33_net2, layer1_col32_net13, layer1_col33_net3, layer1_col32_net14, layer1_col33_net4, layer1_col32_net15, layer1_col33_net5, layer1_col32_net16, layer1_col33_net6, layer1_col32_net17, layer1_col33_net7, layer1_col32_net18, layer1_col33_net8, layer1_col32_net19, layer1_col33_net9, layer1_col32_net20, layer1_col33_net10, layer1_col34_net0, layer1_col33_net11, layer1_col34_net1, layer1_col33_net12, layer1_col34_net2, layer1_col33_net13, layer1_col34_net3, layer1_col33_net14, layer1_col34_net4, layer1_col33_net15, layer1_col34_net5, layer1_col33_net16, layer1_col34_net6, layer1_col33_net17, layer1_col34_net7, layer1_col33_net18, layer1_col34_net8, layer1_col33_net19, layer1_col34_net9, layer1_col34_net10, layer1_col35_net0, layer1_col34_net11, layer1_col35_net1, layer1_col34_net12, layer1_col35_net2, layer1_col34_net13, layer1_col35_net3, layer1_col34_net14, layer1_col35_net4, layer1_col34_net15, layer1_col35_net5, layer1_col34_net16, layer1_col35_net6, layer1_col34_net17, layer1_col35_net7, layer1_col34_net18, layer1_col35_net8, layer1_col34_net19, layer1_col34_net20, layer1_col35_net9, layer1_col36_net0, layer1_col35_net10, layer1_col36_net1, layer1_col35_net11, layer1_col36_net2, layer1_col35_net12, layer1_col36_net3, layer1_col35_net13, layer1_col36_net4, layer1_col35_net14, layer1_col36_net5, layer1_col35_net15, layer1_col36_net6, layer1_col35_net16, layer1_col36_net7, layer1_col35_net17, layer1_col36_net8, layer1_col35_net18, layer1_col36_net9, layer1_col37_net0, layer1_col36_net10, layer1_col37_net1, layer1_col36_net11, layer1_col37_net2, layer1_col36_net12, layer1_col37_net3, layer1_col36_net13, layer1_col37_net4, layer1_col36_net14, layer1_col37_net5, layer1_col36_net15, layer1_col37_net6, layer1_col36_net16, layer1_col37_net7, layer1_col36_net17, layer1_col37_net8, layer1_col37_net9, layer1_col38_net0, layer1_col37_net10, layer1_col38_net1, layer1_col37_net11, layer1_col38_net2, layer1_col37_net12, layer1_col38_net3, layer1_col37_net13, layer1_col38_net4, layer1_col37_net14, layer1_col38_net5, layer1_col37_net15, layer1_col38_net6, layer1_col37_net16, layer1_col38_net7, layer1_col37_net17, layer1_col37_net18, layer1_col38_net8, layer1_col39_net0, layer1_col38_net9, layer1_col39_net1, layer1_col38_net10, layer1_col39_net2, layer1_col38_net11, layer1_col39_net3, layer1_col38_net12, layer1_col39_net4, layer1_col38_net13, layer1_col39_net5, layer1_col38_net14, layer1_col39_net6, layer1_col38_net15, layer1_col39_net7, layer1_col38_net16, layer1_col39_net8, layer1_col40_net0, layer1_col39_net9, layer1_col40_net1, layer1_col39_net10, layer1_col40_net2, layer1_col39_net11, layer1_col40_net3, layer1_col39_net12, layer1_col40_net4, layer1_col39_net13, layer1_col40_net5, layer1_col39_net14, layer1_col40_net6, layer1_col39_net15, layer1_col40_net7, layer1_col40_net8, layer1_col41_net0, layer1_col40_net9, layer1_col41_net1, layer1_col40_net10, layer1_col41_net2, layer1_col40_net11, layer1_col41_net3, layer1_col40_net12, layer1_col41_net4, layer1_col40_net13, layer1_col41_net5, layer1_col40_net14, layer1_col41_net6, layer1_col40_net15, layer1_col40_net16, layer1_col41_net7, layer1_col42_net0, layer1_col41_net8, layer1_col42_net1, layer1_col41_net9, layer1_col42_net2, layer1_col41_net10, layer1_col42_net3, layer1_col41_net11, layer1_col42_net4, layer1_col41_net12, layer1_col42_net5, layer1_col41_net13, layer1_col42_net6, layer1_col41_net14, layer1_col42_net7, layer1_col43_net0, layer1_col42_net8, layer1_col43_net1, layer1_col42_net9, layer1_col43_net2, layer1_col42_net10, layer1_col43_net3, layer1_col42_net11, layer1_col43_net4, layer1_col42_net12, layer1_col43_net5, layer1_col42_net13, layer1_col43_net6, layer1_col43_net7, layer1_col44_net0, layer1_col43_net8, layer1_col44_net1, layer1_col43_net9, layer1_col44_net2, layer1_col43_net10, layer1_col44_net3, layer1_col43_net11, layer1_col44_net4, layer1_col43_net12, layer1_col44_net5, layer1_col43_net13, layer1_col43_net14, layer1_col44_net6, layer1_col45_net0, layer1_col44_net7, layer1_col45_net1, layer1_col44_net8, layer1_col45_net2, layer1_col44_net9, layer1_col45_net3, layer1_col44_net10, layer1_col45_net4, layer1_col44_net11, layer1_col45_net5, layer1_col44_net12, layer1_col45_net6, layer1_col46_net0, layer1_col45_net7, layer1_col46_net1, layer1_col45_net8, layer1_col46_net2, layer1_col45_net9, layer1_col46_net3, layer1_col45_net10, layer1_col46_net4, layer1_col45_net11, layer1_col46_net5, layer1_col46_net6, layer1_col47_net0, layer1_col46_net7, layer1_col47_net1, layer1_col46_net8, layer1_col47_net2, layer1_col46_net9, layer1_col47_net3, layer1_col46_net10, layer1_col47_net4, layer1_col46_net11, layer1_col46_net12, layer1_col47_net5, layer1_col48_net0, layer1_col47_net6, layer1_col48_net1, layer1_col47_net7, layer1_col48_net2, layer1_col47_net8, layer1_col48_net3, layer1_col47_net9, layer1_col48_net4, layer1_col47_net10, layer1_col48_net5, layer1_col49_net0, layer1_col48_net6, layer1_col49_net1, layer1_col48_net7, layer1_col49_net2, layer1_col48_net8, layer1_col49_net3, layer1_col48_net9, layer1_col49_net4, layer1_col49_net5, layer1_col50_net0, layer1_col49_net6, layer1_col50_net1, layer1_col49_net7, layer1_col50_net2, layer1_col49_net8, layer1_col50_net3, layer1_col49_net9, layer1_col49_net10, layer1_col50_net4, layer1_col51_net0, layer1_col50_net5, layer1_col51_net1, layer1_col50_net6, layer1_col51_net2, layer1_col50_net7, layer1_col51_net3, layer1_col50_net8, layer1_col51_net4, layer1_col52_net0, layer1_col51_net5, layer1_col52_net1, layer1_col51_net6, layer1_col52_net2, layer1_col51_net7, layer1_col52_net3, layer1_col52_net4, layer1_col53_net0, layer1_col52_net5, layer1_col53_net1, layer1_col52_net6, layer1_col53_net2, layer1_col52_net7, layer1_col52_net8, layer1_col53_net3, layer1_col54_net0, layer1_col53_net4, layer1_col54_net1, layer1_col53_net5, layer1_col54_net2, layer1_col53_net6, layer1_col54_net3, layer1_col55_net0, layer1_col54_net4, layer1_col55_net1, layer1_col54_net5, layer1_col55_net2, layer1_col55_net3, layer1_col56_net0, layer1_col55_net4, layer1_col56_net1, layer1_col55_net5, layer1_col55_net6, layer1_col56_net2, layer1_col57_net0, layer1_col56_net3, layer1_col57_net1, layer1_col56_net4, layer1_col57_net2, layer1_col58_net0, layer1_col57_net3, layer1_col58_net1, layer1_col58_net2, layer1_col59_net0, layer1_col58_net3, layer1_col58_net4, layer1_col59_net1, layer1_col60_net0, layer1_col59_net2, layer1_col60_net1, layer1_col61_net0, layer1_col61_net1, layer1_col61_net2, layer1_col62_net0; +logic layer2_col0_net0, layer2_col1_net0, layer2_col1_net1, layer2_col2_net0, layer2_col2_net1, layer2_col3_net0, layer2_col4_net0, layer2_col3_net1, layer2_col4_net1, layer2_col5_net0, layer2_col4_net2, layer2_col5_net1, layer2_col6_net0, layer2_col6_net1, layer2_col7_net0, layer2_col6_net2, layer2_col6_net3, layer2_col7_net1, layer2_col8_net0, layer2_col7_net2, layer2_col8_net1, layer2_col8_net2, layer2_col9_net0, layer2_col8_net3, layer2_col8_net4, layer2_col9_net1, layer2_col10_net0, layer2_col9_net2, layer2_col10_net1, layer2_col9_net3, layer2_col10_net2, layer2_col11_net0, layer2_col10_net3, layer2_col11_net1, layer2_col10_net4, layer2_col10_net5, layer2_col11_net2, layer2_col12_net0, layer2_col11_net3, layer2_col12_net1, layer2_col11_net4, layer2_col12_net2, layer2_col13_net0, layer2_col12_net3, layer2_col13_net1, layer2_col12_net4, layer2_col13_net2, layer2_col13_net3, layer2_col14_net0, layer2_col13_net4, layer2_col14_net1, layer2_col13_net5, layer2_col14_net2, layer2_col13_net6, layer2_col14_net3, layer2_col15_net0, layer2_col14_net4, layer2_col15_net1, layer2_col14_net5, layer2_col15_net2, layer2_col15_net3, layer2_col16_net0, layer2_col15_net4, layer2_col16_net1, layer2_col15_net5, layer2_col16_net2, layer2_col15_net6, layer2_col15_net7, layer2_col16_net3, layer2_col17_net0, layer2_col16_net4, layer2_col17_net1, layer2_col16_net5, layer2_col17_net2, layer2_col16_net6, layer2_col17_net3, layer2_col17_net4, layer2_col18_net0, layer2_col17_net5, layer2_col18_net1, layer2_col17_net6, layer2_col18_net2, layer2_col17_net7, layer2_col17_net8, layer2_col18_net3, layer2_col19_net0, layer2_col18_net4, layer2_col19_net1, layer2_col18_net5, layer2_col19_net2, layer2_col18_net6, layer2_col19_net3, layer2_col18_net7, layer2_col19_net4, layer2_col20_net0, layer2_col19_net5, layer2_col20_net1, layer2_col19_net6, layer2_col20_net2, layer2_col19_net7, layer2_col20_net3, layer2_col19_net8, layer2_col19_net9, layer2_col20_net4, layer2_col21_net0, layer2_col20_net5, layer2_col21_net1, layer2_col20_net6, layer2_col21_net2, layer2_col20_net7, layer2_col21_net3, layer2_col20_net8, layer2_col21_net4, layer2_col22_net0, layer2_col21_net5, layer2_col22_net1, layer2_col21_net6, layer2_col22_net2, layer2_col21_net7, layer2_col22_net3, layer2_col21_net8, layer2_col22_net4, layer2_col22_net5, layer2_col23_net0, layer2_col22_net6, layer2_col23_net1, layer2_col22_net7, layer2_col23_net2, layer2_col22_net8, layer2_col23_net3, layer2_col22_net9, layer2_col23_net4, layer2_col22_net10, layer2_col23_net5, layer2_col24_net0, layer2_col23_net6, layer2_col24_net1, layer2_col23_net7, layer2_col24_net2, layer2_col23_net8, layer2_col24_net3, layer2_col23_net9, layer2_col24_net4, layer2_col24_net5, layer2_col25_net0, layer2_col24_net6, layer2_col25_net1, layer2_col24_net7, layer2_col25_net2, layer2_col24_net8, layer2_col25_net3, layer2_col24_net9, layer2_col25_net4, layer2_col24_net10, layer2_col24_net11, layer2_col25_net5, layer2_col26_net0, layer2_col25_net6, layer2_col26_net1, layer2_col25_net7, layer2_col26_net2, layer2_col25_net8, layer2_col26_net3, layer2_col25_net9, layer2_col26_net4, layer2_col25_net10, layer2_col26_net5, layer2_col26_net6, layer2_col27_net0, layer2_col26_net7, layer2_col27_net1, layer2_col26_net8, layer2_col27_net2, layer2_col26_net9, layer2_col27_net3, layer2_col26_net10, layer2_col27_net4, layer2_col26_net11, layer2_col26_net12, layer2_col27_net5, layer2_col28_net0, layer2_col27_net6, layer2_col28_net1, layer2_col27_net7, layer2_col28_net2, layer2_col27_net8, layer2_col28_net3, layer2_col27_net9, layer2_col28_net4, layer2_col27_net10, layer2_col28_net5, layer2_col27_net11, layer2_col28_net6, layer2_col29_net0, layer2_col28_net7, layer2_col29_net1, layer2_col28_net8, layer2_col29_net2, layer2_col28_net9, layer2_col29_net3, layer2_col28_net10, layer2_col29_net4, layer2_col28_net11, layer2_col29_net5, layer2_col28_net12, layer2_col28_net13, layer2_col29_net6, layer2_col30_net0, layer2_col29_net7, layer2_col30_net1, layer2_col29_net8, layer2_col30_net2, layer2_col29_net9, layer2_col30_net3, layer2_col29_net10, layer2_col30_net4, layer2_col29_net11, layer2_col30_net5, layer2_col29_net12, layer2_col30_net6, layer2_col31_net0, layer2_col30_net7, layer2_col31_net1, layer2_col30_net8, layer2_col31_net2, layer2_col30_net9, layer2_col31_net3, layer2_col30_net10, layer2_col31_net4, layer2_col30_net11, layer2_col31_net5, layer2_col30_net12, layer2_col31_net6, layer2_col31_net7, layer2_col32_net0, layer2_col31_net8, layer2_col32_net1, layer2_col31_net9, layer2_col32_net2, layer2_col31_net10, layer2_col32_net3, layer2_col31_net11, layer2_col32_net4, layer2_col31_net12, layer2_col32_net5, layer2_col31_net13, layer2_col32_net6, layer2_col31_net14, layer2_col32_net7, layer2_col33_net0, layer2_col32_net8, layer2_col33_net1, layer2_col32_net9, layer2_col33_net2, layer2_col32_net10, layer2_col33_net3, layer2_col32_net11, layer2_col33_net4, layer2_col32_net12, layer2_col33_net5, layer2_col32_net13, layer2_col33_net6, layer2_col33_net7, layer2_col34_net0, layer2_col33_net8, layer2_col34_net1, layer2_col33_net9, layer2_col34_net2, layer2_col33_net10, layer2_col34_net3, layer2_col33_net11, layer2_col34_net4, layer2_col33_net12, layer2_col34_net5, layer2_col33_net13, layer2_col33_net14, layer2_col34_net6, layer2_col35_net0, layer2_col34_net7, layer2_col35_net1, layer2_col34_net8, layer2_col35_net2, layer2_col34_net9, layer2_col35_net3, layer2_col34_net10, layer2_col35_net4, layer2_col34_net11, layer2_col35_net5, layer2_col34_net12, layer2_col35_net6, layer2_col35_net7, layer2_col36_net0, layer2_col35_net8, layer2_col36_net1, layer2_col35_net9, layer2_col36_net2, layer2_col35_net10, layer2_col36_net3, layer2_col35_net11, layer2_col36_net4, layer2_col35_net12, layer2_col36_net5, layer2_col35_net13, layer2_col36_net6, layer2_col37_net0, layer2_col36_net7, layer2_col37_net1, layer2_col36_net8, layer2_col37_net2, layer2_col36_net9, layer2_col37_net3, layer2_col36_net10, layer2_col37_net4, layer2_col36_net11, layer2_col37_net5, layer2_col37_net6, layer2_col38_net0, layer2_col37_net7, layer2_col38_net1, layer2_col37_net8, layer2_col38_net2, layer2_col37_net9, layer2_col38_net3, layer2_col37_net10, layer2_col38_net4, layer2_col37_net11, layer2_col38_net5, layer2_col37_net12, layer2_col38_net6, layer2_col39_net0, layer2_col38_net7, layer2_col39_net1, layer2_col38_net8, layer2_col39_net2, layer2_col38_net9, layer2_col39_net3, layer2_col38_net10, layer2_col39_net4, layer2_col38_net11, layer2_col38_net12, layer2_col39_net5, layer2_col40_net0, layer2_col39_net6, layer2_col40_net1, layer2_col39_net7, layer2_col40_net2, layer2_col39_net8, layer2_col40_net3, layer2_col39_net9, layer2_col40_net4, layer2_col39_net10, layer2_col40_net5, layer2_col41_net0, layer2_col40_net6, layer2_col41_net1, layer2_col40_net7, layer2_col41_net2, layer2_col40_net8, layer2_col41_net3, layer2_col40_net9, layer2_col41_net4, layer2_col40_net10, layer2_col40_net11, layer2_col41_net5, layer2_col42_net0, layer2_col41_net6, layer2_col42_net1, layer2_col41_net7, layer2_col42_net2, layer2_col41_net8, layer2_col42_net3, layer2_col41_net9, layer2_col42_net4, layer2_col42_net5, layer2_col43_net0, layer2_col42_net6, layer2_col43_net1, layer2_col42_net7, layer2_col43_net2, layer2_col42_net8, layer2_col43_net3, layer2_col42_net9, layer2_col42_net10, layer2_col43_net4, layer2_col44_net0, layer2_col43_net5, layer2_col44_net1, layer2_col43_net6, layer2_col44_net2, layer2_col43_net7, layer2_col44_net3, layer2_col43_net8, layer2_col44_net4, layer2_col44_net5, layer2_col45_net0, layer2_col44_net6, layer2_col45_net1, layer2_col44_net7, layer2_col45_net2, layer2_col44_net8, layer2_col45_net3, layer2_col44_net9, layer2_col45_net4, layer2_col46_net0, layer2_col45_net5, layer2_col46_net1, layer2_col45_net6, layer2_col46_net2, layer2_col45_net7, layer2_col46_net3, layer2_col46_net4, layer2_col47_net0, layer2_col46_net5, layer2_col47_net1, layer2_col46_net6, layer2_col47_net2, layer2_col46_net7, layer2_col47_net3, layer2_col46_net8, layer2_col47_net4, layer2_col48_net0, layer2_col47_net5, layer2_col48_net1, layer2_col47_net6, layer2_col48_net2, layer2_col47_net7, layer2_col47_net8, layer2_col48_net3, layer2_col49_net0, layer2_col48_net4, layer2_col49_net1, layer2_col48_net5, layer2_col49_net2, layer2_col48_net6, layer2_col49_net3, layer2_col50_net0, layer2_col49_net4, layer2_col50_net1, layer2_col49_net5, layer2_col50_net2, layer2_col49_net6, layer2_col49_net7, layer2_col50_net3, layer2_col51_net0, layer2_col50_net4, layer2_col51_net1, layer2_col50_net5, layer2_col51_net2, layer2_col51_net3, layer2_col52_net0, layer2_col51_net4, layer2_col52_net1, layer2_col51_net5, layer2_col51_net6, layer2_col52_net2, layer2_col53_net0, layer2_col52_net3, layer2_col53_net1, layer2_col52_net4, layer2_col53_net2, layer2_col53_net3, layer2_col54_net0, layer2_col53_net4, layer2_col54_net1, layer2_col53_net5, layer2_col54_net2, layer2_col55_net0, layer2_col54_net3, layer2_col55_net1, layer2_col55_net2, layer2_col56_net0, layer2_col55_net3, layer2_col56_net1, layer2_col55_net4, layer2_col56_net2, layer2_col57_net0, layer2_col56_net3, layer2_col56_net4, layer2_col57_net1, layer2_col58_net0, layer2_col57_net2, layer2_col58_net1, layer2_col59_net0, layer2_col58_net2, layer2_col58_net3, layer2_col59_net1, layer2_col60_net0, layer2_col60_net1, layer2_col60_net2, layer2_col61_net0, layer2_col62_net0, layer2_col62_net1; +logic layer3_col0_net0, layer3_col1_net0, layer3_col1_net1, layer3_col2_net0, layer3_col2_net1, layer3_col3_net0, layer3_col3_net1, layer3_col4_net0, layer3_col5_net0, layer3_col4_net1, layer3_col5_net1, layer3_col5_net2, layer3_col6_net0, layer3_col7_net0, layer3_col6_net1, layer3_col7_net1, layer3_col8_net0, layer3_col8_net1, layer3_col9_net0, layer3_col8_net2, layer3_col8_net3, layer3_col9_net1, layer3_col10_net0, layer3_col9_net2, layer3_col10_net1, layer3_col11_net0, layer3_col10_net2, layer3_col11_net1, layer3_col11_net2, layer3_col12_net0, layer3_col11_net3, layer3_col11_net4, layer3_col12_net1, layer3_col13_net0, layer3_col12_net2, layer3_col12_net3, layer3_col13_net1, layer3_col14_net0, layer3_col13_net2, layer3_col14_net1, layer3_col13_net3, layer3_col14_net2, layer3_col15_net0, layer3_col14_net3, layer3_col15_net1, layer3_col15_net2, layer3_col16_net0, layer3_col15_net3, layer3_col16_net1, layer3_col15_net4, layer3_col15_net5, layer3_col16_net2, layer3_col17_net0, layer3_col16_net3, layer3_col17_net1, layer3_col16_net4, layer3_col17_net2, layer3_col18_net0, layer3_col17_net3, layer3_col18_net1, layer3_col17_net4, layer3_col18_net2, layer3_col18_net3, layer3_col19_net0, layer3_col18_net4, layer3_col19_net1, layer3_col18_net5, layer3_col18_net6, layer3_col19_net2, layer3_col20_net0, layer3_col19_net3, layer3_col20_net1, layer3_col19_net4, layer3_col20_net2, layer3_col19_net5, layer3_col20_net3, layer3_col21_net0, layer3_col20_net4, layer3_col21_net1, layer3_col20_net5, layer3_col21_net2, layer3_col21_net3, layer3_col22_net0, layer3_col21_net4, layer3_col22_net1, layer3_col21_net5, layer3_col22_net2, layer3_col22_net3, layer3_col23_net0, layer3_col22_net4, layer3_col23_net1, layer3_col22_net5, layer3_col23_net2, layer3_col22_net6, layer3_col22_net7, layer3_col23_net3, layer3_col24_net0, layer3_col23_net4, layer3_col24_net1, layer3_col23_net5, layer3_col24_net2, layer3_col23_net6, layer3_col24_net3, layer3_col25_net0, layer3_col24_net4, layer3_col25_net1, layer3_col24_net5, layer3_col25_net2, layer3_col24_net6, layer3_col25_net3, layer3_col25_net4, layer3_col26_net0, layer3_col25_net5, layer3_col26_net1, layer3_col25_net6, layer3_col26_net2, layer3_col25_net7, layer3_col25_net8, layer3_col26_net3, layer3_col27_net0, layer3_col26_net4, layer3_col27_net1, layer3_col26_net5, layer3_col27_net2, layer3_col26_net6, layer3_col27_net3, layer3_col26_net7, layer3_col27_net4, layer3_col28_net0, layer3_col27_net5, layer3_col28_net1, layer3_col27_net6, layer3_col28_net2, layer3_col27_net7, layer3_col28_net3, layer3_col28_net4, layer3_col29_net0, layer3_col28_net5, layer3_col29_net1, layer3_col28_net6, layer3_col29_net2, layer3_col28_net7, layer3_col29_net3, layer3_col28_net8, layer3_col28_net9, layer3_col29_net4, layer3_col30_net0, layer3_col29_net5, layer3_col30_net1, layer3_col29_net6, layer3_col30_net2, layer3_col29_net7, layer3_col30_net3, layer3_col29_net8, layer3_col30_net4, layer3_col31_net0, layer3_col30_net5, layer3_col31_net1, layer3_col30_net6, layer3_col31_net2, layer3_col30_net7, layer3_col31_net3, layer3_col30_net8, layer3_col31_net4, layer3_col32_net0, layer3_col31_net5, layer3_col32_net1, layer3_col31_net6, layer3_col32_net2, layer3_col31_net7, layer3_col32_net3, layer3_col31_net8, layer3_col32_net4, layer3_col32_net5, layer3_col33_net0, layer3_col32_net6, layer3_col33_net1, layer3_col32_net7, layer3_col33_net2, layer3_col32_net8, layer3_col33_net3, layer3_col32_net9, layer3_col32_net10, layer3_col33_net4, layer3_col34_net0, layer3_col33_net5, layer3_col34_net1, layer3_col33_net6, layer3_col34_net2, layer3_col33_net7, layer3_col34_net3, layer3_col33_net8, layer3_col34_net4, layer3_col34_net5, layer3_col35_net0, layer3_col34_net6, layer3_col35_net1, layer3_col34_net7, layer3_col35_net2, layer3_col34_net8, layer3_col35_net3, layer3_col34_net9, layer3_col35_net4, layer3_col36_net0, layer3_col35_net5, layer3_col36_net1, layer3_col35_net6, layer3_col36_net2, layer3_col35_net7, layer3_col36_net3, layer3_col35_net8, layer3_col35_net9, layer3_col36_net4, layer3_col37_net0, layer3_col36_net5, layer3_col37_net1, layer3_col36_net6, layer3_col37_net2, layer3_col36_net7, layer3_col37_net3, layer3_col37_net4, layer3_col38_net0, layer3_col37_net5, layer3_col38_net1, layer3_col37_net6, layer3_col38_net2, layer3_col37_net7, layer3_col38_net3, layer3_col37_net8, layer3_col38_net4, layer3_col39_net0, layer3_col38_net5, layer3_col39_net1, layer3_col38_net6, layer3_col39_net2, layer3_col38_net7, layer3_col39_net3, layer3_col38_net8, layer3_col39_net4, layer3_col40_net0, layer3_col39_net5, layer3_col40_net1, layer3_col39_net6, layer3_col40_net2, layer3_col39_net7, layer3_col39_net8, layer3_col40_net3, layer3_col41_net0, layer3_col40_net4, layer3_col41_net1, layer3_col40_net5, layer3_col41_net2, layer3_col40_net6, layer3_col41_net3, layer3_col41_net4, layer3_col42_net0, layer3_col41_net5, layer3_col42_net1, layer3_col41_net6, layer3_col42_net2, layer3_col41_net7, layer3_col42_net3, layer3_col43_net0, layer3_col42_net4, layer3_col43_net1, layer3_col42_net5, layer3_col43_net2, layer3_col42_net6, layer3_col42_net7, layer3_col43_net3, layer3_col44_net0, layer3_col43_net4, layer3_col44_net1, layer3_col43_net5, layer3_col44_net2, layer3_col44_net3, layer3_col45_net0, layer3_col44_net4, layer3_col45_net1, layer3_col44_net5, layer3_col45_net2, layer3_col44_net6, layer3_col45_net3, layer3_col46_net0, layer3_col45_net4, layer3_col46_net1, layer3_col45_net5, layer3_col45_net6, layer3_col46_net2, layer3_col47_net0, layer3_col46_net3, layer3_col47_net1, layer3_col46_net4, layer3_col47_net2, layer3_col47_net3, layer3_col48_net0, layer3_col47_net4, layer3_col48_net1, layer3_col47_net5, layer3_col48_net2, layer3_col48_net3, layer3_col49_net0, layer3_col48_net4, layer3_col49_net1, layer3_col48_net5, layer3_col49_net2, layer3_col50_net0, layer3_col49_net3, layer3_col50_net1, layer3_col49_net4, layer3_col49_net5, layer3_col50_net2, layer3_col51_net0, layer3_col50_net3, layer3_col51_net1, layer3_col51_net2, layer3_col52_net0, layer3_col51_net3, layer3_col52_net1, layer3_col51_net4, layer3_col52_net2, layer3_col53_net0, layer3_col52_net3, layer3_col52_net4, layer3_col53_net1, layer3_col54_net0, layer3_col53_net2, layer3_col54_net1, layer3_col54_net2, layer3_col55_net0, layer3_col54_net3, layer3_col55_net1, layer3_col56_net0, layer3_col55_net2, layer3_col55_net3, layer3_col56_net1, layer3_col57_net0, layer3_col56_net2, layer3_col56_net3, layer3_col57_net1, layer3_col58_net0, layer3_col58_net1, layer3_col59_net0, layer3_col58_net2, layer3_col59_net1, layer3_col59_net2, layer3_col60_net0, layer3_col61_net0, layer3_col61_net1, layer3_col62_net0, layer3_col62_net1; +logic layer4_col0_net0, layer4_col1_net0, layer4_col1_net1, layer4_col2_net0, layer4_col2_net1, layer4_col3_net0, layer4_col3_net1, layer4_col4_net0, layer4_col4_net1, layer4_col5_net0, layer4_col6_net0, layer4_col5_net1, layer4_col6_net1, layer4_col6_net2, layer4_col7_net0, layer4_col7_net1, layer4_col8_net0, layer4_col9_net0, layer4_col8_net1, layer4_col9_net1, layer4_col10_net0, layer4_col10_net1, layer4_col11_net0, layer4_col11_net1, layer4_col12_net0, layer4_col11_net2, layer4_col11_net3, layer4_col12_net1, layer4_col13_net0, layer4_col12_net2, layer4_col13_net1, layer4_col14_net0, layer4_col13_net2, layer4_col14_net1, layer4_col15_net0, layer4_col14_net2, layer4_col15_net1, layer4_col16_net0, layer4_col15_net2, layer4_col16_net1, layer4_col16_net2, layer4_col17_net0, layer4_col16_net3, layer4_col16_net4, layer4_col17_net1, layer4_col18_net0, layer4_col17_net2, layer4_col17_net3, layer4_col18_net1, layer4_col19_net0, layer4_col18_net2, layer4_col19_net1, layer4_col18_net3, layer4_col19_net2, layer4_col20_net0, layer4_col19_net3, layer4_col20_net1, layer4_col20_net2, layer4_col21_net0, layer4_col20_net3, layer4_col21_net1, layer4_col21_net2, layer4_col22_net0, layer4_col21_net3, layer4_col22_net1, layer4_col22_net2, layer4_col23_net0, layer4_col22_net3, layer4_col23_net1, layer4_col22_net4, layer4_col22_net5, layer4_col23_net2, layer4_col24_net0, layer4_col23_net3, layer4_col24_net1, layer4_col23_net4, layer4_col24_net2, layer4_col25_net0, layer4_col24_net3, layer4_col25_net1, layer4_col24_net4, layer4_col25_net2, layer4_col26_net0, layer4_col25_net3, layer4_col26_net1, layer4_col25_net4, layer4_col26_net2, layer4_col26_net3, layer4_col27_net0, layer4_col26_net4, layer4_col27_net1, layer4_col26_net5, layer4_col26_net6, layer4_col27_net2, layer4_col28_net0, layer4_col27_net3, layer4_col28_net1, layer4_col27_net4, layer4_col27_net5, layer4_col28_net2, layer4_col29_net0, layer4_col28_net3, layer4_col29_net1, layer4_col28_net4, layer4_col29_net2, layer4_col28_net5, layer4_col29_net3, layer4_col30_net0, layer4_col29_net4, layer4_col30_net1, layer4_col29_net5, layer4_col30_net2, layer4_col30_net3, layer4_col31_net0, layer4_col30_net4, layer4_col31_net1, layer4_col30_net5, layer4_col31_net2, layer4_col31_net3, layer4_col32_net0, layer4_col31_net4, layer4_col32_net1, layer4_col31_net5, layer4_col32_net2, layer4_col32_net3, layer4_col33_net0, layer4_col32_net4, layer4_col33_net1, layer4_col32_net5, layer4_col33_net2, layer4_col32_net6, layer4_col32_net7, layer4_col33_net3, layer4_col34_net0, layer4_col33_net4, layer4_col34_net1, layer4_col33_net5, layer4_col34_net2, layer4_col34_net3, layer4_col35_net0, layer4_col34_net4, layer4_col35_net1, layer4_col34_net5, layer4_col35_net2, layer4_col34_net6, layer4_col35_net3, layer4_col36_net0, layer4_col35_net4, layer4_col36_net1, layer4_col35_net5, layer4_col36_net2, layer4_col35_net6, layer4_col36_net3, layer4_col37_net0, layer4_col36_net4, layer4_col37_net1, layer4_col36_net5, layer4_col36_net6, layer4_col37_net2, layer4_col38_net0, layer4_col37_net3, layer4_col38_net1, layer4_col37_net4, layer4_col38_net2, layer4_col38_net3, layer4_col39_net0, layer4_col38_net4, layer4_col39_net1, layer4_col38_net5, layer4_col39_net2, layer4_col39_net3, layer4_col40_net0, layer4_col39_net4, layer4_col40_net1, layer4_col39_net5, layer4_col40_net2, layer4_col40_net3, layer4_col41_net0, layer4_col40_net4, layer4_col41_net1, layer4_col40_net5, layer4_col41_net2, layer4_col42_net0, layer4_col41_net3, layer4_col42_net1, layer4_col41_net4, layer4_col41_net5, layer4_col42_net2, layer4_col43_net0, layer4_col42_net3, layer4_col43_net1, layer4_col42_net4, layer4_col42_net5, layer4_col43_net2, layer4_col44_net0, layer4_col43_net3, layer4_col44_net1, layer4_col44_net2, layer4_col45_net0, layer4_col44_net3, layer4_col45_net1, layer4_col44_net4, layer4_col45_net2, layer4_col46_net0, layer4_col45_net3, layer4_col46_net1, layer4_col45_net4, layer4_col46_net2, layer4_col47_net0, layer4_col46_net3, layer4_col46_net4, layer4_col47_net1, layer4_col48_net0, layer4_col47_net2, layer4_col48_net1, layer4_col48_net2, layer4_col49_net0, layer4_col48_net3, layer4_col49_net1, layer4_col49_net2, layer4_col50_net0, layer4_col49_net3, layer4_col50_net1, layer4_col50_net2, layer4_col51_net0, layer4_col50_net3, layer4_col51_net1, layer4_col52_net0, layer4_col51_net2, layer4_col51_net3, layer4_col52_net1, layer4_col53_net0, layer4_col52_net2, layer4_col52_net3, layer4_col53_net1, layer4_col54_net0, layer4_col54_net1, layer4_col55_net0, layer4_col54_net2, layer4_col55_net1, layer4_col56_net0, layer4_col55_net2, layer4_col56_net1, layer4_col57_net0, layer4_col56_net2, layer4_col57_net1, layer4_col57_net2, layer4_col58_net0, layer4_col59_net0, layer4_col59_net1, layer4_col60_net0, layer4_col60_net1, layer4_col61_net0, layer4_col61_net1, layer4_col62_net0, layer4_col62_net1; +logic layer5_col0_net0, layer5_col1_net0, layer5_col1_net1, layer5_col2_net0, layer5_col2_net1, layer5_col3_net0, layer5_col3_net1, layer5_col4_net0, layer5_col4_net1, layer5_col5_net0, layer5_col5_net1, layer5_col6_net0, layer5_col7_net0, layer5_col6_net1, layer5_col7_net1, layer5_col7_net2, layer5_col8_net0, layer5_col8_net1, layer5_col9_net0, layer5_col9_net1, layer5_col10_net0, layer5_col10_net1, layer5_col11_net0, layer5_col12_net0, layer5_col11_net1, layer5_col12_net1, layer5_col13_net0, layer5_col13_net1, layer5_col14_net0, layer5_col14_net1, layer5_col15_net0, layer5_col15_net1, layer5_col16_net0, layer5_col16_net1, layer5_col17_net0, layer5_col16_net2, layer5_col16_net3, layer5_col17_net1, layer5_col18_net0, layer5_col17_net2, layer5_col18_net1, layer5_col19_net0, layer5_col18_net2, layer5_col19_net1, layer5_col20_net0, layer5_col19_net2, layer5_col20_net1, layer5_col21_net0, layer5_col20_net2, layer5_col21_net1, layer5_col22_net0, layer5_col21_net2, layer5_col22_net1, layer5_col23_net0, layer5_col22_net2, layer5_col23_net1, layer5_col23_net2, layer5_col24_net0, layer5_col23_net3, layer5_col23_net4, layer5_col24_net1, layer5_col25_net0, layer5_col24_net2, layer5_col24_net3, layer5_col25_net1, layer5_col26_net0, layer5_col25_net2, layer5_col25_net3, layer5_col26_net1, layer5_col27_net0, layer5_col26_net2, layer5_col27_net1, layer5_col26_net3, layer5_col27_net2, layer5_col28_net0, layer5_col27_net3, layer5_col28_net1, layer5_col28_net2, layer5_col29_net0, layer5_col28_net3, layer5_col29_net1, layer5_col29_net2, layer5_col30_net0, layer5_col29_net3, layer5_col30_net1, layer5_col30_net2, layer5_col31_net0, layer5_col30_net3, layer5_col31_net1, layer5_col31_net2, layer5_col32_net0, layer5_col31_net3, layer5_col32_net1, layer5_col32_net2, layer5_col33_net0, layer5_col32_net3, layer5_col33_net1, layer5_col32_net4, layer5_col32_net5, layer5_col33_net2, layer5_col34_net0, layer5_col33_net3, layer5_col34_net1, layer5_col34_net2, layer5_col35_net0, layer5_col34_net3, layer5_col35_net1, layer5_col34_net4, layer5_col35_net2, layer5_col36_net0, layer5_col35_net3, layer5_col36_net1, layer5_col35_net4, layer5_col36_net2, layer5_col37_net0, layer5_col36_net3, layer5_col37_net1, layer5_col36_net4, layer5_col37_net2, layer5_col38_net0, layer5_col37_net3, layer5_col37_net4, layer5_col38_net1, layer5_col39_net0, layer5_col38_net2, layer5_col39_net1, layer5_col39_net2, layer5_col40_net0, layer5_col39_net3, layer5_col40_net1, layer5_col40_net2, layer5_col41_net0, layer5_col40_net3, layer5_col41_net1, layer5_col41_net2, layer5_col42_net0, layer5_col41_net3, layer5_col42_net1, layer5_col42_net2, layer5_col43_net0, layer5_col42_net3, layer5_col43_net1, layer5_col43_net2, layer5_col44_net0, layer5_col43_net3, layer5_col44_net1, layer5_col45_net0, layer5_col44_net2, layer5_col44_net3, layer5_col45_net1, layer5_col46_net0, layer5_col45_net2, layer5_col45_net3, layer5_col46_net1, layer5_col47_net0, layer5_col46_net2, layer5_col46_net3, layer5_col47_net1, layer5_col48_net0, layer5_col48_net1, layer5_col49_net0, layer5_col48_net2, layer5_col49_net1, layer5_col50_net0, layer5_col49_net2, layer5_col50_net1, layer5_col51_net0, layer5_col50_net2, layer5_col51_net1, layer5_col52_net0, layer5_col51_net2, layer5_col52_net1, layer5_col53_net0, layer5_col52_net2, layer5_col53_net1, layer5_col53_net2, layer5_col54_net0, layer5_col55_net0, layer5_col55_net1, layer5_col56_net0, layer5_col56_net1, layer5_col57_net0, layer5_col57_net1, layer5_col58_net0, layer5_col58_net1, layer5_col59_net0, layer5_col59_net1, layer5_col60_net0, layer5_col60_net1, layer5_col61_net0, layer5_col61_net1, layer5_col62_net0, layer5_col62_net1; +logic layer6_col0_net0, layer6_col1_net0, layer6_col1_net1, layer6_col2_net0, layer6_col2_net1, layer6_col3_net0, layer6_col3_net1, layer6_col4_net0, layer6_col4_net1, layer6_col5_net0, layer6_col5_net1, layer6_col6_net0, layer6_col6_net1, layer6_col7_net0, layer6_col8_net0, layer6_col7_net1, layer6_col8_net1, layer6_col8_net2, layer6_col9_net0, layer6_col9_net1, layer6_col10_net0, layer6_col10_net1, layer6_col11_net0, layer6_col11_net1, layer6_col12_net0, layer6_col12_net1, layer6_col13_net0, layer6_col13_net1, layer6_col14_net0, layer6_col14_net1, layer6_col15_net0, layer6_col15_net1, layer6_col16_net0, layer6_col17_net0, layer6_col16_net1, layer6_col17_net1, layer6_col18_net0, layer6_col18_net1, layer6_col19_net0, layer6_col19_net1, layer6_col20_net0, layer6_col20_net1, layer6_col21_net0, layer6_col21_net1, layer6_col22_net0, layer6_col22_net1, layer6_col23_net0, layer6_col23_net1, layer6_col24_net0, layer6_col23_net2, layer6_col23_net3, layer6_col24_net1, layer6_col25_net0, layer6_col24_net2, layer6_col25_net1, layer6_col26_net0, layer6_col25_net2, layer6_col26_net1, layer6_col27_net0, layer6_col26_net2, layer6_col27_net1, layer6_col28_net0, layer6_col27_net2, layer6_col28_net1, layer6_col29_net0, layer6_col28_net2, layer6_col29_net1, layer6_col30_net0, layer6_col29_net2, layer6_col30_net1, layer6_col31_net0, layer6_col30_net2, layer6_col31_net1, layer6_col32_net0, layer6_col31_net2, layer6_col32_net1, layer6_col33_net0, layer6_col32_net2, layer6_col33_net1, layer6_col33_net2, layer6_col34_net0, layer6_col33_net3, layer6_col34_net1, layer6_col35_net0, layer6_col34_net2, layer6_col34_net3, layer6_col35_net1, layer6_col36_net0, layer6_col35_net2, layer6_col35_net3, layer6_col36_net1, layer6_col37_net0, layer6_col36_net2, layer6_col36_net3, layer6_col37_net1, layer6_col38_net0, layer6_col37_net2, layer6_col37_net3, layer6_col38_net1, layer6_col39_net0, layer6_col39_net1, layer6_col40_net0, layer6_col39_net2, layer6_col40_net1, layer6_col41_net0, layer6_col40_net2, layer6_col41_net1, layer6_col42_net0, layer6_col41_net2, layer6_col42_net1, layer6_col43_net0, layer6_col42_net2, layer6_col43_net1, layer6_col44_net0, layer6_col43_net2, layer6_col44_net1, layer6_col45_net0, layer6_col44_net2, layer6_col45_net1, layer6_col46_net0, layer6_col45_net2, layer6_col46_net1, layer6_col47_net0, layer6_col46_net2, layer6_col47_net1, layer6_col47_net2, layer6_col48_net0, layer6_col49_net0, layer6_col49_net1, layer6_col50_net0, layer6_col50_net1, layer6_col51_net0, layer6_col51_net1, layer6_col52_net0, layer6_col52_net1, layer6_col53_net0, layer6_col53_net1, layer6_col54_net0, layer6_col54_net1, layer6_col55_net0, layer6_col55_net1, layer6_col56_net0, layer6_col56_net1, layer6_col57_net0, layer6_col57_net1, layer6_col58_net0, layer6_col58_net1, layer6_col59_net0, layer6_col59_net1, layer6_col60_net0, layer6_col60_net1, layer6_col61_net0, layer6_col61_net1, layer6_col62_net0, layer6_col62_net1; +logic layer7_col0_net0, layer7_col1_net0, layer7_col1_net1, layer7_col2_net0, layer7_col2_net1, layer7_col3_net0, layer7_col3_net1, layer7_col4_net0, layer7_col4_net1, layer7_col5_net0, layer7_col5_net1, layer7_col6_net0, layer7_col6_net1, layer7_col7_net0, layer7_col7_net1, layer7_col8_net0, layer7_col9_net0, layer7_col8_net1, layer7_col9_net1, layer7_col9_net2, layer7_col10_net0, layer7_col10_net1, layer7_col11_net0, layer7_col11_net1, layer7_col12_net0, layer7_col12_net1, layer7_col13_net0, layer7_col13_net1, layer7_col14_net0, layer7_col14_net1, layer7_col15_net0, layer7_col15_net1, layer7_col16_net0, layer7_col16_net1, layer7_col17_net0, layer7_col17_net1, layer7_col18_net0, layer7_col18_net1, layer7_col19_net0, layer7_col19_net1, layer7_col20_net0, layer7_col20_net1, layer7_col21_net0, layer7_col21_net1, layer7_col22_net0, layer7_col22_net1, layer7_col23_net0, layer7_col24_net0, layer7_col23_net1, layer7_col24_net1, layer7_col25_net0, layer7_col25_net1, layer7_col26_net0, layer7_col26_net1, layer7_col27_net0, layer7_col27_net1, layer7_col28_net0, layer7_col28_net1, layer7_col29_net0, layer7_col29_net1, layer7_col30_net0, layer7_col30_net1, layer7_col31_net0, layer7_col31_net1, layer7_col32_net0, layer7_col32_net1, layer7_col33_net0, layer7_col33_net1, layer7_col34_net0, layer7_col33_net2, layer7_col34_net1, layer7_col35_net0, layer7_col34_net2, layer7_col35_net1, layer7_col36_net0, layer7_col35_net2, layer7_col36_net1, layer7_col37_net0, layer7_col36_net2, layer7_col37_net1, layer7_col38_net0, layer7_col37_net2, layer7_col38_net1, layer7_col38_net2, layer7_col39_net0, layer7_col40_net0, layer7_col40_net1, layer7_col41_net0, layer7_col41_net1, layer7_col42_net0, layer7_col42_net1, layer7_col43_net0, layer7_col43_net1, layer7_col44_net0, layer7_col44_net1, layer7_col45_net0, layer7_col45_net1, layer7_col46_net0, layer7_col46_net1, layer7_col47_net0, layer7_col47_net1, layer7_col48_net0, layer7_col48_net1, layer7_col49_net0, layer7_col49_net1, layer7_col50_net0, layer7_col50_net1, layer7_col51_net0, layer7_col51_net1, layer7_col52_net0, layer7_col52_net1, layer7_col53_net0, layer7_col53_net1, layer7_col54_net0, layer7_col54_net1, layer7_col55_net0, layer7_col55_net1, layer7_col56_net0, layer7_col56_net1, layer7_col57_net0, layer7_col57_net1, layer7_col58_net0, layer7_col58_net1, layer7_col59_net0, layer7_col59_net1, layer7_col60_net0, layer7_col60_net1, layer7_col61_net0, layer7_col61_net1, layer7_col62_net0, layer7_col62_net1; +logic layer8_col0_net0, layer8_col1_net0, layer8_col1_net1, layer8_col2_net0, layer8_col2_net1, layer8_col3_net0, layer8_col3_net1, layer8_col4_net0, layer8_col4_net1, layer8_col5_net0, layer8_col5_net1, layer8_col6_net0, layer8_col6_net1, layer8_col7_net0, layer8_col7_net1, layer8_col8_net0, layer8_col8_net1, layer8_col9_net0, layer8_col10_net0, layer8_col9_net1, layer8_col10_net1, layer8_col11_net0, layer8_col11_net1, layer8_col12_net0, layer8_col12_net1, layer8_col13_net0, layer8_col13_net1, layer8_col14_net0, layer8_col14_net1, layer8_col15_net0, layer8_col15_net1, layer8_col16_net0, layer8_col16_net1, layer8_col17_net0, layer8_col17_net1, layer8_col18_net0, layer8_col18_net1, layer8_col19_net0, layer8_col19_net1, layer8_col20_net0, layer8_col20_net1, layer8_col21_net0, layer8_col21_net1, layer8_col22_net0, layer8_col22_net1, layer8_col23_net0, layer8_col23_net1, layer8_col24_net0, layer8_col24_net1, layer8_col25_net0, layer8_col25_net1, layer8_col26_net0, layer8_col26_net1, layer8_col27_net0, layer8_col27_net1, layer8_col28_net0, layer8_col28_net1, layer8_col29_net0, layer8_col29_net1, layer8_col30_net0, layer8_col30_net1, layer8_col31_net0, layer8_col31_net1, layer8_col32_net0, layer8_col32_net1, layer8_col33_net0, layer8_col33_net1, layer8_col34_net0, layer8_col34_net1, layer8_col35_net0, layer8_col35_net1, layer8_col36_net0, layer8_col36_net1, layer8_col37_net0, layer8_col37_net1, layer8_col38_net0, layer8_col38_net1, layer8_col39_net0, layer8_col39_net1, layer8_col40_net0, layer8_col40_net1, layer8_col41_net0, layer8_col41_net1, layer8_col42_net0, layer8_col42_net1, layer8_col43_net0, layer8_col43_net1, layer8_col44_net0, layer8_col44_net1, layer8_col45_net0, layer8_col45_net1, layer8_col46_net0, layer8_col46_net1, layer8_col47_net0, layer8_col47_net1, layer8_col48_net0, layer8_col48_net1, layer8_col49_net0, layer8_col49_net1, layer8_col50_net0, layer8_col50_net1, layer8_col51_net0, layer8_col51_net1, layer8_col52_net0, layer8_col52_net1, layer8_col53_net0, layer8_col53_net1, layer8_col54_net0, layer8_col54_net1, layer8_col55_net0, layer8_col55_net1, layer8_col56_net0, layer8_col56_net1, layer8_col57_net0, layer8_col57_net1, layer8_col58_net0, layer8_col58_net1, layer8_col59_net0, layer8_col59_net1, layer8_col60_net0, layer8_col60_net1, layer8_col61_net0, layer8_col61_net1, layer8_col62_net0, layer8_col62_net1; + +//----------- Reduction Layer 1 Start -------------- + +assign layer1_col0_net0 = partial_prod[0][0]; +assign layer1_col1_net0 = partial_prod[1][0]; +assign layer1_col1_net1 = partial_prod[0][1]; +assign layer1_col2_net1 = partial_prod[0][2]; +assign layer1_col3_net2 = partial_prod[0][3]; +assign layer1_col4_net2 = partial_prod[1][3]; +assign layer1_col4_net3 = partial_prod[0][4]; +assign layer1_col6_net4 = partial_prod[0][6]; +assign layer1_col7_net4 = partial_prod[1][6]; +assign layer1_col7_net5 = partial_prod[0][7]; +assign layer1_col9_net6 = partial_prod[0][9]; +assign layer1_col10_net6 = partial_prod[1][9]; +assign layer1_col10_net7 = partial_prod[0][10]; +assign layer1_col12_net8 = partial_prod[0][12]; +assign layer1_col13_net8 = partial_prod[1][12]; +assign layer1_col13_net9 = partial_prod[0][13]; +assign layer1_col15_net10 = partial_prod[0][15]; +assign layer1_col16_net10 = partial_prod[1][15]; +assign layer1_col16_net11 = partial_prod[0][16]; +assign layer1_col18_net12 = partial_prod[0][18]; +assign layer1_col19_net12 = partial_prod[1][18]; +assign layer1_col19_net13 = partial_prod[0][19]; +assign layer1_col21_net14 = partial_prod[0][21]; +assign layer1_col22_net14 = partial_prod[1][21]; +assign layer1_col22_net15 = partial_prod[0][22]; +assign layer1_col24_net16 = partial_prod[0][24]; +assign layer1_col25_net16 = partial_prod[1][24]; +assign layer1_col25_net17 = partial_prod[0][25]; +assign layer1_col27_net18 = partial_prod[0][27]; +assign layer1_col28_net18 = partial_prod[1][27]; +assign layer1_col28_net19 = partial_prod[0][28]; +assign layer1_col30_net20 = partial_prod[0][30]; +assign layer1_col31_net20 = partial_prod[1][30]; +assign layer1_col31_net21 = partial_prod[0][31]; +assign layer1_col32_net20 = partial_prod[1][31]; +assign layer1_col34_net19 = partial_prod[4][30]; +assign layer1_col34_net20 = partial_prod[3][31]; +assign layer1_col35_net18 = partial_prod[4][31]; +assign layer1_col37_net17 = partial_prod[7][30]; +assign layer1_col37_net18 = partial_prod[6][31]; +assign layer1_col38_net16 = partial_prod[7][31]; +assign layer1_col40_net15 = partial_prod[10][30]; +assign layer1_col40_net16 = partial_prod[9][31]; +assign layer1_col41_net14 = partial_prod[10][31]; +assign layer1_col43_net13 = partial_prod[13][30]; +assign layer1_col43_net14 = partial_prod[12][31]; +assign layer1_col44_net12 = partial_prod[13][31]; +assign layer1_col46_net11 = partial_prod[16][30]; +assign layer1_col46_net12 = partial_prod[15][31]; +assign layer1_col47_net10 = partial_prod[16][31]; +assign layer1_col49_net9 = partial_prod[19][30]; +assign layer1_col49_net10 = partial_prod[18][31]; +assign layer1_col50_net8 = partial_prod[19][31]; +assign layer1_col52_net7 = partial_prod[22][30]; +assign layer1_col52_net8 = partial_prod[21][31]; +assign layer1_col53_net6 = partial_prod[22][31]; +assign layer1_col55_net5 = partial_prod[25][30]; +assign layer1_col55_net6 = partial_prod[24][31]; +assign layer1_col56_net4 = partial_prod[25][31]; +assign layer1_col58_net3 = partial_prod[28][30]; +assign layer1_col58_net4 = partial_prod[27][31]; +assign layer1_col59_net2 = partial_prod[28][31]; +assign layer1_col61_net1 = partial_prod[31][30]; +assign layer1_col61_net2 = partial_prod[30][31]; +assign layer1_col62_net0 = partial_prod[31][31]; +half_adder ha_add1_0 (partial_prod[2][0], partial_prod[1][1], layer1_col2_net0, layer1_col3_net0); +full_adder fa_add1_0 (partial_prod[3][0], partial_prod[2][1], partial_prod[1][2], layer1_col3_net1, layer1_col4_net0); +full_adder fa_add1_1 (partial_prod[4][0], partial_prod[3][1], partial_prod[2][2], layer1_col4_net1, layer1_col5_net0); +full_adder fa_add1_2 (partial_prod[5][0], partial_prod[4][1], partial_prod[3][2], layer1_col5_net1, layer1_col6_net0); +full_adder fa_add1_3 (partial_prod[2][3], partial_prod[1][4], partial_prod[0][5], layer1_col5_net2, layer1_col6_net1); +full_adder fa_add1_4 (partial_prod[6][0], partial_prod[5][1], partial_prod[4][2], layer1_col6_net2, layer1_col7_net0); +full_adder fa_add1_5 (partial_prod[3][3], partial_prod[2][4], partial_prod[1][5], layer1_col6_net3, layer1_col7_net1); +full_adder fa_add1_6 (partial_prod[7][0], partial_prod[6][1], partial_prod[5][2], layer1_col7_net2, layer1_col8_net0); +full_adder fa_add1_7 (partial_prod[4][3], partial_prod[3][4], partial_prod[2][5], layer1_col7_net3, layer1_col8_net1); +full_adder fa_add1_8 (partial_prod[8][0], partial_prod[7][1], partial_prod[6][2], layer1_col8_net2, layer1_col9_net0); +full_adder fa_add1_9 (partial_prod[5][3], partial_prod[4][4], partial_prod[3][5], layer1_col8_net3, layer1_col9_net1); +full_adder fa_add1_10 (partial_prod[2][6], partial_prod[1][7], partial_prod[0][8], layer1_col8_net4, layer1_col9_net2); +full_adder fa_add1_11 (partial_prod[9][0], partial_prod[8][1], partial_prod[7][2], layer1_col9_net3, layer1_col10_net0); +full_adder fa_add1_12 (partial_prod[6][3], partial_prod[5][4], partial_prod[4][5], layer1_col9_net4, layer1_col10_net1); +full_adder fa_add1_13 (partial_prod[3][6], partial_prod[2][7], partial_prod[1][8], layer1_col9_net5, layer1_col10_net2); +full_adder fa_add1_14 (partial_prod[10][0], partial_prod[9][1], partial_prod[8][2], layer1_col10_net3, layer1_col11_net0); +full_adder fa_add1_15 (partial_prod[7][3], partial_prod[6][4], partial_prod[5][5], layer1_col10_net4, layer1_col11_net1); +full_adder fa_add1_16 (partial_prod[4][6], partial_prod[3][7], partial_prod[2][8], layer1_col10_net5, layer1_col11_net2); +full_adder fa_add1_17 (partial_prod[11][0], partial_prod[10][1], partial_prod[9][2], layer1_col11_net3, layer1_col12_net0); +full_adder fa_add1_18 (partial_prod[8][3], partial_prod[7][4], partial_prod[6][5], layer1_col11_net4, layer1_col12_net1); +full_adder fa_add1_19 (partial_prod[5][6], partial_prod[4][7], partial_prod[3][8], layer1_col11_net5, layer1_col12_net2); +full_adder fa_add1_20 (partial_prod[2][9], partial_prod[1][10], partial_prod[0][11], layer1_col11_net6, layer1_col12_net3); +full_adder fa_add1_21 (partial_prod[12][0], partial_prod[11][1], partial_prod[10][2], layer1_col12_net4, layer1_col13_net0); +full_adder fa_add1_22 (partial_prod[9][3], partial_prod[8][4], partial_prod[7][5], layer1_col12_net5, layer1_col13_net1); +full_adder fa_add1_23 (partial_prod[6][6], partial_prod[5][7], partial_prod[4][8], layer1_col12_net6, layer1_col13_net2); +full_adder fa_add1_24 (partial_prod[3][9], partial_prod[2][10], partial_prod[1][11], layer1_col12_net7, layer1_col13_net3); +full_adder fa_add1_25 (partial_prod[13][0], partial_prod[12][1], partial_prod[11][2], layer1_col13_net4, layer1_col14_net0); +full_adder fa_add1_26 (partial_prod[10][3], partial_prod[9][4], partial_prod[8][5], layer1_col13_net5, layer1_col14_net1); +full_adder fa_add1_27 (partial_prod[7][6], partial_prod[6][7], partial_prod[5][8], layer1_col13_net6, layer1_col14_net2); +full_adder fa_add1_28 (partial_prod[4][9], partial_prod[3][10], partial_prod[2][11], layer1_col13_net7, layer1_col14_net3); +full_adder fa_add1_29 (partial_prod[14][0], partial_prod[13][1], partial_prod[12][2], layer1_col14_net4, layer1_col15_net0); +full_adder fa_add1_30 (partial_prod[11][3], partial_prod[10][4], partial_prod[9][5], layer1_col14_net5, layer1_col15_net1); +full_adder fa_add1_31 (partial_prod[8][6], partial_prod[7][7], partial_prod[6][8], layer1_col14_net6, layer1_col15_net2); +full_adder fa_add1_32 (partial_prod[5][9], partial_prod[4][10], partial_prod[3][11], layer1_col14_net7, layer1_col15_net3); +full_adder fa_add1_33 (partial_prod[2][12], partial_prod[1][13], partial_prod[0][14], layer1_col14_net8, layer1_col15_net4); +full_adder fa_add1_34 (partial_prod[15][0], partial_prod[14][1], partial_prod[13][2], layer1_col15_net5, layer1_col16_net0); +full_adder fa_add1_35 (partial_prod[12][3], partial_prod[11][4], partial_prod[10][5], layer1_col15_net6, layer1_col16_net1); +full_adder fa_add1_36 (partial_prod[9][6], partial_prod[8][7], partial_prod[7][8], layer1_col15_net7, layer1_col16_net2); +full_adder fa_add1_37 (partial_prod[6][9], partial_prod[5][10], partial_prod[4][11], layer1_col15_net8, layer1_col16_net3); +full_adder fa_add1_38 (partial_prod[3][12], partial_prod[2][13], partial_prod[1][14], layer1_col15_net9, layer1_col16_net4); +full_adder fa_add1_39 (partial_prod[16][0], partial_prod[15][1], partial_prod[14][2], layer1_col16_net5, layer1_col17_net0); +full_adder fa_add1_40 (partial_prod[13][3], partial_prod[12][4], partial_prod[11][5], layer1_col16_net6, layer1_col17_net1); +full_adder fa_add1_41 (partial_prod[10][6], partial_prod[9][7], partial_prod[8][8], layer1_col16_net7, layer1_col17_net2); +full_adder fa_add1_42 (partial_prod[7][9], partial_prod[6][10], partial_prod[5][11], layer1_col16_net8, layer1_col17_net3); +full_adder fa_add1_43 (partial_prod[4][12], partial_prod[3][13], partial_prod[2][14], layer1_col16_net9, layer1_col17_net4); +full_adder fa_add1_44 (partial_prod[17][0], partial_prod[16][1], partial_prod[15][2], layer1_col17_net5, layer1_col18_net0); +full_adder fa_add1_45 (partial_prod[14][3], partial_prod[13][4], partial_prod[12][5], layer1_col17_net6, layer1_col18_net1); +full_adder fa_add1_46 (partial_prod[11][6], partial_prod[10][7], partial_prod[9][8], layer1_col17_net7, layer1_col18_net2); +full_adder fa_add1_47 (partial_prod[8][9], partial_prod[7][10], partial_prod[6][11], layer1_col17_net8, layer1_col18_net3); +full_adder fa_add1_48 (partial_prod[5][12], partial_prod[4][13], partial_prod[3][14], layer1_col17_net9, layer1_col18_net4); +full_adder fa_add1_49 (partial_prod[2][15], partial_prod[1][16], partial_prod[0][17], layer1_col17_net10, layer1_col18_net5); +full_adder fa_add1_50 (partial_prod[18][0], partial_prod[17][1], partial_prod[16][2], layer1_col18_net6, layer1_col19_net0); +full_adder fa_add1_51 (partial_prod[15][3], partial_prod[14][4], partial_prod[13][5], layer1_col18_net7, layer1_col19_net1); +full_adder fa_add1_52 (partial_prod[12][6], partial_prod[11][7], partial_prod[10][8], layer1_col18_net8, layer1_col19_net2); +full_adder fa_add1_53 (partial_prod[9][9], partial_prod[8][10], partial_prod[7][11], layer1_col18_net9, layer1_col19_net3); +full_adder fa_add1_54 (partial_prod[6][12], partial_prod[5][13], partial_prod[4][14], layer1_col18_net10, layer1_col19_net4); +full_adder fa_add1_55 (partial_prod[3][15], partial_prod[2][16], partial_prod[1][17], layer1_col18_net11, layer1_col19_net5); +full_adder fa_add1_56 (partial_prod[19][0], partial_prod[18][1], partial_prod[17][2], layer1_col19_net6, layer1_col20_net0); +full_adder fa_add1_57 (partial_prod[16][3], partial_prod[15][4], partial_prod[14][5], layer1_col19_net7, layer1_col20_net1); +full_adder fa_add1_58 (partial_prod[13][6], partial_prod[12][7], partial_prod[11][8], layer1_col19_net8, layer1_col20_net2); +full_adder fa_add1_59 (partial_prod[10][9], partial_prod[9][10], partial_prod[8][11], layer1_col19_net9, layer1_col20_net3); +full_adder fa_add1_60 (partial_prod[7][12], partial_prod[6][13], partial_prod[5][14], layer1_col19_net10, layer1_col20_net4); +full_adder fa_add1_61 (partial_prod[4][15], partial_prod[3][16], partial_prod[2][17], layer1_col19_net11, layer1_col20_net5); +full_adder fa_add1_62 (partial_prod[20][0], partial_prod[19][1], partial_prod[18][2], layer1_col20_net6, layer1_col21_net0); +full_adder fa_add1_63 (partial_prod[17][3], partial_prod[16][4], partial_prod[15][5], layer1_col20_net7, layer1_col21_net1); +full_adder fa_add1_64 (partial_prod[14][6], partial_prod[13][7], partial_prod[12][8], layer1_col20_net8, layer1_col21_net2); +full_adder fa_add1_65 (partial_prod[11][9], partial_prod[10][10], partial_prod[9][11], layer1_col20_net9, layer1_col21_net3); +full_adder fa_add1_66 (partial_prod[8][12], partial_prod[7][13], partial_prod[6][14], layer1_col20_net10, layer1_col21_net4); +full_adder fa_add1_67 (partial_prod[5][15], partial_prod[4][16], partial_prod[3][17], layer1_col20_net11, layer1_col21_net5); +full_adder fa_add1_68 (partial_prod[2][18], partial_prod[1][19], partial_prod[0][20], layer1_col20_net12, layer1_col21_net6); +full_adder fa_add1_69 (partial_prod[21][0], partial_prod[20][1], partial_prod[19][2], layer1_col21_net7, layer1_col22_net0); +full_adder fa_add1_70 (partial_prod[18][3], partial_prod[17][4], partial_prod[16][5], layer1_col21_net8, layer1_col22_net1); +full_adder fa_add1_71 (partial_prod[15][6], partial_prod[14][7], partial_prod[13][8], layer1_col21_net9, layer1_col22_net2); +full_adder fa_add1_72 (partial_prod[12][9], partial_prod[11][10], partial_prod[10][11], layer1_col21_net10, layer1_col22_net3); +full_adder fa_add1_73 (partial_prod[9][12], partial_prod[8][13], partial_prod[7][14], layer1_col21_net11, layer1_col22_net4); +full_adder fa_add1_74 (partial_prod[6][15], partial_prod[5][16], partial_prod[4][17], layer1_col21_net12, layer1_col22_net5); +full_adder fa_add1_75 (partial_prod[3][18], partial_prod[2][19], partial_prod[1][20], layer1_col21_net13, layer1_col22_net6); +full_adder fa_add1_76 (partial_prod[22][0], partial_prod[21][1], partial_prod[20][2], layer1_col22_net7, layer1_col23_net0); +full_adder fa_add1_77 (partial_prod[19][3], partial_prod[18][4], partial_prod[17][5], layer1_col22_net8, layer1_col23_net1); +full_adder fa_add1_78 (partial_prod[16][6], partial_prod[15][7], partial_prod[14][8], layer1_col22_net9, layer1_col23_net2); +full_adder fa_add1_79 (partial_prod[13][9], partial_prod[12][10], partial_prod[11][11], layer1_col22_net10, layer1_col23_net3); +full_adder fa_add1_80 (partial_prod[10][12], partial_prod[9][13], partial_prod[8][14], layer1_col22_net11, layer1_col23_net4); +full_adder fa_add1_81 (partial_prod[7][15], partial_prod[6][16], partial_prod[5][17], layer1_col22_net12, layer1_col23_net5); +full_adder fa_add1_82 (partial_prod[4][18], partial_prod[3][19], partial_prod[2][20], layer1_col22_net13, layer1_col23_net6); +full_adder fa_add1_83 (partial_prod[23][0], partial_prod[22][1], partial_prod[21][2], layer1_col23_net7, layer1_col24_net0); +full_adder fa_add1_84 (partial_prod[20][3], partial_prod[19][4], partial_prod[18][5], layer1_col23_net8, layer1_col24_net1); +full_adder fa_add1_85 (partial_prod[17][6], partial_prod[16][7], partial_prod[15][8], layer1_col23_net9, layer1_col24_net2); +full_adder fa_add1_86 (partial_prod[14][9], partial_prod[13][10], partial_prod[12][11], layer1_col23_net10, layer1_col24_net3); +full_adder fa_add1_87 (partial_prod[11][12], partial_prod[10][13], partial_prod[9][14], layer1_col23_net11, layer1_col24_net4); +full_adder fa_add1_88 (partial_prod[8][15], partial_prod[7][16], partial_prod[6][17], layer1_col23_net12, layer1_col24_net5); +full_adder fa_add1_89 (partial_prod[5][18], partial_prod[4][19], partial_prod[3][20], layer1_col23_net13, layer1_col24_net6); +full_adder fa_add1_90 (partial_prod[2][21], partial_prod[1][22], partial_prod[0][23], layer1_col23_net14, layer1_col24_net7); +full_adder fa_add1_91 (partial_prod[24][0], partial_prod[23][1], partial_prod[22][2], layer1_col24_net8, layer1_col25_net0); +full_adder fa_add1_92 (partial_prod[21][3], partial_prod[20][4], partial_prod[19][5], layer1_col24_net9, layer1_col25_net1); +full_adder fa_add1_93 (partial_prod[18][6], partial_prod[17][7], partial_prod[16][8], layer1_col24_net10, layer1_col25_net2); +full_adder fa_add1_94 (partial_prod[15][9], partial_prod[14][10], partial_prod[13][11], layer1_col24_net11, layer1_col25_net3); +full_adder fa_add1_95 (partial_prod[12][12], partial_prod[11][13], partial_prod[10][14], layer1_col24_net12, layer1_col25_net4); +full_adder fa_add1_96 (partial_prod[9][15], partial_prod[8][16], partial_prod[7][17], layer1_col24_net13, layer1_col25_net5); +full_adder fa_add1_97 (partial_prod[6][18], partial_prod[5][19], partial_prod[4][20], layer1_col24_net14, layer1_col25_net6); +full_adder fa_add1_98 (partial_prod[3][21], partial_prod[2][22], partial_prod[1][23], layer1_col24_net15, layer1_col25_net7); +full_adder fa_add1_99 (partial_prod[25][0], partial_prod[24][1], partial_prod[23][2], layer1_col25_net8, layer1_col26_net0); +full_adder fa_add1_100 (partial_prod[22][3], partial_prod[21][4], partial_prod[20][5], layer1_col25_net9, layer1_col26_net1); +full_adder fa_add1_101 (partial_prod[19][6], partial_prod[18][7], partial_prod[17][8], layer1_col25_net10, layer1_col26_net2); +full_adder fa_add1_102 (partial_prod[16][9], partial_prod[15][10], partial_prod[14][11], layer1_col25_net11, layer1_col26_net3); +full_adder fa_add1_103 (partial_prod[13][12], partial_prod[12][13], partial_prod[11][14], layer1_col25_net12, layer1_col26_net4); +full_adder fa_add1_104 (partial_prod[10][15], partial_prod[9][16], partial_prod[8][17], layer1_col25_net13, layer1_col26_net5); +full_adder fa_add1_105 (partial_prod[7][18], partial_prod[6][19], partial_prod[5][20], layer1_col25_net14, layer1_col26_net6); +full_adder fa_add1_106 (partial_prod[4][21], partial_prod[3][22], partial_prod[2][23], layer1_col25_net15, layer1_col26_net7); +full_adder fa_add1_107 (partial_prod[26][0], partial_prod[25][1], partial_prod[24][2], layer1_col26_net8, layer1_col27_net0); +full_adder fa_add1_108 (partial_prod[23][3], partial_prod[22][4], partial_prod[21][5], layer1_col26_net9, layer1_col27_net1); +full_adder fa_add1_109 (partial_prod[20][6], partial_prod[19][7], partial_prod[18][8], layer1_col26_net10, layer1_col27_net2); +full_adder fa_add1_110 (partial_prod[17][9], partial_prod[16][10], partial_prod[15][11], layer1_col26_net11, layer1_col27_net3); +full_adder fa_add1_111 (partial_prod[14][12], partial_prod[13][13], partial_prod[12][14], layer1_col26_net12, layer1_col27_net4); +full_adder fa_add1_112 (partial_prod[11][15], partial_prod[10][16], partial_prod[9][17], layer1_col26_net13, layer1_col27_net5); +full_adder fa_add1_113 (partial_prod[8][18], partial_prod[7][19], partial_prod[6][20], layer1_col26_net14, layer1_col27_net6); +full_adder fa_add1_114 (partial_prod[5][21], partial_prod[4][22], partial_prod[3][23], layer1_col26_net15, layer1_col27_net7); +full_adder fa_add1_115 (partial_prod[2][24], partial_prod[1][25], partial_prod[0][26], layer1_col26_net16, layer1_col27_net8); +full_adder fa_add1_116 (partial_prod[27][0], partial_prod[26][1], partial_prod[25][2], layer1_col27_net9, layer1_col28_net0); +full_adder fa_add1_117 (partial_prod[24][3], partial_prod[23][4], partial_prod[22][5], layer1_col27_net10, layer1_col28_net1); +full_adder fa_add1_118 (partial_prod[21][6], partial_prod[20][7], partial_prod[19][8], layer1_col27_net11, layer1_col28_net2); +full_adder fa_add1_119 (partial_prod[18][9], partial_prod[17][10], partial_prod[16][11], layer1_col27_net12, layer1_col28_net3); +full_adder fa_add1_120 (partial_prod[15][12], partial_prod[14][13], partial_prod[13][14], layer1_col27_net13, layer1_col28_net4); +full_adder fa_add1_121 (partial_prod[12][15], partial_prod[11][16], partial_prod[10][17], layer1_col27_net14, layer1_col28_net5); +full_adder fa_add1_122 (partial_prod[9][18], partial_prod[8][19], partial_prod[7][20], layer1_col27_net15, layer1_col28_net6); +full_adder fa_add1_123 (partial_prod[6][21], partial_prod[5][22], partial_prod[4][23], layer1_col27_net16, layer1_col28_net7); +full_adder fa_add1_124 (partial_prod[3][24], partial_prod[2][25], partial_prod[1][26], layer1_col27_net17, layer1_col28_net8); +full_adder fa_add1_125 (partial_prod[28][0], partial_prod[27][1], partial_prod[26][2], layer1_col28_net9, layer1_col29_net0); +full_adder fa_add1_126 (partial_prod[25][3], partial_prod[24][4], partial_prod[23][5], layer1_col28_net10, layer1_col29_net1); +full_adder fa_add1_127 (partial_prod[22][6], partial_prod[21][7], partial_prod[20][8], layer1_col28_net11, layer1_col29_net2); +full_adder fa_add1_128 (partial_prod[19][9], partial_prod[18][10], partial_prod[17][11], layer1_col28_net12, layer1_col29_net3); +full_adder fa_add1_129 (partial_prod[16][12], partial_prod[15][13], partial_prod[14][14], layer1_col28_net13, layer1_col29_net4); +full_adder fa_add1_130 (partial_prod[13][15], partial_prod[12][16], partial_prod[11][17], layer1_col28_net14, layer1_col29_net5); +full_adder fa_add1_131 (partial_prod[10][18], partial_prod[9][19], partial_prod[8][20], layer1_col28_net15, layer1_col29_net6); +full_adder fa_add1_132 (partial_prod[7][21], partial_prod[6][22], partial_prod[5][23], layer1_col28_net16, layer1_col29_net7); +full_adder fa_add1_133 (partial_prod[4][24], partial_prod[3][25], partial_prod[2][26], layer1_col28_net17, layer1_col29_net8); +full_adder fa_add1_134 (partial_prod[29][0], partial_prod[28][1], partial_prod[27][2], layer1_col29_net9, layer1_col30_net0); +full_adder fa_add1_135 (partial_prod[26][3], partial_prod[25][4], partial_prod[24][5], layer1_col29_net10, layer1_col30_net1); +full_adder fa_add1_136 (partial_prod[23][6], partial_prod[22][7], partial_prod[21][8], layer1_col29_net11, layer1_col30_net2); +full_adder fa_add1_137 (partial_prod[20][9], partial_prod[19][10], partial_prod[18][11], layer1_col29_net12, layer1_col30_net3); +full_adder fa_add1_138 (partial_prod[17][12], partial_prod[16][13], partial_prod[15][14], layer1_col29_net13, layer1_col30_net4); +full_adder fa_add1_139 (partial_prod[14][15], partial_prod[13][16], partial_prod[12][17], layer1_col29_net14, layer1_col30_net5); +full_adder fa_add1_140 (partial_prod[11][18], partial_prod[10][19], partial_prod[9][20], layer1_col29_net15, layer1_col30_net6); +full_adder fa_add1_141 (partial_prod[8][21], partial_prod[7][22], partial_prod[6][23], layer1_col29_net16, layer1_col30_net7); +full_adder fa_add1_142 (partial_prod[5][24], partial_prod[4][25], partial_prod[3][26], layer1_col29_net17, layer1_col30_net8); +full_adder fa_add1_143 (partial_prod[2][27], partial_prod[1][28], partial_prod[0][29], layer1_col29_net18, layer1_col30_net9); +full_adder fa_add1_144 (partial_prod[30][0], partial_prod[29][1], partial_prod[28][2], layer1_col30_net10, layer1_col31_net0); +full_adder fa_add1_145 (partial_prod[27][3], partial_prod[26][4], partial_prod[25][5], layer1_col30_net11, layer1_col31_net1); +full_adder fa_add1_146 (partial_prod[24][6], partial_prod[23][7], partial_prod[22][8], layer1_col30_net12, layer1_col31_net2); +full_adder fa_add1_147 (partial_prod[21][9], partial_prod[20][10], partial_prod[19][11], layer1_col30_net13, layer1_col31_net3); +full_adder fa_add1_148 (partial_prod[18][12], partial_prod[17][13], partial_prod[16][14], layer1_col30_net14, layer1_col31_net4); +full_adder fa_add1_149 (partial_prod[15][15], partial_prod[14][16], partial_prod[13][17], layer1_col30_net15, layer1_col31_net5); +full_adder fa_add1_150 (partial_prod[12][18], partial_prod[11][19], partial_prod[10][20], layer1_col30_net16, layer1_col31_net6); +full_adder fa_add1_151 (partial_prod[9][21], partial_prod[8][22], partial_prod[7][23], layer1_col30_net17, layer1_col31_net7); +full_adder fa_add1_152 (partial_prod[6][24], partial_prod[5][25], partial_prod[4][26], layer1_col30_net18, layer1_col31_net8); +full_adder fa_add1_153 (partial_prod[3][27], partial_prod[2][28], partial_prod[1][29], layer1_col30_net19, layer1_col31_net9); +full_adder fa_add1_154 (partial_prod[31][0], partial_prod[30][1], partial_prod[29][2], layer1_col31_net10, layer1_col32_net0); +full_adder fa_add1_155 (partial_prod[28][3], partial_prod[27][4], partial_prod[26][5], layer1_col31_net11, layer1_col32_net1); +full_adder fa_add1_156 (partial_prod[25][6], partial_prod[24][7], partial_prod[23][8], layer1_col31_net12, layer1_col32_net2); +full_adder fa_add1_157 (partial_prod[22][9], partial_prod[21][10], partial_prod[20][11], layer1_col31_net13, layer1_col32_net3); +full_adder fa_add1_158 (partial_prod[19][12], partial_prod[18][13], partial_prod[17][14], layer1_col31_net14, layer1_col32_net4); +full_adder fa_add1_159 (partial_prod[16][15], partial_prod[15][16], partial_prod[14][17], layer1_col31_net15, layer1_col32_net5); +full_adder fa_add1_160 (partial_prod[13][18], partial_prod[12][19], partial_prod[11][20], layer1_col31_net16, layer1_col32_net6); +full_adder fa_add1_161 (partial_prod[10][21], partial_prod[9][22], partial_prod[8][23], layer1_col31_net17, layer1_col32_net7); +full_adder fa_add1_162 (partial_prod[7][24], partial_prod[6][25], partial_prod[5][26], layer1_col31_net18, layer1_col32_net8); +full_adder fa_add1_163 (partial_prod[4][27], partial_prod[3][28], partial_prod[2][29], layer1_col31_net19, layer1_col32_net9); +full_adder fa_add1_164 (partial_prod[31][1], partial_prod[30][2], partial_prod[29][3], layer1_col32_net10, layer1_col33_net0); +full_adder fa_add1_165 (partial_prod[28][4], partial_prod[27][5], partial_prod[26][6], layer1_col32_net11, layer1_col33_net1); +full_adder fa_add1_166 (partial_prod[25][7], partial_prod[24][8], partial_prod[23][9], layer1_col32_net12, layer1_col33_net2); +full_adder fa_add1_167 (partial_prod[22][10], partial_prod[21][11], partial_prod[20][12], layer1_col32_net13, layer1_col33_net3); +full_adder fa_add1_168 (partial_prod[19][13], partial_prod[18][14], partial_prod[17][15], layer1_col32_net14, layer1_col33_net4); +full_adder fa_add1_169 (partial_prod[16][16], partial_prod[15][17], partial_prod[14][18], layer1_col32_net15, layer1_col33_net5); +full_adder fa_add1_170 (partial_prod[13][19], partial_prod[12][20], partial_prod[11][21], layer1_col32_net16, layer1_col33_net6); +full_adder fa_add1_171 (partial_prod[10][22], partial_prod[9][23], partial_prod[8][24], layer1_col32_net17, layer1_col33_net7); +full_adder fa_add1_172 (partial_prod[7][25], partial_prod[6][26], partial_prod[5][27], layer1_col32_net18, layer1_col33_net8); +full_adder fa_add1_173 (partial_prod[4][28], partial_prod[3][29], partial_prod[2][30], layer1_col32_net19, layer1_col33_net9); +full_adder fa_add1_174 (partial_prod[31][2], partial_prod[30][3], partial_prod[29][4], layer1_col33_net10, layer1_col34_net0); +full_adder fa_add1_175 (partial_prod[28][5], partial_prod[27][6], partial_prod[26][7], layer1_col33_net11, layer1_col34_net1); +full_adder fa_add1_176 (partial_prod[25][8], partial_prod[24][9], partial_prod[23][10], layer1_col33_net12, layer1_col34_net2); +full_adder fa_add1_177 (partial_prod[22][11], partial_prod[21][12], partial_prod[20][13], layer1_col33_net13, layer1_col34_net3); +full_adder fa_add1_178 (partial_prod[19][14], partial_prod[18][15], partial_prod[17][16], layer1_col33_net14, layer1_col34_net4); +full_adder fa_add1_179 (partial_prod[16][17], partial_prod[15][18], partial_prod[14][19], layer1_col33_net15, layer1_col34_net5); +full_adder fa_add1_180 (partial_prod[13][20], partial_prod[12][21], partial_prod[11][22], layer1_col33_net16, layer1_col34_net6); +full_adder fa_add1_181 (partial_prod[10][23], partial_prod[9][24], partial_prod[8][25], layer1_col33_net17, layer1_col34_net7); +full_adder fa_add1_182 (partial_prod[7][26], partial_prod[6][27], partial_prod[5][28], layer1_col33_net18, layer1_col34_net8); +full_adder fa_add1_183 (partial_prod[4][29], partial_prod[3][30], partial_prod[2][31], layer1_col33_net19, layer1_col34_net9); +full_adder fa_add1_184 (partial_prod[31][3], partial_prod[30][4], partial_prod[29][5], layer1_col34_net10, layer1_col35_net0); +full_adder fa_add1_185 (partial_prod[28][6], partial_prod[27][7], partial_prod[26][8], layer1_col34_net11, layer1_col35_net1); +full_adder fa_add1_186 (partial_prod[25][9], partial_prod[24][10], partial_prod[23][11], layer1_col34_net12, layer1_col35_net2); +full_adder fa_add1_187 (partial_prod[22][12], partial_prod[21][13], partial_prod[20][14], layer1_col34_net13, layer1_col35_net3); +full_adder fa_add1_188 (partial_prod[19][15], partial_prod[18][16], partial_prod[17][17], layer1_col34_net14, layer1_col35_net4); +full_adder fa_add1_189 (partial_prod[16][18], partial_prod[15][19], partial_prod[14][20], layer1_col34_net15, layer1_col35_net5); +full_adder fa_add1_190 (partial_prod[13][21], partial_prod[12][22], partial_prod[11][23], layer1_col34_net16, layer1_col35_net6); +full_adder fa_add1_191 (partial_prod[10][24], partial_prod[9][25], partial_prod[8][26], layer1_col34_net17, layer1_col35_net7); +full_adder fa_add1_192 (partial_prod[7][27], partial_prod[6][28], partial_prod[5][29], layer1_col34_net18, layer1_col35_net8); +full_adder fa_add1_193 (partial_prod[31][4], partial_prod[30][5], partial_prod[29][6], layer1_col35_net9, layer1_col36_net0); +full_adder fa_add1_194 (partial_prod[28][7], partial_prod[27][8], partial_prod[26][9], layer1_col35_net10, layer1_col36_net1); +full_adder fa_add1_195 (partial_prod[25][10], partial_prod[24][11], partial_prod[23][12], layer1_col35_net11, layer1_col36_net2); +full_adder fa_add1_196 (partial_prod[22][13], partial_prod[21][14], partial_prod[20][15], layer1_col35_net12, layer1_col36_net3); +full_adder fa_add1_197 (partial_prod[19][16], partial_prod[18][17], partial_prod[17][18], layer1_col35_net13, layer1_col36_net4); +full_adder fa_add1_198 (partial_prod[16][19], partial_prod[15][20], partial_prod[14][21], layer1_col35_net14, layer1_col36_net5); +full_adder fa_add1_199 (partial_prod[13][22], partial_prod[12][23], partial_prod[11][24], layer1_col35_net15, layer1_col36_net6); +full_adder fa_add1_200 (partial_prod[10][25], partial_prod[9][26], partial_prod[8][27], layer1_col35_net16, layer1_col36_net7); +full_adder fa_add1_201 (partial_prod[7][28], partial_prod[6][29], partial_prod[5][30], layer1_col35_net17, layer1_col36_net8); +full_adder fa_add1_202 (partial_prod[31][5], partial_prod[30][6], partial_prod[29][7], layer1_col36_net9, layer1_col37_net0); +full_adder fa_add1_203 (partial_prod[28][8], partial_prod[27][9], partial_prod[26][10], layer1_col36_net10, layer1_col37_net1); +full_adder fa_add1_204 (partial_prod[25][11], partial_prod[24][12], partial_prod[23][13], layer1_col36_net11, layer1_col37_net2); +full_adder fa_add1_205 (partial_prod[22][14], partial_prod[21][15], partial_prod[20][16], layer1_col36_net12, layer1_col37_net3); +full_adder fa_add1_206 (partial_prod[19][17], partial_prod[18][18], partial_prod[17][19], layer1_col36_net13, layer1_col37_net4); +full_adder fa_add1_207 (partial_prod[16][20], partial_prod[15][21], partial_prod[14][22], layer1_col36_net14, layer1_col37_net5); +full_adder fa_add1_208 (partial_prod[13][23], partial_prod[12][24], partial_prod[11][25], layer1_col36_net15, layer1_col37_net6); +full_adder fa_add1_209 (partial_prod[10][26], partial_prod[9][27], partial_prod[8][28], layer1_col36_net16, layer1_col37_net7); +full_adder fa_add1_210 (partial_prod[7][29], partial_prod[6][30], partial_prod[5][31], layer1_col36_net17, layer1_col37_net8); +full_adder fa_add1_211 (partial_prod[31][6], partial_prod[30][7], partial_prod[29][8], layer1_col37_net9, layer1_col38_net0); +full_adder fa_add1_212 (partial_prod[28][9], partial_prod[27][10], partial_prod[26][11], layer1_col37_net10, layer1_col38_net1); +full_adder fa_add1_213 (partial_prod[25][12], partial_prod[24][13], partial_prod[23][14], layer1_col37_net11, layer1_col38_net2); +full_adder fa_add1_214 (partial_prod[22][15], partial_prod[21][16], partial_prod[20][17], layer1_col37_net12, layer1_col38_net3); +full_adder fa_add1_215 (partial_prod[19][18], partial_prod[18][19], partial_prod[17][20], layer1_col37_net13, layer1_col38_net4); +full_adder fa_add1_216 (partial_prod[16][21], partial_prod[15][22], partial_prod[14][23], layer1_col37_net14, layer1_col38_net5); +full_adder fa_add1_217 (partial_prod[13][24], partial_prod[12][25], partial_prod[11][26], layer1_col37_net15, layer1_col38_net6); +full_adder fa_add1_218 (partial_prod[10][27], partial_prod[9][28], partial_prod[8][29], layer1_col37_net16, layer1_col38_net7); +full_adder fa_add1_219 (partial_prod[31][7], partial_prod[30][8], partial_prod[29][9], layer1_col38_net8, layer1_col39_net0); +full_adder fa_add1_220 (partial_prod[28][10], partial_prod[27][11], partial_prod[26][12], layer1_col38_net9, layer1_col39_net1); +full_adder fa_add1_221 (partial_prod[25][13], partial_prod[24][14], partial_prod[23][15], layer1_col38_net10, layer1_col39_net2); +full_adder fa_add1_222 (partial_prod[22][16], partial_prod[21][17], partial_prod[20][18], layer1_col38_net11, layer1_col39_net3); +full_adder fa_add1_223 (partial_prod[19][19], partial_prod[18][20], partial_prod[17][21], layer1_col38_net12, layer1_col39_net4); +full_adder fa_add1_224 (partial_prod[16][22], partial_prod[15][23], partial_prod[14][24], layer1_col38_net13, layer1_col39_net5); +full_adder fa_add1_225 (partial_prod[13][25], partial_prod[12][26], partial_prod[11][27], layer1_col38_net14, layer1_col39_net6); +full_adder fa_add1_226 (partial_prod[10][28], partial_prod[9][29], partial_prod[8][30], layer1_col38_net15, layer1_col39_net7); +full_adder fa_add1_227 (partial_prod[31][8], partial_prod[30][9], partial_prod[29][10], layer1_col39_net8, layer1_col40_net0); +full_adder fa_add1_228 (partial_prod[28][11], partial_prod[27][12], partial_prod[26][13], layer1_col39_net9, layer1_col40_net1); +full_adder fa_add1_229 (partial_prod[25][14], partial_prod[24][15], partial_prod[23][16], layer1_col39_net10, layer1_col40_net2); +full_adder fa_add1_230 (partial_prod[22][17], partial_prod[21][18], partial_prod[20][19], layer1_col39_net11, layer1_col40_net3); +full_adder fa_add1_231 (partial_prod[19][20], partial_prod[18][21], partial_prod[17][22], layer1_col39_net12, layer1_col40_net4); +full_adder fa_add1_232 (partial_prod[16][23], partial_prod[15][24], partial_prod[14][25], layer1_col39_net13, layer1_col40_net5); +full_adder fa_add1_233 (partial_prod[13][26], partial_prod[12][27], partial_prod[11][28], layer1_col39_net14, layer1_col40_net6); +full_adder fa_add1_234 (partial_prod[10][29], partial_prod[9][30], partial_prod[8][31], layer1_col39_net15, layer1_col40_net7); +full_adder fa_add1_235 (partial_prod[31][9], partial_prod[30][10], partial_prod[29][11], layer1_col40_net8, layer1_col41_net0); +full_adder fa_add1_236 (partial_prod[28][12], partial_prod[27][13], partial_prod[26][14], layer1_col40_net9, layer1_col41_net1); +full_adder fa_add1_237 (partial_prod[25][15], partial_prod[24][16], partial_prod[23][17], layer1_col40_net10, layer1_col41_net2); +full_adder fa_add1_238 (partial_prod[22][18], partial_prod[21][19], partial_prod[20][20], layer1_col40_net11, layer1_col41_net3); +full_adder fa_add1_239 (partial_prod[19][21], partial_prod[18][22], partial_prod[17][23], layer1_col40_net12, layer1_col41_net4); +full_adder fa_add1_240 (partial_prod[16][24], partial_prod[15][25], partial_prod[14][26], layer1_col40_net13, layer1_col41_net5); +full_adder fa_add1_241 (partial_prod[13][27], partial_prod[12][28], partial_prod[11][29], layer1_col40_net14, layer1_col41_net6); +full_adder fa_add1_242 (partial_prod[31][10], partial_prod[30][11], partial_prod[29][12], layer1_col41_net7, layer1_col42_net0); +full_adder fa_add1_243 (partial_prod[28][13], partial_prod[27][14], partial_prod[26][15], layer1_col41_net8, layer1_col42_net1); +full_adder fa_add1_244 (partial_prod[25][16], partial_prod[24][17], partial_prod[23][18], layer1_col41_net9, layer1_col42_net2); +full_adder fa_add1_245 (partial_prod[22][19], partial_prod[21][20], partial_prod[20][21], layer1_col41_net10, layer1_col42_net3); +full_adder fa_add1_246 (partial_prod[19][22], partial_prod[18][23], partial_prod[17][24], layer1_col41_net11, layer1_col42_net4); +full_adder fa_add1_247 (partial_prod[16][25], partial_prod[15][26], partial_prod[14][27], layer1_col41_net12, layer1_col42_net5); +full_adder fa_add1_248 (partial_prod[13][28], partial_prod[12][29], partial_prod[11][30], layer1_col41_net13, layer1_col42_net6); +full_adder fa_add1_249 (partial_prod[31][11], partial_prod[30][12], partial_prod[29][13], layer1_col42_net7, layer1_col43_net0); +full_adder fa_add1_250 (partial_prod[28][14], partial_prod[27][15], partial_prod[26][16], layer1_col42_net8, layer1_col43_net1); +full_adder fa_add1_251 (partial_prod[25][17], partial_prod[24][18], partial_prod[23][19], layer1_col42_net9, layer1_col43_net2); +full_adder fa_add1_252 (partial_prod[22][20], partial_prod[21][21], partial_prod[20][22], layer1_col42_net10, layer1_col43_net3); +full_adder fa_add1_253 (partial_prod[19][23], partial_prod[18][24], partial_prod[17][25], layer1_col42_net11, layer1_col43_net4); +full_adder fa_add1_254 (partial_prod[16][26], partial_prod[15][27], partial_prod[14][28], layer1_col42_net12, layer1_col43_net5); +full_adder fa_add1_255 (partial_prod[13][29], partial_prod[12][30], partial_prod[11][31], layer1_col42_net13, layer1_col43_net6); +full_adder fa_add1_256 (partial_prod[31][12], partial_prod[30][13], partial_prod[29][14], layer1_col43_net7, layer1_col44_net0); +full_adder fa_add1_257 (partial_prod[28][15], partial_prod[27][16], partial_prod[26][17], layer1_col43_net8, layer1_col44_net1); +full_adder fa_add1_258 (partial_prod[25][18], partial_prod[24][19], partial_prod[23][20], layer1_col43_net9, layer1_col44_net2); +full_adder fa_add1_259 (partial_prod[22][21], partial_prod[21][22], partial_prod[20][23], layer1_col43_net10, layer1_col44_net3); +full_adder fa_add1_260 (partial_prod[19][24], partial_prod[18][25], partial_prod[17][26], layer1_col43_net11, layer1_col44_net4); +full_adder fa_add1_261 (partial_prod[16][27], partial_prod[15][28], partial_prod[14][29], layer1_col43_net12, layer1_col44_net5); +full_adder fa_add1_262 (partial_prod[31][13], partial_prod[30][14], partial_prod[29][15], layer1_col44_net6, layer1_col45_net0); +full_adder fa_add1_263 (partial_prod[28][16], partial_prod[27][17], partial_prod[26][18], layer1_col44_net7, layer1_col45_net1); +full_adder fa_add1_264 (partial_prod[25][19], partial_prod[24][20], partial_prod[23][21], layer1_col44_net8, layer1_col45_net2); +full_adder fa_add1_265 (partial_prod[22][22], partial_prod[21][23], partial_prod[20][24], layer1_col44_net9, layer1_col45_net3); +full_adder fa_add1_266 (partial_prod[19][25], partial_prod[18][26], partial_prod[17][27], layer1_col44_net10, layer1_col45_net4); +full_adder fa_add1_267 (partial_prod[16][28], partial_prod[15][29], partial_prod[14][30], layer1_col44_net11, layer1_col45_net5); +full_adder fa_add1_268 (partial_prod[31][14], partial_prod[30][15], partial_prod[29][16], layer1_col45_net6, layer1_col46_net0); +full_adder fa_add1_269 (partial_prod[28][17], partial_prod[27][18], partial_prod[26][19], layer1_col45_net7, layer1_col46_net1); +full_adder fa_add1_270 (partial_prod[25][20], partial_prod[24][21], partial_prod[23][22], layer1_col45_net8, layer1_col46_net2); +full_adder fa_add1_271 (partial_prod[22][23], partial_prod[21][24], partial_prod[20][25], layer1_col45_net9, layer1_col46_net3); +full_adder fa_add1_272 (partial_prod[19][26], partial_prod[18][27], partial_prod[17][28], layer1_col45_net10, layer1_col46_net4); +full_adder fa_add1_273 (partial_prod[16][29], partial_prod[15][30], partial_prod[14][31], layer1_col45_net11, layer1_col46_net5); +full_adder fa_add1_274 (partial_prod[31][15], partial_prod[30][16], partial_prod[29][17], layer1_col46_net6, layer1_col47_net0); +full_adder fa_add1_275 (partial_prod[28][18], partial_prod[27][19], partial_prod[26][20], layer1_col46_net7, layer1_col47_net1); +full_adder fa_add1_276 (partial_prod[25][21], partial_prod[24][22], partial_prod[23][23], layer1_col46_net8, layer1_col47_net2); +full_adder fa_add1_277 (partial_prod[22][24], partial_prod[21][25], partial_prod[20][26], layer1_col46_net9, layer1_col47_net3); +full_adder fa_add1_278 (partial_prod[19][27], partial_prod[18][28], partial_prod[17][29], layer1_col46_net10, layer1_col47_net4); +full_adder fa_add1_279 (partial_prod[31][16], partial_prod[30][17], partial_prod[29][18], layer1_col47_net5, layer1_col48_net0); +full_adder fa_add1_280 (partial_prod[28][19], partial_prod[27][20], partial_prod[26][21], layer1_col47_net6, layer1_col48_net1); +full_adder fa_add1_281 (partial_prod[25][22], partial_prod[24][23], partial_prod[23][24], layer1_col47_net7, layer1_col48_net2); +full_adder fa_add1_282 (partial_prod[22][25], partial_prod[21][26], partial_prod[20][27], layer1_col47_net8, layer1_col48_net3); +full_adder fa_add1_283 (partial_prod[19][28], partial_prod[18][29], partial_prod[17][30], layer1_col47_net9, layer1_col48_net4); +full_adder fa_add1_284 (partial_prod[31][17], partial_prod[30][18], partial_prod[29][19], layer1_col48_net5, layer1_col49_net0); +full_adder fa_add1_285 (partial_prod[28][20], partial_prod[27][21], partial_prod[26][22], layer1_col48_net6, layer1_col49_net1); +full_adder fa_add1_286 (partial_prod[25][23], partial_prod[24][24], partial_prod[23][25], layer1_col48_net7, layer1_col49_net2); +full_adder fa_add1_287 (partial_prod[22][26], partial_prod[21][27], partial_prod[20][28], layer1_col48_net8, layer1_col49_net3); +full_adder fa_add1_288 (partial_prod[19][29], partial_prod[18][30], partial_prod[17][31], layer1_col48_net9, layer1_col49_net4); +full_adder fa_add1_289 (partial_prod[31][18], partial_prod[30][19], partial_prod[29][20], layer1_col49_net5, layer1_col50_net0); +full_adder fa_add1_290 (partial_prod[28][21], partial_prod[27][22], partial_prod[26][23], layer1_col49_net6, layer1_col50_net1); +full_adder fa_add1_291 (partial_prod[25][24], partial_prod[24][25], partial_prod[23][26], layer1_col49_net7, layer1_col50_net2); +full_adder fa_add1_292 (partial_prod[22][27], partial_prod[21][28], partial_prod[20][29], layer1_col49_net8, layer1_col50_net3); +full_adder fa_add1_293 (partial_prod[31][19], partial_prod[30][20], partial_prod[29][21], layer1_col50_net4, layer1_col51_net0); +full_adder fa_add1_294 (partial_prod[28][22], partial_prod[27][23], partial_prod[26][24], layer1_col50_net5, layer1_col51_net1); +full_adder fa_add1_295 (partial_prod[25][25], partial_prod[24][26], partial_prod[23][27], layer1_col50_net6, layer1_col51_net2); +full_adder fa_add1_296 (partial_prod[22][28], partial_prod[21][29], partial_prod[20][30], layer1_col50_net7, layer1_col51_net3); +full_adder fa_add1_297 (partial_prod[31][20], partial_prod[30][21], partial_prod[29][22], layer1_col51_net4, layer1_col52_net0); +full_adder fa_add1_298 (partial_prod[28][23], partial_prod[27][24], partial_prod[26][25], layer1_col51_net5, layer1_col52_net1); +full_adder fa_add1_299 (partial_prod[25][26], partial_prod[24][27], partial_prod[23][28], layer1_col51_net6, layer1_col52_net2); +full_adder fa_add1_300 (partial_prod[22][29], partial_prod[21][30], partial_prod[20][31], layer1_col51_net7, layer1_col52_net3); +full_adder fa_add1_301 (partial_prod[31][21], partial_prod[30][22], partial_prod[29][23], layer1_col52_net4, layer1_col53_net0); +full_adder fa_add1_302 (partial_prod[28][24], partial_prod[27][25], partial_prod[26][26], layer1_col52_net5, layer1_col53_net1); +full_adder fa_add1_303 (partial_prod[25][27], partial_prod[24][28], partial_prod[23][29], layer1_col52_net6, layer1_col53_net2); +full_adder fa_add1_304 (partial_prod[31][22], partial_prod[30][23], partial_prod[29][24], layer1_col53_net3, layer1_col54_net0); +full_adder fa_add1_305 (partial_prod[28][25], partial_prod[27][26], partial_prod[26][27], layer1_col53_net4, layer1_col54_net1); +full_adder fa_add1_306 (partial_prod[25][28], partial_prod[24][29], partial_prod[23][30], layer1_col53_net5, layer1_col54_net2); +full_adder fa_add1_307 (partial_prod[31][23], partial_prod[30][24], partial_prod[29][25], layer1_col54_net3, layer1_col55_net0); +full_adder fa_add1_308 (partial_prod[28][26], partial_prod[27][27], partial_prod[26][28], layer1_col54_net4, layer1_col55_net1); +full_adder fa_add1_309 (partial_prod[25][29], partial_prod[24][30], partial_prod[23][31], layer1_col54_net5, layer1_col55_net2); +full_adder fa_add1_310 (partial_prod[31][24], partial_prod[30][25], partial_prod[29][26], layer1_col55_net3, layer1_col56_net0); +full_adder fa_add1_311 (partial_prod[28][27], partial_prod[27][28], partial_prod[26][29], layer1_col55_net4, layer1_col56_net1); +full_adder fa_add1_312 (partial_prod[31][25], partial_prod[30][26], partial_prod[29][27], layer1_col56_net2, layer1_col57_net0); +full_adder fa_add1_313 (partial_prod[28][28], partial_prod[27][29], partial_prod[26][30], layer1_col56_net3, layer1_col57_net1); +full_adder fa_add1_314 (partial_prod[31][26], partial_prod[30][27], partial_prod[29][28], layer1_col57_net2, layer1_col58_net0); +full_adder fa_add1_315 (partial_prod[28][29], partial_prod[27][30], partial_prod[26][31], layer1_col57_net3, layer1_col58_net1); +full_adder fa_add1_316 (partial_prod[31][27], partial_prod[30][28], partial_prod[29][29], layer1_col58_net2, layer1_col59_net0); +full_adder fa_add1_317 (partial_prod[31][28], partial_prod[30][29], partial_prod[29][30], layer1_col59_net1, layer1_col60_net0); +full_adder fa_add1_318 (partial_prod[31][29], partial_prod[30][30], partial_prod[29][31], layer1_col60_net1, layer1_col61_net0); + +//----------- Reduction Layer 2 Start -------------- + +assign layer2_col0_net0 = layer1_col0_net0; +assign layer2_col1_net0 = layer1_col1_net1; +assign layer2_col1_net1 = layer1_col1_net0; +assign layer2_col2_net0 = layer1_col2_net1; +assign layer2_col2_net1 = layer1_col2_net0; +assign layer2_col3_net1 = layer1_col3_net0; +assign layer2_col4_net2 = layer1_col4_net0; +assign layer2_col6_net2 = layer1_col6_net1; +assign layer2_col6_net3 = layer1_col6_net0; +assign layer2_col8_net3 = layer1_col8_net1; +assign layer2_col8_net4 = layer1_col8_net0; +assign layer2_col9_net3 = layer1_col9_net0; +assign layer2_col10_net4 = layer1_col10_net1; +assign layer2_col10_net5 = layer1_col10_net0; +assign layer2_col11_net4 = layer1_col11_net0; +assign layer2_col13_net6 = layer1_col13_net0; +assign layer2_col15_net6 = layer1_col15_net1; +assign layer2_col15_net7 = layer1_col15_net0; +assign layer2_col17_net7 = layer1_col17_net1; +assign layer2_col17_net8 = layer1_col17_net0; +assign layer2_col18_net7 = layer1_col18_net0; +assign layer2_col19_net8 = layer1_col19_net1; +assign layer2_col19_net9 = layer1_col19_net0; +assign layer2_col20_net8 = layer1_col20_net0; +assign layer2_col22_net10 = layer1_col22_net0; +assign layer2_col24_net10 = layer1_col24_net1; +assign layer2_col24_net11 = layer1_col24_net0; +assign layer2_col26_net11 = layer1_col26_net1; +assign layer2_col26_net12 = layer1_col26_net0; +assign layer2_col27_net11 = layer1_col27_net0; +assign layer2_col28_net12 = layer1_col28_net1; +assign layer2_col28_net13 = layer1_col28_net0; +assign layer2_col29_net12 = layer1_col29_net0; +assign layer2_col31_net14 = layer1_col31_net0; +assign layer2_col33_net13 = layer1_col33_net1; +assign layer2_col33_net14 = layer1_col33_net0; +assign layer2_col35_net13 = layer1_col35_net0; +assign layer2_col37_net12 = layer1_col37_net0; +assign layer2_col38_net11 = layer1_col38_net1; +assign layer2_col38_net12 = layer1_col38_net0; +assign layer2_col39_net10 = layer1_col39_net0; +assign layer2_col40_net10 = layer1_col40_net1; +assign layer2_col40_net11 = layer1_col40_net0; +assign layer2_col42_net9 = layer1_col42_net1; +assign layer2_col42_net10 = layer1_col42_net0; +assign layer2_col44_net9 = layer1_col44_net0; +assign layer2_col46_net8 = layer1_col46_net0; +assign layer2_col47_net7 = layer1_col47_net1; +assign layer2_col47_net8 = layer1_col47_net0; +assign layer2_col48_net6 = layer1_col48_net0; +assign layer2_col49_net6 = layer1_col49_net1; +assign layer2_col49_net7 = layer1_col49_net0; +assign layer2_col51_net5 = layer1_col51_net1; +assign layer2_col51_net6 = layer1_col51_net0; +assign layer2_col53_net5 = layer1_col53_net0; +assign layer2_col55_net4 = layer1_col55_net0; +assign layer2_col56_net3 = layer1_col56_net1; +assign layer2_col56_net4 = layer1_col56_net0; +assign layer2_col57_net2 = layer1_col57_net0; +assign layer2_col58_net2 = layer1_col58_net1; +assign layer2_col58_net3 = layer1_col58_net0; +assign layer2_col60_net1 = layer1_col60_net1; +assign layer2_col60_net2 = layer1_col60_net0; +assign layer2_col62_net1 = layer1_col62_net0; +half_adder ha_add2_0 (layer1_col3_net2, layer1_col3_net1, layer2_col3_net0, layer2_col4_net0); +full_adder fa_add2_0 (layer1_col4_net3, layer1_col4_net2, layer1_col4_net1, layer2_col4_net1, layer2_col5_net0); +full_adder fa_add2_1 (layer1_col5_net2, layer1_col5_net1, layer1_col5_net0, layer2_col5_net1, layer2_col6_net0); +full_adder fa_add2_2 (layer1_col6_net4, layer1_col6_net3, layer1_col6_net2, layer2_col6_net1, layer2_col7_net0); +full_adder fa_add2_3 (layer1_col7_net5, layer1_col7_net4, layer1_col7_net3, layer2_col7_net1, layer2_col8_net0); +full_adder fa_add2_4 (layer1_col7_net2, layer1_col7_net1, layer1_col7_net0, layer2_col7_net2, layer2_col8_net1); +full_adder fa_add2_5 (layer1_col8_net4, layer1_col8_net3, layer1_col8_net2, layer2_col8_net2, layer2_col9_net0); +full_adder fa_add2_6 (layer1_col9_net6, layer1_col9_net5, layer1_col9_net4, layer2_col9_net1, layer2_col10_net0); +full_adder fa_add2_7 (layer1_col9_net3, layer1_col9_net2, layer1_col9_net1, layer2_col9_net2, layer2_col10_net1); +full_adder fa_add2_8 (layer1_col10_net7, layer1_col10_net6, layer1_col10_net5, layer2_col10_net2, layer2_col11_net0); +full_adder fa_add2_9 (layer1_col10_net4, layer1_col10_net3, layer1_col10_net2, layer2_col10_net3, layer2_col11_net1); +full_adder fa_add2_10 (layer1_col11_net6, layer1_col11_net5, layer1_col11_net4, layer2_col11_net2, layer2_col12_net0); +full_adder fa_add2_11 (layer1_col11_net3, layer1_col11_net2, layer1_col11_net1, layer2_col11_net3, layer2_col12_net1); +full_adder fa_add2_12 (layer1_col12_net8, layer1_col12_net7, layer1_col12_net6, layer2_col12_net2, layer2_col13_net0); +full_adder fa_add2_13 (layer1_col12_net5, layer1_col12_net4, layer1_col12_net3, layer2_col12_net3, layer2_col13_net1); +full_adder fa_add2_14 (layer1_col12_net2, layer1_col12_net1, layer1_col12_net0, layer2_col12_net4, layer2_col13_net2); +full_adder fa_add2_15 (layer1_col13_net9, layer1_col13_net8, layer1_col13_net7, layer2_col13_net3, layer2_col14_net0); +full_adder fa_add2_16 (layer1_col13_net6, layer1_col13_net5, layer1_col13_net4, layer2_col13_net4, layer2_col14_net1); +full_adder fa_add2_17 (layer1_col13_net3, layer1_col13_net2, layer1_col13_net1, layer2_col13_net5, layer2_col14_net2); +full_adder fa_add2_18 (layer1_col14_net8, layer1_col14_net7, layer1_col14_net6, layer2_col14_net3, layer2_col15_net0); +full_adder fa_add2_19 (layer1_col14_net5, layer1_col14_net4, layer1_col14_net3, layer2_col14_net4, layer2_col15_net1); +full_adder fa_add2_20 (layer1_col14_net2, layer1_col14_net1, layer1_col14_net0, layer2_col14_net5, layer2_col15_net2); +full_adder fa_add2_21 (layer1_col15_net10, layer1_col15_net9, layer1_col15_net8, layer2_col15_net3, layer2_col16_net0); +full_adder fa_add2_22 (layer1_col15_net7, layer1_col15_net6, layer1_col15_net5, layer2_col15_net4, layer2_col16_net1); +full_adder fa_add2_23 (layer1_col15_net4, layer1_col15_net3, layer1_col15_net2, layer2_col15_net5, layer2_col16_net2); +full_adder fa_add2_24 (layer1_col16_net11, layer1_col16_net10, layer1_col16_net9, layer2_col16_net3, layer2_col17_net0); +full_adder fa_add2_25 (layer1_col16_net8, layer1_col16_net7, layer1_col16_net6, layer2_col16_net4, layer2_col17_net1); +full_adder fa_add2_26 (layer1_col16_net5, layer1_col16_net4, layer1_col16_net3, layer2_col16_net5, layer2_col17_net2); +full_adder fa_add2_27 (layer1_col16_net2, layer1_col16_net1, layer1_col16_net0, layer2_col16_net6, layer2_col17_net3); +full_adder fa_add2_28 (layer1_col17_net10, layer1_col17_net9, layer1_col17_net8, layer2_col17_net4, layer2_col18_net0); +full_adder fa_add2_29 (layer1_col17_net7, layer1_col17_net6, layer1_col17_net5, layer2_col17_net5, layer2_col18_net1); +full_adder fa_add2_30 (layer1_col17_net4, layer1_col17_net3, layer1_col17_net2, layer2_col17_net6, layer2_col18_net2); +full_adder fa_add2_31 (layer1_col18_net12, layer1_col18_net11, layer1_col18_net10, layer2_col18_net3, layer2_col19_net0); +full_adder fa_add2_32 (layer1_col18_net9, layer1_col18_net8, layer1_col18_net7, layer2_col18_net4, layer2_col19_net1); +full_adder fa_add2_33 (layer1_col18_net6, layer1_col18_net5, layer1_col18_net4, layer2_col18_net5, layer2_col19_net2); +full_adder fa_add2_34 (layer1_col18_net3, layer1_col18_net2, layer1_col18_net1, layer2_col18_net6, layer2_col19_net3); +full_adder fa_add2_35 (layer1_col19_net13, layer1_col19_net12, layer1_col19_net11, layer2_col19_net4, layer2_col20_net0); +full_adder fa_add2_36 (layer1_col19_net10, layer1_col19_net9, layer1_col19_net8, layer2_col19_net5, layer2_col20_net1); +full_adder fa_add2_37 (layer1_col19_net7, layer1_col19_net6, layer1_col19_net5, layer2_col19_net6, layer2_col20_net2); +full_adder fa_add2_38 (layer1_col19_net4, layer1_col19_net3, layer1_col19_net2, layer2_col19_net7, layer2_col20_net3); +full_adder fa_add2_39 (layer1_col20_net12, layer1_col20_net11, layer1_col20_net10, layer2_col20_net4, layer2_col21_net0); +full_adder fa_add2_40 (layer1_col20_net9, layer1_col20_net8, layer1_col20_net7, layer2_col20_net5, layer2_col21_net1); +full_adder fa_add2_41 (layer1_col20_net6, layer1_col20_net5, layer1_col20_net4, layer2_col20_net6, layer2_col21_net2); +full_adder fa_add2_42 (layer1_col20_net3, layer1_col20_net2, layer1_col20_net1, layer2_col20_net7, layer2_col21_net3); +full_adder fa_add2_43 (layer1_col21_net14, layer1_col21_net13, layer1_col21_net12, layer2_col21_net4, layer2_col22_net0); +full_adder fa_add2_44 (layer1_col21_net11, layer1_col21_net10, layer1_col21_net9, layer2_col21_net5, layer2_col22_net1); +full_adder fa_add2_45 (layer1_col21_net8, layer1_col21_net7, layer1_col21_net6, layer2_col21_net6, layer2_col22_net2); +full_adder fa_add2_46 (layer1_col21_net5, layer1_col21_net4, layer1_col21_net3, layer2_col21_net7, layer2_col22_net3); +full_adder fa_add2_47 (layer1_col21_net2, layer1_col21_net1, layer1_col21_net0, layer2_col21_net8, layer2_col22_net4); +full_adder fa_add2_48 (layer1_col22_net15, layer1_col22_net14, layer1_col22_net13, layer2_col22_net5, layer2_col23_net0); +full_adder fa_add2_49 (layer1_col22_net12, layer1_col22_net11, layer1_col22_net10, layer2_col22_net6, layer2_col23_net1); +full_adder fa_add2_50 (layer1_col22_net9, layer1_col22_net8, layer1_col22_net7, layer2_col22_net7, layer2_col23_net2); +full_adder fa_add2_51 (layer1_col22_net6, layer1_col22_net5, layer1_col22_net4, layer2_col22_net8, layer2_col23_net3); +full_adder fa_add2_52 (layer1_col22_net3, layer1_col22_net2, layer1_col22_net1, layer2_col22_net9, layer2_col23_net4); +full_adder fa_add2_53 (layer1_col23_net14, layer1_col23_net13, layer1_col23_net12, layer2_col23_net5, layer2_col24_net0); +full_adder fa_add2_54 (layer1_col23_net11, layer1_col23_net10, layer1_col23_net9, layer2_col23_net6, layer2_col24_net1); +full_adder fa_add2_55 (layer1_col23_net8, layer1_col23_net7, layer1_col23_net6, layer2_col23_net7, layer2_col24_net2); +full_adder fa_add2_56 (layer1_col23_net5, layer1_col23_net4, layer1_col23_net3, layer2_col23_net8, layer2_col24_net3); +full_adder fa_add2_57 (layer1_col23_net2, layer1_col23_net1, layer1_col23_net0, layer2_col23_net9, layer2_col24_net4); +full_adder fa_add2_58 (layer1_col24_net16, layer1_col24_net15, layer1_col24_net14, layer2_col24_net5, layer2_col25_net0); +full_adder fa_add2_59 (layer1_col24_net13, layer1_col24_net12, layer1_col24_net11, layer2_col24_net6, layer2_col25_net1); +full_adder fa_add2_60 (layer1_col24_net10, layer1_col24_net9, layer1_col24_net8, layer2_col24_net7, layer2_col25_net2); +full_adder fa_add2_61 (layer1_col24_net7, layer1_col24_net6, layer1_col24_net5, layer2_col24_net8, layer2_col25_net3); +full_adder fa_add2_62 (layer1_col24_net4, layer1_col24_net3, layer1_col24_net2, layer2_col24_net9, layer2_col25_net4); +full_adder fa_add2_63 (layer1_col25_net17, layer1_col25_net16, layer1_col25_net15, layer2_col25_net5, layer2_col26_net0); +full_adder fa_add2_64 (layer1_col25_net14, layer1_col25_net13, layer1_col25_net12, layer2_col25_net6, layer2_col26_net1); +full_adder fa_add2_65 (layer1_col25_net11, layer1_col25_net10, layer1_col25_net9, layer2_col25_net7, layer2_col26_net2); +full_adder fa_add2_66 (layer1_col25_net8, layer1_col25_net7, layer1_col25_net6, layer2_col25_net8, layer2_col26_net3); +full_adder fa_add2_67 (layer1_col25_net5, layer1_col25_net4, layer1_col25_net3, layer2_col25_net9, layer2_col26_net4); +full_adder fa_add2_68 (layer1_col25_net2, layer1_col25_net1, layer1_col25_net0, layer2_col25_net10, layer2_col26_net5); +full_adder fa_add2_69 (layer1_col26_net16, layer1_col26_net15, layer1_col26_net14, layer2_col26_net6, layer2_col27_net0); +full_adder fa_add2_70 (layer1_col26_net13, layer1_col26_net12, layer1_col26_net11, layer2_col26_net7, layer2_col27_net1); +full_adder fa_add2_71 (layer1_col26_net10, layer1_col26_net9, layer1_col26_net8, layer2_col26_net8, layer2_col27_net2); +full_adder fa_add2_72 (layer1_col26_net7, layer1_col26_net6, layer1_col26_net5, layer2_col26_net9, layer2_col27_net3); +full_adder fa_add2_73 (layer1_col26_net4, layer1_col26_net3, layer1_col26_net2, layer2_col26_net10, layer2_col27_net4); +full_adder fa_add2_74 (layer1_col27_net18, layer1_col27_net17, layer1_col27_net16, layer2_col27_net5, layer2_col28_net0); +full_adder fa_add2_75 (layer1_col27_net15, layer1_col27_net14, layer1_col27_net13, layer2_col27_net6, layer2_col28_net1); +full_adder fa_add2_76 (layer1_col27_net12, layer1_col27_net11, layer1_col27_net10, layer2_col27_net7, layer2_col28_net2); +full_adder fa_add2_77 (layer1_col27_net9, layer1_col27_net8, layer1_col27_net7, layer2_col27_net8, layer2_col28_net3); +full_adder fa_add2_78 (layer1_col27_net6, layer1_col27_net5, layer1_col27_net4, layer2_col27_net9, layer2_col28_net4); +full_adder fa_add2_79 (layer1_col27_net3, layer1_col27_net2, layer1_col27_net1, layer2_col27_net10, layer2_col28_net5); +full_adder fa_add2_80 (layer1_col28_net19, layer1_col28_net18, layer1_col28_net17, layer2_col28_net6, layer2_col29_net0); +full_adder fa_add2_81 (layer1_col28_net16, layer1_col28_net15, layer1_col28_net14, layer2_col28_net7, layer2_col29_net1); +full_adder fa_add2_82 (layer1_col28_net13, layer1_col28_net12, layer1_col28_net11, layer2_col28_net8, layer2_col29_net2); +full_adder fa_add2_83 (layer1_col28_net10, layer1_col28_net9, layer1_col28_net8, layer2_col28_net9, layer2_col29_net3); +full_adder fa_add2_84 (layer1_col28_net7, layer1_col28_net6, layer1_col28_net5, layer2_col28_net10, layer2_col29_net4); +full_adder fa_add2_85 (layer1_col28_net4, layer1_col28_net3, layer1_col28_net2, layer2_col28_net11, layer2_col29_net5); +full_adder fa_add2_86 (layer1_col29_net18, layer1_col29_net17, layer1_col29_net16, layer2_col29_net6, layer2_col30_net0); +full_adder fa_add2_87 (layer1_col29_net15, layer1_col29_net14, layer1_col29_net13, layer2_col29_net7, layer2_col30_net1); +full_adder fa_add2_88 (layer1_col29_net12, layer1_col29_net11, layer1_col29_net10, layer2_col29_net8, layer2_col30_net2); +full_adder fa_add2_89 (layer1_col29_net9, layer1_col29_net8, layer1_col29_net7, layer2_col29_net9, layer2_col30_net3); +full_adder fa_add2_90 (layer1_col29_net6, layer1_col29_net5, layer1_col29_net4, layer2_col29_net10, layer2_col30_net4); +full_adder fa_add2_91 (layer1_col29_net3, layer1_col29_net2, layer1_col29_net1, layer2_col29_net11, layer2_col30_net5); +full_adder fa_add2_92 (layer1_col30_net20, layer1_col30_net19, layer1_col30_net18, layer2_col30_net6, layer2_col31_net0); +full_adder fa_add2_93 (layer1_col30_net17, layer1_col30_net16, layer1_col30_net15, layer2_col30_net7, layer2_col31_net1); +full_adder fa_add2_94 (layer1_col30_net14, layer1_col30_net13, layer1_col30_net12, layer2_col30_net8, layer2_col31_net2); +full_adder fa_add2_95 (layer1_col30_net11, layer1_col30_net10, layer1_col30_net9, layer2_col30_net9, layer2_col31_net3); +full_adder fa_add2_96 (layer1_col30_net8, layer1_col30_net7, layer1_col30_net6, layer2_col30_net10, layer2_col31_net4); +full_adder fa_add2_97 (layer1_col30_net5, layer1_col30_net4, layer1_col30_net3, layer2_col30_net11, layer2_col31_net5); +full_adder fa_add2_98 (layer1_col30_net2, layer1_col30_net1, layer1_col30_net0, layer2_col30_net12, layer2_col31_net6); +full_adder fa_add2_99 (layer1_col31_net21, layer1_col31_net20, layer1_col31_net19, layer2_col31_net7, layer2_col32_net0); +full_adder fa_add2_100 (layer1_col31_net18, layer1_col31_net17, layer1_col31_net16, layer2_col31_net8, layer2_col32_net1); +full_adder fa_add2_101 (layer1_col31_net15, layer1_col31_net14, layer1_col31_net13, layer2_col31_net9, layer2_col32_net2); +full_adder fa_add2_102 (layer1_col31_net12, layer1_col31_net11, layer1_col31_net10, layer2_col31_net10, layer2_col32_net3); +full_adder fa_add2_103 (layer1_col31_net9, layer1_col31_net8, layer1_col31_net7, layer2_col31_net11, layer2_col32_net4); +full_adder fa_add2_104 (layer1_col31_net6, layer1_col31_net5, layer1_col31_net4, layer2_col31_net12, layer2_col32_net5); +full_adder fa_add2_105 (layer1_col31_net3, layer1_col31_net2, layer1_col31_net1, layer2_col31_net13, layer2_col32_net6); +full_adder fa_add2_106 (layer1_col32_net20, layer1_col32_net19, layer1_col32_net18, layer2_col32_net7, layer2_col33_net0); +full_adder fa_add2_107 (layer1_col32_net17, layer1_col32_net16, layer1_col32_net15, layer2_col32_net8, layer2_col33_net1); +full_adder fa_add2_108 (layer1_col32_net14, layer1_col32_net13, layer1_col32_net12, layer2_col32_net9, layer2_col33_net2); +full_adder fa_add2_109 (layer1_col32_net11, layer1_col32_net10, layer1_col32_net9, layer2_col32_net10, layer2_col33_net3); +full_adder fa_add2_110 (layer1_col32_net8, layer1_col32_net7, layer1_col32_net6, layer2_col32_net11, layer2_col33_net4); +full_adder fa_add2_111 (layer1_col32_net5, layer1_col32_net4, layer1_col32_net3, layer2_col32_net12, layer2_col33_net5); +full_adder fa_add2_112 (layer1_col32_net2, layer1_col32_net1, layer1_col32_net0, layer2_col32_net13, layer2_col33_net6); +full_adder fa_add2_113 (layer1_col33_net19, layer1_col33_net18, layer1_col33_net17, layer2_col33_net7, layer2_col34_net0); +full_adder fa_add2_114 (layer1_col33_net16, layer1_col33_net15, layer1_col33_net14, layer2_col33_net8, layer2_col34_net1); +full_adder fa_add2_115 (layer1_col33_net13, layer1_col33_net12, layer1_col33_net11, layer2_col33_net9, layer2_col34_net2); +full_adder fa_add2_116 (layer1_col33_net10, layer1_col33_net9, layer1_col33_net8, layer2_col33_net10, layer2_col34_net3); +full_adder fa_add2_117 (layer1_col33_net7, layer1_col33_net6, layer1_col33_net5, layer2_col33_net11, layer2_col34_net4); +full_adder fa_add2_118 (layer1_col33_net4, layer1_col33_net3, layer1_col33_net2, layer2_col33_net12, layer2_col34_net5); +full_adder fa_add2_119 (layer1_col34_net20, layer1_col34_net19, layer1_col34_net18, layer2_col34_net6, layer2_col35_net0); +full_adder fa_add2_120 (layer1_col34_net17, layer1_col34_net16, layer1_col34_net15, layer2_col34_net7, layer2_col35_net1); +full_adder fa_add2_121 (layer1_col34_net14, layer1_col34_net13, layer1_col34_net12, layer2_col34_net8, layer2_col35_net2); +full_adder fa_add2_122 (layer1_col34_net11, layer1_col34_net10, layer1_col34_net9, layer2_col34_net9, layer2_col35_net3); +full_adder fa_add2_123 (layer1_col34_net8, layer1_col34_net7, layer1_col34_net6, layer2_col34_net10, layer2_col35_net4); +full_adder fa_add2_124 (layer1_col34_net5, layer1_col34_net4, layer1_col34_net3, layer2_col34_net11, layer2_col35_net5); +full_adder fa_add2_125 (layer1_col34_net2, layer1_col34_net1, layer1_col34_net0, layer2_col34_net12, layer2_col35_net6); +full_adder fa_add2_126 (layer1_col35_net18, layer1_col35_net17, layer1_col35_net16, layer2_col35_net7, layer2_col36_net0); +full_adder fa_add2_127 (layer1_col35_net15, layer1_col35_net14, layer1_col35_net13, layer2_col35_net8, layer2_col36_net1); +full_adder fa_add2_128 (layer1_col35_net12, layer1_col35_net11, layer1_col35_net10, layer2_col35_net9, layer2_col36_net2); +full_adder fa_add2_129 (layer1_col35_net9, layer1_col35_net8, layer1_col35_net7, layer2_col35_net10, layer2_col36_net3); +full_adder fa_add2_130 (layer1_col35_net6, layer1_col35_net5, layer1_col35_net4, layer2_col35_net11, layer2_col36_net4); +full_adder fa_add2_131 (layer1_col35_net3, layer1_col35_net2, layer1_col35_net1, layer2_col35_net12, layer2_col36_net5); +full_adder fa_add2_132 (layer1_col36_net17, layer1_col36_net16, layer1_col36_net15, layer2_col36_net6, layer2_col37_net0); +full_adder fa_add2_133 (layer1_col36_net14, layer1_col36_net13, layer1_col36_net12, layer2_col36_net7, layer2_col37_net1); +full_adder fa_add2_134 (layer1_col36_net11, layer1_col36_net10, layer1_col36_net9, layer2_col36_net8, layer2_col37_net2); +full_adder fa_add2_135 (layer1_col36_net8, layer1_col36_net7, layer1_col36_net6, layer2_col36_net9, layer2_col37_net3); +full_adder fa_add2_136 (layer1_col36_net5, layer1_col36_net4, layer1_col36_net3, layer2_col36_net10, layer2_col37_net4); +full_adder fa_add2_137 (layer1_col36_net2, layer1_col36_net1, layer1_col36_net0, layer2_col36_net11, layer2_col37_net5); +full_adder fa_add2_138 (layer1_col37_net18, layer1_col37_net17, layer1_col37_net16, layer2_col37_net6, layer2_col38_net0); +full_adder fa_add2_139 (layer1_col37_net15, layer1_col37_net14, layer1_col37_net13, layer2_col37_net7, layer2_col38_net1); +full_adder fa_add2_140 (layer1_col37_net12, layer1_col37_net11, layer1_col37_net10, layer2_col37_net8, layer2_col38_net2); +full_adder fa_add2_141 (layer1_col37_net9, layer1_col37_net8, layer1_col37_net7, layer2_col37_net9, layer2_col38_net3); +full_adder fa_add2_142 (layer1_col37_net6, layer1_col37_net5, layer1_col37_net4, layer2_col37_net10, layer2_col38_net4); +full_adder fa_add2_143 (layer1_col37_net3, layer1_col37_net2, layer1_col37_net1, layer2_col37_net11, layer2_col38_net5); +full_adder fa_add2_144 (layer1_col38_net16, layer1_col38_net15, layer1_col38_net14, layer2_col38_net6, layer2_col39_net0); +full_adder fa_add2_145 (layer1_col38_net13, layer1_col38_net12, layer1_col38_net11, layer2_col38_net7, layer2_col39_net1); +full_adder fa_add2_146 (layer1_col38_net10, layer1_col38_net9, layer1_col38_net8, layer2_col38_net8, layer2_col39_net2); +full_adder fa_add2_147 (layer1_col38_net7, layer1_col38_net6, layer1_col38_net5, layer2_col38_net9, layer2_col39_net3); +full_adder fa_add2_148 (layer1_col38_net4, layer1_col38_net3, layer1_col38_net2, layer2_col38_net10, layer2_col39_net4); +full_adder fa_add2_149 (layer1_col39_net15, layer1_col39_net14, layer1_col39_net13, layer2_col39_net5, layer2_col40_net0); +full_adder fa_add2_150 (layer1_col39_net12, layer1_col39_net11, layer1_col39_net10, layer2_col39_net6, layer2_col40_net1); +full_adder fa_add2_151 (layer1_col39_net9, layer1_col39_net8, layer1_col39_net7, layer2_col39_net7, layer2_col40_net2); +full_adder fa_add2_152 (layer1_col39_net6, layer1_col39_net5, layer1_col39_net4, layer2_col39_net8, layer2_col40_net3); +full_adder fa_add2_153 (layer1_col39_net3, layer1_col39_net2, layer1_col39_net1, layer2_col39_net9, layer2_col40_net4); +full_adder fa_add2_154 (layer1_col40_net16, layer1_col40_net15, layer1_col40_net14, layer2_col40_net5, layer2_col41_net0); +full_adder fa_add2_155 (layer1_col40_net13, layer1_col40_net12, layer1_col40_net11, layer2_col40_net6, layer2_col41_net1); +full_adder fa_add2_156 (layer1_col40_net10, layer1_col40_net9, layer1_col40_net8, layer2_col40_net7, layer2_col41_net2); +full_adder fa_add2_157 (layer1_col40_net7, layer1_col40_net6, layer1_col40_net5, layer2_col40_net8, layer2_col41_net3); +full_adder fa_add2_158 (layer1_col40_net4, layer1_col40_net3, layer1_col40_net2, layer2_col40_net9, layer2_col41_net4); +full_adder fa_add2_159 (layer1_col41_net14, layer1_col41_net13, layer1_col41_net12, layer2_col41_net5, layer2_col42_net0); +full_adder fa_add2_160 (layer1_col41_net11, layer1_col41_net10, layer1_col41_net9, layer2_col41_net6, layer2_col42_net1); +full_adder fa_add2_161 (layer1_col41_net8, layer1_col41_net7, layer1_col41_net6, layer2_col41_net7, layer2_col42_net2); +full_adder fa_add2_162 (layer1_col41_net5, layer1_col41_net4, layer1_col41_net3, layer2_col41_net8, layer2_col42_net3); +full_adder fa_add2_163 (layer1_col41_net2, layer1_col41_net1, layer1_col41_net0, layer2_col41_net9, layer2_col42_net4); +full_adder fa_add2_164 (layer1_col42_net13, layer1_col42_net12, layer1_col42_net11, layer2_col42_net5, layer2_col43_net0); +full_adder fa_add2_165 (layer1_col42_net10, layer1_col42_net9, layer1_col42_net8, layer2_col42_net6, layer2_col43_net1); +full_adder fa_add2_166 (layer1_col42_net7, layer1_col42_net6, layer1_col42_net5, layer2_col42_net7, layer2_col43_net2); +full_adder fa_add2_167 (layer1_col42_net4, layer1_col42_net3, layer1_col42_net2, layer2_col42_net8, layer2_col43_net3); +full_adder fa_add2_168 (layer1_col43_net14, layer1_col43_net13, layer1_col43_net12, layer2_col43_net4, layer2_col44_net0); +full_adder fa_add2_169 (layer1_col43_net11, layer1_col43_net10, layer1_col43_net9, layer2_col43_net5, layer2_col44_net1); +full_adder fa_add2_170 (layer1_col43_net8, layer1_col43_net7, layer1_col43_net6, layer2_col43_net6, layer2_col44_net2); +full_adder fa_add2_171 (layer1_col43_net5, layer1_col43_net4, layer1_col43_net3, layer2_col43_net7, layer2_col44_net3); +full_adder fa_add2_172 (layer1_col43_net2, layer1_col43_net1, layer1_col43_net0, layer2_col43_net8, layer2_col44_net4); +full_adder fa_add2_173 (layer1_col44_net12, layer1_col44_net11, layer1_col44_net10, layer2_col44_net5, layer2_col45_net0); +full_adder fa_add2_174 (layer1_col44_net9, layer1_col44_net8, layer1_col44_net7, layer2_col44_net6, layer2_col45_net1); +full_adder fa_add2_175 (layer1_col44_net6, layer1_col44_net5, layer1_col44_net4, layer2_col44_net7, layer2_col45_net2); +full_adder fa_add2_176 (layer1_col44_net3, layer1_col44_net2, layer1_col44_net1, layer2_col44_net8, layer2_col45_net3); +full_adder fa_add2_177 (layer1_col45_net11, layer1_col45_net10, layer1_col45_net9, layer2_col45_net4, layer2_col46_net0); +full_adder fa_add2_178 (layer1_col45_net8, layer1_col45_net7, layer1_col45_net6, layer2_col45_net5, layer2_col46_net1); +full_adder fa_add2_179 (layer1_col45_net5, layer1_col45_net4, layer1_col45_net3, layer2_col45_net6, layer2_col46_net2); +full_adder fa_add2_180 (layer1_col45_net2, layer1_col45_net1, layer1_col45_net0, layer2_col45_net7, layer2_col46_net3); +full_adder fa_add2_181 (layer1_col46_net12, layer1_col46_net11, layer1_col46_net10, layer2_col46_net4, layer2_col47_net0); +full_adder fa_add2_182 (layer1_col46_net9, layer1_col46_net8, layer1_col46_net7, layer2_col46_net5, layer2_col47_net1); +full_adder fa_add2_183 (layer1_col46_net6, layer1_col46_net5, layer1_col46_net4, layer2_col46_net6, layer2_col47_net2); +full_adder fa_add2_184 (layer1_col46_net3, layer1_col46_net2, layer1_col46_net1, layer2_col46_net7, layer2_col47_net3); +full_adder fa_add2_185 (layer1_col47_net10, layer1_col47_net9, layer1_col47_net8, layer2_col47_net4, layer2_col48_net0); +full_adder fa_add2_186 (layer1_col47_net7, layer1_col47_net6, layer1_col47_net5, layer2_col47_net5, layer2_col48_net1); +full_adder fa_add2_187 (layer1_col47_net4, layer1_col47_net3, layer1_col47_net2, layer2_col47_net6, layer2_col48_net2); +full_adder fa_add2_188 (layer1_col48_net9, layer1_col48_net8, layer1_col48_net7, layer2_col48_net3, layer2_col49_net0); +full_adder fa_add2_189 (layer1_col48_net6, layer1_col48_net5, layer1_col48_net4, layer2_col48_net4, layer2_col49_net1); +full_adder fa_add2_190 (layer1_col48_net3, layer1_col48_net2, layer1_col48_net1, layer2_col48_net5, layer2_col49_net2); +full_adder fa_add2_191 (layer1_col49_net10, layer1_col49_net9, layer1_col49_net8, layer2_col49_net3, layer2_col50_net0); +full_adder fa_add2_192 (layer1_col49_net7, layer1_col49_net6, layer1_col49_net5, layer2_col49_net4, layer2_col50_net1); +full_adder fa_add2_193 (layer1_col49_net4, layer1_col49_net3, layer1_col49_net2, layer2_col49_net5, layer2_col50_net2); +full_adder fa_add2_194 (layer1_col50_net8, layer1_col50_net7, layer1_col50_net6, layer2_col50_net3, layer2_col51_net0); +full_adder fa_add2_195 (layer1_col50_net5, layer1_col50_net4, layer1_col50_net3, layer2_col50_net4, layer2_col51_net1); +full_adder fa_add2_196 (layer1_col50_net2, layer1_col50_net1, layer1_col50_net0, layer2_col50_net5, layer2_col51_net2); +full_adder fa_add2_197 (layer1_col51_net7, layer1_col51_net6, layer1_col51_net5, layer2_col51_net3, layer2_col52_net0); +full_adder fa_add2_198 (layer1_col51_net4, layer1_col51_net3, layer1_col51_net2, layer2_col51_net4, layer2_col52_net1); +full_adder fa_add2_199 (layer1_col52_net8, layer1_col52_net7, layer1_col52_net6, layer2_col52_net2, layer2_col53_net0); +full_adder fa_add2_200 (layer1_col52_net5, layer1_col52_net4, layer1_col52_net3, layer2_col52_net3, layer2_col53_net1); +full_adder fa_add2_201 (layer1_col52_net2, layer1_col52_net1, layer1_col52_net0, layer2_col52_net4, layer2_col53_net2); +full_adder fa_add2_202 (layer1_col53_net6, layer1_col53_net5, layer1_col53_net4, layer2_col53_net3, layer2_col54_net0); +full_adder fa_add2_203 (layer1_col53_net3, layer1_col53_net2, layer1_col53_net1, layer2_col53_net4, layer2_col54_net1); +full_adder fa_add2_204 (layer1_col54_net5, layer1_col54_net4, layer1_col54_net3, layer2_col54_net2, layer2_col55_net0); +full_adder fa_add2_205 (layer1_col54_net2, layer1_col54_net1, layer1_col54_net0, layer2_col54_net3, layer2_col55_net1); +full_adder fa_add2_206 (layer1_col55_net6, layer1_col55_net5, layer1_col55_net4, layer2_col55_net2, layer2_col56_net0); +full_adder fa_add2_207 (layer1_col55_net3, layer1_col55_net2, layer1_col55_net1, layer2_col55_net3, layer2_col56_net1); +full_adder fa_add2_208 (layer1_col56_net4, layer1_col56_net3, layer1_col56_net2, layer2_col56_net2, layer2_col57_net0); +full_adder fa_add2_209 (layer1_col57_net3, layer1_col57_net2, layer1_col57_net1, layer2_col57_net1, layer2_col58_net0); +full_adder fa_add2_210 (layer1_col58_net4, layer1_col58_net3, layer1_col58_net2, layer2_col58_net1, layer2_col59_net0); +full_adder fa_add2_211 (layer1_col59_net2, layer1_col59_net1, layer1_col59_net0, layer2_col59_net1, layer2_col60_net0); +full_adder fa_add2_212 (layer1_col61_net2, layer1_col61_net1, layer1_col61_net0, layer2_col61_net0, layer2_col62_net0); + +//----------- Reduction Layer 3 Start -------------- + +assign layer3_col0_net0 = layer2_col0_net0; +assign layer3_col1_net0 = layer2_col1_net1; +assign layer3_col1_net1 = layer2_col1_net0; +assign layer3_col2_net0 = layer2_col2_net1; +assign layer3_col2_net1 = layer2_col2_net0; +assign layer3_col3_net0 = layer2_col3_net1; +assign layer3_col3_net1 = layer2_col3_net0; +assign layer3_col4_net1 = layer2_col4_net0; +assign layer3_col5_net1 = layer2_col5_net1; +assign layer3_col5_net2 = layer2_col5_net0; +assign layer3_col6_net1 = layer2_col6_net0; +assign layer3_col8_net2 = layer2_col8_net1; +assign layer3_col8_net3 = layer2_col8_net0; +assign layer3_col9_net2 = layer2_col9_net0; +assign layer3_col11_net3 = layer2_col11_net1; +assign layer3_col11_net4 = layer2_col11_net0; +assign layer3_col12_net2 = layer2_col12_net1; +assign layer3_col12_net3 = layer2_col12_net0; +assign layer3_col13_net3 = layer2_col13_net0; +assign layer3_col15_net4 = layer2_col15_net1; +assign layer3_col15_net5 = layer2_col15_net0; +assign layer3_col16_net4 = layer2_col16_net0; +assign layer3_col18_net5 = layer2_col18_net1; +assign layer3_col18_net6 = layer2_col18_net0; +assign layer3_col19_net5 = layer2_col19_net0; +assign layer3_col22_net6 = layer2_col22_net1; +assign layer3_col22_net7 = layer2_col22_net0; +assign layer3_col23_net6 = layer2_col23_net0; +assign layer3_col25_net7 = layer2_col25_net1; +assign layer3_col25_net8 = layer2_col25_net0; +assign layer3_col26_net7 = layer2_col26_net0; +assign layer3_col28_net8 = layer2_col28_net1; +assign layer3_col28_net9 = layer2_col28_net0; +assign layer3_col29_net8 = layer2_col29_net0; +assign layer3_col30_net8 = layer2_col30_net0; +assign layer3_col32_net9 = layer2_col32_net1; +assign layer3_col32_net10 = layer2_col32_net0; +assign layer3_col34_net9 = layer2_col34_net0; +assign layer3_col35_net8 = layer2_col35_net1; +assign layer3_col35_net9 = layer2_col35_net0; +assign layer3_col37_net8 = layer2_col37_net0; +assign layer3_col38_net8 = layer2_col38_net0; +assign layer3_col39_net7 = layer2_col39_net1; +assign layer3_col39_net8 = layer2_col39_net0; +assign layer3_col41_net7 = layer2_col41_net0; +assign layer3_col42_net6 = layer2_col42_net1; +assign layer3_col42_net7 = layer2_col42_net0; +assign layer3_col44_net6 = layer2_col44_net0; +assign layer3_col45_net5 = layer2_col45_net1; +assign layer3_col45_net6 = layer2_col45_net0; +assign layer3_col48_net5 = layer2_col48_net0; +assign layer3_col49_net4 = layer2_col49_net1; +assign layer3_col49_net5 = layer2_col49_net0; +assign layer3_col51_net4 = layer2_col51_net0; +assign layer3_col52_net3 = layer2_col52_net1; +assign layer3_col52_net4 = layer2_col52_net0; +assign layer3_col54_net3 = layer2_col54_net0; +assign layer3_col55_net2 = layer2_col55_net1; +assign layer3_col55_net3 = layer2_col55_net0; +assign layer3_col56_net2 = layer2_col56_net1; +assign layer3_col56_net3 = layer2_col56_net0; +assign layer3_col58_net2 = layer2_col58_net0; +assign layer3_col59_net1 = layer2_col59_net1; +assign layer3_col59_net2 = layer2_col59_net0; +assign layer3_col61_net1 = layer2_col61_net0; +assign layer3_col62_net0 = layer2_col62_net1; +assign layer3_col62_net1 = layer2_col62_net0; +half_adder ha_add3_0 (layer2_col4_net2, layer2_col4_net1, layer3_col4_net0, layer3_col5_net0); +full_adder fa_add3_0 (layer2_col6_net3, layer2_col6_net2, layer2_col6_net1, layer3_col6_net0, layer3_col7_net0); +full_adder fa_add3_1 (layer2_col7_net2, layer2_col7_net1, layer2_col7_net0, layer3_col7_net1, layer3_col8_net0); +full_adder fa_add3_2 (layer2_col8_net4, layer2_col8_net3, layer2_col8_net2, layer3_col8_net1, layer3_col9_net0); +full_adder fa_add3_3 (layer2_col9_net3, layer2_col9_net2, layer2_col9_net1, layer3_col9_net1, layer3_col10_net0); +full_adder fa_add3_4 (layer2_col10_net5, layer2_col10_net4, layer2_col10_net3, layer3_col10_net1, layer3_col11_net0); +full_adder fa_add3_5 (layer2_col10_net2, layer2_col10_net1, layer2_col10_net0, layer3_col10_net2, layer3_col11_net1); +full_adder fa_add3_6 (layer2_col11_net4, layer2_col11_net3, layer2_col11_net2, layer3_col11_net2, layer3_col12_net0); +full_adder fa_add3_7 (layer2_col12_net4, layer2_col12_net3, layer2_col12_net2, layer3_col12_net1, layer3_col13_net0); +full_adder fa_add3_8 (layer2_col13_net6, layer2_col13_net5, layer2_col13_net4, layer3_col13_net1, layer3_col14_net0); +full_adder fa_add3_9 (layer2_col13_net3, layer2_col13_net2, layer2_col13_net1, layer3_col13_net2, layer3_col14_net1); +full_adder fa_add3_10 (layer2_col14_net5, layer2_col14_net4, layer2_col14_net3, layer3_col14_net2, layer3_col15_net0); +full_adder fa_add3_11 (layer2_col14_net2, layer2_col14_net1, layer2_col14_net0, layer3_col14_net3, layer3_col15_net1); +full_adder fa_add3_12 (layer2_col15_net7, layer2_col15_net6, layer2_col15_net5, layer3_col15_net2, layer3_col16_net0); +full_adder fa_add3_13 (layer2_col15_net4, layer2_col15_net3, layer2_col15_net2, layer3_col15_net3, layer3_col16_net1); +full_adder fa_add3_14 (layer2_col16_net6, layer2_col16_net5, layer2_col16_net4, layer3_col16_net2, layer3_col17_net0); +full_adder fa_add3_15 (layer2_col16_net3, layer2_col16_net2, layer2_col16_net1, layer3_col16_net3, layer3_col17_net1); +full_adder fa_add3_16 (layer2_col17_net8, layer2_col17_net7, layer2_col17_net6, layer3_col17_net2, layer3_col18_net0); +full_adder fa_add3_17 (layer2_col17_net5, layer2_col17_net4, layer2_col17_net3, layer3_col17_net3, layer3_col18_net1); +full_adder fa_add3_18 (layer2_col17_net2, layer2_col17_net1, layer2_col17_net0, layer3_col17_net4, layer3_col18_net2); +full_adder fa_add3_19 (layer2_col18_net7, layer2_col18_net6, layer2_col18_net5, layer3_col18_net3, layer3_col19_net0); +full_adder fa_add3_20 (layer2_col18_net4, layer2_col18_net3, layer2_col18_net2, layer3_col18_net4, layer3_col19_net1); +full_adder fa_add3_21 (layer2_col19_net9, layer2_col19_net8, layer2_col19_net7, layer3_col19_net2, layer3_col20_net0); +full_adder fa_add3_22 (layer2_col19_net6, layer2_col19_net5, layer2_col19_net4, layer3_col19_net3, layer3_col20_net1); +full_adder fa_add3_23 (layer2_col19_net3, layer2_col19_net2, layer2_col19_net1, layer3_col19_net4, layer3_col20_net2); +full_adder fa_add3_24 (layer2_col20_net8, layer2_col20_net7, layer2_col20_net6, layer3_col20_net3, layer3_col21_net0); +full_adder fa_add3_25 (layer2_col20_net5, layer2_col20_net4, layer2_col20_net3, layer3_col20_net4, layer3_col21_net1); +full_adder fa_add3_26 (layer2_col20_net2, layer2_col20_net1, layer2_col20_net0, layer3_col20_net5, layer3_col21_net2); +full_adder fa_add3_27 (layer2_col21_net8, layer2_col21_net7, layer2_col21_net6, layer3_col21_net3, layer3_col22_net0); +full_adder fa_add3_28 (layer2_col21_net5, layer2_col21_net4, layer2_col21_net3, layer3_col21_net4, layer3_col22_net1); +full_adder fa_add3_29 (layer2_col21_net2, layer2_col21_net1, layer2_col21_net0, layer3_col21_net5, layer3_col22_net2); +full_adder fa_add3_30 (layer2_col22_net10, layer2_col22_net9, layer2_col22_net8, layer3_col22_net3, layer3_col23_net0); +full_adder fa_add3_31 (layer2_col22_net7, layer2_col22_net6, layer2_col22_net5, layer3_col22_net4, layer3_col23_net1); +full_adder fa_add3_32 (layer2_col22_net4, layer2_col22_net3, layer2_col22_net2, layer3_col22_net5, layer3_col23_net2); +full_adder fa_add3_33 (layer2_col23_net9, layer2_col23_net8, layer2_col23_net7, layer3_col23_net3, layer3_col24_net0); +full_adder fa_add3_34 (layer2_col23_net6, layer2_col23_net5, layer2_col23_net4, layer3_col23_net4, layer3_col24_net1); +full_adder fa_add3_35 (layer2_col23_net3, layer2_col23_net2, layer2_col23_net1, layer3_col23_net5, layer3_col24_net2); +full_adder fa_add3_36 (layer2_col24_net11, layer2_col24_net10, layer2_col24_net9, layer3_col24_net3, layer3_col25_net0); +full_adder fa_add3_37 (layer2_col24_net8, layer2_col24_net7, layer2_col24_net6, layer3_col24_net4, layer3_col25_net1); +full_adder fa_add3_38 (layer2_col24_net5, layer2_col24_net4, layer2_col24_net3, layer3_col24_net5, layer3_col25_net2); +full_adder fa_add3_39 (layer2_col24_net2, layer2_col24_net1, layer2_col24_net0, layer3_col24_net6, layer3_col25_net3); +full_adder fa_add3_40 (layer2_col25_net10, layer2_col25_net9, layer2_col25_net8, layer3_col25_net4, layer3_col26_net0); +full_adder fa_add3_41 (layer2_col25_net7, layer2_col25_net6, layer2_col25_net5, layer3_col25_net5, layer3_col26_net1); +full_adder fa_add3_42 (layer2_col25_net4, layer2_col25_net3, layer2_col25_net2, layer3_col25_net6, layer3_col26_net2); +full_adder fa_add3_43 (layer2_col26_net12, layer2_col26_net11, layer2_col26_net10, layer3_col26_net3, layer3_col27_net0); +full_adder fa_add3_44 (layer2_col26_net9, layer2_col26_net8, layer2_col26_net7, layer3_col26_net4, layer3_col27_net1); +full_adder fa_add3_45 (layer2_col26_net6, layer2_col26_net5, layer2_col26_net4, layer3_col26_net5, layer3_col27_net2); +full_adder fa_add3_46 (layer2_col26_net3, layer2_col26_net2, layer2_col26_net1, layer3_col26_net6, layer3_col27_net3); +full_adder fa_add3_47 (layer2_col27_net11, layer2_col27_net10, layer2_col27_net9, layer3_col27_net4, layer3_col28_net0); +full_adder fa_add3_48 (layer2_col27_net8, layer2_col27_net7, layer2_col27_net6, layer3_col27_net5, layer3_col28_net1); +full_adder fa_add3_49 (layer2_col27_net5, layer2_col27_net4, layer2_col27_net3, layer3_col27_net6, layer3_col28_net2); +full_adder fa_add3_50 (layer2_col27_net2, layer2_col27_net1, layer2_col27_net0, layer3_col27_net7, layer3_col28_net3); +full_adder fa_add3_51 (layer2_col28_net13, layer2_col28_net12, layer2_col28_net11, layer3_col28_net4, layer3_col29_net0); +full_adder fa_add3_52 (layer2_col28_net10, layer2_col28_net9, layer2_col28_net8, layer3_col28_net5, layer3_col29_net1); +full_adder fa_add3_53 (layer2_col28_net7, layer2_col28_net6, layer2_col28_net5, layer3_col28_net6, layer3_col29_net2); +full_adder fa_add3_54 (layer2_col28_net4, layer2_col28_net3, layer2_col28_net2, layer3_col28_net7, layer3_col29_net3); +full_adder fa_add3_55 (layer2_col29_net12, layer2_col29_net11, layer2_col29_net10, layer3_col29_net4, layer3_col30_net0); +full_adder fa_add3_56 (layer2_col29_net9, layer2_col29_net8, layer2_col29_net7, layer3_col29_net5, layer3_col30_net1); +full_adder fa_add3_57 (layer2_col29_net6, layer2_col29_net5, layer2_col29_net4, layer3_col29_net6, layer3_col30_net2); +full_adder fa_add3_58 (layer2_col29_net3, layer2_col29_net2, layer2_col29_net1, layer3_col29_net7, layer3_col30_net3); +full_adder fa_add3_59 (layer2_col30_net12, layer2_col30_net11, layer2_col30_net10, layer3_col30_net4, layer3_col31_net0); +full_adder fa_add3_60 (layer2_col30_net9, layer2_col30_net8, layer2_col30_net7, layer3_col30_net5, layer3_col31_net1); +full_adder fa_add3_61 (layer2_col30_net6, layer2_col30_net5, layer2_col30_net4, layer3_col30_net6, layer3_col31_net2); +full_adder fa_add3_62 (layer2_col30_net3, layer2_col30_net2, layer2_col30_net1, layer3_col30_net7, layer3_col31_net3); +full_adder fa_add3_63 (layer2_col31_net14, layer2_col31_net13, layer2_col31_net12, layer3_col31_net4, layer3_col32_net0); +full_adder fa_add3_64 (layer2_col31_net11, layer2_col31_net10, layer2_col31_net9, layer3_col31_net5, layer3_col32_net1); +full_adder fa_add3_65 (layer2_col31_net8, layer2_col31_net7, layer2_col31_net6, layer3_col31_net6, layer3_col32_net2); +full_adder fa_add3_66 (layer2_col31_net5, layer2_col31_net4, layer2_col31_net3, layer3_col31_net7, layer3_col32_net3); +full_adder fa_add3_67 (layer2_col31_net2, layer2_col31_net1, layer2_col31_net0, layer3_col31_net8, layer3_col32_net4); +full_adder fa_add3_68 (layer2_col32_net13, layer2_col32_net12, layer2_col32_net11, layer3_col32_net5, layer3_col33_net0); +full_adder fa_add3_69 (layer2_col32_net10, layer2_col32_net9, layer2_col32_net8, layer3_col32_net6, layer3_col33_net1); +full_adder fa_add3_70 (layer2_col32_net7, layer2_col32_net6, layer2_col32_net5, layer3_col32_net7, layer3_col33_net2); +full_adder fa_add3_71 (layer2_col32_net4, layer2_col32_net3, layer2_col32_net2, layer3_col32_net8, layer3_col33_net3); +full_adder fa_add3_72 (layer2_col33_net14, layer2_col33_net13, layer2_col33_net12, layer3_col33_net4, layer3_col34_net0); +full_adder fa_add3_73 (layer2_col33_net11, layer2_col33_net10, layer2_col33_net9, layer3_col33_net5, layer3_col34_net1); +full_adder fa_add3_74 (layer2_col33_net8, layer2_col33_net7, layer2_col33_net6, layer3_col33_net6, layer3_col34_net2); +full_adder fa_add3_75 (layer2_col33_net5, layer2_col33_net4, layer2_col33_net3, layer3_col33_net7, layer3_col34_net3); +full_adder fa_add3_76 (layer2_col33_net2, layer2_col33_net1, layer2_col33_net0, layer3_col33_net8, layer3_col34_net4); +full_adder fa_add3_77 (layer2_col34_net12, layer2_col34_net11, layer2_col34_net10, layer3_col34_net5, layer3_col35_net0); +full_adder fa_add3_78 (layer2_col34_net9, layer2_col34_net8, layer2_col34_net7, layer3_col34_net6, layer3_col35_net1); +full_adder fa_add3_79 (layer2_col34_net6, layer2_col34_net5, layer2_col34_net4, layer3_col34_net7, layer3_col35_net2); +full_adder fa_add3_80 (layer2_col34_net3, layer2_col34_net2, layer2_col34_net1, layer3_col34_net8, layer3_col35_net3); +full_adder fa_add3_81 (layer2_col35_net13, layer2_col35_net12, layer2_col35_net11, layer3_col35_net4, layer3_col36_net0); +full_adder fa_add3_82 (layer2_col35_net10, layer2_col35_net9, layer2_col35_net8, layer3_col35_net5, layer3_col36_net1); +full_adder fa_add3_83 (layer2_col35_net7, layer2_col35_net6, layer2_col35_net5, layer3_col35_net6, layer3_col36_net2); +full_adder fa_add3_84 (layer2_col35_net4, layer2_col35_net3, layer2_col35_net2, layer3_col35_net7, layer3_col36_net3); +full_adder fa_add3_85 (layer2_col36_net11, layer2_col36_net10, layer2_col36_net9, layer3_col36_net4, layer3_col37_net0); +full_adder fa_add3_86 (layer2_col36_net8, layer2_col36_net7, layer2_col36_net6, layer3_col36_net5, layer3_col37_net1); +full_adder fa_add3_87 (layer2_col36_net5, layer2_col36_net4, layer2_col36_net3, layer3_col36_net6, layer3_col37_net2); +full_adder fa_add3_88 (layer2_col36_net2, layer2_col36_net1, layer2_col36_net0, layer3_col36_net7, layer3_col37_net3); +full_adder fa_add3_89 (layer2_col37_net12, layer2_col37_net11, layer2_col37_net10, layer3_col37_net4, layer3_col38_net0); +full_adder fa_add3_90 (layer2_col37_net9, layer2_col37_net8, layer2_col37_net7, layer3_col37_net5, layer3_col38_net1); +full_adder fa_add3_91 (layer2_col37_net6, layer2_col37_net5, layer2_col37_net4, layer3_col37_net6, layer3_col38_net2); +full_adder fa_add3_92 (layer2_col37_net3, layer2_col37_net2, layer2_col37_net1, layer3_col37_net7, layer3_col38_net3); +full_adder fa_add3_93 (layer2_col38_net12, layer2_col38_net11, layer2_col38_net10, layer3_col38_net4, layer3_col39_net0); +full_adder fa_add3_94 (layer2_col38_net9, layer2_col38_net8, layer2_col38_net7, layer3_col38_net5, layer3_col39_net1); +full_adder fa_add3_95 (layer2_col38_net6, layer2_col38_net5, layer2_col38_net4, layer3_col38_net6, layer3_col39_net2); +full_adder fa_add3_96 (layer2_col38_net3, layer2_col38_net2, layer2_col38_net1, layer3_col38_net7, layer3_col39_net3); +full_adder fa_add3_97 (layer2_col39_net10, layer2_col39_net9, layer2_col39_net8, layer3_col39_net4, layer3_col40_net0); +full_adder fa_add3_98 (layer2_col39_net7, layer2_col39_net6, layer2_col39_net5, layer3_col39_net5, layer3_col40_net1); +full_adder fa_add3_99 (layer2_col39_net4, layer2_col39_net3, layer2_col39_net2, layer3_col39_net6, layer3_col40_net2); +full_adder fa_add3_100 (layer2_col40_net11, layer2_col40_net10, layer2_col40_net9, layer3_col40_net3, layer3_col41_net0); +full_adder fa_add3_101 (layer2_col40_net8, layer2_col40_net7, layer2_col40_net6, layer3_col40_net4, layer3_col41_net1); +full_adder fa_add3_102 (layer2_col40_net5, layer2_col40_net4, layer2_col40_net3, layer3_col40_net5, layer3_col41_net2); +full_adder fa_add3_103 (layer2_col40_net2, layer2_col40_net1, layer2_col40_net0, layer3_col40_net6, layer3_col41_net3); +full_adder fa_add3_104 (layer2_col41_net9, layer2_col41_net8, layer2_col41_net7, layer3_col41_net4, layer3_col42_net0); +full_adder fa_add3_105 (layer2_col41_net6, layer2_col41_net5, layer2_col41_net4, layer3_col41_net5, layer3_col42_net1); +full_adder fa_add3_106 (layer2_col41_net3, layer2_col41_net2, layer2_col41_net1, layer3_col41_net6, layer3_col42_net2); +full_adder fa_add3_107 (layer2_col42_net10, layer2_col42_net9, layer2_col42_net8, layer3_col42_net3, layer3_col43_net0); +full_adder fa_add3_108 (layer2_col42_net7, layer2_col42_net6, layer2_col42_net5, layer3_col42_net4, layer3_col43_net1); +full_adder fa_add3_109 (layer2_col42_net4, layer2_col42_net3, layer2_col42_net2, layer3_col42_net5, layer3_col43_net2); +full_adder fa_add3_110 (layer2_col43_net8, layer2_col43_net7, layer2_col43_net6, layer3_col43_net3, layer3_col44_net0); +full_adder fa_add3_111 (layer2_col43_net5, layer2_col43_net4, layer2_col43_net3, layer3_col43_net4, layer3_col44_net1); +full_adder fa_add3_112 (layer2_col43_net2, layer2_col43_net1, layer2_col43_net0, layer3_col43_net5, layer3_col44_net2); +full_adder fa_add3_113 (layer2_col44_net9, layer2_col44_net8, layer2_col44_net7, layer3_col44_net3, layer3_col45_net0); +full_adder fa_add3_114 (layer2_col44_net6, layer2_col44_net5, layer2_col44_net4, layer3_col44_net4, layer3_col45_net1); +full_adder fa_add3_115 (layer2_col44_net3, layer2_col44_net2, layer2_col44_net1, layer3_col44_net5, layer3_col45_net2); +full_adder fa_add3_116 (layer2_col45_net7, layer2_col45_net6, layer2_col45_net5, layer3_col45_net3, layer3_col46_net0); +full_adder fa_add3_117 (layer2_col45_net4, layer2_col45_net3, layer2_col45_net2, layer3_col45_net4, layer3_col46_net1); +full_adder fa_add3_118 (layer2_col46_net8, layer2_col46_net7, layer2_col46_net6, layer3_col46_net2, layer3_col47_net0); +full_adder fa_add3_119 (layer2_col46_net5, layer2_col46_net4, layer2_col46_net3, layer3_col46_net3, layer3_col47_net1); +full_adder fa_add3_120 (layer2_col46_net2, layer2_col46_net1, layer2_col46_net0, layer3_col46_net4, layer3_col47_net2); +full_adder fa_add3_121 (layer2_col47_net8, layer2_col47_net7, layer2_col47_net6, layer3_col47_net3, layer3_col48_net0); +full_adder fa_add3_122 (layer2_col47_net5, layer2_col47_net4, layer2_col47_net3, layer3_col47_net4, layer3_col48_net1); +full_adder fa_add3_123 (layer2_col47_net2, layer2_col47_net1, layer2_col47_net0, layer3_col47_net5, layer3_col48_net2); +full_adder fa_add3_124 (layer2_col48_net6, layer2_col48_net5, layer2_col48_net4, layer3_col48_net3, layer3_col49_net0); +full_adder fa_add3_125 (layer2_col48_net3, layer2_col48_net2, layer2_col48_net1, layer3_col48_net4, layer3_col49_net1); +full_adder fa_add3_126 (layer2_col49_net7, layer2_col49_net6, layer2_col49_net5, layer3_col49_net2, layer3_col50_net0); +full_adder fa_add3_127 (layer2_col49_net4, layer2_col49_net3, layer2_col49_net2, layer3_col49_net3, layer3_col50_net1); +full_adder fa_add3_128 (layer2_col50_net5, layer2_col50_net4, layer2_col50_net3, layer3_col50_net2, layer3_col51_net0); +full_adder fa_add3_129 (layer2_col50_net2, layer2_col50_net1, layer2_col50_net0, layer3_col50_net3, layer3_col51_net1); +full_adder fa_add3_130 (layer2_col51_net6, layer2_col51_net5, layer2_col51_net4, layer3_col51_net2, layer3_col52_net0); +full_adder fa_add3_131 (layer2_col51_net3, layer2_col51_net2, layer2_col51_net1, layer3_col51_net3, layer3_col52_net1); +full_adder fa_add3_132 (layer2_col52_net4, layer2_col52_net3, layer2_col52_net2, layer3_col52_net2, layer3_col53_net0); +full_adder fa_add3_133 (layer2_col53_net5, layer2_col53_net4, layer2_col53_net3, layer3_col53_net1, layer3_col54_net0); +full_adder fa_add3_134 (layer2_col53_net2, layer2_col53_net1, layer2_col53_net0, layer3_col53_net2, layer3_col54_net1); +full_adder fa_add3_135 (layer2_col54_net3, layer2_col54_net2, layer2_col54_net1, layer3_col54_net2, layer3_col55_net0); +full_adder fa_add3_136 (layer2_col55_net4, layer2_col55_net3, layer2_col55_net2, layer3_col55_net1, layer3_col56_net0); +full_adder fa_add3_137 (layer2_col56_net4, layer2_col56_net3, layer2_col56_net2, layer3_col56_net1, layer3_col57_net0); +full_adder fa_add3_138 (layer2_col57_net2, layer2_col57_net1, layer2_col57_net0, layer3_col57_net1, layer3_col58_net0); +full_adder fa_add3_139 (layer2_col58_net3, layer2_col58_net2, layer2_col58_net1, layer3_col58_net1, layer3_col59_net0); +full_adder fa_add3_140 (layer2_col60_net2, layer2_col60_net1, layer2_col60_net0, layer3_col60_net0, layer3_col61_net0); + +//----------- Reduction Layer 4 Start -------------- + +assign layer4_col0_net0 = layer3_col0_net0; +assign layer4_col1_net0 = layer3_col1_net1; +assign layer4_col1_net1 = layer3_col1_net0; +assign layer4_col2_net0 = layer3_col2_net1; +assign layer4_col2_net1 = layer3_col2_net0; +assign layer4_col3_net0 = layer3_col3_net1; +assign layer4_col3_net1 = layer3_col3_net0; +assign layer4_col4_net0 = layer3_col4_net1; +assign layer4_col4_net1 = layer3_col4_net0; +assign layer4_col5_net1 = layer3_col5_net0; +assign layer4_col6_net1 = layer3_col6_net1; +assign layer4_col6_net2 = layer3_col6_net0; +assign layer4_col7_net0 = layer3_col7_net1; +assign layer4_col7_net1 = layer3_col7_net0; +assign layer4_col8_net1 = layer3_col8_net0; +assign layer4_col11_net2 = layer3_col11_net1; +assign layer4_col11_net3 = layer3_col11_net0; +assign layer4_col12_net2 = layer3_col12_net0; +assign layer4_col13_net2 = layer3_col13_net0; +assign layer4_col14_net2 = layer3_col14_net0; +assign layer4_col16_net3 = layer3_col16_net1; +assign layer4_col16_net4 = layer3_col16_net0; +assign layer4_col17_net2 = layer3_col17_net1; +assign layer4_col17_net3 = layer3_col17_net0; +assign layer4_col18_net3 = layer3_col18_net0; +assign layer4_col22_net4 = layer3_col22_net1; +assign layer4_col22_net5 = layer3_col22_net0; +assign layer4_col23_net4 = layer3_col23_net0; +assign layer4_col24_net4 = layer3_col24_net0; +assign layer4_col26_net5 = layer3_col26_net1; +assign layer4_col26_net6 = layer3_col26_net0; +assign layer4_col27_net4 = layer3_col27_net1; +assign layer4_col27_net5 = layer3_col27_net0; +assign layer4_col28_net5 = layer3_col28_net0; +assign layer4_col32_net6 = layer3_col32_net1; +assign layer4_col32_net7 = layer3_col32_net0; +assign layer4_col34_net6 = layer3_col34_net0; +assign layer4_col35_net6 = layer3_col35_net0; +assign layer4_col36_net5 = layer3_col36_net1; +assign layer4_col36_net6 = layer3_col36_net0; +assign layer4_col40_net5 = layer3_col40_net0; +assign layer4_col41_net4 = layer3_col41_net1; +assign layer4_col41_net5 = layer3_col41_net0; +assign layer4_col42_net4 = layer3_col42_net1; +assign layer4_col42_net5 = layer3_col42_net0; +assign layer4_col44_net4 = layer3_col44_net0; +assign layer4_col45_net4 = layer3_col45_net0; +assign layer4_col46_net3 = layer3_col46_net1; +assign layer4_col46_net4 = layer3_col46_net0; +assign layer4_col50_net3 = layer3_col50_net0; +assign layer4_col51_net2 = layer3_col51_net1; +assign layer4_col51_net3 = layer3_col51_net0; +assign layer4_col52_net2 = layer3_col52_net1; +assign layer4_col52_net3 = layer3_col52_net0; +assign layer4_col54_net2 = layer3_col54_net0; +assign layer4_col55_net2 = layer3_col55_net0; +assign layer4_col56_net2 = layer3_col56_net0; +assign layer4_col57_net1 = layer3_col57_net1; +assign layer4_col57_net2 = layer3_col57_net0; +assign layer4_col60_net1 = layer3_col60_net0; +assign layer4_col61_net0 = layer3_col61_net1; +assign layer4_col61_net1 = layer3_col61_net0; +assign layer4_col62_net0 = layer3_col62_net1; +assign layer4_col62_net1 = layer3_col62_net0; +half_adder ha_add4_0 (layer3_col5_net2, layer3_col5_net1, layer4_col5_net0, layer4_col6_net0); +full_adder fa_add4_0 (layer3_col8_net3, layer3_col8_net2, layer3_col8_net1, layer4_col8_net0, layer4_col9_net0); +full_adder fa_add4_1 (layer3_col9_net2, layer3_col9_net1, layer3_col9_net0, layer4_col9_net1, layer4_col10_net0); +full_adder fa_add4_2 (layer3_col10_net2, layer3_col10_net1, layer3_col10_net0, layer4_col10_net1, layer4_col11_net0); +full_adder fa_add4_3 (layer3_col11_net4, layer3_col11_net3, layer3_col11_net2, layer4_col11_net1, layer4_col12_net0); +full_adder fa_add4_4 (layer3_col12_net3, layer3_col12_net2, layer3_col12_net1, layer4_col12_net1, layer4_col13_net0); +full_adder fa_add4_5 (layer3_col13_net3, layer3_col13_net2, layer3_col13_net1, layer4_col13_net1, layer4_col14_net0); +full_adder fa_add4_6 (layer3_col14_net3, layer3_col14_net2, layer3_col14_net1, layer4_col14_net1, layer4_col15_net0); +full_adder fa_add4_7 (layer3_col15_net5, layer3_col15_net4, layer3_col15_net3, layer4_col15_net1, layer4_col16_net0); +full_adder fa_add4_8 (layer3_col15_net2, layer3_col15_net1, layer3_col15_net0, layer4_col15_net2, layer4_col16_net1); +full_adder fa_add4_9 (layer3_col16_net4, layer3_col16_net3, layer3_col16_net2, layer4_col16_net2, layer4_col17_net0); +full_adder fa_add4_10 (layer3_col17_net4, layer3_col17_net3, layer3_col17_net2, layer4_col17_net1, layer4_col18_net0); +full_adder fa_add4_11 (layer3_col18_net6, layer3_col18_net5, layer3_col18_net4, layer4_col18_net1, layer4_col19_net0); +full_adder fa_add4_12 (layer3_col18_net3, layer3_col18_net2, layer3_col18_net1, layer4_col18_net2, layer4_col19_net1); +full_adder fa_add4_13 (layer3_col19_net5, layer3_col19_net4, layer3_col19_net3, layer4_col19_net2, layer4_col20_net0); +full_adder fa_add4_14 (layer3_col19_net2, layer3_col19_net1, layer3_col19_net0, layer4_col19_net3, layer4_col20_net1); +full_adder fa_add4_15 (layer3_col20_net5, layer3_col20_net4, layer3_col20_net3, layer4_col20_net2, layer4_col21_net0); +full_adder fa_add4_16 (layer3_col20_net2, layer3_col20_net1, layer3_col20_net0, layer4_col20_net3, layer4_col21_net1); +full_adder fa_add4_17 (layer3_col21_net5, layer3_col21_net4, layer3_col21_net3, layer4_col21_net2, layer4_col22_net0); +full_adder fa_add4_18 (layer3_col21_net2, layer3_col21_net1, layer3_col21_net0, layer4_col21_net3, layer4_col22_net1); +full_adder fa_add4_19 (layer3_col22_net7, layer3_col22_net6, layer3_col22_net5, layer4_col22_net2, layer4_col23_net0); +full_adder fa_add4_20 (layer3_col22_net4, layer3_col22_net3, layer3_col22_net2, layer4_col22_net3, layer4_col23_net1); +full_adder fa_add4_21 (layer3_col23_net6, layer3_col23_net5, layer3_col23_net4, layer4_col23_net2, layer4_col24_net0); +full_adder fa_add4_22 (layer3_col23_net3, layer3_col23_net2, layer3_col23_net1, layer4_col23_net3, layer4_col24_net1); +full_adder fa_add4_23 (layer3_col24_net6, layer3_col24_net5, layer3_col24_net4, layer4_col24_net2, layer4_col25_net0); +full_adder fa_add4_24 (layer3_col24_net3, layer3_col24_net2, layer3_col24_net1, layer4_col24_net3, layer4_col25_net1); +full_adder fa_add4_25 (layer3_col25_net8, layer3_col25_net7, layer3_col25_net6, layer4_col25_net2, layer4_col26_net0); +full_adder fa_add4_26 (layer3_col25_net5, layer3_col25_net4, layer3_col25_net3, layer4_col25_net3, layer4_col26_net1); +full_adder fa_add4_27 (layer3_col25_net2, layer3_col25_net1, layer3_col25_net0, layer4_col25_net4, layer4_col26_net2); +full_adder fa_add4_28 (layer3_col26_net7, layer3_col26_net6, layer3_col26_net5, layer4_col26_net3, layer4_col27_net0); +full_adder fa_add4_29 (layer3_col26_net4, layer3_col26_net3, layer3_col26_net2, layer4_col26_net4, layer4_col27_net1); +full_adder fa_add4_30 (layer3_col27_net7, layer3_col27_net6, layer3_col27_net5, layer4_col27_net2, layer4_col28_net0); +full_adder fa_add4_31 (layer3_col27_net4, layer3_col27_net3, layer3_col27_net2, layer4_col27_net3, layer4_col28_net1); +full_adder fa_add4_32 (layer3_col28_net9, layer3_col28_net8, layer3_col28_net7, layer4_col28_net2, layer4_col29_net0); +full_adder fa_add4_33 (layer3_col28_net6, layer3_col28_net5, layer3_col28_net4, layer4_col28_net3, layer4_col29_net1); +full_adder fa_add4_34 (layer3_col28_net3, layer3_col28_net2, layer3_col28_net1, layer4_col28_net4, layer4_col29_net2); +full_adder fa_add4_35 (layer3_col29_net8, layer3_col29_net7, layer3_col29_net6, layer4_col29_net3, layer4_col30_net0); +full_adder fa_add4_36 (layer3_col29_net5, layer3_col29_net4, layer3_col29_net3, layer4_col29_net4, layer4_col30_net1); +full_adder fa_add4_37 (layer3_col29_net2, layer3_col29_net1, layer3_col29_net0, layer4_col29_net5, layer4_col30_net2); +full_adder fa_add4_38 (layer3_col30_net8, layer3_col30_net7, layer3_col30_net6, layer4_col30_net3, layer4_col31_net0); +full_adder fa_add4_39 (layer3_col30_net5, layer3_col30_net4, layer3_col30_net3, layer4_col30_net4, layer4_col31_net1); +full_adder fa_add4_40 (layer3_col30_net2, layer3_col30_net1, layer3_col30_net0, layer4_col30_net5, layer4_col31_net2); +full_adder fa_add4_41 (layer3_col31_net8, layer3_col31_net7, layer3_col31_net6, layer4_col31_net3, layer4_col32_net0); +full_adder fa_add4_42 (layer3_col31_net5, layer3_col31_net4, layer3_col31_net3, layer4_col31_net4, layer4_col32_net1); +full_adder fa_add4_43 (layer3_col31_net2, layer3_col31_net1, layer3_col31_net0, layer4_col31_net5, layer4_col32_net2); +full_adder fa_add4_44 (layer3_col32_net10, layer3_col32_net9, layer3_col32_net8, layer4_col32_net3, layer4_col33_net0); +full_adder fa_add4_45 (layer3_col32_net7, layer3_col32_net6, layer3_col32_net5, layer4_col32_net4, layer4_col33_net1); +full_adder fa_add4_46 (layer3_col32_net4, layer3_col32_net3, layer3_col32_net2, layer4_col32_net5, layer4_col33_net2); +full_adder fa_add4_47 (layer3_col33_net8, layer3_col33_net7, layer3_col33_net6, layer4_col33_net3, layer4_col34_net0); +full_adder fa_add4_48 (layer3_col33_net5, layer3_col33_net4, layer3_col33_net3, layer4_col33_net4, layer4_col34_net1); +full_adder fa_add4_49 (layer3_col33_net2, layer3_col33_net1, layer3_col33_net0, layer4_col33_net5, layer4_col34_net2); +full_adder fa_add4_50 (layer3_col34_net9, layer3_col34_net8, layer3_col34_net7, layer4_col34_net3, layer4_col35_net0); +full_adder fa_add4_51 (layer3_col34_net6, layer3_col34_net5, layer3_col34_net4, layer4_col34_net4, layer4_col35_net1); +full_adder fa_add4_52 (layer3_col34_net3, layer3_col34_net2, layer3_col34_net1, layer4_col34_net5, layer4_col35_net2); +full_adder fa_add4_53 (layer3_col35_net9, layer3_col35_net8, layer3_col35_net7, layer4_col35_net3, layer4_col36_net0); +full_adder fa_add4_54 (layer3_col35_net6, layer3_col35_net5, layer3_col35_net4, layer4_col35_net4, layer4_col36_net1); +full_adder fa_add4_55 (layer3_col35_net3, layer3_col35_net2, layer3_col35_net1, layer4_col35_net5, layer4_col36_net2); +full_adder fa_add4_56 (layer3_col36_net7, layer3_col36_net6, layer3_col36_net5, layer4_col36_net3, layer4_col37_net0); +full_adder fa_add4_57 (layer3_col36_net4, layer3_col36_net3, layer3_col36_net2, layer4_col36_net4, layer4_col37_net1); +full_adder fa_add4_58 (layer3_col37_net8, layer3_col37_net7, layer3_col37_net6, layer4_col37_net2, layer4_col38_net0); +full_adder fa_add4_59 (layer3_col37_net5, layer3_col37_net4, layer3_col37_net3, layer4_col37_net3, layer4_col38_net1); +full_adder fa_add4_60 (layer3_col37_net2, layer3_col37_net1, layer3_col37_net0, layer4_col37_net4, layer4_col38_net2); +full_adder fa_add4_61 (layer3_col38_net8, layer3_col38_net7, layer3_col38_net6, layer4_col38_net3, layer4_col39_net0); +full_adder fa_add4_62 (layer3_col38_net5, layer3_col38_net4, layer3_col38_net3, layer4_col38_net4, layer4_col39_net1); +full_adder fa_add4_63 (layer3_col38_net2, layer3_col38_net1, layer3_col38_net0, layer4_col38_net5, layer4_col39_net2); +full_adder fa_add4_64 (layer3_col39_net8, layer3_col39_net7, layer3_col39_net6, layer4_col39_net3, layer4_col40_net0); +full_adder fa_add4_65 (layer3_col39_net5, layer3_col39_net4, layer3_col39_net3, layer4_col39_net4, layer4_col40_net1); +full_adder fa_add4_66 (layer3_col39_net2, layer3_col39_net1, layer3_col39_net0, layer4_col39_net5, layer4_col40_net2); +full_adder fa_add4_67 (layer3_col40_net6, layer3_col40_net5, layer3_col40_net4, layer4_col40_net3, layer4_col41_net0); +full_adder fa_add4_68 (layer3_col40_net3, layer3_col40_net2, layer3_col40_net1, layer4_col40_net4, layer4_col41_net1); +full_adder fa_add4_69 (layer3_col41_net7, layer3_col41_net6, layer3_col41_net5, layer4_col41_net2, layer4_col42_net0); +full_adder fa_add4_70 (layer3_col41_net4, layer3_col41_net3, layer3_col41_net2, layer4_col41_net3, layer4_col42_net1); +full_adder fa_add4_71 (layer3_col42_net7, layer3_col42_net6, layer3_col42_net5, layer4_col42_net2, layer4_col43_net0); +full_adder fa_add4_72 (layer3_col42_net4, layer3_col42_net3, layer3_col42_net2, layer4_col42_net3, layer4_col43_net1); +full_adder fa_add4_73 (layer3_col43_net5, layer3_col43_net4, layer3_col43_net3, layer4_col43_net2, layer4_col44_net0); +full_adder fa_add4_74 (layer3_col43_net2, layer3_col43_net1, layer3_col43_net0, layer4_col43_net3, layer4_col44_net1); +full_adder fa_add4_75 (layer3_col44_net6, layer3_col44_net5, layer3_col44_net4, layer4_col44_net2, layer4_col45_net0); +full_adder fa_add4_76 (layer3_col44_net3, layer3_col44_net2, layer3_col44_net1, layer4_col44_net3, layer4_col45_net1); +full_adder fa_add4_77 (layer3_col45_net6, layer3_col45_net5, layer3_col45_net4, layer4_col45_net2, layer4_col46_net0); +full_adder fa_add4_78 (layer3_col45_net3, layer3_col45_net2, layer3_col45_net1, layer4_col45_net3, layer4_col46_net1); +full_adder fa_add4_79 (layer3_col46_net4, layer3_col46_net3, layer3_col46_net2, layer4_col46_net2, layer4_col47_net0); +full_adder fa_add4_80 (layer3_col47_net5, layer3_col47_net4, layer3_col47_net3, layer4_col47_net1, layer4_col48_net0); +full_adder fa_add4_81 (layer3_col47_net2, layer3_col47_net1, layer3_col47_net0, layer4_col47_net2, layer4_col48_net1); +full_adder fa_add4_82 (layer3_col48_net5, layer3_col48_net4, layer3_col48_net3, layer4_col48_net2, layer4_col49_net0); +full_adder fa_add4_83 (layer3_col48_net2, layer3_col48_net1, layer3_col48_net0, layer4_col48_net3, layer4_col49_net1); +full_adder fa_add4_84 (layer3_col49_net5, layer3_col49_net4, layer3_col49_net3, layer4_col49_net2, layer4_col50_net0); +full_adder fa_add4_85 (layer3_col49_net2, layer3_col49_net1, layer3_col49_net0, layer4_col49_net3, layer4_col50_net1); +full_adder fa_add4_86 (layer3_col50_net3, layer3_col50_net2, layer3_col50_net1, layer4_col50_net2, layer4_col51_net0); +full_adder fa_add4_87 (layer3_col51_net4, layer3_col51_net3, layer3_col51_net2, layer4_col51_net1, layer4_col52_net0); +full_adder fa_add4_88 (layer3_col52_net4, layer3_col52_net3, layer3_col52_net2, layer4_col52_net1, layer4_col53_net0); +full_adder fa_add4_89 (layer3_col53_net2, layer3_col53_net1, layer3_col53_net0, layer4_col53_net1, layer4_col54_net0); +full_adder fa_add4_90 (layer3_col54_net3, layer3_col54_net2, layer3_col54_net1, layer4_col54_net1, layer4_col55_net0); +full_adder fa_add4_91 (layer3_col55_net3, layer3_col55_net2, layer3_col55_net1, layer4_col55_net1, layer4_col56_net0); +full_adder fa_add4_92 (layer3_col56_net3, layer3_col56_net2, layer3_col56_net1, layer4_col56_net1, layer4_col57_net0); +full_adder fa_add4_93 (layer3_col58_net2, layer3_col58_net1, layer3_col58_net0, layer4_col58_net0, layer4_col59_net0); +full_adder fa_add4_94 (layer3_col59_net2, layer3_col59_net1, layer3_col59_net0, layer4_col59_net1, layer4_col60_net0); + +//----------- Reduction Layer 5 Start -------------- + +assign layer5_col0_net0 = layer4_col0_net0; +assign layer5_col1_net0 = layer4_col1_net1; +assign layer5_col1_net1 = layer4_col1_net0; +assign layer5_col2_net0 = layer4_col2_net1; +assign layer5_col2_net1 = layer4_col2_net0; +assign layer5_col3_net0 = layer4_col3_net1; +assign layer5_col3_net1 = layer4_col3_net0; +assign layer5_col4_net0 = layer4_col4_net1; +assign layer5_col4_net1 = layer4_col4_net0; +assign layer5_col5_net0 = layer4_col5_net1; +assign layer5_col5_net1 = layer4_col5_net0; +assign layer5_col6_net1 = layer4_col6_net0; +assign layer5_col7_net1 = layer4_col7_net1; +assign layer5_col7_net2 = layer4_col7_net0; +assign layer5_col8_net0 = layer4_col8_net1; +assign layer5_col8_net1 = layer4_col8_net0; +assign layer5_col9_net0 = layer4_col9_net1; +assign layer5_col9_net1 = layer4_col9_net0; +assign layer5_col10_net0 = layer4_col10_net1; +assign layer5_col10_net1 = layer4_col10_net0; +assign layer5_col11_net1 = layer4_col11_net0; +assign layer5_col16_net2 = layer4_col16_net1; +assign layer5_col16_net3 = layer4_col16_net0; +assign layer5_col17_net2 = layer4_col17_net0; +assign layer5_col18_net2 = layer4_col18_net0; +assign layer5_col19_net2 = layer4_col19_net0; +assign layer5_col20_net2 = layer4_col20_net0; +assign layer5_col21_net2 = layer4_col21_net0; +assign layer5_col23_net3 = layer4_col23_net1; +assign layer5_col23_net4 = layer4_col23_net0; +assign layer5_col24_net2 = layer4_col24_net1; +assign layer5_col24_net3 = layer4_col24_net0; +assign layer5_col25_net2 = layer4_col25_net1; +assign layer5_col25_net3 = layer4_col25_net0; +assign layer5_col26_net3 = layer4_col26_net0; +assign layer5_col32_net4 = layer4_col32_net1; +assign layer5_col32_net5 = layer4_col32_net0; +assign layer5_col34_net4 = layer4_col34_net0; +assign layer5_col35_net4 = layer4_col35_net0; +assign layer5_col36_net4 = layer4_col36_net0; +assign layer5_col37_net3 = layer4_col37_net1; +assign layer5_col37_net4 = layer4_col37_net0; +assign layer5_col43_net3 = layer4_col43_net0; +assign layer5_col44_net2 = layer4_col44_net1; +assign layer5_col44_net3 = layer4_col44_net0; +assign layer5_col45_net2 = layer4_col45_net1; +assign layer5_col45_net3 = layer4_col45_net0; +assign layer5_col46_net2 = layer4_col46_net1; +assign layer5_col46_net3 = layer4_col46_net0; +assign layer5_col48_net2 = layer4_col48_net0; +assign layer5_col49_net2 = layer4_col49_net0; +assign layer5_col50_net2 = layer4_col50_net0; +assign layer5_col51_net2 = layer4_col51_net0; +assign layer5_col52_net2 = layer4_col52_net0; +assign layer5_col53_net1 = layer4_col53_net1; +assign layer5_col53_net2 = layer4_col53_net0; +assign layer5_col58_net1 = layer4_col58_net0; +assign layer5_col59_net0 = layer4_col59_net1; +assign layer5_col59_net1 = layer4_col59_net0; +assign layer5_col60_net0 = layer4_col60_net1; +assign layer5_col60_net1 = layer4_col60_net0; +assign layer5_col61_net0 = layer4_col61_net1; +assign layer5_col61_net1 = layer4_col61_net0; +assign layer5_col62_net0 = layer4_col62_net1; +assign layer5_col62_net1 = layer4_col62_net0; +half_adder ha_add5_0 (layer4_col6_net2, layer4_col6_net1, layer5_col6_net0, layer5_col7_net0); +full_adder fa_add5_0 (layer4_col11_net3, layer4_col11_net2, layer4_col11_net1, layer5_col11_net0, layer5_col12_net0); +full_adder fa_add5_1 (layer4_col12_net2, layer4_col12_net1, layer4_col12_net0, layer5_col12_net1, layer5_col13_net0); +full_adder fa_add5_2 (layer4_col13_net2, layer4_col13_net1, layer4_col13_net0, layer5_col13_net1, layer5_col14_net0); +full_adder fa_add5_3 (layer4_col14_net2, layer4_col14_net1, layer4_col14_net0, layer5_col14_net1, layer5_col15_net0); +full_adder fa_add5_4 (layer4_col15_net2, layer4_col15_net1, layer4_col15_net0, layer5_col15_net1, layer5_col16_net0); +full_adder fa_add5_5 (layer4_col16_net4, layer4_col16_net3, layer4_col16_net2, layer5_col16_net1, layer5_col17_net0); +full_adder fa_add5_6 (layer4_col17_net3, layer4_col17_net2, layer4_col17_net1, layer5_col17_net1, layer5_col18_net0); +full_adder fa_add5_7 (layer4_col18_net3, layer4_col18_net2, layer4_col18_net1, layer5_col18_net1, layer5_col19_net0); +full_adder fa_add5_8 (layer4_col19_net3, layer4_col19_net2, layer4_col19_net1, layer5_col19_net1, layer5_col20_net0); +full_adder fa_add5_9 (layer4_col20_net3, layer4_col20_net2, layer4_col20_net1, layer5_col20_net1, layer5_col21_net0); +full_adder fa_add5_10 (layer4_col21_net3, layer4_col21_net2, layer4_col21_net1, layer5_col21_net1, layer5_col22_net0); +full_adder fa_add5_11 (layer4_col22_net5, layer4_col22_net4, layer4_col22_net3, layer5_col22_net1, layer5_col23_net0); +full_adder fa_add5_12 (layer4_col22_net2, layer4_col22_net1, layer4_col22_net0, layer5_col22_net2, layer5_col23_net1); +full_adder fa_add5_13 (layer4_col23_net4, layer4_col23_net3, layer4_col23_net2, layer5_col23_net2, layer5_col24_net0); +full_adder fa_add5_14 (layer4_col24_net4, layer4_col24_net3, layer4_col24_net2, layer5_col24_net1, layer5_col25_net0); +full_adder fa_add5_15 (layer4_col25_net4, layer4_col25_net3, layer4_col25_net2, layer5_col25_net1, layer5_col26_net0); +full_adder fa_add5_16 (layer4_col26_net6, layer4_col26_net5, layer4_col26_net4, layer5_col26_net1, layer5_col27_net0); +full_adder fa_add5_17 (layer4_col26_net3, layer4_col26_net2, layer4_col26_net1, layer5_col26_net2, layer5_col27_net1); +full_adder fa_add5_18 (layer4_col27_net5, layer4_col27_net4, layer4_col27_net3, layer5_col27_net2, layer5_col28_net0); +full_adder fa_add5_19 (layer4_col27_net2, layer4_col27_net1, layer4_col27_net0, layer5_col27_net3, layer5_col28_net1); +full_adder fa_add5_20 (layer4_col28_net5, layer4_col28_net4, layer4_col28_net3, layer5_col28_net2, layer5_col29_net0); +full_adder fa_add5_21 (layer4_col28_net2, layer4_col28_net1, layer4_col28_net0, layer5_col28_net3, layer5_col29_net1); +full_adder fa_add5_22 (layer4_col29_net5, layer4_col29_net4, layer4_col29_net3, layer5_col29_net2, layer5_col30_net0); +full_adder fa_add5_23 (layer4_col29_net2, layer4_col29_net1, layer4_col29_net0, layer5_col29_net3, layer5_col30_net1); +full_adder fa_add5_24 (layer4_col30_net5, layer4_col30_net4, layer4_col30_net3, layer5_col30_net2, layer5_col31_net0); +full_adder fa_add5_25 (layer4_col30_net2, layer4_col30_net1, layer4_col30_net0, layer5_col30_net3, layer5_col31_net1); +full_adder fa_add5_26 (layer4_col31_net5, layer4_col31_net4, layer4_col31_net3, layer5_col31_net2, layer5_col32_net0); +full_adder fa_add5_27 (layer4_col31_net2, layer4_col31_net1, layer4_col31_net0, layer5_col31_net3, layer5_col32_net1); +full_adder fa_add5_28 (layer4_col32_net7, layer4_col32_net6, layer4_col32_net5, layer5_col32_net2, layer5_col33_net0); +full_adder fa_add5_29 (layer4_col32_net4, layer4_col32_net3, layer4_col32_net2, layer5_col32_net3, layer5_col33_net1); +full_adder fa_add5_30 (layer4_col33_net5, layer4_col33_net4, layer4_col33_net3, layer5_col33_net2, layer5_col34_net0); +full_adder fa_add5_31 (layer4_col33_net2, layer4_col33_net1, layer4_col33_net0, layer5_col33_net3, layer5_col34_net1); +full_adder fa_add5_32 (layer4_col34_net6, layer4_col34_net5, layer4_col34_net4, layer5_col34_net2, layer5_col35_net0); +full_adder fa_add5_33 (layer4_col34_net3, layer4_col34_net2, layer4_col34_net1, layer5_col34_net3, layer5_col35_net1); +full_adder fa_add5_34 (layer4_col35_net6, layer4_col35_net5, layer4_col35_net4, layer5_col35_net2, layer5_col36_net0); +full_adder fa_add5_35 (layer4_col35_net3, layer4_col35_net2, layer4_col35_net1, layer5_col35_net3, layer5_col36_net1); +full_adder fa_add5_36 (layer4_col36_net6, layer4_col36_net5, layer4_col36_net4, layer5_col36_net2, layer5_col37_net0); +full_adder fa_add5_37 (layer4_col36_net3, layer4_col36_net2, layer4_col36_net1, layer5_col36_net3, layer5_col37_net1); +full_adder fa_add5_38 (layer4_col37_net4, layer4_col37_net3, layer4_col37_net2, layer5_col37_net2, layer5_col38_net0); +full_adder fa_add5_39 (layer4_col38_net5, layer4_col38_net4, layer4_col38_net3, layer5_col38_net1, layer5_col39_net0); +full_adder fa_add5_40 (layer4_col38_net2, layer4_col38_net1, layer4_col38_net0, layer5_col38_net2, layer5_col39_net1); +full_adder fa_add5_41 (layer4_col39_net5, layer4_col39_net4, layer4_col39_net3, layer5_col39_net2, layer5_col40_net0); +full_adder fa_add5_42 (layer4_col39_net2, layer4_col39_net1, layer4_col39_net0, layer5_col39_net3, layer5_col40_net1); +full_adder fa_add5_43 (layer4_col40_net5, layer4_col40_net4, layer4_col40_net3, layer5_col40_net2, layer5_col41_net0); +full_adder fa_add5_44 (layer4_col40_net2, layer4_col40_net1, layer4_col40_net0, layer5_col40_net3, layer5_col41_net1); +full_adder fa_add5_45 (layer4_col41_net5, layer4_col41_net4, layer4_col41_net3, layer5_col41_net2, layer5_col42_net0); +full_adder fa_add5_46 (layer4_col41_net2, layer4_col41_net1, layer4_col41_net0, layer5_col41_net3, layer5_col42_net1); +full_adder fa_add5_47 (layer4_col42_net5, layer4_col42_net4, layer4_col42_net3, layer5_col42_net2, layer5_col43_net0); +full_adder fa_add5_48 (layer4_col42_net2, layer4_col42_net1, layer4_col42_net0, layer5_col42_net3, layer5_col43_net1); +full_adder fa_add5_49 (layer4_col43_net3, layer4_col43_net2, layer4_col43_net1, layer5_col43_net2, layer5_col44_net0); +full_adder fa_add5_50 (layer4_col44_net4, layer4_col44_net3, layer4_col44_net2, layer5_col44_net1, layer5_col45_net0); +full_adder fa_add5_51 (layer4_col45_net4, layer4_col45_net3, layer4_col45_net2, layer5_col45_net1, layer5_col46_net0); +full_adder fa_add5_52 (layer4_col46_net4, layer4_col46_net3, layer4_col46_net2, layer5_col46_net1, layer5_col47_net0); +full_adder fa_add5_53 (layer4_col47_net2, layer4_col47_net1, layer4_col47_net0, layer5_col47_net1, layer5_col48_net0); +full_adder fa_add5_54 (layer4_col48_net3, layer4_col48_net2, layer4_col48_net1, layer5_col48_net1, layer5_col49_net0); +full_adder fa_add5_55 (layer4_col49_net3, layer4_col49_net2, layer4_col49_net1, layer5_col49_net1, layer5_col50_net0); +full_adder fa_add5_56 (layer4_col50_net3, layer4_col50_net2, layer4_col50_net1, layer5_col50_net1, layer5_col51_net0); +full_adder fa_add5_57 (layer4_col51_net3, layer4_col51_net2, layer4_col51_net1, layer5_col51_net1, layer5_col52_net0); +full_adder fa_add5_58 (layer4_col52_net3, layer4_col52_net2, layer4_col52_net1, layer5_col52_net1, layer5_col53_net0); +full_adder fa_add5_59 (layer4_col54_net2, layer4_col54_net1, layer4_col54_net0, layer5_col54_net0, layer5_col55_net0); +full_adder fa_add5_60 (layer4_col55_net2, layer4_col55_net1, layer4_col55_net0, layer5_col55_net1, layer5_col56_net0); +full_adder fa_add5_61 (layer4_col56_net2, layer4_col56_net1, layer4_col56_net0, layer5_col56_net1, layer5_col57_net0); +full_adder fa_add5_62 (layer4_col57_net2, layer4_col57_net1, layer4_col57_net0, layer5_col57_net1, layer5_col58_net0); + +//----------- Reduction Layer 6 Start -------------- + +assign layer6_col0_net0 = layer5_col0_net0; +assign layer6_col1_net0 = layer5_col1_net1; +assign layer6_col1_net1 = layer5_col1_net0; +assign layer6_col2_net0 = layer5_col2_net1; +assign layer6_col2_net1 = layer5_col2_net0; +assign layer6_col3_net0 = layer5_col3_net1; +assign layer6_col3_net1 = layer5_col3_net0; +assign layer6_col4_net0 = layer5_col4_net1; +assign layer6_col4_net1 = layer5_col4_net0; +assign layer6_col5_net0 = layer5_col5_net1; +assign layer6_col5_net1 = layer5_col5_net0; +assign layer6_col6_net0 = layer5_col6_net1; +assign layer6_col6_net1 = layer5_col6_net0; +assign layer6_col7_net1 = layer5_col7_net0; +assign layer6_col8_net1 = layer5_col8_net1; +assign layer6_col8_net2 = layer5_col8_net0; +assign layer6_col9_net0 = layer5_col9_net1; +assign layer6_col9_net1 = layer5_col9_net0; +assign layer6_col10_net0 = layer5_col10_net1; +assign layer6_col10_net1 = layer5_col10_net0; +assign layer6_col11_net0 = layer5_col11_net1; +assign layer6_col11_net1 = layer5_col11_net0; +assign layer6_col12_net0 = layer5_col12_net1; +assign layer6_col12_net1 = layer5_col12_net0; +assign layer6_col13_net0 = layer5_col13_net1; +assign layer6_col13_net1 = layer5_col13_net0; +assign layer6_col14_net0 = layer5_col14_net1; +assign layer6_col14_net1 = layer5_col14_net0; +assign layer6_col15_net0 = layer5_col15_net1; +assign layer6_col15_net1 = layer5_col15_net0; +assign layer6_col16_net1 = layer5_col16_net0; +assign layer6_col23_net2 = layer5_col23_net1; +assign layer6_col23_net3 = layer5_col23_net0; +assign layer6_col24_net2 = layer5_col24_net0; +assign layer6_col25_net2 = layer5_col25_net0; +assign layer6_col26_net2 = layer5_col26_net0; +assign layer6_col27_net2 = layer5_col27_net0; +assign layer6_col28_net2 = layer5_col28_net0; +assign layer6_col29_net2 = layer5_col29_net0; +assign layer6_col30_net2 = layer5_col30_net0; +assign layer6_col31_net2 = layer5_col31_net0; +assign layer6_col33_net3 = layer5_col33_net0; +assign layer6_col34_net2 = layer5_col34_net1; +assign layer6_col34_net3 = layer5_col34_net0; +assign layer6_col35_net2 = layer5_col35_net1; +assign layer6_col35_net3 = layer5_col35_net0; +assign layer6_col36_net2 = layer5_col36_net1; +assign layer6_col36_net3 = layer5_col36_net0; +assign layer6_col37_net2 = layer5_col37_net1; +assign layer6_col37_net3 = layer5_col37_net0; +assign layer6_col39_net2 = layer5_col39_net0; +assign layer6_col40_net2 = layer5_col40_net0; +assign layer6_col41_net2 = layer5_col41_net0; +assign layer6_col42_net2 = layer5_col42_net0; +assign layer6_col43_net2 = layer5_col43_net0; +assign layer6_col44_net2 = layer5_col44_net0; +assign layer6_col45_net2 = layer5_col45_net0; +assign layer6_col46_net2 = layer5_col46_net0; +assign layer6_col47_net1 = layer5_col47_net1; +assign layer6_col47_net2 = layer5_col47_net0; +assign layer6_col54_net1 = layer5_col54_net0; +assign layer6_col55_net0 = layer5_col55_net1; +assign layer6_col55_net1 = layer5_col55_net0; +assign layer6_col56_net0 = layer5_col56_net1; +assign layer6_col56_net1 = layer5_col56_net0; +assign layer6_col57_net0 = layer5_col57_net1; +assign layer6_col57_net1 = layer5_col57_net0; +assign layer6_col58_net0 = layer5_col58_net1; +assign layer6_col58_net1 = layer5_col58_net0; +assign layer6_col59_net0 = layer5_col59_net1; +assign layer6_col59_net1 = layer5_col59_net0; +assign layer6_col60_net0 = layer5_col60_net1; +assign layer6_col60_net1 = layer5_col60_net0; +assign layer6_col61_net0 = layer5_col61_net1; +assign layer6_col61_net1 = layer5_col61_net0; +assign layer6_col62_net0 = layer5_col62_net1; +assign layer6_col62_net1 = layer5_col62_net0; +half_adder ha_add6_0 (layer5_col7_net2, layer5_col7_net1, layer6_col7_net0, layer6_col8_net0); +full_adder fa_add6_0 (layer5_col16_net3, layer5_col16_net2, layer5_col16_net1, layer6_col16_net0, layer6_col17_net0); +full_adder fa_add6_1 (layer5_col17_net2, layer5_col17_net1, layer5_col17_net0, layer6_col17_net1, layer6_col18_net0); +full_adder fa_add6_2 (layer5_col18_net2, layer5_col18_net1, layer5_col18_net0, layer6_col18_net1, layer6_col19_net0); +full_adder fa_add6_3 (layer5_col19_net2, layer5_col19_net1, layer5_col19_net0, layer6_col19_net1, layer6_col20_net0); +full_adder fa_add6_4 (layer5_col20_net2, layer5_col20_net1, layer5_col20_net0, layer6_col20_net1, layer6_col21_net0); +full_adder fa_add6_5 (layer5_col21_net2, layer5_col21_net1, layer5_col21_net0, layer6_col21_net1, layer6_col22_net0); +full_adder fa_add6_6 (layer5_col22_net2, layer5_col22_net1, layer5_col22_net0, layer6_col22_net1, layer6_col23_net0); +full_adder fa_add6_7 (layer5_col23_net4, layer5_col23_net3, layer5_col23_net2, layer6_col23_net1, layer6_col24_net0); +full_adder fa_add6_8 (layer5_col24_net3, layer5_col24_net2, layer5_col24_net1, layer6_col24_net1, layer6_col25_net0); +full_adder fa_add6_9 (layer5_col25_net3, layer5_col25_net2, layer5_col25_net1, layer6_col25_net1, layer6_col26_net0); +full_adder fa_add6_10 (layer5_col26_net3, layer5_col26_net2, layer5_col26_net1, layer6_col26_net1, layer6_col27_net0); +full_adder fa_add6_11 (layer5_col27_net3, layer5_col27_net2, layer5_col27_net1, layer6_col27_net1, layer6_col28_net0); +full_adder fa_add6_12 (layer5_col28_net3, layer5_col28_net2, layer5_col28_net1, layer6_col28_net1, layer6_col29_net0); +full_adder fa_add6_13 (layer5_col29_net3, layer5_col29_net2, layer5_col29_net1, layer6_col29_net1, layer6_col30_net0); +full_adder fa_add6_14 (layer5_col30_net3, layer5_col30_net2, layer5_col30_net1, layer6_col30_net1, layer6_col31_net0); +full_adder fa_add6_15 (layer5_col31_net3, layer5_col31_net2, layer5_col31_net1, layer6_col31_net1, layer6_col32_net0); +full_adder fa_add6_16 (layer5_col32_net5, layer5_col32_net4, layer5_col32_net3, layer6_col32_net1, layer6_col33_net0); +full_adder fa_add6_17 (layer5_col32_net2, layer5_col32_net1, layer5_col32_net0, layer6_col32_net2, layer6_col33_net1); +full_adder fa_add6_18 (layer5_col33_net3, layer5_col33_net2, layer5_col33_net1, layer6_col33_net2, layer6_col34_net0); +full_adder fa_add6_19 (layer5_col34_net4, layer5_col34_net3, layer5_col34_net2, layer6_col34_net1, layer6_col35_net0); +full_adder fa_add6_20 (layer5_col35_net4, layer5_col35_net3, layer5_col35_net2, layer6_col35_net1, layer6_col36_net0); +full_adder fa_add6_21 (layer5_col36_net4, layer5_col36_net3, layer5_col36_net2, layer6_col36_net1, layer6_col37_net0); +full_adder fa_add6_22 (layer5_col37_net4, layer5_col37_net3, layer5_col37_net2, layer6_col37_net1, layer6_col38_net0); +full_adder fa_add6_23 (layer5_col38_net2, layer5_col38_net1, layer5_col38_net0, layer6_col38_net1, layer6_col39_net0); +full_adder fa_add6_24 (layer5_col39_net3, layer5_col39_net2, layer5_col39_net1, layer6_col39_net1, layer6_col40_net0); +full_adder fa_add6_25 (layer5_col40_net3, layer5_col40_net2, layer5_col40_net1, layer6_col40_net1, layer6_col41_net0); +full_adder fa_add6_26 (layer5_col41_net3, layer5_col41_net2, layer5_col41_net1, layer6_col41_net1, layer6_col42_net0); +full_adder fa_add6_27 (layer5_col42_net3, layer5_col42_net2, layer5_col42_net1, layer6_col42_net1, layer6_col43_net0); +full_adder fa_add6_28 (layer5_col43_net3, layer5_col43_net2, layer5_col43_net1, layer6_col43_net1, layer6_col44_net0); +full_adder fa_add6_29 (layer5_col44_net3, layer5_col44_net2, layer5_col44_net1, layer6_col44_net1, layer6_col45_net0); +full_adder fa_add6_30 (layer5_col45_net3, layer5_col45_net2, layer5_col45_net1, layer6_col45_net1, layer6_col46_net0); +full_adder fa_add6_31 (layer5_col46_net3, layer5_col46_net2, layer5_col46_net1, layer6_col46_net1, layer6_col47_net0); +full_adder fa_add6_32 (layer5_col48_net2, layer5_col48_net1, layer5_col48_net0, layer6_col48_net0, layer6_col49_net0); +full_adder fa_add6_33 (layer5_col49_net2, layer5_col49_net1, layer5_col49_net0, layer6_col49_net1, layer6_col50_net0); +full_adder fa_add6_34 (layer5_col50_net2, layer5_col50_net1, layer5_col50_net0, layer6_col50_net1, layer6_col51_net0); +full_adder fa_add6_35 (layer5_col51_net2, layer5_col51_net1, layer5_col51_net0, layer6_col51_net1, layer6_col52_net0); +full_adder fa_add6_36 (layer5_col52_net2, layer5_col52_net1, layer5_col52_net0, layer6_col52_net1, layer6_col53_net0); +full_adder fa_add6_37 (layer5_col53_net2, layer5_col53_net1, layer5_col53_net0, layer6_col53_net1, layer6_col54_net0); + +//----------- Reduction Layer 7 Start -------------- + +assign layer7_col0_net0 = layer6_col0_net0; +assign layer7_col1_net0 = layer6_col1_net1; +assign layer7_col1_net1 = layer6_col1_net0; +assign layer7_col2_net0 = layer6_col2_net1; +assign layer7_col2_net1 = layer6_col2_net0; +assign layer7_col3_net0 = layer6_col3_net1; +assign layer7_col3_net1 = layer6_col3_net0; +assign layer7_col4_net0 = layer6_col4_net1; +assign layer7_col4_net1 = layer6_col4_net0; +assign layer7_col5_net0 = layer6_col5_net1; +assign layer7_col5_net1 = layer6_col5_net0; +assign layer7_col6_net0 = layer6_col6_net1; +assign layer7_col6_net1 = layer6_col6_net0; +assign layer7_col7_net0 = layer6_col7_net1; +assign layer7_col7_net1 = layer6_col7_net0; +assign layer7_col8_net1 = layer6_col8_net0; +assign layer7_col9_net1 = layer6_col9_net1; +assign layer7_col9_net2 = layer6_col9_net0; +assign layer7_col10_net0 = layer6_col10_net1; +assign layer7_col10_net1 = layer6_col10_net0; +assign layer7_col11_net0 = layer6_col11_net1; +assign layer7_col11_net1 = layer6_col11_net0; +assign layer7_col12_net0 = layer6_col12_net1; +assign layer7_col12_net1 = layer6_col12_net0; +assign layer7_col13_net0 = layer6_col13_net1; +assign layer7_col13_net1 = layer6_col13_net0; +assign layer7_col14_net0 = layer6_col14_net1; +assign layer7_col14_net1 = layer6_col14_net0; +assign layer7_col15_net0 = layer6_col15_net1; +assign layer7_col15_net1 = layer6_col15_net0; +assign layer7_col16_net0 = layer6_col16_net1; +assign layer7_col16_net1 = layer6_col16_net0; +assign layer7_col17_net0 = layer6_col17_net1; +assign layer7_col17_net1 = layer6_col17_net0; +assign layer7_col18_net0 = layer6_col18_net1; +assign layer7_col18_net1 = layer6_col18_net0; +assign layer7_col19_net0 = layer6_col19_net1; +assign layer7_col19_net1 = layer6_col19_net0; +assign layer7_col20_net0 = layer6_col20_net1; +assign layer7_col20_net1 = layer6_col20_net0; +assign layer7_col21_net0 = layer6_col21_net1; +assign layer7_col21_net1 = layer6_col21_net0; +assign layer7_col22_net0 = layer6_col22_net1; +assign layer7_col22_net1 = layer6_col22_net0; +assign layer7_col23_net1 = layer6_col23_net0; +assign layer7_col33_net2 = layer6_col33_net0; +assign layer7_col34_net2 = layer6_col34_net0; +assign layer7_col35_net2 = layer6_col35_net0; +assign layer7_col36_net2 = layer6_col36_net0; +assign layer7_col37_net2 = layer6_col37_net0; +assign layer7_col38_net1 = layer6_col38_net1; +assign layer7_col38_net2 = layer6_col38_net0; +assign layer7_col48_net1 = layer6_col48_net0; +assign layer7_col49_net0 = layer6_col49_net1; +assign layer7_col49_net1 = layer6_col49_net0; +assign layer7_col50_net0 = layer6_col50_net1; +assign layer7_col50_net1 = layer6_col50_net0; +assign layer7_col51_net0 = layer6_col51_net1; +assign layer7_col51_net1 = layer6_col51_net0; +assign layer7_col52_net0 = layer6_col52_net1; +assign layer7_col52_net1 = layer6_col52_net0; +assign layer7_col53_net0 = layer6_col53_net1; +assign layer7_col53_net1 = layer6_col53_net0; +assign layer7_col54_net0 = layer6_col54_net1; +assign layer7_col54_net1 = layer6_col54_net0; +assign layer7_col55_net0 = layer6_col55_net1; +assign layer7_col55_net1 = layer6_col55_net0; +assign layer7_col56_net0 = layer6_col56_net1; +assign layer7_col56_net1 = layer6_col56_net0; +assign layer7_col57_net0 = layer6_col57_net1; +assign layer7_col57_net1 = layer6_col57_net0; +assign layer7_col58_net0 = layer6_col58_net1; +assign layer7_col58_net1 = layer6_col58_net0; +assign layer7_col59_net0 = layer6_col59_net1; +assign layer7_col59_net1 = layer6_col59_net0; +assign layer7_col60_net0 = layer6_col60_net1; +assign layer7_col60_net1 = layer6_col60_net0; +assign layer7_col61_net0 = layer6_col61_net1; +assign layer7_col61_net1 = layer6_col61_net0; +assign layer7_col62_net0 = layer6_col62_net1; +assign layer7_col62_net1 = layer6_col62_net0; +half_adder ha_add7_0 (layer6_col8_net2, layer6_col8_net1, layer7_col8_net0, layer7_col9_net0); +full_adder fa_add7_0 (layer6_col23_net3, layer6_col23_net2, layer6_col23_net1, layer7_col23_net0, layer7_col24_net0); +full_adder fa_add7_1 (layer6_col24_net2, layer6_col24_net1, layer6_col24_net0, layer7_col24_net1, layer7_col25_net0); +full_adder fa_add7_2 (layer6_col25_net2, layer6_col25_net1, layer6_col25_net0, layer7_col25_net1, layer7_col26_net0); +full_adder fa_add7_3 (layer6_col26_net2, layer6_col26_net1, layer6_col26_net0, layer7_col26_net1, layer7_col27_net0); +full_adder fa_add7_4 (layer6_col27_net2, layer6_col27_net1, layer6_col27_net0, layer7_col27_net1, layer7_col28_net0); +full_adder fa_add7_5 (layer6_col28_net2, layer6_col28_net1, layer6_col28_net0, layer7_col28_net1, layer7_col29_net0); +full_adder fa_add7_6 (layer6_col29_net2, layer6_col29_net1, layer6_col29_net0, layer7_col29_net1, layer7_col30_net0); +full_adder fa_add7_7 (layer6_col30_net2, layer6_col30_net1, layer6_col30_net0, layer7_col30_net1, layer7_col31_net0); +full_adder fa_add7_8 (layer6_col31_net2, layer6_col31_net1, layer6_col31_net0, layer7_col31_net1, layer7_col32_net0); +full_adder fa_add7_9 (layer6_col32_net2, layer6_col32_net1, layer6_col32_net0, layer7_col32_net1, layer7_col33_net0); +full_adder fa_add7_10 (layer6_col33_net3, layer6_col33_net2, layer6_col33_net1, layer7_col33_net1, layer7_col34_net0); +full_adder fa_add7_11 (layer6_col34_net3, layer6_col34_net2, layer6_col34_net1, layer7_col34_net1, layer7_col35_net0); +full_adder fa_add7_12 (layer6_col35_net3, layer6_col35_net2, layer6_col35_net1, layer7_col35_net1, layer7_col36_net0); +full_adder fa_add7_13 (layer6_col36_net3, layer6_col36_net2, layer6_col36_net1, layer7_col36_net1, layer7_col37_net0); +full_adder fa_add7_14 (layer6_col37_net3, layer6_col37_net2, layer6_col37_net1, layer7_col37_net1, layer7_col38_net0); +full_adder fa_add7_15 (layer6_col39_net2, layer6_col39_net1, layer6_col39_net0, layer7_col39_net0, layer7_col40_net0); +full_adder fa_add7_16 (layer6_col40_net2, layer6_col40_net1, layer6_col40_net0, layer7_col40_net1, layer7_col41_net0); +full_adder fa_add7_17 (layer6_col41_net2, layer6_col41_net1, layer6_col41_net0, layer7_col41_net1, layer7_col42_net0); +full_adder fa_add7_18 (layer6_col42_net2, layer6_col42_net1, layer6_col42_net0, layer7_col42_net1, layer7_col43_net0); +full_adder fa_add7_19 (layer6_col43_net2, layer6_col43_net1, layer6_col43_net0, layer7_col43_net1, layer7_col44_net0); +full_adder fa_add7_20 (layer6_col44_net2, layer6_col44_net1, layer6_col44_net0, layer7_col44_net1, layer7_col45_net0); +full_adder fa_add7_21 (layer6_col45_net2, layer6_col45_net1, layer6_col45_net0, layer7_col45_net1, layer7_col46_net0); +full_adder fa_add7_22 (layer6_col46_net2, layer6_col46_net1, layer6_col46_net0, layer7_col46_net1, layer7_col47_net0); +full_adder fa_add7_23 (layer6_col47_net2, layer6_col47_net1, layer6_col47_net0, layer7_col47_net1, layer7_col48_net0); + +//----------- Reduction Layer 8 Start -------------- + +assign layer8_col0_net0 = layer7_col0_net0; +assign layer8_col1_net0 = layer7_col1_net1; +assign layer8_col1_net1 = layer7_col1_net0; +assign layer8_col2_net0 = layer7_col2_net1; +assign layer8_col2_net1 = layer7_col2_net0; +assign layer8_col3_net0 = layer7_col3_net1; +assign layer8_col3_net1 = layer7_col3_net0; +assign layer8_col4_net0 = layer7_col4_net1; +assign layer8_col4_net1 = layer7_col4_net0; +assign layer8_col5_net0 = layer7_col5_net1; +assign layer8_col5_net1 = layer7_col5_net0; +assign layer8_col6_net0 = layer7_col6_net1; +assign layer8_col6_net1 = layer7_col6_net0; +assign layer8_col7_net0 = layer7_col7_net1; +assign layer8_col7_net1 = layer7_col7_net0; +assign layer8_col8_net0 = layer7_col8_net1; +assign layer8_col8_net1 = layer7_col8_net0; +assign layer8_col9_net1 = layer7_col9_net0; +assign layer8_col39_net1 = layer7_col39_net0; +assign layer8_col40_net0 = layer7_col40_net1; +assign layer8_col40_net1 = layer7_col40_net0; +assign layer8_col41_net0 = layer7_col41_net1; +assign layer8_col41_net1 = layer7_col41_net0; +assign layer8_col42_net0 = layer7_col42_net1; +assign layer8_col42_net1 = layer7_col42_net0; +assign layer8_col43_net0 = layer7_col43_net1; +assign layer8_col43_net1 = layer7_col43_net0; +assign layer8_col44_net0 = layer7_col44_net1; +assign layer8_col44_net1 = layer7_col44_net0; +assign layer8_col45_net0 = layer7_col45_net1; +assign layer8_col45_net1 = layer7_col45_net0; +assign layer8_col46_net0 = layer7_col46_net1; +assign layer8_col46_net1 = layer7_col46_net0; +assign layer8_col47_net0 = layer7_col47_net1; +assign layer8_col47_net1 = layer7_col47_net0; +assign layer8_col48_net0 = layer7_col48_net1; +assign layer8_col48_net1 = layer7_col48_net0; +assign layer8_col49_net0 = layer7_col49_net1; +assign layer8_col49_net1 = layer7_col49_net0; +assign layer8_col50_net0 = layer7_col50_net1; +assign layer8_col50_net1 = layer7_col50_net0; +assign layer8_col51_net0 = layer7_col51_net1; +assign layer8_col51_net1 = layer7_col51_net0; +assign layer8_col52_net0 = layer7_col52_net1; +assign layer8_col52_net1 = layer7_col52_net0; +assign layer8_col53_net0 = layer7_col53_net1; +assign layer8_col53_net1 = layer7_col53_net0; +assign layer8_col54_net0 = layer7_col54_net1; +assign layer8_col54_net1 = layer7_col54_net0; +assign layer8_col55_net0 = layer7_col55_net1; +assign layer8_col55_net1 = layer7_col55_net0; +assign layer8_col56_net0 = layer7_col56_net1; +assign layer8_col56_net1 = layer7_col56_net0; +assign layer8_col57_net0 = layer7_col57_net1; +assign layer8_col57_net1 = layer7_col57_net0; +assign layer8_col58_net0 = layer7_col58_net1; +assign layer8_col58_net1 = layer7_col58_net0; +assign layer8_col59_net0 = layer7_col59_net1; +assign layer8_col59_net1 = layer7_col59_net0; +assign layer8_col60_net0 = layer7_col60_net1; +assign layer8_col60_net1 = layer7_col60_net0; +assign layer8_col61_net0 = layer7_col61_net1; +assign layer8_col61_net1 = layer7_col61_net0; +assign layer8_col62_net0 = layer7_col62_net1; +assign layer8_col62_net1 = layer7_col62_net0; +half_adder ha_add8_0 (layer7_col9_net2, layer7_col9_net1, layer8_col9_net0, layer8_col10_net0); +half_adder ha_add8_1 (layer7_col10_net1, layer7_col10_net0, layer8_col10_net1, layer8_col11_net0); +half_adder ha_add8_2 (layer7_col11_net1, layer7_col11_net0, layer8_col11_net1, layer8_col12_net0); +half_adder ha_add8_3 (layer7_col12_net1, layer7_col12_net0, layer8_col12_net1, layer8_col13_net0); +half_adder ha_add8_4 (layer7_col13_net1, layer7_col13_net0, layer8_col13_net1, layer8_col14_net0); +half_adder ha_add8_5 (layer7_col14_net1, layer7_col14_net0, layer8_col14_net1, layer8_col15_net0); +half_adder ha_add8_6 (layer7_col15_net1, layer7_col15_net0, layer8_col15_net1, layer8_col16_net0); +half_adder ha_add8_7 (layer7_col16_net1, layer7_col16_net0, layer8_col16_net1, layer8_col17_net0); +half_adder ha_add8_8 (layer7_col17_net1, layer7_col17_net0, layer8_col17_net1, layer8_col18_net0); +half_adder ha_add8_9 (layer7_col18_net1, layer7_col18_net0, layer8_col18_net1, layer8_col19_net0); +half_adder ha_add8_10 (layer7_col19_net1, layer7_col19_net0, layer8_col19_net1, layer8_col20_net0); +half_adder ha_add8_11 (layer7_col20_net1, layer7_col20_net0, layer8_col20_net1, layer8_col21_net0); +half_adder ha_add8_12 (layer7_col21_net1, layer7_col21_net0, layer8_col21_net1, layer8_col22_net0); +half_adder ha_add8_13 (layer7_col22_net1, layer7_col22_net0, layer8_col22_net1, layer8_col23_net0); +half_adder ha_add8_14 (layer7_col23_net1, layer7_col23_net0, layer8_col23_net1, layer8_col24_net0); +half_adder ha_add8_15 (layer7_col24_net1, layer7_col24_net0, layer8_col24_net1, layer8_col25_net0); +half_adder ha_add8_16 (layer7_col25_net1, layer7_col25_net0, layer8_col25_net1, layer8_col26_net0); +half_adder ha_add8_17 (layer7_col26_net1, layer7_col26_net0, layer8_col26_net1, layer8_col27_net0); +half_adder ha_add8_18 (layer7_col27_net1, layer7_col27_net0, layer8_col27_net1, layer8_col28_net0); +half_adder ha_add8_19 (layer7_col28_net1, layer7_col28_net0, layer8_col28_net1, layer8_col29_net0); +half_adder ha_add8_20 (layer7_col29_net1, layer7_col29_net0, layer8_col29_net1, layer8_col30_net0); +half_adder ha_add8_21 (layer7_col30_net1, layer7_col30_net0, layer8_col30_net1, layer8_col31_net0); +half_adder ha_add8_22 (layer7_col31_net1, layer7_col31_net0, layer8_col31_net1, layer8_col32_net0); +half_adder ha_add8_23 (layer7_col32_net1, layer7_col32_net0, layer8_col32_net1, layer8_col33_net0); +full_adder fa_add8_0 (layer7_col33_net2, layer7_col33_net1, layer7_col33_net0, layer8_col33_net1, layer8_col34_net0); +full_adder fa_add8_1 (layer7_col34_net2, layer7_col34_net1, layer7_col34_net0, layer8_col34_net1, layer8_col35_net0); +full_adder fa_add8_2 (layer7_col35_net2, layer7_col35_net1, layer7_col35_net0, layer8_col35_net1, layer8_col36_net0); +full_adder fa_add8_3 (layer7_col36_net2, layer7_col36_net1, layer7_col36_net0, layer8_col36_net1, layer8_col37_net0); +full_adder fa_add8_4 (layer7_col37_net2, layer7_col37_net1, layer7_col37_net0, layer8_col37_net1, layer8_col38_net0); +full_adder fa_add8_5 (layer7_col38_net2, layer7_col38_net1, layer7_col38_net0, layer8_col38_net1, layer8_col39_net0); + +//----------- Adding Layer Start -------------- + +assign partial_sum = { layer8_col62_net0, layer8_col61_net0, layer8_col60_net0, layer8_col59_net0, layer8_col58_net0, layer8_col57_net0, layer8_col56_net0, layer8_col55_net0, layer8_col54_net0, layer8_col53_net0, layer8_col52_net0, layer8_col51_net0, layer8_col50_net0, layer8_col49_net0, layer8_col48_net0, layer8_col47_net0, layer8_col46_net0, layer8_col45_net0, layer8_col44_net0, layer8_col43_net0, layer8_col42_net0, layer8_col41_net0, layer8_col40_net0, layer8_col39_net0, layer8_col38_net0, layer8_col37_net0, layer8_col36_net0, layer8_col35_net0, layer8_col34_net0, layer8_col33_net0, layer8_col32_net0, layer8_col31_net0, layer8_col30_net0, layer8_col29_net0, layer8_col28_net0, layer8_col27_net0, layer8_col26_net0, layer8_col25_net0, layer8_col24_net0, layer8_col23_net0, layer8_col22_net0, layer8_col21_net0, layer8_col20_net0, layer8_col19_net0, layer8_col18_net0, layer8_col17_net0, layer8_col16_net0, layer8_col15_net0, layer8_col14_net0, layer8_col13_net0, layer8_col12_net0, layer8_col11_net0, layer8_col10_net0, layer8_col9_net0, layer8_col8_net0, layer8_col7_net0, layer8_col6_net0, layer8_col5_net0, layer8_col4_net0, layer8_col3_net0, layer8_col2_net0, layer8_col1_net0, layer8_col0_net0} + { layer8_col62_net1, layer8_col61_net1, layer8_col60_net1, layer8_col59_net1, layer8_col58_net1, layer8_col57_net1, layer8_col56_net1, layer8_col55_net1, layer8_col54_net1, layer8_col53_net1, layer8_col52_net1, layer8_col51_net1, layer8_col50_net1, layer8_col49_net1, layer8_col48_net1, layer8_col47_net1, layer8_col46_net1, layer8_col45_net1, layer8_col44_net1, layer8_col43_net1, layer8_col42_net1, layer8_col41_net1, layer8_col40_net1, layer8_col39_net1, layer8_col38_net1, layer8_col37_net1, layer8_col36_net1, layer8_col35_net1, layer8_col34_net1, layer8_col33_net1, layer8_col32_net1, layer8_col31_net1, layer8_col30_net1, layer8_col29_net1, layer8_col28_net1, layer8_col27_net1, layer8_col26_net1, layer8_col25_net1, layer8_col24_net1, layer8_col23_net1, layer8_col22_net1, layer8_col21_net1, layer8_col20_net1, layer8_col19_net1, layer8_col18_net1, layer8_col17_net1, layer8_col16_net1, layer8_col15_net1, layer8_col14_net1, layer8_col13_net1, layer8_col12_net1, layer8_col11_net1, layer8_col10_net1, layer8_col9_net1, layer8_col8_net1, layer8_col7_net1, layer8_col6_net1, layer8_col5_net1, layer8_col4_net1, layer8_col3_net1, layer8_col2_net1, layer8_col1_net1, 1'b0}; + +endmodule -- cgit v1.2.3