#! /opt/homebrew/Cellar/icarus-verilog/13.0/bin/vvp
:ivl_version "13.0 (stable)" "(v13_0)";
:ivl_delay_selection "TYPICAL";
:vpi_time_precision - 12;
:vpi_module "/opt/homebrew/Cellar/icarus-verilog/13.0/lib/ivl/system.vpi";
:vpi_module "/opt/homebrew/Cellar/icarus-verilog/13.0/lib/ivl/vhdl_sys.vpi";
:vpi_module "/opt/homebrew/Cellar/icarus-verilog/13.0/lib/ivl/vhdl_textio.vpi";
:vpi_module "/opt/homebrew/Cellar/icarus-verilog/13.0/lib/ivl/v2005_math.vpi";
:vpi_module "/opt/homebrew/Cellar/icarus-verilog/13.0/lib/ivl/va_math.vpi";
:vpi_module "/opt/homebrew/Cellar/icarus-verilog/13.0/lib/ivl/v2009.vpi";
S_0x105029620 .scope package, "$unit" "$unit" 2 1;
 .timescale 0 0;
S_0x10502b920 .scope module, "tb" "tb" 3 3;
 .timescale -9 -12;
P_0x10502b5e0 .param/l "ACC_WIDTH" 0 3 10, +C4<00000000000000000000000000101000>;
P_0x10502b620 .param/l "DATA_WIDTH" 0 3 5, +C4<00000000000000000000000000010000>;
P_0x10502b660 .param/l "FRAC_BITS" 0 3 6, +C4<00000000000000000000000000001000>;
P_0x10502b6a0 .param/l "N_INPUTS" 0 3 7, +C4<00000000000000000000000000100000>;
P_0x10502b6e0 .param/l "N_NEURONS" 0 3 8, +C4<00000000000000000000000000000100>;
P_0x10502b720 .param/l "PARALLEL" 0 3 9, +C4<00000000000000000000000000001000>;
v0x8cb0d9860_0 .var/s "bias_bus", 63 0;
v0x8cb0d9900_0 .net "busy", 0 0, L_0x8cb0acc80;  1 drivers
v0x8cb0d99a0_0 .var "clk", 0 0;
v0x8cb0d9a40_0 .net "done", 0 0, L_0x8cb0acbe0;  1 drivers
v0x8cb0d9ae0_0 .var/i "errors", 31 0;
v0x8cb0d9b80_0 .var/i "expected", 31 0;
v0x8cb0d9c20_0 .var/i "i", 31 0;
v0x8cb0d9cc0_0 .var "rst", 0 0;
v0x8cb0d9d60_0 .var "start", 0 0;
v0x8cb0d9e00_0 .var/s "weights_bus", 2047 0;
v0x8cb0d9ea0_0 .var/s "x_bus", 511 0;
v0x8cb0d9f40_0 .net/s "y_bus", 63 0, L_0x8cb0e06e0;  1 drivers
S_0x10502b2a0 .scope module, "dut" "layer" 3 42, 4 1 0, S_0x10502b920;
 .timescale 0 0;
    .port_info 0 /INPUT 1 "clk";
    .port_info 1 /INPUT 1 "rst";
    .port_info 2 /INPUT 1 "start";
    .port_info 3 /INPUT 512 "x_bus";
    .port_info 4 /INPUT 2048 "weights_bus";
    .port_info 5 /INPUT 64 "bias_bus";
    .port_info 6 /OUTPUT 64 "y_bus";
    .port_info 7 /OUTPUT 1 "busy";
    .port_info 8 /OUTPUT 1 "done";
P_0x10502af60 .param/l "ACC_WIDTH" 0 4 7, +C4<00000000000000000000000000101000>;
P_0x10502afa0 .param/l "DATA_WIDTH" 0 4 2, +C4<00000000000000000000000000010000>;
P_0x10502afe0 .param/l "FRAC_BITS" 0 4 3, +C4<00000000000000000000000000001000>;
P_0x10502b020 .param/l "N_INPUTS" 0 4 4, +C4<00000000000000000000000000100000>;
P_0x10502b060 .param/l "N_NEURONS" 0 4 5, +C4<00000000000000000000000000000100>;
P_0x10502b0a0 .param/l "PARALLEL" 0 4 6, +C4<00000000000000000000000000001000>;
v0x8cb0d9040_0 .net/s "bias_bus", 63 0, v0x8cb0d9860_0;  1 drivers
v0x8cb0d90e0_0 .net "busy", 0 0, L_0x8cb0acc80;  alias, 1 drivers
v0x8cb0d9180_0 .net "clk", 0 0, v0x8cb0d99a0_0;  1 drivers
v0x8cb0d9220_0 .net "done", 0 0, L_0x8cb0acbe0;  alias, 1 drivers
v0x8cb0d92c0_0 .net "neuron_busy", 3 0, L_0x8cb0e0780;  1 drivers
v0x8cb0d9360_0 .net "neuron_done", 3 0, L_0x8cb0e0820;  1 drivers
v0x8cb0d9400_0 .net "rst", 0 0, v0x8cb0d9cc0_0;  1 drivers
v0x8cb0d94a0_0 .net "start", 0 0, v0x8cb0d9d60_0;  1 drivers
v0x8cb0d9540_0 .net/s "weights_bus", 2047 0, v0x8cb0d9e00_0;  1 drivers
v0x8cb0d95e0_0 .net/s "x_bus", 511 0, v0x8cb0d9ea0_0;  1 drivers
v0x8cb0d9680_0 .net/s "y_bus", 63 0, L_0x8cb0e06e0;  alias, 1 drivers
L_0x8cad057c0 .part v0x8cb0d9e00_0, 0, 512;
L_0x8cad05860 .part v0x8cb0d9860_0, 0, 16;
L_0x8cad070c0 .part v0x8cb0d9e00_0, 512, 512;
L_0x8cad07160 .part v0x8cb0d9860_0, 16, 16;
L_0x8cad28a00 .part v0x8cb0d9e00_0, 1024, 512;
L_0x8cad28aa0 .part v0x8cb0d9860_0, 32, 16;
L_0x8cad2a300 .part v0x8cb0d9e00_0, 1536, 512;
L_0x8cad2a3a0 .part v0x8cb0d9860_0, 48, 16;
L_0x8cb0e06e0 .concat8 [ 16 16 16 16], v0x8cb0c9180_0, v0x8cb0ce620_0, v0x8cb0d3ac0_0, v0x8cb0d8fa0_0;
L_0x8cb0e0780 .concat8 [ 1 1 1 1], v0x8cb0c8a00_0, v0x8cb0cdea0_0, v0x8cb0d3340_0, v0x8cb0d8820_0;
L_0x8cb0e0820 .concat8 [ 1 1 1 1], v0x8cb0c8b40_0, v0x8cb0cdfe0_0, v0x8cb0d3480_0, v0x8cb0d8960_0;
L_0x8cb0acc80 .reduce/or L_0x8cb0e0780;
L_0x8cb0acbe0 .reduce/and L_0x8cb0e0820;
S_0x10502ac20 .scope generate, "GEN_NEURON[0]" "GEN_NEURON[0]" 4 35, 4 35 0, S_0x10502b2a0;
 .timescale 0 0;
P_0x8cb04e980 .param/l "n" 1 4 35, +C4<00>;
S_0x10502a8e0 .scope module, "u_neuron" "neuron_parallel" 4 43, 5 1 0, S_0x10502ac20;
 .timescale 0 0;
    .port_info 0 /INPUT 1 "clk";
    .port_info 1 /INPUT 1 "rst";
    .port_info 2 /INPUT 1 "start";
    .port_info 3 /INPUT 512 "x_bus";
    .port_info 4 /INPUT 512 "w_bus";
    .port_info 5 /INPUT 16 "bias";
    .port_info 6 /OUTPUT 16 "y";
    .port_info 7 /OUTPUT 1 "busy";
    .port_info 8 /OUTPUT 1 "done";
P_0x10502a5a0 .param/l "ACC_WIDTH" 0 5 6, +C4<00000000000000000000000000101000>;
P_0x10502a5e0 .param/l "DATA_WIDTH" 0 5 2, +C4<00000000000000000000000000010000>;
P_0x10502a620 .param/l "FRAC_BITS" 0 5 3, +C4<00000000000000000000000000001000>;
P_0x10502a660 .param/l "GROUPS" 1 5 21, +C4<00000000000000000000000000000100>;
P_0x10502a6a0 .param/l "GROUP_INDEX_WIDTH" 1 5 22, +C4<00000000000000000000000000000010>;
P_0x10502a6e0 .param/l "N_INPUTS" 0 5 4, +C4<00000000000000000000000000100000>;
P_0x10502a720 .param/l "PARALLEL" 0 5 5, +C4<00000000000000000000000000001000>;
L_0x10501fcf0 .functor BUFZ 16, L_0x8cad05860, C4<0000000000000000>, C4<0000000000000000>, C4<0000000000000000>;
v0x8cb0c7b60_0 .net *"_ivl_0", 31 0, L_0x8cb0d9fe0;  1 drivers
v0x8cb0c7c00_0 .net *"_ivl_11", 31 0, L_0x8cb0da120;  1 drivers
v0x8cb0c7ca0_0 .net *"_ivl_14", 31 0, L_0x8cb0da1c0;  1 drivers
L_0x8ca8780e8 .functor BUFT 1, C4<000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0c7d40_0 .net *"_ivl_17", 29 0, L_0x8ca8780e8;  1 drivers
L_0x8ca878130 .functor BUFT 1, C4<00000000000000000000000000001000>, C4<0>, C4<0>, C4<0>;
v0x8cb0c7de0_0 .net/2u *"_ivl_18", 31 0, L_0x8ca878130;  1 drivers
v0x8cb0c7e80_0 .net *"_ivl_21", 31 0, L_0x8cb0da260;  1 drivers
L_0x8ca878178 .functor BUFT 1, C4<00000000000000000000000000010000>, C4<0>, C4<0>, C4<0>;
v0x8cb0c7f20_0 .net/2u *"_ivl_22", 31 0, L_0x8ca878178;  1 drivers
v0x8cb0c8000_0 .net *"_ivl_25", 31 0, L_0x8cb0da300;  1 drivers
L_0x8ca878010 .functor BUFT 1, C4<000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0c80a0_0 .net *"_ivl_3", 29 0, L_0x8ca878010;  1 drivers
v0x8cb0c8140_0 .net *"_ivl_31", 0 0, L_0x8cad05540;  1 drivers
v0x8cb0c81e0_0 .net *"_ivl_33", 23 0, L_0x8cad055e0;  1 drivers
v0x8cb0c8280_0 .net *"_ivl_36", 39 0, L_0x8cb0db840;  1 drivers
v0x8cb0c8320_0 .net *"_ivl_38", 31 0, L_0x8cad05680;  1 drivers
L_0x8ca878058 .functor BUFT 1, C4<00000000000000000000000000001000>, C4<0>, C4<0>, C4<0>;
v0x8cb0c83c0_0 .net/2u *"_ivl_4", 31 0, L_0x8ca878058;  1 drivers
L_0x8ca878400 .functor BUFT 1, C4<00000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0c8460_0 .net *"_ivl_40", 7 0, L_0x8ca878400;  1 drivers
v0x8cb0c8500_0 .net *"_ivl_46", 31 0, L_0x8cad05720;  1 drivers
v0x8cb0c85a0_0 .net *"_ivl_7", 31 0, L_0x8cb0da080;  1 drivers
L_0x8ca8780a0 .functor BUFT 1, C4<00000000000000000000000000010000>, C4<0>, C4<0>, C4<0>;
v0x8cb0c8640_0 .net/2u *"_ivl_8", 31 0, L_0x8ca8780a0;  1 drivers
v0x8cb0c86e0_0 .var/s "acc", 39 0;
v0x8cb0c8780_0 .net/s "acc_next", 39 0, L_0x8cac66bc0;  1 drivers
v0x8cb0c8820_0 .net/s "bias", 15 0, L_0x8cad05860;  1 drivers
v0x8cb0c88c0_0 .net/s "bias_ext", 39 0, L_0x8cb0db7a0;  1 drivers
v0x8cb0c8960_0 .net/s "bias_ext_small", 15 0, L_0x10501fcf0;  1 drivers
v0x8cb0c8a00_0 .var "busy", 0 0;
v0x8cb0c8aa0_0 .net "clk", 0 0, v0x8cb0d99a0_0;  alias, 1 drivers
v0x8cb0c8b40_0 .var "done", 0 0;
v0x8cb0c8be0_0 .net/s "final_acc", 39 0, L_0x8cac66c60;  1 drivers
v0x8cb0c8c80_0 .net/s "final_value", 39 0, L_0x8cb0db8e0;  1 drivers
v0x8cb0c8d20_0 .var "group_index", 1 0;
v0x8cb0c8dc0_0 .net "rst", 0 0, v0x8cb0d9cc0_0;  alias, 1 drivers
v0x8cb0c8e60_0 .net "start", 0 0, v0x8cb0d9d60_0;  alias, 1 drivers
v0x8cb0c8f00_0 .net/s "w_bus", 511 0, L_0x8cad057c0;  1 drivers
v0x8cb0c8fa0_0 .net/s "w_group", 127 0, L_0x8cad040a0;  1 drivers
v0x8cb0c9040_0 .net/s "x_bus", 511 0, v0x8cb0d9ea0_0;  alias, 1 drivers
v0x8cb0c90e0_0 .net/s "x_group", 127 0, L_0x8cad04000;  1 drivers
v0x8cb0c9180_0 .var/s "y", 15 0;
E_0x8cacab2c0 .event posedge, v0x8cb0c8aa0_0;
L_0x8cb0d9fe0 .concat [ 2 30 0 0], v0x8cb0c8d20_0, L_0x8ca878010;
L_0x8cb0da080 .arith/mult 32, L_0x8cb0d9fe0, L_0x8ca878058;
L_0x8cb0da120 .arith/mult 32, L_0x8cb0da080, L_0x8ca8780a0;
L_0x8cad04000 .part/v v0x8cb0d9ea0_0, L_0x8cb0da120, 128;
L_0x8cb0da1c0 .concat [ 2 30 0 0], v0x8cb0c8d20_0, L_0x8ca8780e8;
L_0x8cb0da260 .arith/mult 32, L_0x8cb0da1c0, L_0x8ca878130;
L_0x8cb0da300 .arith/mult 32, L_0x8cb0da260, L_0x8ca878178;
L_0x8cad040a0 .part/v L_0x8cad057c0, L_0x8cb0da300, 128;
L_0x8cad05540 .part L_0x10501fcf0, 15, 1;
L_0x8cad055e0 .repeat 24, 24, L_0x8cad05540;
L_0x8cb0db7a0 .concat [ 16 24 0 0], L_0x10501fcf0, L_0x8cad055e0;
L_0x8cad05680 .part L_0x8cb0db7a0, 0, 32;
L_0x8cb0db840 .concat [ 8 32 0 0], L_0x8ca878400, L_0x8cad05680;
L_0x8cac66c60 .arith/sum 40, L_0x8cac66bc0, L_0x8cb0db840;
L_0x8cad05720 .part L_0x8cac66c60, 8, 32;
L_0x8cb0db8e0 .extend/s 40, L_0x8cad05720;
S_0x105024960 .scope module, "u_mac8" "mac8" 5 51, 6 1 0, S_0x10502a8e0;
 .timescale 0 0;
    .port_info 0 /INPUT 128 "x_bus";
    .port_info 1 /INPUT 128 "w_bus";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb064200 .param/l "ACC_WIDTH" 0 6 3, +C4<00000000000000000000000000101000>;
P_0x8cb064240 .param/l "DATA_WIDTH" 0 6 2, +C4<00000000000000000000000000010000>;
v0x8cb0c6f80_0 .net/s "acc_in", 39 0, v0x8cb0c86e0_0;  1 drivers
v0x8cb0c7020_0 .net/s "acc_out", 39 0, L_0x8cac66bc0;  alias, 1 drivers
v0x8cb0c70c0_0 .net/s "m0", 39 0, L_0x8cac66120;  1 drivers
v0x8cb0c7160_0 .net/s "m1", 39 0, L_0x8cac661c0;  1 drivers
v0x8cb0c7200_0 .net/s "m2", 39 0, L_0x8cac663a0;  1 drivers
v0x8cb0c72a0_0 .net/s "m3", 39 0, L_0x8cac66440;  1 drivers
v0x8cb0c7340_0 .net/s "m4", 39 0, L_0x8cac664e0;  1 drivers
v0x8cb0c73e0_0 .net/s "m5", 39 0, L_0x8cac66580;  1 drivers
v0x8cb0c7480_0 .net/s "m6", 39 0, L_0x8cac66620;  1 drivers
v0x8cb0c7520_0 .net/s "m7", 39 0, L_0x8cac666c0;  1 drivers
v0x8cb0c75c0_0 .net/s "s0", 39 0, L_0x8cac66760;  1 drivers
v0x8cb0c7660_0 .net/s "s1", 39 0, L_0x8cac66800;  1 drivers
v0x8cb0c7700_0 .net/s "s2", 39 0, L_0x8cac668a0;  1 drivers
v0x8cb0c77a0_0 .net/s "s3", 39 0, L_0x8cac66940;  1 drivers
v0x8cb0c7840_0 .net/s "s4", 39 0, L_0x8cac669e0;  1 drivers
v0x8cb0c78e0_0 .net/s "s5", 39 0, L_0x8cac66a80;  1 drivers
v0x8cb0c7980_0 .net/s "sum", 39 0, L_0x8cac66b20;  1 drivers
v0x8cb0c7a20_0 .net/s "w_bus", 127 0, L_0x8cad040a0;  alias, 1 drivers
v0x8cb0c7ac0_0 .net/s "x_bus", 127 0, L_0x8cad04000;  alias, 1 drivers
L_0x8cad04280 .part L_0x8cad04000, 0, 16;
L_0x8cad04320 .part L_0x8cad040a0, 0, 16;
L_0x8cad04500 .part L_0x8cad04000, 16, 16;
L_0x8cad045a0 .part L_0x8cad040a0, 16, 16;
L_0x8cad04780 .part L_0x8cad04000, 32, 16;
L_0x8cad04820 .part L_0x8cad040a0, 32, 16;
L_0x8cad04a00 .part L_0x8cad04000, 48, 16;
L_0x8cad04aa0 .part L_0x8cad040a0, 48, 16;
L_0x8cad04c80 .part L_0x8cad04000, 64, 16;
L_0x8cad04d20 .part L_0x8cad040a0, 64, 16;
L_0x8cad04f00 .part L_0x8cad04000, 80, 16;
L_0x8cad04fa0 .part L_0x8cad040a0, 80, 16;
L_0x8cad05180 .part L_0x8cad04000, 96, 16;
L_0x8cad05220 .part L_0x8cad040a0, 96, 16;
L_0x8cad05400 .part L_0x8cad04000, 112, 16;
L_0x8cad054a0 .part L_0x8cad040a0, 112, 16;
L_0x8cac66760 .arith/sum 40, L_0x8cac66120, L_0x8cac661c0;
L_0x8cac66800 .arith/sum 40, L_0x8cac663a0, L_0x8cac66440;
L_0x8cac668a0 .arith/sum 40, L_0x8cac664e0, L_0x8cac66580;
L_0x8cac66940 .arith/sum 40, L_0x8cac66620, L_0x8cac666c0;
L_0x8cac669e0 .arith/sum 40, L_0x8cac66760, L_0x8cac66800;
L_0x8cac66a80 .arith/sum 40, L_0x8cac668a0, L_0x8cac66940;
L_0x8cac66b20 .arith/sum 40, L_0x8cac669e0, L_0x8cac66a80;
L_0x8cac66bc0 .arith/sum 40, v0x8cb0c86e0_0, L_0x8cac66b20;
S_0x105024ae0 .scope module, "mac0" "mac_unit" 6 33, 7 1 0, S_0x105024960;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb0380c0 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb038100 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb038140 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x10502a760_0 .net/s *"_ivl_0", 31 0, L_0x8cb0da3a0;  1 drivers
v0x10502aa60_0 .net/s *"_ivl_2", 31 0, L_0x8cb0da440;  1 drivers
v0x10502ada0_0 .net *"_ivl_7", 0 0, L_0x8cad04140;  1 drivers
v0x10502b0e0_0 .net *"_ivl_9", 7 0, L_0x8cad041e0;  1 drivers
L_0x8ca8781c0 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0c4000_0 .net/s "acc_in", 39 0, L_0x8ca8781c0;  1 drivers
v0x8cb0c40a0_0 .net/s "acc_out", 39 0, L_0x8cac66120;  alias, 1 drivers
v0x8cb0c4140_0 .net/s "product", 31 0, L_0x8cb0da4e0;  1 drivers
v0x8cb0c41e0_0 .net/s "product_ext", 39 0, L_0x8cb0da580;  1 drivers
v0x8cb0c4280_0 .net/s "w", 15 0, L_0x8cad04320;  1 drivers
v0x8cb0c4320_0 .net/s "x", 15 0, L_0x8cad04280;  1 drivers
L_0x8cb0da3a0 .extend/s 32, L_0x8cad04280;
L_0x8cb0da440 .extend/s 32, L_0x8cad04320;
L_0x8cb0da4e0 .arith/mult 32, L_0x8cb0da3a0, L_0x8cb0da440;
L_0x8cad04140 .part L_0x8cb0da4e0, 31, 1;
L_0x8cad041e0 .repeat 8, 8, L_0x8cad04140;
L_0x8cb0da580 .concat [ 32 8 0 0], L_0x8cb0da4e0, L_0x8cad041e0;
L_0x8cac66120 .arith/sum 40, L_0x8ca8781c0, L_0x8cb0da580;
S_0x10501f9f0 .scope module, "mac1" "mac_unit" 6 43, 7 1 0, S_0x105024960;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb038180 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb0381c0 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb038200 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0c43c0_0 .net/s *"_ivl_0", 31 0, L_0x8cb0da620;  1 drivers
v0x8cb0c4460_0 .net/s *"_ivl_2", 31 0, L_0x8cb0da6c0;  1 drivers
v0x8cb0c4500_0 .net *"_ivl_7", 0 0, L_0x8cad043c0;  1 drivers
v0x8cb0c45a0_0 .net *"_ivl_9", 7 0, L_0x8cad04460;  1 drivers
L_0x8ca878208 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0c4640_0 .net/s "acc_in", 39 0, L_0x8ca878208;  1 drivers
v0x8cb0c46e0_0 .net/s "acc_out", 39 0, L_0x8cac661c0;  alias, 1 drivers
v0x8cb0c4780_0 .net/s "product", 31 0, L_0x8cb0da760;  1 drivers
v0x8cb0c4820_0 .net/s "product_ext", 39 0, L_0x8cb0da800;  1 drivers
v0x8cb0c48c0_0 .net/s "w", 15 0, L_0x8cad045a0;  1 drivers
v0x8cb0c4960_0 .net/s "x", 15 0, L_0x8cad04500;  1 drivers
L_0x8cb0da620 .extend/s 32, L_0x8cad04500;
L_0x8cb0da6c0 .extend/s 32, L_0x8cad045a0;
L_0x8cb0da760 .arith/mult 32, L_0x8cb0da620, L_0x8cb0da6c0;
L_0x8cad043c0 .part L_0x8cb0da760, 31, 1;
L_0x8cad04460 .repeat 8, 8, L_0x8cad043c0;
L_0x8cb0da800 .concat [ 32 8 0 0], L_0x8cb0da760, L_0x8cad04460;
L_0x8cac661c0 .arith/sum 40, L_0x8ca878208, L_0x8cb0da800;
S_0x10501fb70 .scope module, "mac2" "mac_unit" 6 53, 7 1 0, S_0x105024960;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb038240 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb038280 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb0382c0 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0c4a00_0 .net/s *"_ivl_0", 31 0, L_0x8cb0da8a0;  1 drivers
v0x8cb0c4aa0_0 .net/s *"_ivl_2", 31 0, L_0x8cb0da940;  1 drivers
v0x8cb0c4b40_0 .net *"_ivl_7", 0 0, L_0x8cad04640;  1 drivers
v0x8cb0c4be0_0 .net *"_ivl_9", 7 0, L_0x8cad046e0;  1 drivers
L_0x8ca878250 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0c4c80_0 .net/s "acc_in", 39 0, L_0x8ca878250;  1 drivers
v0x8cb0c4d20_0 .net/s "acc_out", 39 0, L_0x8cac663a0;  alias, 1 drivers
v0x8cb0c4dc0_0 .net/s "product", 31 0, L_0x8cb0da9e0;  1 drivers
v0x8cb0c4e60_0 .net/s "product_ext", 39 0, L_0x8cb0daa80;  1 drivers
v0x8cb0c4f00_0 .net/s "w", 15 0, L_0x8cad04820;  1 drivers
v0x8cb0c4fa0_0 .net/s "x", 15 0, L_0x8cad04780;  1 drivers
L_0x8cb0da8a0 .extend/s 32, L_0x8cad04780;
L_0x8cb0da940 .extend/s 32, L_0x8cad04820;
L_0x8cb0da9e0 .arith/mult 32, L_0x8cb0da8a0, L_0x8cb0da940;
L_0x8cad04640 .part L_0x8cb0da9e0, 31, 1;
L_0x8cad046e0 .repeat 8, 8, L_0x8cad04640;
L_0x8cb0daa80 .concat [ 32 8 0 0], L_0x8cb0da9e0, L_0x8cad046e0;
L_0x8cac663a0 .arith/sum 40, L_0x8ca878250, L_0x8cb0daa80;
S_0x105018b90 .scope module, "mac3" "mac_unit" 6 63, 7 1 0, S_0x105024960;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb038300 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb038340 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb038380 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0c5040_0 .net/s *"_ivl_0", 31 0, L_0x8cb0dab20;  1 drivers
v0x8cb0c50e0_0 .net/s *"_ivl_2", 31 0, L_0x8cb0dabc0;  1 drivers
v0x8cb0c5180_0 .net *"_ivl_7", 0 0, L_0x8cad048c0;  1 drivers
v0x8cb0c5220_0 .net *"_ivl_9", 7 0, L_0x8cad04960;  1 drivers
L_0x8ca878298 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0c52c0_0 .net/s "acc_in", 39 0, L_0x8ca878298;  1 drivers
v0x8cb0c5360_0 .net/s "acc_out", 39 0, L_0x8cac66440;  alias, 1 drivers
v0x8cb0c5400_0 .net/s "product", 31 0, L_0x8cb0dac60;  1 drivers
v0x8cb0c54a0_0 .net/s "product_ext", 39 0, L_0x8cb0dad00;  1 drivers
v0x8cb0c5540_0 .net/s "w", 15 0, L_0x8cad04aa0;  1 drivers
v0x8cb0c55e0_0 .net/s "x", 15 0, L_0x8cad04a00;  1 drivers
L_0x8cb0dab20 .extend/s 32, L_0x8cad04a00;
L_0x8cb0dabc0 .extend/s 32, L_0x8cad04aa0;
L_0x8cb0dac60 .arith/mult 32, L_0x8cb0dab20, L_0x8cb0dabc0;
L_0x8cad048c0 .part L_0x8cb0dac60, 31, 1;
L_0x8cad04960 .repeat 8, 8, L_0x8cad048c0;
L_0x8cb0dad00 .concat [ 32 8 0 0], L_0x8cb0dac60, L_0x8cad04960;
L_0x8cac66440 .arith/sum 40, L_0x8ca878298, L_0x8cb0dad00;
S_0x8cad1c000 .scope module, "mac4" "mac_unit" 6 73, 7 1 0, S_0x105024960;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb0383c0 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb038400 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb038440 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0c5680_0 .net/s *"_ivl_0", 31 0, L_0x8cb0dada0;  1 drivers
v0x8cb0c5720_0 .net/s *"_ivl_2", 31 0, L_0x8cb0dae40;  1 drivers
v0x8cb0c57c0_0 .net *"_ivl_7", 0 0, L_0x8cad04b40;  1 drivers
v0x8cb0c5860_0 .net *"_ivl_9", 7 0, L_0x8cad04be0;  1 drivers
L_0x8ca8782e0 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0c5900_0 .net/s "acc_in", 39 0, L_0x8ca8782e0;  1 drivers
v0x8cb0c59a0_0 .net/s "acc_out", 39 0, L_0x8cac664e0;  alias, 1 drivers
v0x8cb0c5a40_0 .net/s "product", 31 0, L_0x8cb0daee0;  1 drivers
v0x8cb0c5ae0_0 .net/s "product_ext", 39 0, L_0x8cb0daf80;  1 drivers
v0x8cb0c5b80_0 .net/s "w", 15 0, L_0x8cad04d20;  1 drivers
v0x8cb0c5c20_0 .net/s "x", 15 0, L_0x8cad04c80;  1 drivers
L_0x8cb0dada0 .extend/s 32, L_0x8cad04c80;
L_0x8cb0dae40 .extend/s 32, L_0x8cad04d20;
L_0x8cb0daee0 .arith/mult 32, L_0x8cb0dada0, L_0x8cb0dae40;
L_0x8cad04b40 .part L_0x8cb0daee0, 31, 1;
L_0x8cad04be0 .repeat 8, 8, L_0x8cad04b40;
L_0x8cb0daf80 .concat [ 32 8 0 0], L_0x8cb0daee0, L_0x8cad04be0;
L_0x8cac664e0 .arith/sum 40, L_0x8ca8782e0, L_0x8cb0daf80;
S_0x8cad1c180 .scope module, "mac5" "mac_unit" 6 83, 7 1 0, S_0x105024960;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb038480 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb0384c0 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb038500 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0c5cc0_0 .net/s *"_ivl_0", 31 0, L_0x8cb0db020;  1 drivers
v0x8cb0c5d60_0 .net/s *"_ivl_2", 31 0, L_0x8cb0db0c0;  1 drivers
v0x8cb0c5e00_0 .net *"_ivl_7", 0 0, L_0x8cad04dc0;  1 drivers
v0x8cb0c5ea0_0 .net *"_ivl_9", 7 0, L_0x8cad04e60;  1 drivers
L_0x8ca878328 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0c5f40_0 .net/s "acc_in", 39 0, L_0x8ca878328;  1 drivers
v0x8cb0c5fe0_0 .net/s "acc_out", 39 0, L_0x8cac66580;  alias, 1 drivers
v0x8cb0c6080_0 .net/s "product", 31 0, L_0x8cb0db160;  1 drivers
v0x8cb0c6120_0 .net/s "product_ext", 39 0, L_0x8cb0db200;  1 drivers
v0x8cb0c61c0_0 .net/s "w", 15 0, L_0x8cad04fa0;  1 drivers
v0x8cb0c6260_0 .net/s "x", 15 0, L_0x8cad04f00;  1 drivers
L_0x8cb0db020 .extend/s 32, L_0x8cad04f00;
L_0x8cb0db0c0 .extend/s 32, L_0x8cad04fa0;
L_0x8cb0db160 .arith/mult 32, L_0x8cb0db020, L_0x8cb0db0c0;
L_0x8cad04dc0 .part L_0x8cb0db160, 31, 1;
L_0x8cad04e60 .repeat 8, 8, L_0x8cad04dc0;
L_0x8cb0db200 .concat [ 32 8 0 0], L_0x8cb0db160, L_0x8cad04e60;
L_0x8cac66580 .arith/sum 40, L_0x8ca878328, L_0x8cb0db200;
S_0x8cad1c300 .scope module, "mac6" "mac_unit" 6 93, 7 1 0, S_0x105024960;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb038540 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb038580 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb0385c0 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0c6300_0 .net/s *"_ivl_0", 31 0, L_0x8cb0db2a0;  1 drivers
v0x8cb0c63a0_0 .net/s *"_ivl_2", 31 0, L_0x8cb0db340;  1 drivers
v0x8cb0c6440_0 .net *"_ivl_7", 0 0, L_0x8cad05040;  1 drivers
v0x8cb0c64e0_0 .net *"_ivl_9", 7 0, L_0x8cad050e0;  1 drivers
L_0x8ca878370 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0c6580_0 .net/s "acc_in", 39 0, L_0x8ca878370;  1 drivers
v0x8cb0c6620_0 .net/s "acc_out", 39 0, L_0x8cac66620;  alias, 1 drivers
v0x8cb0c66c0_0 .net/s "product", 31 0, L_0x8cb0db3e0;  1 drivers
v0x8cb0c6760_0 .net/s "product_ext", 39 0, L_0x8cb0db480;  1 drivers
v0x8cb0c6800_0 .net/s "w", 15 0, L_0x8cad05220;  1 drivers
v0x8cb0c68a0_0 .net/s "x", 15 0, L_0x8cad05180;  1 drivers
L_0x8cb0db2a0 .extend/s 32, L_0x8cad05180;
L_0x8cb0db340 .extend/s 32, L_0x8cad05220;
L_0x8cb0db3e0 .arith/mult 32, L_0x8cb0db2a0, L_0x8cb0db340;
L_0x8cad05040 .part L_0x8cb0db3e0, 31, 1;
L_0x8cad050e0 .repeat 8, 8, L_0x8cad05040;
L_0x8cb0db480 .concat [ 32 8 0 0], L_0x8cb0db3e0, L_0x8cad050e0;
L_0x8cac66620 .arith/sum 40, L_0x8ca878370, L_0x8cb0db480;
S_0x8cad1c480 .scope module, "mac7" "mac_unit" 6 103, 7 1 0, S_0x105024960;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb038600 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb038640 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb038680 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0c6940_0 .net/s *"_ivl_0", 31 0, L_0x8cb0db520;  1 drivers
v0x8cb0c69e0_0 .net/s *"_ivl_2", 31 0, L_0x8cb0db5c0;  1 drivers
v0x8cb0c6a80_0 .net *"_ivl_7", 0 0, L_0x8cad052c0;  1 drivers
v0x8cb0c6b20_0 .net *"_ivl_9", 7 0, L_0x8cad05360;  1 drivers
L_0x8ca8783b8 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0c6bc0_0 .net/s "acc_in", 39 0, L_0x8ca8783b8;  1 drivers
v0x8cb0c6c60_0 .net/s "acc_out", 39 0, L_0x8cac666c0;  alias, 1 drivers
v0x8cb0c6d00_0 .net/s "product", 31 0, L_0x8cb0db660;  1 drivers
v0x8cb0c6da0_0 .net/s "product_ext", 39 0, L_0x8cb0db700;  1 drivers
v0x8cb0c6e40_0 .net/s "w", 15 0, L_0x8cad054a0;  1 drivers
v0x8cb0c6ee0_0 .net/s "x", 15 0, L_0x8cad05400;  1 drivers
L_0x8cb0db520 .extend/s 32, L_0x8cad05400;
L_0x8cb0db5c0 .extend/s 32, L_0x8cad054a0;
L_0x8cb0db660 .arith/mult 32, L_0x8cb0db520, L_0x8cb0db5c0;
L_0x8cad052c0 .part L_0x8cb0db660, 31, 1;
L_0x8cad05360 .repeat 8, 8, L_0x8cad052c0;
L_0x8cb0db700 .concat [ 32 8 0 0], L_0x8cb0db660, L_0x8cad05360;
L_0x8cac666c0 .arith/sum 40, L_0x8ca8783b8, L_0x8cb0db700;
S_0x8cad1c600 .scope generate, "GEN_NEURON[1]" "GEN_NEURON[1]" 4 35, 4 35 0, S_0x10502b2a0;
 .timescale 0 0;
P_0x8cb04e9c0 .param/l "n" 1 4 35, +C4<01>;
S_0x8cad1c780 .scope module, "u_neuron" "neuron_parallel" 4 43, 5 1 0, S_0x8cad1c600;
 .timescale 0 0;
    .port_info 0 /INPUT 1 "clk";
    .port_info 1 /INPUT 1 "rst";
    .port_info 2 /INPUT 1 "start";
    .port_info 3 /INPUT 512 "x_bus";
    .port_info 4 /INPUT 512 "w_bus";
    .port_info 5 /INPUT 16 "bias";
    .port_info 6 /OUTPUT 16 "y";
    .port_info 7 /OUTPUT 1 "busy";
    .port_info 8 /OUTPUT 1 "done";
P_0x105018d10 .param/l "ACC_WIDTH" 0 5 6, +C4<00000000000000000000000000101000>;
P_0x105018d50 .param/l "DATA_WIDTH" 0 5 2, +C4<00000000000000000000000000010000>;
P_0x105018d90 .param/l "FRAC_BITS" 0 5 3, +C4<00000000000000000000000000001000>;
P_0x105018dd0 .param/l "GROUPS" 1 5 21, +C4<00000000000000000000000000000100>;
P_0x105018e10 .param/l "GROUP_INDEX_WIDTH" 1 5 22, +C4<00000000000000000000000000000010>;
P_0x105018e50 .param/l "N_INPUTS" 0 5 4, +C4<00000000000000000000000000100000>;
P_0x105018e90 .param/l "PARALLEL" 0 5 5, +C4<00000000000000000000000000001000>;
L_0x10502b180 .functor BUFZ 16, L_0x8cad07160, C4<0000000000000000>, C4<0000000000000000>, C4<0000000000000000>;
v0x8cb0cd040_0 .net *"_ivl_0", 31 0, L_0x8cb0db980;  1 drivers
v0x8cb0cd0e0_0 .net *"_ivl_11", 31 0, L_0x8cb0dbac0;  1 drivers
v0x8cb0cd180_0 .net *"_ivl_14", 31 0, L_0x8cb0dbb60;  1 drivers
L_0x8ca878520 .functor BUFT 1, C4<000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0cd220_0 .net *"_ivl_17", 29 0, L_0x8ca878520;  1 drivers
L_0x8ca878568 .functor BUFT 1, C4<00000000000000000000000000001000>, C4<0>, C4<0>, C4<0>;
v0x8cb0cd2c0_0 .net/2u *"_ivl_18", 31 0, L_0x8ca878568;  1 drivers
v0x8cb0cd360_0 .net *"_ivl_21", 31 0, L_0x8cb0dbc00;  1 drivers
L_0x8ca8785b0 .functor BUFT 1, C4<00000000000000000000000000010000>, C4<0>, C4<0>, C4<0>;
v0x8cb0cd400_0 .net/2u *"_ivl_22", 31 0, L_0x8ca8785b0;  1 drivers
v0x8cb0cd4a0_0 .net *"_ivl_25", 31 0, L_0x8cb0dbca0;  1 drivers
L_0x8ca878448 .functor BUFT 1, C4<000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0cd540_0 .net *"_ivl_3", 29 0, L_0x8ca878448;  1 drivers
v0x8cb0cd5e0_0 .net *"_ivl_31", 0 0, L_0x8cad06e40;  1 drivers
v0x8cb0cd680_0 .net *"_ivl_33", 23 0, L_0x8cad06ee0;  1 drivers
v0x8cb0cd720_0 .net *"_ivl_36", 39 0, L_0x8cb0dd220;  1 drivers
v0x8cb0cd7c0_0 .net *"_ivl_38", 31 0, L_0x8cad06f80;  1 drivers
L_0x8ca878490 .functor BUFT 1, C4<00000000000000000000000000001000>, C4<0>, C4<0>, C4<0>;
v0x8cb0cd860_0 .net/2u *"_ivl_4", 31 0, L_0x8ca878490;  1 drivers
L_0x8ca878838 .functor BUFT 1, C4<00000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0cd900_0 .net *"_ivl_40", 7 0, L_0x8ca878838;  1 drivers
v0x8cb0cd9a0_0 .net *"_ivl_46", 31 0, L_0x8cad07020;  1 drivers
v0x8cb0cda40_0 .net *"_ivl_7", 31 0, L_0x8cb0dba20;  1 drivers
L_0x8ca8784d8 .functor BUFT 1, C4<00000000000000000000000000010000>, C4<0>, C4<0>, C4<0>;
v0x8cb0cdae0_0 .net/2u *"_ivl_8", 31 0, L_0x8ca8784d8;  1 drivers
v0x8cb0cdb80_0 .var/s "acc", 39 0;
v0x8cb0cdc20_0 .net/s "acc_next", 39 0, L_0x8cac67660;  1 drivers
v0x8cb0cdcc0_0 .net/s "bias", 15 0, L_0x8cad07160;  1 drivers
v0x8cb0cdd60_0 .net/s "bias_ext", 39 0, L_0x8cb0dd180;  1 drivers
v0x8cb0cde00_0 .net/s "bias_ext_small", 15 0, L_0x10502b180;  1 drivers
v0x8cb0cdea0_0 .var "busy", 0 0;
v0x8cb0cdf40_0 .net "clk", 0 0, v0x8cb0d99a0_0;  alias, 1 drivers
v0x8cb0cdfe0_0 .var "done", 0 0;
v0x8cb0ce080_0 .net/s "final_acc", 39 0, L_0x8cac67700;  1 drivers
v0x8cb0ce120_0 .net/s "final_value", 39 0, L_0x8cb0dd2c0;  1 drivers
v0x8cb0ce1c0_0 .var "group_index", 1 0;
v0x8cb0ce260_0 .net "rst", 0 0, v0x8cb0d9cc0_0;  alias, 1 drivers
v0x8cb0ce300_0 .net "start", 0 0, v0x8cb0d9d60_0;  alias, 1 drivers
v0x8cb0ce3a0_0 .net/s "w_bus", 511 0, L_0x8cad070c0;  1 drivers
v0x8cb0ce440_0 .net/s "w_group", 127 0, L_0x8cad059a0;  1 drivers
v0x8cb0ce4e0_0 .net/s "x_bus", 511 0, v0x8cb0d9ea0_0;  alias, 1 drivers
v0x8cb0ce580_0 .net/s "x_group", 127 0, L_0x8cad05900;  1 drivers
v0x8cb0ce620_0 .var/s "y", 15 0;
L_0x8cb0db980 .concat [ 2 30 0 0], v0x8cb0ce1c0_0, L_0x8ca878448;
L_0x8cb0dba20 .arith/mult 32, L_0x8cb0db980, L_0x8ca878490;
L_0x8cb0dbac0 .arith/mult 32, L_0x8cb0dba20, L_0x8ca8784d8;
L_0x8cad05900 .part/v v0x8cb0d9ea0_0, L_0x8cb0dbac0, 128;
L_0x8cb0dbb60 .concat [ 2 30 0 0], v0x8cb0ce1c0_0, L_0x8ca878520;
L_0x8cb0dbc00 .arith/mult 32, L_0x8cb0dbb60, L_0x8ca878568;
L_0x8cb0dbca0 .arith/mult 32, L_0x8cb0dbc00, L_0x8ca8785b0;
L_0x8cad059a0 .part/v L_0x8cad070c0, L_0x8cb0dbca0, 128;
L_0x8cad06e40 .part L_0x10502b180, 15, 1;
L_0x8cad06ee0 .repeat 24, 24, L_0x8cad06e40;
L_0x8cb0dd180 .concat [ 16 24 0 0], L_0x10502b180, L_0x8cad06ee0;
L_0x8cad06f80 .part L_0x8cb0dd180, 0, 32;
L_0x8cb0dd220 .concat [ 8 32 0 0], L_0x8ca878838, L_0x8cad06f80;
L_0x8cac67700 .arith/sum 40, L_0x8cac67660, L_0x8cb0dd220;
L_0x8cad07020 .part L_0x8cac67700, 8, 32;
L_0x8cb0dd2c0 .extend/s 40, L_0x8cad07020;
S_0x8cad1c900 .scope module, "u_mac8" "mac8" 5 51, 6 1 0, S_0x8cad1c780;
 .timescale 0 0;
    .port_info 0 /INPUT 128 "x_bus";
    .port_info 1 /INPUT 128 "w_bus";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb064280 .param/l "ACC_WIDTH" 0 6 3, +C4<00000000000000000000000000101000>;
P_0x8cb0642c0 .param/l "DATA_WIDTH" 0 6 2, +C4<00000000000000000000000000010000>;
v0x8cb0cc460_0 .net/s "acc_in", 39 0, v0x8cb0cdb80_0;  1 drivers
v0x8cb0cc500_0 .net/s "acc_out", 39 0, L_0x8cac67660;  alias, 1 drivers
v0x8cb0cc5a0_0 .net/s "m0", 39 0, L_0x8cac66d00;  1 drivers
v0x8cb0cc640_0 .net/s "m1", 39 0, L_0x8cac66da0;  1 drivers
v0x8cb0cc6e0_0 .net/s "m2", 39 0, L_0x8cac66e40;  1 drivers
v0x8cb0cc780_0 .net/s "m3", 39 0, L_0x8cac66ee0;  1 drivers
v0x8cb0cc820_0 .net/s "m4", 39 0, L_0x8cac66f80;  1 drivers
v0x8cb0cc8c0_0 .net/s "m5", 39 0, L_0x8cac67020;  1 drivers
v0x8cb0cc960_0 .net/s "m6", 39 0, L_0x8cac670c0;  1 drivers
v0x8cb0cca00_0 .net/s "m7", 39 0, L_0x8cac67160;  1 drivers
v0x8cb0ccaa0_0 .net/s "s0", 39 0, L_0x8cac67200;  1 drivers
v0x8cb0ccb40_0 .net/s "s1", 39 0, L_0x8cac672a0;  1 drivers
v0x8cb0ccbe0_0 .net/s "s2", 39 0, L_0x8cac67340;  1 drivers
v0x8cb0ccc80_0 .net/s "s3", 39 0, L_0x8cac673e0;  1 drivers
v0x8cb0ccd20_0 .net/s "s4", 39 0, L_0x8cac67480;  1 drivers
v0x8cb0ccdc0_0 .net/s "s5", 39 0, L_0x8cac67520;  1 drivers
v0x8cb0cce60_0 .net/s "sum", 39 0, L_0x8cac675c0;  1 drivers
v0x8cb0ccf00_0 .net/s "w_bus", 127 0, L_0x8cad059a0;  alias, 1 drivers
v0x8cb0ccfa0_0 .net/s "x_bus", 127 0, L_0x8cad05900;  alias, 1 drivers
L_0x8cad05b80 .part L_0x8cad05900, 0, 16;
L_0x8cad05c20 .part L_0x8cad059a0, 0, 16;
L_0x8cad05e00 .part L_0x8cad05900, 16, 16;
L_0x8cad05ea0 .part L_0x8cad059a0, 16, 16;
L_0x8cad06080 .part L_0x8cad05900, 32, 16;
L_0x8cad06120 .part L_0x8cad059a0, 32, 16;
L_0x8cad06300 .part L_0x8cad05900, 48, 16;
L_0x8cad063a0 .part L_0x8cad059a0, 48, 16;
L_0x8cad06580 .part L_0x8cad05900, 64, 16;
L_0x8cad06620 .part L_0x8cad059a0, 64, 16;
L_0x8cad06800 .part L_0x8cad05900, 80, 16;
L_0x8cad068a0 .part L_0x8cad059a0, 80, 16;
L_0x8cad06a80 .part L_0x8cad05900, 96, 16;
L_0x8cad06b20 .part L_0x8cad059a0, 96, 16;
L_0x8cad06d00 .part L_0x8cad05900, 112, 16;
L_0x8cad06da0 .part L_0x8cad059a0, 112, 16;
L_0x8cac67200 .arith/sum 40, L_0x8cac66d00, L_0x8cac66da0;
L_0x8cac672a0 .arith/sum 40, L_0x8cac66e40, L_0x8cac66ee0;
L_0x8cac67340 .arith/sum 40, L_0x8cac66f80, L_0x8cac67020;
L_0x8cac673e0 .arith/sum 40, L_0x8cac670c0, L_0x8cac67160;
L_0x8cac67480 .arith/sum 40, L_0x8cac67200, L_0x8cac672a0;
L_0x8cac67520 .arith/sum 40, L_0x8cac67340, L_0x8cac673e0;
L_0x8cac675c0 .arith/sum 40, L_0x8cac67480, L_0x8cac67520;
L_0x8cac67660 .arith/sum 40, v0x8cb0cdb80_0, L_0x8cac675c0;
S_0x8cad1ca80 .scope module, "mac0" "mac_unit" 6 33, 7 1 0, S_0x8cad1c900;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb0386c0 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb038700 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb038740 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0c9220_0 .net/s *"_ivl_0", 31 0, L_0x8cb0dbd40;  1 drivers
v0x8cb0c92c0_0 .net/s *"_ivl_2", 31 0, L_0x8cb0dbde0;  1 drivers
v0x8cb0c9360_0 .net *"_ivl_7", 0 0, L_0x8cad05a40;  1 drivers
v0x8cb0c9400_0 .net *"_ivl_9", 7 0, L_0x8cad05ae0;  1 drivers
L_0x8ca8785f8 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0c94a0_0 .net/s "acc_in", 39 0, L_0x8ca8785f8;  1 drivers
v0x8cb0c9540_0 .net/s "acc_out", 39 0, L_0x8cac66d00;  alias, 1 drivers
v0x8cb0c95e0_0 .net/s "product", 31 0, L_0x8cb0dbe80;  1 drivers
v0x8cb0c9680_0 .net/s "product_ext", 39 0, L_0x8cb0dbf20;  1 drivers
v0x8cb0c9720_0 .net/s "w", 15 0, L_0x8cad05c20;  1 drivers
v0x8cb0c97c0_0 .net/s "x", 15 0, L_0x8cad05b80;  1 drivers
L_0x8cb0dbd40 .extend/s 32, L_0x8cad05b80;
L_0x8cb0dbde0 .extend/s 32, L_0x8cad05c20;
L_0x8cb0dbe80 .arith/mult 32, L_0x8cb0dbd40, L_0x8cb0dbde0;
L_0x8cad05a40 .part L_0x8cb0dbe80, 31, 1;
L_0x8cad05ae0 .repeat 8, 8, L_0x8cad05a40;
L_0x8cb0dbf20 .concat [ 32 8 0 0], L_0x8cb0dbe80, L_0x8cad05ae0;
L_0x8cac66d00 .arith/sum 40, L_0x8ca8785f8, L_0x8cb0dbf20;
S_0x8cad1cc00 .scope module, "mac1" "mac_unit" 6 43, 7 1 0, S_0x8cad1c900;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb038780 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb0387c0 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb038800 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0c9860_0 .net/s *"_ivl_0", 31 0, L_0x8cb0dc000;  1 drivers
v0x8cb0c9900_0 .net/s *"_ivl_2", 31 0, L_0x8cb0dc0a0;  1 drivers
v0x8cb0c99a0_0 .net *"_ivl_7", 0 0, L_0x8cad05cc0;  1 drivers
v0x8cb0c9a40_0 .net *"_ivl_9", 7 0, L_0x8cad05d60;  1 drivers
L_0x8ca878640 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0c9ae0_0 .net/s "acc_in", 39 0, L_0x8ca878640;  1 drivers
v0x8cb0c9b80_0 .net/s "acc_out", 39 0, L_0x8cac66da0;  alias, 1 drivers
v0x8cb0c9c20_0 .net/s "product", 31 0, L_0x8cb0dc140;  1 drivers
v0x8cb0c9cc0_0 .net/s "product_ext", 39 0, L_0x8cb0dc1e0;  1 drivers
v0x8cb0c9d60_0 .net/s "w", 15 0, L_0x8cad05ea0;  1 drivers
v0x8cb0c9e00_0 .net/s "x", 15 0, L_0x8cad05e00;  1 drivers
L_0x8cb0dc000 .extend/s 32, L_0x8cad05e00;
L_0x8cb0dc0a0 .extend/s 32, L_0x8cad05ea0;
L_0x8cb0dc140 .arith/mult 32, L_0x8cb0dc000, L_0x8cb0dc0a0;
L_0x8cad05cc0 .part L_0x8cb0dc140, 31, 1;
L_0x8cad05d60 .repeat 8, 8, L_0x8cad05cc0;
L_0x8cb0dc1e0 .concat [ 32 8 0 0], L_0x8cb0dc140, L_0x8cad05d60;
L_0x8cac66da0 .arith/sum 40, L_0x8ca878640, L_0x8cb0dc1e0;
S_0x8cad1cd80 .scope module, "mac2" "mac_unit" 6 53, 7 1 0, S_0x8cad1c900;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb038840 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb038880 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb0388c0 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0c9ea0_0 .net/s *"_ivl_0", 31 0, L_0x8cb0dc280;  1 drivers
v0x8cb0c9f40_0 .net/s *"_ivl_2", 31 0, L_0x8cb0dc320;  1 drivers
v0x8cb0c9fe0_0 .net *"_ivl_7", 0 0, L_0x8cad05f40;  1 drivers
v0x8cb0ca080_0 .net *"_ivl_9", 7 0, L_0x8cad05fe0;  1 drivers
L_0x8ca878688 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0ca120_0 .net/s "acc_in", 39 0, L_0x8ca878688;  1 drivers
v0x8cb0ca1c0_0 .net/s "acc_out", 39 0, L_0x8cac66e40;  alias, 1 drivers
v0x8cb0ca260_0 .net/s "product", 31 0, L_0x8cb0dc3c0;  1 drivers
v0x8cb0ca300_0 .net/s "product_ext", 39 0, L_0x8cb0dc460;  1 drivers
v0x8cb0ca3a0_0 .net/s "w", 15 0, L_0x8cad06120;  1 drivers
v0x8cb0ca440_0 .net/s "x", 15 0, L_0x8cad06080;  1 drivers
L_0x8cb0dc280 .extend/s 32, L_0x8cad06080;
L_0x8cb0dc320 .extend/s 32, L_0x8cad06120;
L_0x8cb0dc3c0 .arith/mult 32, L_0x8cb0dc280, L_0x8cb0dc320;
L_0x8cad05f40 .part L_0x8cb0dc3c0, 31, 1;
L_0x8cad05fe0 .repeat 8, 8, L_0x8cad05f40;
L_0x8cb0dc460 .concat [ 32 8 0 0], L_0x8cb0dc3c0, L_0x8cad05fe0;
L_0x8cac66e40 .arith/sum 40, L_0x8ca878688, L_0x8cb0dc460;
S_0x8cad1cf00 .scope module, "mac3" "mac_unit" 6 63, 7 1 0, S_0x8cad1c900;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb038900 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb038940 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb038980 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0ca4e0_0 .net/s *"_ivl_0", 31 0, L_0x8cb0dc500;  1 drivers
v0x8cb0ca580_0 .net/s *"_ivl_2", 31 0, L_0x8cb0dc5a0;  1 drivers
v0x8cb0ca620_0 .net *"_ivl_7", 0 0, L_0x8cad061c0;  1 drivers
v0x8cb0ca6c0_0 .net *"_ivl_9", 7 0, L_0x8cad06260;  1 drivers
L_0x8ca8786d0 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0ca760_0 .net/s "acc_in", 39 0, L_0x8ca8786d0;  1 drivers
v0x8cb0ca800_0 .net/s "acc_out", 39 0, L_0x8cac66ee0;  alias, 1 drivers
v0x8cb0ca8a0_0 .net/s "product", 31 0, L_0x8cb0dc640;  1 drivers
v0x8cb0ca940_0 .net/s "product_ext", 39 0, L_0x8cb0dc6e0;  1 drivers
v0x8cb0ca9e0_0 .net/s "w", 15 0, L_0x8cad063a0;  1 drivers
v0x8cb0caa80_0 .net/s "x", 15 0, L_0x8cad06300;  1 drivers
L_0x8cb0dc500 .extend/s 32, L_0x8cad06300;
L_0x8cb0dc5a0 .extend/s 32, L_0x8cad063a0;
L_0x8cb0dc640 .arith/mult 32, L_0x8cb0dc500, L_0x8cb0dc5a0;
L_0x8cad061c0 .part L_0x8cb0dc640, 31, 1;
L_0x8cad06260 .repeat 8, 8, L_0x8cad061c0;
L_0x8cb0dc6e0 .concat [ 32 8 0 0], L_0x8cb0dc640, L_0x8cad06260;
L_0x8cac66ee0 .arith/sum 40, L_0x8ca8786d0, L_0x8cb0dc6e0;
S_0x8cad1d080 .scope module, "mac4" "mac_unit" 6 73, 7 1 0, S_0x8cad1c900;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb0389c0 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb038a00 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb038a40 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0cab20_0 .net/s *"_ivl_0", 31 0, L_0x8cb0dc780;  1 drivers
v0x8cb0cabc0_0 .net/s *"_ivl_2", 31 0, L_0x8cb0dc820;  1 drivers
v0x8cb0cac60_0 .net *"_ivl_7", 0 0, L_0x8cad06440;  1 drivers
v0x8cb0cad00_0 .net *"_ivl_9", 7 0, L_0x8cad064e0;  1 drivers
L_0x8ca878718 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0cada0_0 .net/s "acc_in", 39 0, L_0x8ca878718;  1 drivers
v0x8cb0cae40_0 .net/s "acc_out", 39 0, L_0x8cac66f80;  alias, 1 drivers
v0x8cb0caee0_0 .net/s "product", 31 0, L_0x8cb0dc8c0;  1 drivers
v0x8cb0caf80_0 .net/s "product_ext", 39 0, L_0x8cb0dc960;  1 drivers
v0x8cb0cb020_0 .net/s "w", 15 0, L_0x8cad06620;  1 drivers
v0x8cb0cb0c0_0 .net/s "x", 15 0, L_0x8cad06580;  1 drivers
L_0x8cb0dc780 .extend/s 32, L_0x8cad06580;
L_0x8cb0dc820 .extend/s 32, L_0x8cad06620;
L_0x8cb0dc8c0 .arith/mult 32, L_0x8cb0dc780, L_0x8cb0dc820;
L_0x8cad06440 .part L_0x8cb0dc8c0, 31, 1;
L_0x8cad064e0 .repeat 8, 8, L_0x8cad06440;
L_0x8cb0dc960 .concat [ 32 8 0 0], L_0x8cb0dc8c0, L_0x8cad064e0;
L_0x8cac66f80 .arith/sum 40, L_0x8ca878718, L_0x8cb0dc960;
S_0x8cad1d200 .scope module, "mac5" "mac_unit" 6 83, 7 1 0, S_0x8cad1c900;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb038a80 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb038ac0 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb038b00 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0cb160_0 .net/s *"_ivl_0", 31 0, L_0x8cb0dca00;  1 drivers
v0x8cb0cb200_0 .net/s *"_ivl_2", 31 0, L_0x8cb0dcaa0;  1 drivers
v0x8cb0cb2a0_0 .net *"_ivl_7", 0 0, L_0x8cad066c0;  1 drivers
v0x8cb0cb340_0 .net *"_ivl_9", 7 0, L_0x8cad06760;  1 drivers
L_0x8ca878760 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0cb3e0_0 .net/s "acc_in", 39 0, L_0x8ca878760;  1 drivers
v0x8cb0cb480_0 .net/s "acc_out", 39 0, L_0x8cac67020;  alias, 1 drivers
v0x8cb0cb520_0 .net/s "product", 31 0, L_0x8cb0dcb40;  1 drivers
v0x8cb0cb5c0_0 .net/s "product_ext", 39 0, L_0x8cb0dcbe0;  1 drivers
v0x8cb0cb660_0 .net/s "w", 15 0, L_0x8cad068a0;  1 drivers
v0x8cb0cb700_0 .net/s "x", 15 0, L_0x8cad06800;  1 drivers
L_0x8cb0dca00 .extend/s 32, L_0x8cad06800;
L_0x8cb0dcaa0 .extend/s 32, L_0x8cad068a0;
L_0x8cb0dcb40 .arith/mult 32, L_0x8cb0dca00, L_0x8cb0dcaa0;
L_0x8cad066c0 .part L_0x8cb0dcb40, 31, 1;
L_0x8cad06760 .repeat 8, 8, L_0x8cad066c0;
L_0x8cb0dcbe0 .concat [ 32 8 0 0], L_0x8cb0dcb40, L_0x8cad06760;
L_0x8cac67020 .arith/sum 40, L_0x8ca878760, L_0x8cb0dcbe0;
S_0x8cad1d380 .scope module, "mac6" "mac_unit" 6 93, 7 1 0, S_0x8cad1c900;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb038b40 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb038b80 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb038bc0 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0cb7a0_0 .net/s *"_ivl_0", 31 0, L_0x8cb0dcc80;  1 drivers
v0x8cb0cb840_0 .net/s *"_ivl_2", 31 0, L_0x8cb0dcd20;  1 drivers
v0x8cb0cb8e0_0 .net *"_ivl_7", 0 0, L_0x8cad06940;  1 drivers
v0x8cb0cb980_0 .net *"_ivl_9", 7 0, L_0x8cad069e0;  1 drivers
L_0x8ca8787a8 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0cba20_0 .net/s "acc_in", 39 0, L_0x8ca8787a8;  1 drivers
v0x8cb0cbac0_0 .net/s "acc_out", 39 0, L_0x8cac670c0;  alias, 1 drivers
v0x8cb0cbb60_0 .net/s "product", 31 0, L_0x8cb0dcdc0;  1 drivers
v0x8cb0cbc00_0 .net/s "product_ext", 39 0, L_0x8cb0dce60;  1 drivers
v0x8cb0cbca0_0 .net/s "w", 15 0, L_0x8cad06b20;  1 drivers
v0x8cb0cbd40_0 .net/s "x", 15 0, L_0x8cad06a80;  1 drivers
L_0x8cb0dcc80 .extend/s 32, L_0x8cad06a80;
L_0x8cb0dcd20 .extend/s 32, L_0x8cad06b20;
L_0x8cb0dcdc0 .arith/mult 32, L_0x8cb0dcc80, L_0x8cb0dcd20;
L_0x8cad06940 .part L_0x8cb0dcdc0, 31, 1;
L_0x8cad069e0 .repeat 8, 8, L_0x8cad06940;
L_0x8cb0dce60 .concat [ 32 8 0 0], L_0x8cb0dcdc0, L_0x8cad069e0;
L_0x8cac670c0 .arith/sum 40, L_0x8ca8787a8, L_0x8cb0dce60;
S_0x8cad1d500 .scope module, "mac7" "mac_unit" 6 103, 7 1 0, S_0x8cad1c900;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb038c00 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb038c40 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb038c80 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0cbde0_0 .net/s *"_ivl_0", 31 0, L_0x8cb0dcf00;  1 drivers
v0x8cb0cbe80_0 .net/s *"_ivl_2", 31 0, L_0x8cb0dcfa0;  1 drivers
v0x8cb0cbf20_0 .net *"_ivl_7", 0 0, L_0x8cad06bc0;  1 drivers
v0x8cb0cc000_0 .net *"_ivl_9", 7 0, L_0x8cad06c60;  1 drivers
L_0x8ca8787f0 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0cc0a0_0 .net/s "acc_in", 39 0, L_0x8ca8787f0;  1 drivers
v0x8cb0cc140_0 .net/s "acc_out", 39 0, L_0x8cac67160;  alias, 1 drivers
v0x8cb0cc1e0_0 .net/s "product", 31 0, L_0x8cb0dd040;  1 drivers
v0x8cb0cc280_0 .net/s "product_ext", 39 0, L_0x8cb0dd0e0;  1 drivers
v0x8cb0cc320_0 .net/s "w", 15 0, L_0x8cad06da0;  1 drivers
v0x8cb0cc3c0_0 .net/s "x", 15 0, L_0x8cad06d00;  1 drivers
L_0x8cb0dcf00 .extend/s 32, L_0x8cad06d00;
L_0x8cb0dcfa0 .extend/s 32, L_0x8cad06da0;
L_0x8cb0dd040 .arith/mult 32, L_0x8cb0dcf00, L_0x8cb0dcfa0;
L_0x8cad06bc0 .part L_0x8cb0dd040, 31, 1;
L_0x8cad06c60 .repeat 8, 8, L_0x8cad06bc0;
L_0x8cb0dd0e0 .concat [ 32 8 0 0], L_0x8cb0dd040, L_0x8cad06c60;
L_0x8cac67160 .arith/sum 40, L_0x8ca8787f0, L_0x8cb0dd0e0;
S_0x8cad1d680 .scope generate, "GEN_NEURON[2]" "GEN_NEURON[2]" 4 35, 4 35 0, S_0x10502b2a0;
 .timescale 0 0;
P_0x8cb04ea00 .param/l "n" 1 4 35, +C4<010>;
S_0x8cad1d800 .scope module, "u_neuron" "neuron_parallel" 4 43, 5 1 0, S_0x8cad1d680;
 .timescale 0 0;
    .port_info 0 /INPUT 1 "clk";
    .port_info 1 /INPUT 1 "rst";
    .port_info 2 /INPUT 1 "start";
    .port_info 3 /INPUT 512 "x_bus";
    .port_info 4 /INPUT 512 "w_bus";
    .port_info 5 /INPUT 16 "bias";
    .port_info 6 /OUTPUT 16 "y";
    .port_info 7 /OUTPUT 1 "busy";
    .port_info 8 /OUTPUT 1 "done";
P_0x10501b270 .param/l "ACC_WIDTH" 0 5 6, +C4<00000000000000000000000000101000>;
P_0x10501b2b0 .param/l "DATA_WIDTH" 0 5 2, +C4<00000000000000000000000000010000>;
P_0x10501b2f0 .param/l "FRAC_BITS" 0 5 3, +C4<00000000000000000000000000001000>;
P_0x10501b330 .param/l "GROUPS" 1 5 21, +C4<00000000000000000000000000000100>;
P_0x10501b370 .param/l "GROUP_INDEX_WIDTH" 1 5 22, +C4<00000000000000000000000000000010>;
P_0x10501b3b0 .param/l "N_INPUTS" 0 5 4, +C4<00000000000000000000000000100000>;
P_0x10501b3f0 .param/l "PARALLEL" 0 5 5, +C4<00000000000000000000000000001000>;
L_0x10502ae40 .functor BUFZ 16, L_0x8cad28aa0, C4<0000000000000000>, C4<0000000000000000>, C4<0000000000000000>;
v0x8cb0d24e0_0 .net *"_ivl_0", 31 0, L_0x8cb0dd360;  1 drivers
v0x8cb0d2580_0 .net *"_ivl_11", 31 0, L_0x8cb0dd4a0;  1 drivers
v0x8cb0d2620_0 .net *"_ivl_14", 31 0, L_0x8cb0dd540;  1 drivers
L_0x8ca878958 .functor BUFT 1, C4<000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d26c0_0 .net *"_ivl_17", 29 0, L_0x8ca878958;  1 drivers
L_0x8ca8789a0 .functor BUFT 1, C4<00000000000000000000000000001000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d2760_0 .net/2u *"_ivl_18", 31 0, L_0x8ca8789a0;  1 drivers
v0x8cb0d2800_0 .net *"_ivl_21", 31 0, L_0x8cb0dd5e0;  1 drivers
L_0x8ca8789e8 .functor BUFT 1, C4<00000000000000000000000000010000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d28a0_0 .net/2u *"_ivl_22", 31 0, L_0x8ca8789e8;  1 drivers
v0x8cb0d2940_0 .net *"_ivl_25", 31 0, L_0x8cb0dd680;  1 drivers
L_0x8ca878880 .functor BUFT 1, C4<000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d29e0_0 .net *"_ivl_3", 29 0, L_0x8ca878880;  1 drivers
v0x8cb0d2a80_0 .net *"_ivl_31", 0 0, L_0x8cad28780;  1 drivers
v0x8cb0d2b20_0 .net *"_ivl_33", 23 0, L_0x8cad28820;  1 drivers
v0x8cb0d2bc0_0 .net *"_ivl_36", 39 0, L_0x8cb0debc0;  1 drivers
v0x8cb0d2c60_0 .net *"_ivl_38", 31 0, L_0x8cad288c0;  1 drivers
L_0x8ca8788c8 .functor BUFT 1, C4<00000000000000000000000000001000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d2d00_0 .net/2u *"_ivl_4", 31 0, L_0x8ca8788c8;  1 drivers
L_0x8ca878c70 .functor BUFT 1, C4<00000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d2da0_0 .net *"_ivl_40", 7 0, L_0x8ca878c70;  1 drivers
v0x8cb0d2e40_0 .net *"_ivl_46", 31 0, L_0x8cad28960;  1 drivers
v0x8cb0d2ee0_0 .net *"_ivl_7", 31 0, L_0x8cb0dd400;  1 drivers
L_0x8ca878910 .functor BUFT 1, C4<00000000000000000000000000010000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d2f80_0 .net/2u *"_ivl_8", 31 0, L_0x8ca878910;  1 drivers
v0x8cb0d3020_0 .var/s "acc", 39 0;
v0x8cb0d30c0_0 .net/s "acc_next", 39 0, L_0x8cad2c140;  1 drivers
v0x8cb0d3160_0 .net/s "bias", 15 0, L_0x8cad28aa0;  1 drivers
v0x8cb0d3200_0 .net/s "bias_ext", 39 0, L_0x8cb0deb20;  1 drivers
v0x8cb0d32a0_0 .net/s "bias_ext_small", 15 0, L_0x10502ae40;  1 drivers
v0x8cb0d3340_0 .var "busy", 0 0;
v0x8cb0d33e0_0 .net "clk", 0 0, v0x8cb0d99a0_0;  alias, 1 drivers
v0x8cb0d3480_0 .var "done", 0 0;
v0x8cb0d3520_0 .net/s "final_acc", 39 0, L_0x8cad2c1e0;  1 drivers
v0x8cb0d35c0_0 .net/s "final_value", 39 0, L_0x8cb0dec60;  1 drivers
v0x8cb0d3660_0 .var "group_index", 1 0;
v0x8cb0d3700_0 .net "rst", 0 0, v0x8cb0d9cc0_0;  alias, 1 drivers
v0x8cb0d37a0_0 .net "start", 0 0, v0x8cb0d9d60_0;  alias, 1 drivers
v0x8cb0d3840_0 .net/s "w_bus", 511 0, L_0x8cad28a00;  1 drivers
v0x8cb0d38e0_0 .net/s "w_group", 127 0, L_0x8cad072a0;  1 drivers
v0x8cb0d3980_0 .net/s "x_bus", 511 0, v0x8cb0d9ea0_0;  alias, 1 drivers
v0x8cb0d3a20_0 .net/s "x_group", 127 0, L_0x8cad07200;  1 drivers
v0x8cb0d3ac0_0 .var/s "y", 15 0;
L_0x8cb0dd360 .concat [ 2 30 0 0], v0x8cb0d3660_0, L_0x8ca878880;
L_0x8cb0dd400 .arith/mult 32, L_0x8cb0dd360, L_0x8ca8788c8;
L_0x8cb0dd4a0 .arith/mult 32, L_0x8cb0dd400, L_0x8ca878910;
L_0x8cad07200 .part/v v0x8cb0d9ea0_0, L_0x8cb0dd4a0, 128;
L_0x8cb0dd540 .concat [ 2 30 0 0], v0x8cb0d3660_0, L_0x8ca878958;
L_0x8cb0dd5e0 .arith/mult 32, L_0x8cb0dd540, L_0x8ca8789a0;
L_0x8cb0dd680 .arith/mult 32, L_0x8cb0dd5e0, L_0x8ca8789e8;
L_0x8cad072a0 .part/v L_0x8cad28a00, L_0x8cb0dd680, 128;
L_0x8cad28780 .part L_0x10502ae40, 15, 1;
L_0x8cad28820 .repeat 24, 24, L_0x8cad28780;
L_0x8cb0deb20 .concat [ 16 24 0 0], L_0x10502ae40, L_0x8cad28820;
L_0x8cad288c0 .part L_0x8cb0deb20, 0, 32;
L_0x8cb0debc0 .concat [ 8 32 0 0], L_0x8ca878c70, L_0x8cad288c0;
L_0x8cad2c1e0 .arith/sum 40, L_0x8cad2c140, L_0x8cb0debc0;
L_0x8cad28960 .part L_0x8cad2c1e0, 8, 32;
L_0x8cb0dec60 .extend/s 40, L_0x8cad28960;
S_0x8cad1d980 .scope module, "u_mac8" "mac8" 5 51, 6 1 0, S_0x8cad1d800;
 .timescale 0 0;
    .port_info 0 /INPUT 128 "x_bus";
    .port_info 1 /INPUT 128 "w_bus";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb064300 .param/l "ACC_WIDTH" 0 6 3, +C4<00000000000000000000000000101000>;
P_0x8cb064340 .param/l "DATA_WIDTH" 0 6 2, +C4<00000000000000000000000000010000>;
v0x8cb0d1900_0 .net/s "acc_in", 39 0, v0x8cb0d3020_0;  1 drivers
v0x8cb0d19a0_0 .net/s "acc_out", 39 0, L_0x8cad2c140;  alias, 1 drivers
v0x8cb0d1a40_0 .net/s "m0", 39 0, L_0x8cac677a0;  1 drivers
v0x8cb0d1ae0_0 .net/s "m1", 39 0, L_0x8cac67840;  1 drivers
v0x8cb0d1b80_0 .net/s "m2", 39 0, L_0x8cac678e0;  1 drivers
v0x8cb0d1c20_0 .net/s "m3", 39 0, L_0x8cac67980;  1 drivers
v0x8cb0d1cc0_0 .net/s "m4", 39 0, L_0x8cac67a20;  1 drivers
v0x8cb0d1d60_0 .net/s "m5", 39 0, L_0x8cac67ac0;  1 drivers
v0x8cb0d1e00_0 .net/s "m6", 39 0, L_0x8cac67b60;  1 drivers
v0x8cb0d1ea0_0 .net/s "m7", 39 0, L_0x8cac67c00;  1 drivers
v0x8cb0d1f40_0 .net/s "s0", 39 0, L_0x8cac67ca0;  1 drivers
v0x8cb0d1fe0_0 .net/s "s1", 39 0, L_0x8cac67d40;  1 drivers
v0x8cb0d2080_0 .net/s "s2", 39 0, L_0x8cac67de0;  1 drivers
v0x8cb0d2120_0 .net/s "s3", 39 0, L_0x8cac67e80;  1 drivers
v0x8cb0d21c0_0 .net/s "s4", 39 0, L_0x8cac67f20;  1 drivers
v0x8cb0d2260_0 .net/s "s5", 39 0, L_0x8cad2c000;  1 drivers
v0x8cb0d2300_0 .net/s "sum", 39 0, L_0x8cad2c0a0;  1 drivers
v0x8cb0d23a0_0 .net/s "w_bus", 127 0, L_0x8cad072a0;  alias, 1 drivers
v0x8cb0d2440_0 .net/s "x_bus", 127 0, L_0x8cad07200;  alias, 1 drivers
L_0x8cad07480 .part L_0x8cad07200, 0, 16;
L_0x8cad07520 .part L_0x8cad072a0, 0, 16;
L_0x8cad07700 .part L_0x8cad07200, 16, 16;
L_0x8cad077a0 .part L_0x8cad072a0, 16, 16;
L_0x8cad07980 .part L_0x8cad07200, 32, 16;
L_0x8cad07a20 .part L_0x8cad072a0, 32, 16;
L_0x8cad07c00 .part L_0x8cad07200, 48, 16;
L_0x8cad07ca0 .part L_0x8cad072a0, 48, 16;
L_0x8cad07e80 .part L_0x8cad07200, 64, 16;
L_0x8cad07f20 .part L_0x8cad072a0, 64, 16;
L_0x8cad28140 .part L_0x8cad07200, 80, 16;
L_0x8cad281e0 .part L_0x8cad072a0, 80, 16;
L_0x8cad283c0 .part L_0x8cad07200, 96, 16;
L_0x8cad28460 .part L_0x8cad072a0, 96, 16;
L_0x8cad28640 .part L_0x8cad07200, 112, 16;
L_0x8cad286e0 .part L_0x8cad072a0, 112, 16;
L_0x8cac67ca0 .arith/sum 40, L_0x8cac677a0, L_0x8cac67840;
L_0x8cac67d40 .arith/sum 40, L_0x8cac678e0, L_0x8cac67980;
L_0x8cac67de0 .arith/sum 40, L_0x8cac67a20, L_0x8cac67ac0;
L_0x8cac67e80 .arith/sum 40, L_0x8cac67b60, L_0x8cac67c00;
L_0x8cac67f20 .arith/sum 40, L_0x8cac67ca0, L_0x8cac67d40;
L_0x8cad2c000 .arith/sum 40, L_0x8cac67de0, L_0x8cac67e80;
L_0x8cad2c0a0 .arith/sum 40, L_0x8cac67f20, L_0x8cad2c000;
L_0x8cad2c140 .arith/sum 40, v0x8cb0d3020_0, L_0x8cad2c0a0;
S_0x8cad1db00 .scope module, "mac0" "mac_unit" 6 33, 7 1 0, S_0x8cad1d980;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb038cc0 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb038d00 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb038d40 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0ce6c0_0 .net/s *"_ivl_0", 31 0, L_0x8cb0dd720;  1 drivers
v0x8cb0ce760_0 .net/s *"_ivl_2", 31 0, L_0x8cb0dd7c0;  1 drivers
v0x8cb0ce800_0 .net *"_ivl_7", 0 0, L_0x8cad07340;  1 drivers
v0x8cb0ce8a0_0 .net *"_ivl_9", 7 0, L_0x8cad073e0;  1 drivers
L_0x8ca878a30 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0ce940_0 .net/s "acc_in", 39 0, L_0x8ca878a30;  1 drivers
v0x8cb0ce9e0_0 .net/s "acc_out", 39 0, L_0x8cac677a0;  alias, 1 drivers
v0x8cb0cea80_0 .net/s "product", 31 0, L_0x8cb0dd860;  1 drivers
v0x8cb0ceb20_0 .net/s "product_ext", 39 0, L_0x8cb0dd900;  1 drivers
v0x8cb0cebc0_0 .net/s "w", 15 0, L_0x8cad07520;  1 drivers
v0x8cb0cec60_0 .net/s "x", 15 0, L_0x8cad07480;  1 drivers
L_0x8cb0dd720 .extend/s 32, L_0x8cad07480;
L_0x8cb0dd7c0 .extend/s 32, L_0x8cad07520;
L_0x8cb0dd860 .arith/mult 32, L_0x8cb0dd720, L_0x8cb0dd7c0;
L_0x8cad07340 .part L_0x8cb0dd860, 31, 1;
L_0x8cad073e0 .repeat 8, 8, L_0x8cad07340;
L_0x8cb0dd900 .concat [ 32 8 0 0], L_0x8cb0dd860, L_0x8cad073e0;
L_0x8cac677a0 .arith/sum 40, L_0x8ca878a30, L_0x8cb0dd900;
S_0x8cad1dc80 .scope module, "mac1" "mac_unit" 6 43, 7 1 0, S_0x8cad1d980;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb038d80 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb038dc0 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb038e00 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0ced00_0 .net/s *"_ivl_0", 31 0, L_0x8cb0dd9a0;  1 drivers
v0x8cb0ceda0_0 .net/s *"_ivl_2", 31 0, L_0x8cb0dda40;  1 drivers
v0x8cb0cee40_0 .net *"_ivl_7", 0 0, L_0x8cad075c0;  1 drivers
v0x8cb0ceee0_0 .net *"_ivl_9", 7 0, L_0x8cad07660;  1 drivers
L_0x8ca878a78 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0cef80_0 .net/s "acc_in", 39 0, L_0x8ca878a78;  1 drivers
v0x8cb0cf020_0 .net/s "acc_out", 39 0, L_0x8cac67840;  alias, 1 drivers
v0x8cb0cf0c0_0 .net/s "product", 31 0, L_0x8cb0ddae0;  1 drivers
v0x8cb0cf160_0 .net/s "product_ext", 39 0, L_0x8cb0ddb80;  1 drivers
v0x8cb0cf200_0 .net/s "w", 15 0, L_0x8cad077a0;  1 drivers
v0x8cb0cf2a0_0 .net/s "x", 15 0, L_0x8cad07700;  1 drivers
L_0x8cb0dd9a0 .extend/s 32, L_0x8cad07700;
L_0x8cb0dda40 .extend/s 32, L_0x8cad077a0;
L_0x8cb0ddae0 .arith/mult 32, L_0x8cb0dd9a0, L_0x8cb0dda40;
L_0x8cad075c0 .part L_0x8cb0ddae0, 31, 1;
L_0x8cad07660 .repeat 8, 8, L_0x8cad075c0;
L_0x8cb0ddb80 .concat [ 32 8 0 0], L_0x8cb0ddae0, L_0x8cad07660;
L_0x8cac67840 .arith/sum 40, L_0x8ca878a78, L_0x8cb0ddb80;
S_0x8cad1de00 .scope module, "mac2" "mac_unit" 6 53, 7 1 0, S_0x8cad1d980;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb038e40 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb038e80 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb038ec0 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0cf340_0 .net/s *"_ivl_0", 31 0, L_0x8cb0ddc20;  1 drivers
v0x8cb0cf3e0_0 .net/s *"_ivl_2", 31 0, L_0x8cb0ddcc0;  1 drivers
v0x8cb0cf480_0 .net *"_ivl_7", 0 0, L_0x8cad07840;  1 drivers
v0x8cb0cf520_0 .net *"_ivl_9", 7 0, L_0x8cad078e0;  1 drivers
L_0x8ca878ac0 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0cf5c0_0 .net/s "acc_in", 39 0, L_0x8ca878ac0;  1 drivers
v0x8cb0cf660_0 .net/s "acc_out", 39 0, L_0x8cac678e0;  alias, 1 drivers
v0x8cb0cf700_0 .net/s "product", 31 0, L_0x8cb0ddd60;  1 drivers
v0x8cb0cf7a0_0 .net/s "product_ext", 39 0, L_0x8cb0dde00;  1 drivers
v0x8cb0cf840_0 .net/s "w", 15 0, L_0x8cad07a20;  1 drivers
v0x8cb0cf8e0_0 .net/s "x", 15 0, L_0x8cad07980;  1 drivers
L_0x8cb0ddc20 .extend/s 32, L_0x8cad07980;
L_0x8cb0ddcc0 .extend/s 32, L_0x8cad07a20;
L_0x8cb0ddd60 .arith/mult 32, L_0x8cb0ddc20, L_0x8cb0ddcc0;
L_0x8cad07840 .part L_0x8cb0ddd60, 31, 1;
L_0x8cad078e0 .repeat 8, 8, L_0x8cad07840;
L_0x8cb0dde00 .concat [ 32 8 0 0], L_0x8cb0ddd60, L_0x8cad078e0;
L_0x8cac678e0 .arith/sum 40, L_0x8ca878ac0, L_0x8cb0dde00;
S_0x8cad1df80 .scope module, "mac3" "mac_unit" 6 63, 7 1 0, S_0x8cad1d980;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb038f00 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb038f40 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb038f80 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0cf980_0 .net/s *"_ivl_0", 31 0, L_0x8cb0ddea0;  1 drivers
v0x8cb0cfa20_0 .net/s *"_ivl_2", 31 0, L_0x8cb0ddf40;  1 drivers
v0x8cb0cfac0_0 .net *"_ivl_7", 0 0, L_0x8cad07ac0;  1 drivers
v0x8cb0cfb60_0 .net *"_ivl_9", 7 0, L_0x8cad07b60;  1 drivers
L_0x8ca878b08 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0cfc00_0 .net/s "acc_in", 39 0, L_0x8ca878b08;  1 drivers
v0x8cb0cfca0_0 .net/s "acc_out", 39 0, L_0x8cac67980;  alias, 1 drivers
v0x8cb0cfd40_0 .net/s "product", 31 0, L_0x8cb0ddfe0;  1 drivers
v0x8cb0cfde0_0 .net/s "product_ext", 39 0, L_0x8cb0de080;  1 drivers
v0x8cb0cfe80_0 .net/s "w", 15 0, L_0x8cad07ca0;  1 drivers
v0x8cb0cff20_0 .net/s "x", 15 0, L_0x8cad07c00;  1 drivers
L_0x8cb0ddea0 .extend/s 32, L_0x8cad07c00;
L_0x8cb0ddf40 .extend/s 32, L_0x8cad07ca0;
L_0x8cb0ddfe0 .arith/mult 32, L_0x8cb0ddea0, L_0x8cb0ddf40;
L_0x8cad07ac0 .part L_0x8cb0ddfe0, 31, 1;
L_0x8cad07b60 .repeat 8, 8, L_0x8cad07ac0;
L_0x8cb0de080 .concat [ 32 8 0 0], L_0x8cb0ddfe0, L_0x8cad07b60;
L_0x8cac67980 .arith/sum 40, L_0x8ca878b08, L_0x8cb0de080;
S_0x8cad1e100 .scope module, "mac4" "mac_unit" 6 73, 7 1 0, S_0x8cad1d980;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb038fc0 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb039000 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb039040 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0d0000_0 .net/s *"_ivl_0", 31 0, L_0x8cb0de120;  1 drivers
v0x8cb0d00a0_0 .net/s *"_ivl_2", 31 0, L_0x8cb0de1c0;  1 drivers
v0x8cb0d0140_0 .net *"_ivl_7", 0 0, L_0x8cad07d40;  1 drivers
v0x8cb0d01e0_0 .net *"_ivl_9", 7 0, L_0x8cad07de0;  1 drivers
L_0x8ca878b50 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d0280_0 .net/s "acc_in", 39 0, L_0x8ca878b50;  1 drivers
v0x8cb0d0320_0 .net/s "acc_out", 39 0, L_0x8cac67a20;  alias, 1 drivers
v0x8cb0d03c0_0 .net/s "product", 31 0, L_0x8cb0de260;  1 drivers
v0x8cb0d0460_0 .net/s "product_ext", 39 0, L_0x8cb0de300;  1 drivers
v0x8cb0d0500_0 .net/s "w", 15 0, L_0x8cad07f20;  1 drivers
v0x8cb0d05a0_0 .net/s "x", 15 0, L_0x8cad07e80;  1 drivers
L_0x8cb0de120 .extend/s 32, L_0x8cad07e80;
L_0x8cb0de1c0 .extend/s 32, L_0x8cad07f20;
L_0x8cb0de260 .arith/mult 32, L_0x8cb0de120, L_0x8cb0de1c0;
L_0x8cad07d40 .part L_0x8cb0de260, 31, 1;
L_0x8cad07de0 .repeat 8, 8, L_0x8cad07d40;
L_0x8cb0de300 .concat [ 32 8 0 0], L_0x8cb0de260, L_0x8cad07de0;
L_0x8cac67a20 .arith/sum 40, L_0x8ca878b50, L_0x8cb0de300;
S_0x8cad1e280 .scope module, "mac5" "mac_unit" 6 83, 7 1 0, S_0x8cad1d980;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb039080 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb0390c0 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb039100 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0d0640_0 .net/s *"_ivl_0", 31 0, L_0x8cb0de3a0;  1 drivers
v0x8cb0d06e0_0 .net/s *"_ivl_2", 31 0, L_0x8cb0de440;  1 drivers
v0x8cb0d0780_0 .net *"_ivl_7", 0 0, L_0x8cad28000;  1 drivers
v0x8cb0d0820_0 .net *"_ivl_9", 7 0, L_0x8cad280a0;  1 drivers
L_0x8ca878b98 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d08c0_0 .net/s "acc_in", 39 0, L_0x8ca878b98;  1 drivers
v0x8cb0d0960_0 .net/s "acc_out", 39 0, L_0x8cac67ac0;  alias, 1 drivers
v0x8cb0d0a00_0 .net/s "product", 31 0, L_0x8cb0de4e0;  1 drivers
v0x8cb0d0aa0_0 .net/s "product_ext", 39 0, L_0x8cb0de580;  1 drivers
v0x8cb0d0b40_0 .net/s "w", 15 0, L_0x8cad281e0;  1 drivers
v0x8cb0d0be0_0 .net/s "x", 15 0, L_0x8cad28140;  1 drivers
L_0x8cb0de3a0 .extend/s 32, L_0x8cad28140;
L_0x8cb0de440 .extend/s 32, L_0x8cad281e0;
L_0x8cb0de4e0 .arith/mult 32, L_0x8cb0de3a0, L_0x8cb0de440;
L_0x8cad28000 .part L_0x8cb0de4e0, 31, 1;
L_0x8cad280a0 .repeat 8, 8, L_0x8cad28000;
L_0x8cb0de580 .concat [ 32 8 0 0], L_0x8cb0de4e0, L_0x8cad280a0;
L_0x8cac67ac0 .arith/sum 40, L_0x8ca878b98, L_0x8cb0de580;
S_0x8cad1e400 .scope module, "mac6" "mac_unit" 6 93, 7 1 0, S_0x8cad1d980;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb039140 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb039180 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb0391c0 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0d0c80_0 .net/s *"_ivl_0", 31 0, L_0x8cb0de620;  1 drivers
v0x8cb0d0d20_0 .net/s *"_ivl_2", 31 0, L_0x8cb0de6c0;  1 drivers
v0x8cb0d0dc0_0 .net *"_ivl_7", 0 0, L_0x8cad28280;  1 drivers
v0x8cb0d0e60_0 .net *"_ivl_9", 7 0, L_0x8cad28320;  1 drivers
L_0x8ca878be0 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d0f00_0 .net/s "acc_in", 39 0, L_0x8ca878be0;  1 drivers
v0x8cb0d0fa0_0 .net/s "acc_out", 39 0, L_0x8cac67b60;  alias, 1 drivers
v0x8cb0d1040_0 .net/s "product", 31 0, L_0x8cb0de760;  1 drivers
v0x8cb0d10e0_0 .net/s "product_ext", 39 0, L_0x8cb0de800;  1 drivers
v0x8cb0d1180_0 .net/s "w", 15 0, L_0x8cad28460;  1 drivers
v0x8cb0d1220_0 .net/s "x", 15 0, L_0x8cad283c0;  1 drivers
L_0x8cb0de620 .extend/s 32, L_0x8cad283c0;
L_0x8cb0de6c0 .extend/s 32, L_0x8cad28460;
L_0x8cb0de760 .arith/mult 32, L_0x8cb0de620, L_0x8cb0de6c0;
L_0x8cad28280 .part L_0x8cb0de760, 31, 1;
L_0x8cad28320 .repeat 8, 8, L_0x8cad28280;
L_0x8cb0de800 .concat [ 32 8 0 0], L_0x8cb0de760, L_0x8cad28320;
L_0x8cac67b60 .arith/sum 40, L_0x8ca878be0, L_0x8cb0de800;
S_0x8cad1e580 .scope module, "mac7" "mac_unit" 6 103, 7 1 0, S_0x8cad1d980;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb039200 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb039240 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb039280 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0d12c0_0 .net/s *"_ivl_0", 31 0, L_0x8cb0de8a0;  1 drivers
v0x8cb0d1360_0 .net/s *"_ivl_2", 31 0, L_0x8cb0de940;  1 drivers
v0x8cb0d1400_0 .net *"_ivl_7", 0 0, L_0x8cad28500;  1 drivers
v0x8cb0d14a0_0 .net *"_ivl_9", 7 0, L_0x8cad285a0;  1 drivers
L_0x8ca878c28 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d1540_0 .net/s "acc_in", 39 0, L_0x8ca878c28;  1 drivers
v0x8cb0d15e0_0 .net/s "acc_out", 39 0, L_0x8cac67c00;  alias, 1 drivers
v0x8cb0d1680_0 .net/s "product", 31 0, L_0x8cb0de9e0;  1 drivers
v0x8cb0d1720_0 .net/s "product_ext", 39 0, L_0x8cb0dea80;  1 drivers
v0x8cb0d17c0_0 .net/s "w", 15 0, L_0x8cad286e0;  1 drivers
v0x8cb0d1860_0 .net/s "x", 15 0, L_0x8cad28640;  1 drivers
L_0x8cb0de8a0 .extend/s 32, L_0x8cad28640;
L_0x8cb0de940 .extend/s 32, L_0x8cad286e0;
L_0x8cb0de9e0 .arith/mult 32, L_0x8cb0de8a0, L_0x8cb0de940;
L_0x8cad28500 .part L_0x8cb0de9e0, 31, 1;
L_0x8cad285a0 .repeat 8, 8, L_0x8cad28500;
L_0x8cb0dea80 .concat [ 32 8 0 0], L_0x8cb0de9e0, L_0x8cad285a0;
L_0x8cac67c00 .arith/sum 40, L_0x8ca878c28, L_0x8cb0dea80;
S_0x8cad1e700 .scope generate, "GEN_NEURON[3]" "GEN_NEURON[3]" 4 35, 4 35 0, S_0x10502b2a0;
 .timescale 0 0;
P_0x8cb04ea40 .param/l "n" 1 4 35, +C4<011>;
S_0x8cad1e880 .scope module, "u_neuron" "neuron_parallel" 4 43, 5 1 0, S_0x8cad1e700;
 .timescale 0 0;
    .port_info 0 /INPUT 1 "clk";
    .port_info 1 /INPUT 1 "rst";
    .port_info 2 /INPUT 1 "start";
    .port_info 3 /INPUT 512 "x_bus";
    .port_info 4 /INPUT 512 "w_bus";
    .port_info 5 /INPUT 16 "bias";
    .port_info 6 /OUTPUT 16 "y";
    .port_info 7 /OUTPUT 1 "busy";
    .port_info 8 /OUTPUT 1 "done";
P_0x105023d20 .param/l "ACC_WIDTH" 0 5 6, +C4<00000000000000000000000000101000>;
P_0x105023d60 .param/l "DATA_WIDTH" 0 5 2, +C4<00000000000000000000000000010000>;
P_0x105023da0 .param/l "FRAC_BITS" 0 5 3, +C4<00000000000000000000000000001000>;
P_0x105023de0 .param/l "GROUPS" 1 5 21, +C4<00000000000000000000000000000100>;
P_0x105023e20 .param/l "GROUP_INDEX_WIDTH" 1 5 22, +C4<00000000000000000000000000000010>;
P_0x105023e60 .param/l "N_INPUTS" 0 5 4, +C4<00000000000000000000000000100000>;
P_0x105023ea0 .param/l "PARALLEL" 0 5 5, +C4<00000000000000000000000000001000>;
L_0x10502ab00 .functor BUFZ 16, L_0x8cad2a3a0, C4<0000000000000000>, C4<0000000000000000>, C4<0000000000000000>;
v0x8cb0d7980_0 .net *"_ivl_0", 31 0, L_0x8cb0ded00;  1 drivers
v0x8cb0d7a20_0 .net *"_ivl_11", 31 0, L_0x8cb0dee40;  1 drivers
v0x8cb0d7ac0_0 .net *"_ivl_14", 31 0, L_0x8cb0deee0;  1 drivers
L_0x8ca878d90 .functor BUFT 1, C4<000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d7b60_0 .net *"_ivl_17", 29 0, L_0x8ca878d90;  1 drivers
L_0x8ca878dd8 .functor BUFT 1, C4<00000000000000000000000000001000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d7c00_0 .net/2u *"_ivl_18", 31 0, L_0x8ca878dd8;  1 drivers
v0x8cb0d7ca0_0 .net *"_ivl_21", 31 0, L_0x8cb0def80;  1 drivers
L_0x8ca878e20 .functor BUFT 1, C4<00000000000000000000000000010000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d7d40_0 .net/2u *"_ivl_22", 31 0, L_0x8ca878e20;  1 drivers
v0x8cb0d7de0_0 .net *"_ivl_25", 31 0, L_0x8cb0df020;  1 drivers
L_0x8ca878cb8 .functor BUFT 1, C4<000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d7e80_0 .net *"_ivl_3", 29 0, L_0x8ca878cb8;  1 drivers
v0x8cb0d7f20_0 .net *"_ivl_31", 0 0, L_0x8cad2a080;  1 drivers
v0x8cb0d8000_0 .net *"_ivl_33", 23 0, L_0x8cad2a120;  1 drivers
v0x8cb0d80a0_0 .net *"_ivl_36", 39 0, L_0x8cb0e05a0;  1 drivers
v0x8cb0d8140_0 .net *"_ivl_38", 31 0, L_0x8cad2a1c0;  1 drivers
L_0x8ca878d00 .functor BUFT 1, C4<00000000000000000000000000001000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d81e0_0 .net/2u *"_ivl_4", 31 0, L_0x8ca878d00;  1 drivers
L_0x8ca8790a8 .functor BUFT 1, C4<00000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d8280_0 .net *"_ivl_40", 7 0, L_0x8ca8790a8;  1 drivers
v0x8cb0d8320_0 .net *"_ivl_46", 31 0, L_0x8cad2a260;  1 drivers
v0x8cb0d83c0_0 .net *"_ivl_7", 31 0, L_0x8cb0deda0;  1 drivers
L_0x8ca878d48 .functor BUFT 1, C4<00000000000000000000000000010000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d8460_0 .net/2u *"_ivl_8", 31 0, L_0x8ca878d48;  1 drivers
v0x8cb0d8500_0 .var/s "acc", 39 0;
v0x8cb0d85a0_0 .net/s "acc_next", 39 0, L_0x8cad2cbe0;  1 drivers
v0x8cb0d8640_0 .net/s "bias", 15 0, L_0x8cad2a3a0;  1 drivers
v0x8cb0d86e0_0 .net/s "bias_ext", 39 0, L_0x8cb0e0500;  1 drivers
v0x8cb0d8780_0 .net/s "bias_ext_small", 15 0, L_0x10502ab00;  1 drivers
v0x8cb0d8820_0 .var "busy", 0 0;
v0x8cb0d88c0_0 .net "clk", 0 0, v0x8cb0d99a0_0;  alias, 1 drivers
v0x8cb0d8960_0 .var "done", 0 0;
v0x8cb0d8a00_0 .net/s "final_acc", 39 0, L_0x8cad2cc80;  1 drivers
v0x8cb0d8aa0_0 .net/s "final_value", 39 0, L_0x8cb0e0640;  1 drivers
v0x8cb0d8b40_0 .var "group_index", 1 0;
v0x8cb0d8be0_0 .net "rst", 0 0, v0x8cb0d9cc0_0;  alias, 1 drivers
v0x8cb0d8c80_0 .net "start", 0 0, v0x8cb0d9d60_0;  alias, 1 drivers
v0x8cb0d8d20_0 .net/s "w_bus", 511 0, L_0x8cad2a300;  1 drivers
v0x8cb0d8dc0_0 .net/s "w_group", 127 0, L_0x8cad28be0;  1 drivers
v0x8cb0d8e60_0 .net/s "x_bus", 511 0, v0x8cb0d9ea0_0;  alias, 1 drivers
v0x8cb0d8f00_0 .net/s "x_group", 127 0, L_0x8cad28b40;  1 drivers
v0x8cb0d8fa0_0 .var/s "y", 15 0;
L_0x8cb0ded00 .concat [ 2 30 0 0], v0x8cb0d8b40_0, L_0x8ca878cb8;
L_0x8cb0deda0 .arith/mult 32, L_0x8cb0ded00, L_0x8ca878d00;
L_0x8cb0dee40 .arith/mult 32, L_0x8cb0deda0, L_0x8ca878d48;
L_0x8cad28b40 .part/v v0x8cb0d9ea0_0, L_0x8cb0dee40, 128;
L_0x8cb0deee0 .concat [ 2 30 0 0], v0x8cb0d8b40_0, L_0x8ca878d90;
L_0x8cb0def80 .arith/mult 32, L_0x8cb0deee0, L_0x8ca878dd8;
L_0x8cb0df020 .arith/mult 32, L_0x8cb0def80, L_0x8ca878e20;
L_0x8cad28be0 .part/v L_0x8cad2a300, L_0x8cb0df020, 128;
L_0x8cad2a080 .part L_0x10502ab00, 15, 1;
L_0x8cad2a120 .repeat 24, 24, L_0x8cad2a080;
L_0x8cb0e0500 .concat [ 16 24 0 0], L_0x10502ab00, L_0x8cad2a120;
L_0x8cad2a1c0 .part L_0x8cb0e0500, 0, 32;
L_0x8cb0e05a0 .concat [ 8 32 0 0], L_0x8ca8790a8, L_0x8cad2a1c0;
L_0x8cad2cc80 .arith/sum 40, L_0x8cad2cbe0, L_0x8cb0e05a0;
L_0x8cad2a260 .part L_0x8cad2cc80, 8, 32;
L_0x8cb0e0640 .extend/s 40, L_0x8cad2a260;
S_0x8cad1ea00 .scope module, "u_mac8" "mac8" 5 51, 6 1 0, S_0x8cad1e880;
 .timescale 0 0;
    .port_info 0 /INPUT 128 "x_bus";
    .port_info 1 /INPUT 128 "w_bus";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb064380 .param/l "ACC_WIDTH" 0 6 3, +C4<00000000000000000000000000101000>;
P_0x8cb0643c0 .param/l "DATA_WIDTH" 0 6 2, +C4<00000000000000000000000000010000>;
v0x8cb0d6da0_0 .net/s "acc_in", 39 0, v0x8cb0d8500_0;  1 drivers
v0x8cb0d6e40_0 .net/s "acc_out", 39 0, L_0x8cad2cbe0;  alias, 1 drivers
v0x8cb0d6ee0_0 .net/s "m0", 39 0, L_0x8cad2c280;  1 drivers
v0x8cb0d6f80_0 .net/s "m1", 39 0, L_0x8cad2c320;  1 drivers
v0x8cb0d7020_0 .net/s "m2", 39 0, L_0x8cad2c3c0;  1 drivers
v0x8cb0d70c0_0 .net/s "m3", 39 0, L_0x8cad2c460;  1 drivers
v0x8cb0d7160_0 .net/s "m4", 39 0, L_0x8cad2c500;  1 drivers
v0x8cb0d7200_0 .net/s "m5", 39 0, L_0x8cad2c5a0;  1 drivers
v0x8cb0d72a0_0 .net/s "m6", 39 0, L_0x8cad2c640;  1 drivers
v0x8cb0d7340_0 .net/s "m7", 39 0, L_0x8cad2c6e0;  1 drivers
v0x8cb0d73e0_0 .net/s "s0", 39 0, L_0x8cad2c780;  1 drivers
v0x8cb0d7480_0 .net/s "s1", 39 0, L_0x8cad2c820;  1 drivers
v0x8cb0d7520_0 .net/s "s2", 39 0, L_0x8cad2c8c0;  1 drivers
v0x8cb0d75c0_0 .net/s "s3", 39 0, L_0x8cad2c960;  1 drivers
v0x8cb0d7660_0 .net/s "s4", 39 0, L_0x8cad2ca00;  1 drivers
v0x8cb0d7700_0 .net/s "s5", 39 0, L_0x8cad2caa0;  1 drivers
v0x8cb0d77a0_0 .net/s "sum", 39 0, L_0x8cad2cb40;  1 drivers
v0x8cb0d7840_0 .net/s "w_bus", 127 0, L_0x8cad28be0;  alias, 1 drivers
v0x8cb0d78e0_0 .net/s "x_bus", 127 0, L_0x8cad28b40;  alias, 1 drivers
L_0x8cad28dc0 .part L_0x8cad28b40, 0, 16;
L_0x8cad28e60 .part L_0x8cad28be0, 0, 16;
L_0x8cad29040 .part L_0x8cad28b40, 16, 16;
L_0x8cad290e0 .part L_0x8cad28be0, 16, 16;
L_0x8cad292c0 .part L_0x8cad28b40, 32, 16;
L_0x8cad29360 .part L_0x8cad28be0, 32, 16;
L_0x8cad29540 .part L_0x8cad28b40, 48, 16;
L_0x8cad295e0 .part L_0x8cad28be0, 48, 16;
L_0x8cad297c0 .part L_0x8cad28b40, 64, 16;
L_0x8cad29860 .part L_0x8cad28be0, 64, 16;
L_0x8cad29a40 .part L_0x8cad28b40, 80, 16;
L_0x8cad29ae0 .part L_0x8cad28be0, 80, 16;
L_0x8cad29cc0 .part L_0x8cad28b40, 96, 16;
L_0x8cad29d60 .part L_0x8cad28be0, 96, 16;
L_0x8cad29f40 .part L_0x8cad28b40, 112, 16;
L_0x8cad29fe0 .part L_0x8cad28be0, 112, 16;
L_0x8cad2c780 .arith/sum 40, L_0x8cad2c280, L_0x8cad2c320;
L_0x8cad2c820 .arith/sum 40, L_0x8cad2c3c0, L_0x8cad2c460;
L_0x8cad2c8c0 .arith/sum 40, L_0x8cad2c500, L_0x8cad2c5a0;
L_0x8cad2c960 .arith/sum 40, L_0x8cad2c640, L_0x8cad2c6e0;
L_0x8cad2ca00 .arith/sum 40, L_0x8cad2c780, L_0x8cad2c820;
L_0x8cad2caa0 .arith/sum 40, L_0x8cad2c8c0, L_0x8cad2c960;
L_0x8cad2cb40 .arith/sum 40, L_0x8cad2ca00, L_0x8cad2caa0;
L_0x8cad2cbe0 .arith/sum 40, v0x8cb0d8500_0, L_0x8cad2cb40;
S_0x8cad1eb80 .scope module, "mac0" "mac_unit" 6 33, 7 1 0, S_0x8cad1ea00;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb0392c0 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb039300 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb039340 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0d3b60_0 .net/s *"_ivl_0", 31 0, L_0x8cb0df0c0;  1 drivers
v0x8cb0d3c00_0 .net/s *"_ivl_2", 31 0, L_0x8cb0df160;  1 drivers
v0x8cb0d3ca0_0 .net *"_ivl_7", 0 0, L_0x8cad28c80;  1 drivers
v0x8cb0d3d40_0 .net *"_ivl_9", 7 0, L_0x8cad28d20;  1 drivers
L_0x8ca878e68 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d3de0_0 .net/s "acc_in", 39 0, L_0x8ca878e68;  1 drivers
v0x8cb0d3e80_0 .net/s "acc_out", 39 0, L_0x8cad2c280;  alias, 1 drivers
v0x8cb0d3f20_0 .net/s "product", 31 0, L_0x8cb0df200;  1 drivers
v0x8cb0d4000_0 .net/s "product_ext", 39 0, L_0x8cb0df2a0;  1 drivers
v0x8cb0d40a0_0 .net/s "w", 15 0, L_0x8cad28e60;  1 drivers
v0x8cb0d4140_0 .net/s "x", 15 0, L_0x8cad28dc0;  1 drivers
L_0x8cb0df0c0 .extend/s 32, L_0x8cad28dc0;
L_0x8cb0df160 .extend/s 32, L_0x8cad28e60;
L_0x8cb0df200 .arith/mult 32, L_0x8cb0df0c0, L_0x8cb0df160;
L_0x8cad28c80 .part L_0x8cb0df200, 31, 1;
L_0x8cad28d20 .repeat 8, 8, L_0x8cad28c80;
L_0x8cb0df2a0 .concat [ 32 8 0 0], L_0x8cb0df200, L_0x8cad28d20;
L_0x8cad2c280 .arith/sum 40, L_0x8ca878e68, L_0x8cb0df2a0;
S_0x8cad1ed00 .scope module, "mac1" "mac_unit" 6 43, 7 1 0, S_0x8cad1ea00;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb039380 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb0393c0 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb039400 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0d41e0_0 .net/s *"_ivl_0", 31 0, L_0x8cb0df340;  1 drivers
v0x8cb0d4280_0 .net/s *"_ivl_2", 31 0, L_0x8cb0df3e0;  1 drivers
v0x8cb0d4320_0 .net *"_ivl_7", 0 0, L_0x8cad28f00;  1 drivers
v0x8cb0d43c0_0 .net *"_ivl_9", 7 0, L_0x8cad28fa0;  1 drivers
L_0x8ca878eb0 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d4460_0 .net/s "acc_in", 39 0, L_0x8ca878eb0;  1 drivers
v0x8cb0d4500_0 .net/s "acc_out", 39 0, L_0x8cad2c320;  alias, 1 drivers
v0x8cb0d45a0_0 .net/s "product", 31 0, L_0x8cb0df480;  1 drivers
v0x8cb0d4640_0 .net/s "product_ext", 39 0, L_0x8cb0df520;  1 drivers
v0x8cb0d46e0_0 .net/s "w", 15 0, L_0x8cad290e0;  1 drivers
v0x8cb0d4780_0 .net/s "x", 15 0, L_0x8cad29040;  1 drivers
L_0x8cb0df340 .extend/s 32, L_0x8cad29040;
L_0x8cb0df3e0 .extend/s 32, L_0x8cad290e0;
L_0x8cb0df480 .arith/mult 32, L_0x8cb0df340, L_0x8cb0df3e0;
L_0x8cad28f00 .part L_0x8cb0df480, 31, 1;
L_0x8cad28fa0 .repeat 8, 8, L_0x8cad28f00;
L_0x8cb0df520 .concat [ 32 8 0 0], L_0x8cb0df480, L_0x8cad28fa0;
L_0x8cad2c320 .arith/sum 40, L_0x8ca878eb0, L_0x8cb0df520;
S_0x8cad1ee80 .scope module, "mac2" "mac_unit" 6 53, 7 1 0, S_0x8cad1ea00;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb039440 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb039480 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb0394c0 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0d4820_0 .net/s *"_ivl_0", 31 0, L_0x8cb0df5c0;  1 drivers
v0x8cb0d48c0_0 .net/s *"_ivl_2", 31 0, L_0x8cb0df660;  1 drivers
v0x8cb0d4960_0 .net *"_ivl_7", 0 0, L_0x8cad29180;  1 drivers
v0x8cb0d4a00_0 .net *"_ivl_9", 7 0, L_0x8cad29220;  1 drivers
L_0x8ca878ef8 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d4aa0_0 .net/s "acc_in", 39 0, L_0x8ca878ef8;  1 drivers
v0x8cb0d4b40_0 .net/s "acc_out", 39 0, L_0x8cad2c3c0;  alias, 1 drivers
v0x8cb0d4be0_0 .net/s "product", 31 0, L_0x8cb0df700;  1 drivers
v0x8cb0d4c80_0 .net/s "product_ext", 39 0, L_0x8cb0df7a0;  1 drivers
v0x8cb0d4d20_0 .net/s "w", 15 0, L_0x8cad29360;  1 drivers
v0x8cb0d4dc0_0 .net/s "x", 15 0, L_0x8cad292c0;  1 drivers
L_0x8cb0df5c0 .extend/s 32, L_0x8cad292c0;
L_0x8cb0df660 .extend/s 32, L_0x8cad29360;
L_0x8cb0df700 .arith/mult 32, L_0x8cb0df5c0, L_0x8cb0df660;
L_0x8cad29180 .part L_0x8cb0df700, 31, 1;
L_0x8cad29220 .repeat 8, 8, L_0x8cad29180;
L_0x8cb0df7a0 .concat [ 32 8 0 0], L_0x8cb0df700, L_0x8cad29220;
L_0x8cad2c3c0 .arith/sum 40, L_0x8ca878ef8, L_0x8cb0df7a0;
S_0x8cad1f000 .scope module, "mac3" "mac_unit" 6 63, 7 1 0, S_0x8cad1ea00;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb039500 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb039540 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb039580 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0d4e60_0 .net/s *"_ivl_0", 31 0, L_0x8cb0df840;  1 drivers
v0x8cb0d4f00_0 .net/s *"_ivl_2", 31 0, L_0x8cb0df8e0;  1 drivers
v0x8cb0d4fa0_0 .net *"_ivl_7", 0 0, L_0x8cad29400;  1 drivers
v0x8cb0d5040_0 .net *"_ivl_9", 7 0, L_0x8cad294a0;  1 drivers
L_0x8ca878f40 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d50e0_0 .net/s "acc_in", 39 0, L_0x8ca878f40;  1 drivers
v0x8cb0d5180_0 .net/s "acc_out", 39 0, L_0x8cad2c460;  alias, 1 drivers
v0x8cb0d5220_0 .net/s "product", 31 0, L_0x8cb0df980;  1 drivers
v0x8cb0d52c0_0 .net/s "product_ext", 39 0, L_0x8cb0dfa20;  1 drivers
v0x8cb0d5360_0 .net/s "w", 15 0, L_0x8cad295e0;  1 drivers
v0x8cb0d5400_0 .net/s "x", 15 0, L_0x8cad29540;  1 drivers
L_0x8cb0df840 .extend/s 32, L_0x8cad29540;
L_0x8cb0df8e0 .extend/s 32, L_0x8cad295e0;
L_0x8cb0df980 .arith/mult 32, L_0x8cb0df840, L_0x8cb0df8e0;
L_0x8cad29400 .part L_0x8cb0df980, 31, 1;
L_0x8cad294a0 .repeat 8, 8, L_0x8cad29400;
L_0x8cb0dfa20 .concat [ 32 8 0 0], L_0x8cb0df980, L_0x8cad294a0;
L_0x8cad2c460 .arith/sum 40, L_0x8ca878f40, L_0x8cb0dfa20;
S_0x8cad1f180 .scope module, "mac4" "mac_unit" 6 73, 7 1 0, S_0x8cad1ea00;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb0395c0 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb039600 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb039640 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0d54a0_0 .net/s *"_ivl_0", 31 0, L_0x8cb0dfac0;  1 drivers
v0x8cb0d5540_0 .net/s *"_ivl_2", 31 0, L_0x8cb0dfb60;  1 drivers
v0x8cb0d55e0_0 .net *"_ivl_7", 0 0, L_0x8cad29680;  1 drivers
v0x8cb0d5680_0 .net *"_ivl_9", 7 0, L_0x8cad29720;  1 drivers
L_0x8ca878f88 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d5720_0 .net/s "acc_in", 39 0, L_0x8ca878f88;  1 drivers
v0x8cb0d57c0_0 .net/s "acc_out", 39 0, L_0x8cad2c500;  alias, 1 drivers
v0x8cb0d5860_0 .net/s "product", 31 0, L_0x8cb0dfc00;  1 drivers
v0x8cb0d5900_0 .net/s "product_ext", 39 0, L_0x8cb0dfca0;  1 drivers
v0x8cb0d59a0_0 .net/s "w", 15 0, L_0x8cad29860;  1 drivers
v0x8cb0d5a40_0 .net/s "x", 15 0, L_0x8cad297c0;  1 drivers
L_0x8cb0dfac0 .extend/s 32, L_0x8cad297c0;
L_0x8cb0dfb60 .extend/s 32, L_0x8cad29860;
L_0x8cb0dfc00 .arith/mult 32, L_0x8cb0dfac0, L_0x8cb0dfb60;
L_0x8cad29680 .part L_0x8cb0dfc00, 31, 1;
L_0x8cad29720 .repeat 8, 8, L_0x8cad29680;
L_0x8cb0dfca0 .concat [ 32 8 0 0], L_0x8cb0dfc00, L_0x8cad29720;
L_0x8cad2c500 .arith/sum 40, L_0x8ca878f88, L_0x8cb0dfca0;
S_0x8cad1f300 .scope module, "mac5" "mac_unit" 6 83, 7 1 0, S_0x8cad1ea00;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb039680 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb0396c0 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb039700 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0d5ae0_0 .net/s *"_ivl_0", 31 0, L_0x8cb0dfd40;  1 drivers
v0x8cb0d5b80_0 .net/s *"_ivl_2", 31 0, L_0x8cb0dfde0;  1 drivers
v0x8cb0d5c20_0 .net *"_ivl_7", 0 0, L_0x8cad29900;  1 drivers
v0x8cb0d5cc0_0 .net *"_ivl_9", 7 0, L_0x8cad299a0;  1 drivers
L_0x8ca878fd0 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d5d60_0 .net/s "acc_in", 39 0, L_0x8ca878fd0;  1 drivers
v0x8cb0d5e00_0 .net/s "acc_out", 39 0, L_0x8cad2c5a0;  alias, 1 drivers
v0x8cb0d5ea0_0 .net/s "product", 31 0, L_0x8cb0dfe80;  1 drivers
v0x8cb0d5f40_0 .net/s "product_ext", 39 0, L_0x8cb0dff20;  1 drivers
v0x8cb0d5fe0_0 .net/s "w", 15 0, L_0x8cad29ae0;  1 drivers
v0x8cb0d6080_0 .net/s "x", 15 0, L_0x8cad29a40;  1 drivers
L_0x8cb0dfd40 .extend/s 32, L_0x8cad29a40;
L_0x8cb0dfde0 .extend/s 32, L_0x8cad29ae0;
L_0x8cb0dfe80 .arith/mult 32, L_0x8cb0dfd40, L_0x8cb0dfde0;
L_0x8cad29900 .part L_0x8cb0dfe80, 31, 1;
L_0x8cad299a0 .repeat 8, 8, L_0x8cad29900;
L_0x8cb0dff20 .concat [ 32 8 0 0], L_0x8cb0dfe80, L_0x8cad299a0;
L_0x8cad2c5a0 .arith/sum 40, L_0x8ca878fd0, L_0x8cb0dff20;
S_0x8cad1f480 .scope module, "mac6" "mac_unit" 6 93, 7 1 0, S_0x8cad1ea00;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb039740 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb039780 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb0397c0 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0d6120_0 .net/s *"_ivl_0", 31 0, L_0x8cb0e0000;  1 drivers
v0x8cb0d61c0_0 .net/s *"_ivl_2", 31 0, L_0x8cb0e00a0;  1 drivers
v0x8cb0d6260_0 .net *"_ivl_7", 0 0, L_0x8cad29b80;  1 drivers
v0x8cb0d6300_0 .net *"_ivl_9", 7 0, L_0x8cad29c20;  1 drivers
L_0x8ca879018 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d63a0_0 .net/s "acc_in", 39 0, L_0x8ca879018;  1 drivers
v0x8cb0d6440_0 .net/s "acc_out", 39 0, L_0x8cad2c640;  alias, 1 drivers
v0x8cb0d64e0_0 .net/s "product", 31 0, L_0x8cb0e0140;  1 drivers
v0x8cb0d6580_0 .net/s "product_ext", 39 0, L_0x8cb0e01e0;  1 drivers
v0x8cb0d6620_0 .net/s "w", 15 0, L_0x8cad29d60;  1 drivers
v0x8cb0d66c0_0 .net/s "x", 15 0, L_0x8cad29cc0;  1 drivers
L_0x8cb0e0000 .extend/s 32, L_0x8cad29cc0;
L_0x8cb0e00a0 .extend/s 32, L_0x8cad29d60;
L_0x8cb0e0140 .arith/mult 32, L_0x8cb0e0000, L_0x8cb0e00a0;
L_0x8cad29b80 .part L_0x8cb0e0140, 31, 1;
L_0x8cad29c20 .repeat 8, 8, L_0x8cad29b80;
L_0x8cb0e01e0 .concat [ 32 8 0 0], L_0x8cb0e0140, L_0x8cad29c20;
L_0x8cad2c640 .arith/sum 40, L_0x8ca879018, L_0x8cb0e01e0;
S_0x8cad1f600 .scope module, "mac7" "mac_unit" 6 103, 7 1 0, S_0x8cad1ea00;
 .timescale 0 0;
    .port_info 0 /INPUT 16 "x";
    .port_info 1 /INPUT 16 "w";
    .port_info 2 /INPUT 40 "acc_in";
    .port_info 3 /OUTPUT 40 "acc_out";
P_0x8cb039800 .param/l "ACC_WIDTH" 0 7 3, +C4<00000000000000000000000000101000>;
P_0x8cb039840 .param/l "DATA_WIDTH" 0 7 2, +C4<00000000000000000000000000010000>;
P_0x8cb039880 .param/l "PROD_WIDTH" 1 7 11, +C4<0000000000000000000000000000000000000000000000000000000000100000>;
v0x8cb0d6760_0 .net/s *"_ivl_0", 31 0, L_0x8cb0e0280;  1 drivers
v0x8cb0d6800_0 .net/s *"_ivl_2", 31 0, L_0x8cb0e0320;  1 drivers
v0x8cb0d68a0_0 .net *"_ivl_7", 0 0, L_0x8cad29e00;  1 drivers
v0x8cb0d6940_0 .net *"_ivl_9", 7 0, L_0x8cad29ea0;  1 drivers
L_0x8ca879060 .functor BUFT 1, C4<0000000000000000000000000000000000000000>, C4<0>, C4<0>, C4<0>;
v0x8cb0d69e0_0 .net/s "acc_in", 39 0, L_0x8ca879060;  1 drivers
v0x8cb0d6a80_0 .net/s "acc_out", 39 0, L_0x8cad2c6e0;  alias, 1 drivers
v0x8cb0d6b20_0 .net/s "product", 31 0, L_0x8cb0e03c0;  1 drivers
v0x8cb0d6bc0_0 .net/s "product_ext", 39 0, L_0x8cb0e0460;  1 drivers
v0x8cb0d6c60_0 .net/s "w", 15 0, L_0x8cad29fe0;  1 drivers
v0x8cb0d6d00_0 .net/s "x", 15 0, L_0x8cad29f40;  1 drivers
L_0x8cb0e0280 .extend/s 32, L_0x8cad29f40;
L_0x8cb0e0320 .extend/s 32, L_0x8cad29fe0;
L_0x8cb0e03c0 .arith/mult 32, L_0x8cb0e0280, L_0x8cb0e0320;
L_0x8cad29e00 .part L_0x8cb0e03c0, 31, 1;
L_0x8cad29ea0 .repeat 8, 8, L_0x8cad29e00;
L_0x8cb0e0460 .concat [ 32 8 0 0], L_0x8cb0e03c0, L_0x8cad29ea0;
L_0x8cad2c6e0 .arith/sum 40, L_0x8ca879060, L_0x8cb0e0460;
S_0x8cad1f780 .scope function.vec4.u16, "q8_8" "q8_8" 3 59, 3 59 0, S_0x10502b920;
 .timescale -9 -12;
; Variable q8_8 is vec4 return value of scope S_0x8cad1f780
v0x8cb0d97c0_0 .var/real "value", 0 0;
TD_tb.q8_8 ;
    %load/real v0x8cb0d97c0_0;
    %pushi/real 1073741824, 4074; load=256.000
    %mul/wr;
    %vpi_func 3 62 "$rtoi" 32, W<0,r> {0 1 0};
    %pad/s 16;
    %ret/vec4 0, 0, 16;  Assign to q8_8 (store_vec4_to_lval)
    %end;
S_0x8cad1f900 .scope task, "run_layer" "run_layer" 3 66, 3 66 0, S_0x10502b920;
 .timescale -9 -12;
E_0x8cacabc00 .event anyedge, v0x8cb0d9220_0;
TD_tb.run_layer ;
    %wait E_0x8cacab2c0;
    %pushi/vec4 1, 0, 1;
    %store/vec4 v0x8cb0d9d60_0, 0, 1;
    %wait E_0x8cacab2c0;
    %pushi/vec4 0, 0, 1;
    %store/vec4 v0x8cb0d9d60_0, 0, 1;
T_1.0 ;
    %load/vec4 v0x8cb0d9a40_0;
    %pad/u 32;
    %pushi/vec4 1, 0, 32;
    %cmp/e;
    %flag_get/vec4 4;
    %cmpi/ne 1, 0, 1;
    %jmp/0xz T_1.1, 6;
    %wait E_0x8cacabc00;
    %jmp T_1.0;
T_1.1 ;
    %wait E_0x8cacab2c0;
    %end;
    .scope S_0x10502a8e0;
T_2 ;
    %wait E_0x8cacab2c0;
    %load/vec4 v0x8cb0c8dc0_0;
    %flag_set/vec4 8;
    %jmp/0xz  T_2.0, 8;
    %pushi/vec4 0, 0, 2;
    %assign/vec4 v0x8cb0c8d20_0, 0;
    %pushi/vec4 0, 0, 40;
    %assign/vec4 v0x8cb0c86e0_0, 0;
    %pushi/vec4 0, 0, 16;
    %assign/vec4 v0x8cb0c9180_0, 0;
    %pushi/vec4 0, 0, 1;
    %assign/vec4 v0x8cb0c8a00_0, 0;
    %pushi/vec4 0, 0, 1;
    %assign/vec4 v0x8cb0c8b40_0, 0;
    %jmp T_2.1;
T_2.0 ;
    %pushi/vec4 0, 0, 1;
    %assign/vec4 v0x8cb0c8b40_0, 0;
    %load/vec4 v0x8cb0c8e60_0;
    %flag_set/vec4 9;
    %flag_get/vec4 9;
    %jmp/0 T_2.4, 9;
    %load/vec4 v0x8cb0c8a00_0;
    %nor/r;
    %and;
T_2.4;
    %flag_set/vec4 8;
    %jmp/0xz  T_2.2, 8;
    %pushi/vec4 0, 0, 2;
    %assign/vec4 v0x8cb0c8d20_0, 0;
    %pushi/vec4 0, 0, 40;
    %assign/vec4 v0x8cb0c86e0_0, 0;
    %pushi/vec4 1, 0, 1;
    %assign/vec4 v0x8cb0c8a00_0, 0;
    %jmp T_2.3;
T_2.2 ;
    %load/vec4 v0x8cb0c8a00_0;
    %flag_set/vec4 8;
    %jmp/0xz  T_2.5, 8;
    %load/vec4 v0x8cb0c8d20_0;
    %pad/u 32;
    %cmpi/e 3, 0, 32;
    %jmp/0xz  T_2.7, 4;
    %load/vec4 v0x8cb0c8be0_0;
    %assign/vec4 v0x8cb0c86e0_0, 0;
    %load/vec4 v0x8cb0c8c80_0;
    %cmpi/s 0, 0, 40;
    %flag_or 5, 4;
    %jmp/0xz  T_2.9, 5;
    %pushi/vec4 0, 0, 16;
    %assign/vec4 v0x8cb0c9180_0, 0;
    %jmp T_2.10;
T_2.9 ;
    %load/vec4 v0x8cb0c8c80_0;
    %cmpi/s 32767, 0, 40;
    %flag_or 5, 4; GT is !LE
    %flag_inv 5;
    %jmp/0xz  T_2.11, 5;
    %pushi/vec4 32767, 0, 16;
    %assign/vec4 v0x8cb0c9180_0, 0;
    %jmp T_2.12;
T_2.11 ;
    %load/vec4 v0x8cb0c8c80_0;
    %parti/s 16, 0, 2;
    %assign/vec4 v0x8cb0c9180_0, 0;
T_2.12 ;
T_2.10 ;
    %pushi/vec4 0, 0, 1;
    %assign/vec4 v0x8cb0c8a00_0, 0;
    %pushi/vec4 1, 0, 1;
    %assign/vec4 v0x8cb0c8b40_0, 0;
    %jmp T_2.8;
T_2.7 ;
    %load/vec4 v0x8cb0c8780_0;
    %assign/vec4 v0x8cb0c86e0_0, 0;
    %load/vec4 v0x8cb0c8d20_0;
    %addi 1, 0, 2;
    %assign/vec4 v0x8cb0c8d20_0, 0;
T_2.8 ;
T_2.5 ;
T_2.3 ;
T_2.1 ;
    %jmp T_2;
    .thread T_2;
    .scope S_0x8cad1c780;
T_3 ;
    %wait E_0x8cacab2c0;
    %load/vec4 v0x8cb0ce260_0;
    %flag_set/vec4 8;
    %jmp/0xz  T_3.0, 8;
    %pushi/vec4 0, 0, 2;
    %assign/vec4 v0x8cb0ce1c0_0, 0;
    %pushi/vec4 0, 0, 40;
    %assign/vec4 v0x8cb0cdb80_0, 0;
    %pushi/vec4 0, 0, 16;
    %assign/vec4 v0x8cb0ce620_0, 0;
    %pushi/vec4 0, 0, 1;
    %assign/vec4 v0x8cb0cdea0_0, 0;
    %pushi/vec4 0, 0, 1;
    %assign/vec4 v0x8cb0cdfe0_0, 0;
    %jmp T_3.1;
T_3.0 ;
    %pushi/vec4 0, 0, 1;
    %assign/vec4 v0x8cb0cdfe0_0, 0;
    %load/vec4 v0x8cb0ce300_0;
    %flag_set/vec4 9;
    %flag_get/vec4 9;
    %jmp/0 T_3.4, 9;
    %load/vec4 v0x8cb0cdea0_0;
    %nor/r;
    %and;
T_3.4;
    %flag_set/vec4 8;
    %jmp/0xz  T_3.2, 8;
    %pushi/vec4 0, 0, 2;
    %assign/vec4 v0x8cb0ce1c0_0, 0;
    %pushi/vec4 0, 0, 40;
    %assign/vec4 v0x8cb0cdb80_0, 0;
    %pushi/vec4 1, 0, 1;
    %assign/vec4 v0x8cb0cdea0_0, 0;
    %jmp T_3.3;
T_3.2 ;
    %load/vec4 v0x8cb0cdea0_0;
    %flag_set/vec4 8;
    %jmp/0xz  T_3.5, 8;
    %load/vec4 v0x8cb0ce1c0_0;
    %pad/u 32;
    %cmpi/e 3, 0, 32;
    %jmp/0xz  T_3.7, 4;
    %load/vec4 v0x8cb0ce080_0;
    %assign/vec4 v0x8cb0cdb80_0, 0;
    %load/vec4 v0x8cb0ce120_0;
    %cmpi/s 0, 0, 40;
    %flag_or 5, 4;
    %jmp/0xz  T_3.9, 5;
    %pushi/vec4 0, 0, 16;
    %assign/vec4 v0x8cb0ce620_0, 0;
    %jmp T_3.10;
T_3.9 ;
    %load/vec4 v0x8cb0ce120_0;
    %cmpi/s 32767, 0, 40;
    %flag_or 5, 4; GT is !LE
    %flag_inv 5;
    %jmp/0xz  T_3.11, 5;
    %pushi/vec4 32767, 0, 16;
    %assign/vec4 v0x8cb0ce620_0, 0;
    %jmp T_3.12;
T_3.11 ;
    %load/vec4 v0x8cb0ce120_0;
    %parti/s 16, 0, 2;
    %assign/vec4 v0x8cb0ce620_0, 0;
T_3.12 ;
T_3.10 ;
    %pushi/vec4 0, 0, 1;
    %assign/vec4 v0x8cb0cdea0_0, 0;
    %pushi/vec4 1, 0, 1;
    %assign/vec4 v0x8cb0cdfe0_0, 0;
    %jmp T_3.8;
T_3.7 ;
    %load/vec4 v0x8cb0cdc20_0;
    %assign/vec4 v0x8cb0cdb80_0, 0;
    %load/vec4 v0x8cb0ce1c0_0;
    %addi 1, 0, 2;
    %assign/vec4 v0x8cb0ce1c0_0, 0;
T_3.8 ;
T_3.5 ;
T_3.3 ;
T_3.1 ;
    %jmp T_3;
    .thread T_3;
    .scope S_0x8cad1d800;
T_4 ;
    %wait E_0x8cacab2c0;
    %load/vec4 v0x8cb0d3700_0;
    %flag_set/vec4 8;
    %jmp/0xz  T_4.0, 8;
    %pushi/vec4 0, 0, 2;
    %assign/vec4 v0x8cb0d3660_0, 0;
    %pushi/vec4 0, 0, 40;
    %assign/vec4 v0x8cb0d3020_0, 0;
    %pushi/vec4 0, 0, 16;
    %assign/vec4 v0x8cb0d3ac0_0, 0;
    %pushi/vec4 0, 0, 1;
    %assign/vec4 v0x8cb0d3340_0, 0;
    %pushi/vec4 0, 0, 1;
    %assign/vec4 v0x8cb0d3480_0, 0;
    %jmp T_4.1;
T_4.0 ;
    %pushi/vec4 0, 0, 1;
    %assign/vec4 v0x8cb0d3480_0, 0;
    %load/vec4 v0x8cb0d37a0_0;
    %flag_set/vec4 9;
    %flag_get/vec4 9;
    %jmp/0 T_4.4, 9;
    %load/vec4 v0x8cb0d3340_0;
    %nor/r;
    %and;
T_4.4;
    %flag_set/vec4 8;
    %jmp/0xz  T_4.2, 8;
    %pushi/vec4 0, 0, 2;
    %assign/vec4 v0x8cb0d3660_0, 0;
    %pushi/vec4 0, 0, 40;
    %assign/vec4 v0x8cb0d3020_0, 0;
    %pushi/vec4 1, 0, 1;
    %assign/vec4 v0x8cb0d3340_0, 0;
    %jmp T_4.3;
T_4.2 ;
    %load/vec4 v0x8cb0d3340_0;
    %flag_set/vec4 8;
    %jmp/0xz  T_4.5, 8;
    %load/vec4 v0x8cb0d3660_0;
    %pad/u 32;
    %cmpi/e 3, 0, 32;
    %jmp/0xz  T_4.7, 4;
    %load/vec4 v0x8cb0d3520_0;
    %assign/vec4 v0x8cb0d3020_0, 0;
    %load/vec4 v0x8cb0d35c0_0;
    %cmpi/s 0, 0, 40;
    %flag_or 5, 4;
    %jmp/0xz  T_4.9, 5;
    %pushi/vec4 0, 0, 16;
    %assign/vec4 v0x8cb0d3ac0_0, 0;
    %jmp T_4.10;
T_4.9 ;
    %load/vec4 v0x8cb0d35c0_0;
    %cmpi/s 32767, 0, 40;
    %flag_or 5, 4; GT is !LE
    %flag_inv 5;
    %jmp/0xz  T_4.11, 5;
    %pushi/vec4 32767, 0, 16;
    %assign/vec4 v0x8cb0d3ac0_0, 0;
    %jmp T_4.12;
T_4.11 ;
    %load/vec4 v0x8cb0d35c0_0;
    %parti/s 16, 0, 2;
    %assign/vec4 v0x8cb0d3ac0_0, 0;
T_4.12 ;
T_4.10 ;
    %pushi/vec4 0, 0, 1;
    %assign/vec4 v0x8cb0d3340_0, 0;
    %pushi/vec4 1, 0, 1;
    %assign/vec4 v0x8cb0d3480_0, 0;
    %jmp T_4.8;
T_4.7 ;
    %load/vec4 v0x8cb0d30c0_0;
    %assign/vec4 v0x8cb0d3020_0, 0;
    %load/vec4 v0x8cb0d3660_0;
    %addi 1, 0, 2;
    %assign/vec4 v0x8cb0d3660_0, 0;
T_4.8 ;
T_4.5 ;
T_4.3 ;
T_4.1 ;
    %jmp T_4;
    .thread T_4;
    .scope S_0x8cad1e880;
T_5 ;
    %wait E_0x8cacab2c0;
    %load/vec4 v0x8cb0d8be0_0;
    %flag_set/vec4 8;
    %jmp/0xz  T_5.0, 8;
    %pushi/vec4 0, 0, 2;
    %assign/vec4 v0x8cb0d8b40_0, 0;
    %pushi/vec4 0, 0, 40;
    %assign/vec4 v0x8cb0d8500_0, 0;
    %pushi/vec4 0, 0, 16;
    %assign/vec4 v0x8cb0d8fa0_0, 0;
    %pushi/vec4 0, 0, 1;
    %assign/vec4 v0x8cb0d8820_0, 0;
    %pushi/vec4 0, 0, 1;
    %assign/vec4 v0x8cb0d8960_0, 0;
    %jmp T_5.1;
T_5.0 ;
    %pushi/vec4 0, 0, 1;
    %assign/vec4 v0x8cb0d8960_0, 0;
    %load/vec4 v0x8cb0d8c80_0;
    %flag_set/vec4 9;
    %flag_get/vec4 9;
    %jmp/0 T_5.4, 9;
    %load/vec4 v0x8cb0d8820_0;
    %nor/r;
    %and;
T_5.4;
    %flag_set/vec4 8;
    %jmp/0xz  T_5.2, 8;
    %pushi/vec4 0, 0, 2;
    %assign/vec4 v0x8cb0d8b40_0, 0;
    %pushi/vec4 0, 0, 40;
    %assign/vec4 v0x8cb0d8500_0, 0;
    %pushi/vec4 1, 0, 1;
    %assign/vec4 v0x8cb0d8820_0, 0;
    %jmp T_5.3;
T_5.2 ;
    %load/vec4 v0x8cb0d8820_0;
    %flag_set/vec4 8;
    %jmp/0xz  T_5.5, 8;
    %load/vec4 v0x8cb0d8b40_0;
    %pad/u 32;
    %cmpi/e 3, 0, 32;
    %jmp/0xz  T_5.7, 4;
    %load/vec4 v0x8cb0d8a00_0;
    %assign/vec4 v0x8cb0d8500_0, 0;
    %load/vec4 v0x8cb0d8aa0_0;
    %cmpi/s 0, 0, 40;
    %flag_or 5, 4;
    %jmp/0xz  T_5.9, 5;
    %pushi/vec4 0, 0, 16;
    %assign/vec4 v0x8cb0d8fa0_0, 0;
    %jmp T_5.10;
T_5.9 ;
    %load/vec4 v0x8cb0d8aa0_0;
    %cmpi/s 32767, 0, 40;
    %flag_or 5, 4; GT is !LE
    %flag_inv 5;
    %jmp/0xz  T_5.11, 5;
    %pushi/vec4 32767, 0, 16;
    %assign/vec4 v0x8cb0d8fa0_0, 0;
    %jmp T_5.12;
T_5.11 ;
    %load/vec4 v0x8cb0d8aa0_0;
    %parti/s 16, 0, 2;
    %assign/vec4 v0x8cb0d8fa0_0, 0;
T_5.12 ;
T_5.10 ;
    %pushi/vec4 0, 0, 1;
    %assign/vec4 v0x8cb0d8820_0, 0;
    %pushi/vec4 1, 0, 1;
    %assign/vec4 v0x8cb0d8960_0, 0;
    %jmp T_5.8;
T_5.7 ;
    %load/vec4 v0x8cb0d85a0_0;
    %assign/vec4 v0x8cb0d8500_0, 0;
    %load/vec4 v0x8cb0d8b40_0;
    %addi 1, 0, 2;
    %assign/vec4 v0x8cb0d8b40_0, 0;
T_5.8 ;
T_5.5 ;
T_5.3 ;
T_5.1 ;
    %jmp T_5;
    .thread T_5;
    .scope S_0x10502b920;
T_6 ;
    %pushi/vec4 0, 0, 1;
    %store/vec4 v0x8cb0d99a0_0, 0, 1;
T_6.0 ;
    %delay 5000, 0;
    %load/vec4 v0x8cb0d99a0_0;
    %inv;
    %store/vec4 v0x8cb0d99a0_0, 0, 1;
    %jmp T_6.0;
T_6.1 ;
    %end;
    .thread T_6;
    .scope S_0x10502b920;
T_7 ;
    %vpi_call/w 3 82 "$dumpfile", "sim/parametric.vcd" {0 0 0};
    %vpi_call/w 3 83 "$dumpvars", 32'sb00000000000000000000000000000000, S_0x10502b920 {0 0 0};
    %pushi/vec4 1, 0, 1;
    %store/vec4 v0x8cb0d9cc0_0, 0, 1;
    %pushi/vec4 0, 0, 1;
    %store/vec4 v0x8cb0d9d60_0, 0, 1;
    %pushi/vec4 0, 0, 512;
    %store/vec4 v0x8cb0d9ea0_0, 0, 512;
    %pushi/vec4 0, 0, 2048;
    %store/vec4 v0x8cb0d9e00_0, 0, 2048;
    %pushi/vec4 0, 0, 64;
    %store/vec4 v0x8cb0d9860_0, 0, 64;
    %pushi/vec4 0, 0, 32;
    %store/vec4 v0x8cb0d9ae0_0, 0, 32;
    %pushi/vec4 2, 0, 32;
T_7.0 %dup/vec4;
    %cmpi/s 0, 0, 32;
    %jmp/1xz T_7.1, 5;
    %jmp/1 T_7.1, 4;
    %subi 1, 0, 32;
    %wait E_0x8cacab2c0;
    %jmp T_7.0;
T_7.1 ;
    %pop/vec4 1;
    %pushi/vec4 0, 0, 1;
    %store/vec4 v0x8cb0d9cc0_0, 0, 1;
    %pushi/vec4 0, 0, 32;
    %store/vec4 v0x8cb0d9c20_0, 0, 32;
T_7.2 ; Top of for-loop
    %load/vec4 v0x8cb0d9c20_0;
    %cmpi/s 32, 0, 32;
	  %jmp/0xz T_7.3, 5;
    %pushi/real 1073741824, 4066; load=1.00000
    %store/real v0x8cb0d97c0_0;
    %callf/vec4 TD_tb.q8_8, S_0x8cad1f780;
    %load/vec4 v0x8cb0d9c20_0;
    %muli 16, 0, 32;
    %ix/vec4/s 4;
    %store/vec4 v0x8cb0d9ea0_0, 4, 16;
T_7.4 ; for-loop step statement
    %load/vec4 v0x8cb0d9c20_0;
    %addi 1, 0, 32;
    %store/vec4 v0x8cb0d9c20_0, 0, 32;
    %jmp T_7.2;
T_7.3 ; for-loop exit label
    %pushi/vec4 0, 0, 32;
    %store/vec4 v0x8cb0d9c20_0, 0, 32;
T_7.5 ; Top of for-loop
    %load/vec4 v0x8cb0d9c20_0;
    %cmpi/s 32, 0, 32;
	  %jmp/0xz T_7.6, 5;
    %pushi/real 1073741824, 4066; load=1.00000
    %store/real v0x8cb0d97c0_0;
    %callf/vec4 TD_tb.q8_8, S_0x8cad1f780;
    %pushi/vec4 0, 0, 32;
    %load/vec4 v0x8cb0d9c20_0;
    %muli 16, 0, 32;
    %add;
    %ix/vec4/s 4;
    %store/vec4 v0x8cb0d9e00_0, 4, 16;
T_7.7 ; for-loop step statement
    %load/vec4 v0x8cb0d9c20_0;
    %addi 1, 0, 32;
    %store/vec4 v0x8cb0d9c20_0, 0, 32;
    %jmp T_7.5;
T_7.6 ; for-loop exit label
    %pushi/vec4 0, 0, 32;
    %store/vec4 v0x8cb0d9c20_0, 0, 32;
T_7.8 ; Top of for-loop
    %load/vec4 v0x8cb0d9c20_0;
    %cmpi/s 32, 0, 32;
	  %jmp/0xz T_7.9, 5;
    %pushi/real 1073741824, 4065; load=0.500000
    %store/real v0x8cb0d97c0_0;
    %callf/vec4 TD_tb.q8_8, S_0x8cad1f780;
    %pushi/vec4 512, 0, 32;
    %load/vec4 v0x8cb0d9c20_0;
    %muli 16, 0, 32;
    %add;
    %ix/vec4/s 4;
    %store/vec4 v0x8cb0d9e00_0, 4, 16;
T_7.10 ; for-loop step statement
    %load/vec4 v0x8cb0d9c20_0;
    %addi 1, 0, 32;
    %store/vec4 v0x8cb0d9c20_0, 0, 32;
    %jmp T_7.8;
T_7.9 ; for-loop exit label
    %pushi/vec4 0, 0, 32;
    %store/vec4 v0x8cb0d9c20_0, 0, 32;
T_7.11 ; Top of for-loop
    %load/vec4 v0x8cb0d9c20_0;
    %cmpi/s 32, 0, 32;
	  %jmp/0xz T_7.12, 5;
    %pushi/real 1073741824, 20449; load=-0.500000
    %store/real v0x8cb0d97c0_0;
    %callf/vec4 TD_tb.q8_8, S_0x8cad1f780;
    %pushi/vec4 1024, 0, 32;
    %load/vec4 v0x8cb0d9c20_0;
    %muli 16, 0, 32;
    %add;
    %ix/vec4/s 4;
    %store/vec4 v0x8cb0d9e00_0, 4, 16;
T_7.13 ; for-loop step statement
    %load/vec4 v0x8cb0d9c20_0;
    %addi 1, 0, 32;
    %store/vec4 v0x8cb0d9c20_0, 0, 32;
    %jmp T_7.11;
T_7.12 ; for-loop exit label
    %pushi/vec4 0, 0, 32;
    %store/vec4 v0x8cb0d9c20_0, 0, 32;
T_7.14 ; Top of for-loop
    %load/vec4 v0x8cb0d9c20_0;
    %cmpi/s 32, 0, 32;
	  %jmp/0xz T_7.15, 5;
    %pushi/real 1073741824, 4067; load=2.00000
    %store/real v0x8cb0d97c0_0;
    %callf/vec4 TD_tb.q8_8, S_0x8cad1f780;
    %pushi/vec4 1536, 0, 32;
    %load/vec4 v0x8cb0d9c20_0;
    %muli 16, 0, 32;
    %add;
    %ix/vec4/s 4;
    %store/vec4 v0x8cb0d9e00_0, 4, 16;
T_7.16 ; for-loop step statement
    %load/vec4 v0x8cb0d9c20_0;
    %addi 1, 0, 32;
    %store/vec4 v0x8cb0d9c20_0, 0, 32;
    %jmp T_7.14;
T_7.15 ; for-loop exit label
    %vpi_call/w 3 192 "$display", "\000" {0 0 0};
    %vpi_call/w 3 193 "$display", "========================================" {0 0 0};
    %vpi_call/w 3 194 "$display", "PARAMETRIC LAYER TEST" {0 0 0};
    %vpi_call/w 3 195 "$display", "N_INPUTS  = %0d", P_0x10502b6a0 {0 0 0};
    %vpi_call/w 3 196 "$display", "N_NEURONS = %0d", P_0x10502b6e0 {0 0 0};
    %vpi_call/w 3 197 "$display", "PARALLEL  = %0d", P_0x10502b720 {0 0 0};
    %vpi_call/w 3 198 "$display", "========================================" {0 0 0};
    %fork TD_tb.run_layer, S_0x8cad1f900;
    %join;
    %pushi/vec4 8192, 0, 32;
    %store/vec4 v0x8cb0d9b80_0, 0, 32;
    %load/vec4 v0x8cb0d9f40_0;
    %parti/s 16, 0, 2;
    %load/vec4 v0x8cb0d9b80_0;
    %parti/s 16, 0, 2;
    %cmp/ne;
    %jmp/0xz  T_7.17, 6;
    %vpi_call/w 3 208 "$display", "FAIL N0: got %0d expected %0d", &PV<v0x8cb0d9f40_0, 0, 16>, v0x8cb0d9b80_0 {0 0 0};
    %load/vec4 v0x8cb0d9ae0_0;
    %addi 1, 0, 32;
    %store/vec4 v0x8cb0d9ae0_0, 0, 32;
    %jmp T_7.18;
T_7.17 ;
    %vpi_call/w 3 213 "$display", "PASS N0: %0d", &PV<v0x8cb0d9f40_0, 0, 16> {0 0 0};
T_7.18 ;
    %pushi/vec4 4096, 0, 32;
    %store/vec4 v0x8cb0d9b80_0, 0, 32;
    %load/vec4 v0x8cb0d9f40_0;
    %parti/s 16, 16, 6;
    %load/vec4 v0x8cb0d9b80_0;
    %parti/s 16, 0, 2;
    %cmp/ne;
    %jmp/0xz  T_7.19, 6;
    %vpi_call/w 3 222 "$display", "FAIL N1: got %0d expected %0d", &PV<v0x8cb0d9f40_0, 16, 16>, v0x8cb0d9b80_0 {0 0 0};
    %load/vec4 v0x8cb0d9ae0_0;
    %addi 1, 0, 32;
    %store/vec4 v0x8cb0d9ae0_0, 0, 32;
    %jmp T_7.20;
T_7.19 ;
    %vpi_call/w 3 227 "$display", "PASS N1: %0d", &PV<v0x8cb0d9f40_0, 16, 16> {0 0 0};
T_7.20 ;
    %pushi/vec4 0, 0, 32;
    %store/vec4 v0x8cb0d9b80_0, 0, 32;
    %load/vec4 v0x8cb0d9f40_0;
    %parti/s 16, 32, 7;
    %cmpi/ne 0, 0, 16;
    %jmp/0xz  T_7.21, 6;
    %vpi_call/w 3 237 "$display", "FAIL N2: got %0d expected 0", &PV<v0x8cb0d9f40_0, 32, 16> {0 0 0};
    %load/vec4 v0x8cb0d9ae0_0;
    %addi 1, 0, 32;
    %store/vec4 v0x8cb0d9ae0_0, 0, 32;
    %jmp T_7.22;
T_7.21 ;
    %vpi_call/w 3 242 "$display", "PASS N2: 0 (ReLU)" {0 0 0};
T_7.22 ;
    %pushi/vec4 16384, 0, 32;
    %store/vec4 v0x8cb0d9b80_0, 0, 32;
    %load/vec4 v0x8cb0d9b80_0;
    %cmpi/s 32767, 0, 32;
    %flag_or 5, 4; GT is !LE
    %flag_inv 5;
    %jmp/0xz  T_7.23, 5;
    %pushi/vec4 32767, 0, 32;
    %store/vec4 v0x8cb0d9b80_0, 0, 32;
T_7.23 ;
    %load/vec4 v0x8cb0d9f40_0;
    %parti/s 16, 48, 7;
    %load/vec4 v0x8cb0d9b80_0;
    %parti/s 16, 0, 2;
    %cmp/ne;
    %jmp/0xz  T_7.25, 6;
    %vpi_call/w 3 260 "$display", "FAIL N3: got %0d expected %0d", &PV<v0x8cb0d9f40_0, 48, 16>, v0x8cb0d9b80_0 {0 0 0};
    %load/vec4 v0x8cb0d9ae0_0;
    %addi 1, 0, 32;
    %store/vec4 v0x8cb0d9ae0_0, 0, 32;
    %jmp T_7.26;
T_7.25 ;
    %load/vec4 v0x8cb0d9b80_0;
    %cmpi/e 32767, 0, 32;
    %jmp/0xz  T_7.27, 4;
    %vpi_call/w 3 266 "$display", "PASS N3: %0d (saturation)", &PV<v0x8cb0d9f40_0, 48, 16> {0 0 0};
    %jmp T_7.28;
T_7.27 ;
    %vpi_call/w 3 268 "$display", "PASS N3: %0d", &PV<v0x8cb0d9f40_0, 48, 16> {0 0 0};
T_7.28 ;
T_7.26 ;
    %load/vec4 v0x8cb0d9900_0;
    %pad/u 32;
    %cmpi/ne 0, 0, 32;
    %jmp/0xz  T_7.29, 6;
    %vpi_call/w 3 329 "$display", "FAIL: busy still active" {0 0 0};
    %load/vec4 v0x8cb0d9ae0_0;
    %addi 1, 0, 32;
    %store/vec4 v0x8cb0d9ae0_0, 0, 32;
T_7.29 ;
    %load/vec4 v0x8cb0d9a40_0;
    %pad/u 32;
    %cmpi/ne 1, 0, 32;
    %jmp/0xz  T_7.31, 6;
    %vpi_call/w 3 334 "$display", "FAIL: done not asserted" {0 0 0};
    %load/vec4 v0x8cb0d9ae0_0;
    %addi 1, 0, 32;
    %store/vec4 v0x8cb0d9ae0_0, 0, 32;
T_7.31 ;
    %vpi_call/w 3 338 "$display", "\000" {0 0 0};
    %vpi_call/w 3 339 "$display", "========================================" {0 0 0};
    %load/vec4 v0x8cb0d9ae0_0;
    %cmpi/e 0, 0, 32;
    %jmp/0xz  T_7.33, 4;
    %vpi_call/w 3 342 "$display", "PARAMETRIC TEST PASSED" {0 0 0};
    %jmp T_7.34;
T_7.33 ;
    %vpi_call/w 3 344 "$display", "PARAMETRIC TEST FAILED: %0d errors", v0x8cb0d9ae0_0 {0 0 0};
T_7.34 ;
    %vpi_call/w 3 346 "$display", "========================================" {0 0 0};
    %vpi_call/w 3 347 "$display", "\000" {0 0 0};
    %vpi_call/w 3 349 "$finish" {0 0 0};
    %end;
    .thread T_7;
# The file index is used to find the file name in the following table.
:file_names 8;
    "N/A";
    "<interactive>";
    "-";
    "sim/parametric_tb.v";
    "rtl/layer.v";
    "rtl/neuron_parallel.v";
    "rtl/mac8.v";
    "rtl/mac_unit.v";
