// ==============================================================
// RTL generated by Vivado(TM) HLS - High-Level Synthesis from C, C++ and SystemC
// Version: 2016.2
// Copyright (C) 1986-2016 Xilinx, Inc. All Rights Reserved.
// 
// ===========================================================

`timescale 1 ns / 1 ps 

(* CORE_GENERATION_INFO="sharedmem,hls_ip_2016_2,{HLS_INPUT_TYPE=c,HLS_INPUT_FLOAT=0,HLS_INPUT_FIXED=0,HLS_INPUT_PART=xc7a35ticsg324-1l,HLS_INPUT_CLOCK=10.000000,HLS_INPUT_ARCH=others,HLS_SYN_CLOCK=4.446125,HLS_SYN_LAT=-1,HLS_SYN_TPT=none,HLS_SYN_MEM=1,HLS_SYN_DSP=0,HLS_SYN_FF=162,HLS_SYN_LUT=135}" *)

module sharedmem (
        ap_clk,
        ap_rst,
        ap_start,
        ap_done,
        ap_idle,
        ap_ready,
        addr0,
        din0,
        dout0_i,
        dout0_o,
        r_req0,
        r_ack0_i,
        r_ack0_o,
        w_req0,
        w_ack0_i,
        w_ack0_o,
        addr1,
        din1,
        dout1_i,
        dout1_o,
        r_req1,
        r_ack1_i,
        r_ack1_o,
        w_req1,
        w_ack1_i,
        w_ack1_o,
        addr2,
        din2,
        dout2_i,
        dout2_o,
        r_req2,
        r_ack2_i,
        r_ack2_o,
        w_req2,
        w_ack2_i,
        w_ack2_o,
        addr3,
        din3,
        dout3_i,
        dout3_o,
        r_req3,
        r_ack3_i,
        r_ack3_o,
        w_req3,
        w_ack3_i,
        w_ack3_o
);

parameter    ap_ST_st1_fsm_0 = 46'b1;
parameter    ap_ST_st2_fsm_1 = 46'b10;
parameter    ap_ST_st3_fsm_2 = 46'b100;
parameter    ap_ST_st4_fsm_3 = 46'b1000;
parameter    ap_ST_st5_fsm_4 = 46'b10000;
parameter    ap_ST_st6_fsm_5 = 46'b100000;
parameter    ap_ST_st7_fsm_6 = 46'b1000000;
parameter    ap_ST_st8_fsm_7 = 46'b10000000;
parameter    ap_ST_st9_fsm_8 = 46'b100000000;
parameter    ap_ST_st10_fsm_9 = 46'b1000000000;
parameter    ap_ST_st11_fsm_10 = 46'b10000000000;
parameter    ap_ST_st12_fsm_11 = 46'b100000000000;
parameter    ap_ST_st13_fsm_12 = 46'b1000000000000;
parameter    ap_ST_st14_fsm_13 = 46'b10000000000000;
parameter    ap_ST_st15_fsm_14 = 46'b100000000000000;
parameter    ap_ST_st16_fsm_15 = 46'b1000000000000000;
parameter    ap_ST_st17_fsm_16 = 46'b10000000000000000;
parameter    ap_ST_st18_fsm_17 = 46'b100000000000000000;
parameter    ap_ST_st19_fsm_18 = 46'b1000000000000000000;
parameter    ap_ST_st20_fsm_19 = 46'b10000000000000000000;
parameter    ap_ST_st21_fsm_20 = 46'b100000000000000000000;
parameter    ap_ST_st22_fsm_21 = 46'b1000000000000000000000;
parameter    ap_ST_st23_fsm_22 = 46'b10000000000000000000000;
parameter    ap_ST_st24_fsm_23 = 46'b100000000000000000000000;
parameter    ap_ST_st25_fsm_24 = 46'b1000000000000000000000000;
parameter    ap_ST_st26_fsm_25 = 46'b10000000000000000000000000;
parameter    ap_ST_st27_fsm_26 = 46'b100000000000000000000000000;
parameter    ap_ST_st28_fsm_27 = 46'b1000000000000000000000000000;
parameter    ap_ST_st29_fsm_28 = 46'b10000000000000000000000000000;
parameter    ap_ST_st30_fsm_29 = 46'b100000000000000000000000000000;
parameter    ap_ST_st31_fsm_30 = 46'b1000000000000000000000000000000;
parameter    ap_ST_st32_fsm_31 = 46'b10000000000000000000000000000000;
parameter    ap_ST_st33_fsm_32 = 46'b100000000000000000000000000000000;
parameter    ap_ST_st34_fsm_33 = 46'b1000000000000000000000000000000000;
parameter    ap_ST_st35_fsm_34 = 46'b10000000000000000000000000000000000;
parameter    ap_ST_st36_fsm_35 = 46'b100000000000000000000000000000000000;
parameter    ap_ST_st37_fsm_36 = 46'b1000000000000000000000000000000000000;
parameter    ap_ST_st38_fsm_37 = 46'b10000000000000000000000000000000000000;
parameter    ap_ST_st39_fsm_38 = 46'b100000000000000000000000000000000000000;
parameter    ap_ST_st40_fsm_39 = 46'b1000000000000000000000000000000000000000;
parameter    ap_ST_st41_fsm_40 = 46'b10000000000000000000000000000000000000000;
parameter    ap_ST_st42_fsm_41 = 46'b100000000000000000000000000000000000000000;
parameter    ap_ST_st43_fsm_42 = 46'b1000000000000000000000000000000000000000000;
parameter    ap_ST_st44_fsm_43 = 46'b10000000000000000000000000000000000000000000;
parameter    ap_ST_st45_fsm_44 = 46'b100000000000000000000000000000000000000000000;
parameter    ap_ST_st46_fsm_45 = 46'b1000000000000000000000000000000000000000000000;
parameter    ap_const_lv32_0 = 32'b00000000000000000000000000000000;
parameter    ap_const_lv8_0 = 8'b00000000;
parameter    ap_const_lv32_A = 32'b1010;
parameter    ap_const_lv32_14 = 32'b10100;
parameter    ap_const_lv32_1E = 32'b11110;
parameter    ap_const_lv32_28 = 32'b101000;
parameter    ap_const_lv32_3 = 32'b11;
parameter    ap_const_lv32_4 = 32'b100;
parameter    ap_const_lv3_4 = 3'b100;
parameter    ap_const_lv3_3 = 3'b11;
parameter    ap_const_lv3_2 = 3'b10;
parameter    ap_const_lv3_1 = 3'b1;
parameter    ap_const_lv32_9 = 32'b1001;
parameter    ap_const_lv32_13 = 32'b10011;
parameter    ap_const_lv32_1D = 32'b11101;
parameter    ap_const_lv32_27 = 32'b100111;
parameter    ap_const_lv9_0 = 9'b000000000;
parameter    ap_const_lv32_2 = 32'b10;
parameter    ap_const_lv3_0 = 3'b000;
parameter    ap_const_lv32_2D = 32'b101101;
parameter    ap_const_lv32_E = 32'b1110;
parameter    ap_const_lv32_18 = 32'b11000;
parameter    ap_const_lv32_22 = 32'b100010;
parameter    ap_const_lv32_2C = 32'b101100;
parameter    ap_const_lv32_5 = 32'b101;
parameter    ap_const_lv32_F = 32'b1111;
parameter    ap_const_lv32_19 = 32'b11001;
parameter    ap_const_lv32_23 = 32'b100011;
parameter    ap_const_lv32_1 = 32'b1;
parameter    ap_const_lv32_2A = 32'b101010;
parameter    ap_const_lv32_24 = 32'b100100;
parameter    ap_const_lv32_20 = 32'b100000;
parameter    ap_const_lv32_1A = 32'b11010;
parameter    ap_const_lv32_16 = 32'b10110;
parameter    ap_const_lv32_10 = 32'b10000;
parameter    ap_const_lv32_C = 32'b1100;
parameter    ap_const_lv32_6 = 32'b110;
parameter    ap_const_lv9_100 = 9'b100000000;
parameter    ap_const_lv9_1 = 9'b1;

input   ap_clk;
input   ap_rst;
input   ap_start;
output   ap_done;
output   ap_idle;
output   ap_ready;
input  [7:0] addr0;
input  [7:0] din0;
input  [7:0] dout0_i;
output  [7:0] dout0_o;
input  [0:0] r_req0;
input  [0:0] r_ack0_i;
output  [0:0] r_ack0_o;
input  [0:0] w_req0;
input  [0:0] w_ack0_i;
output  [0:0] w_ack0_o;
input  [7:0] addr1;
input  [7:0] din1;
input  [7:0] dout1_i;
output  [7:0] dout1_o;
input  [0:0] r_req1;
input  [0:0] r_ack1_i;
output  [0:0] r_ack1_o;
input  [0:0] w_req1;
input  [0:0] w_ack1_i;
output  [0:0] w_ack1_o;
input  [7:0] addr2;
input  [7:0] din2;
input  [7:0] dout2_i;
output  [7:0] dout2_o;
input  [0:0] r_req2;
input  [0:0] r_ack2_i;
output  [0:0] r_ack2_o;
input  [0:0] w_req2;
input  [0:0] w_ack2_i;
output  [0:0] w_ack2_o;
input  [7:0] addr3;
input  [7:0] din3;
input  [7:0] dout3_i;
output  [7:0] dout3_o;
input  [0:0] r_req3;
input  [0:0] r_ack3_i;
output  [0:0] r_ack3_o;
input  [0:0] w_req3;
input  [0:0] w_ack3_i;
output  [0:0] w_ack3_o;

reg ap_idle;

(* fsm_encoding = "none" *) reg   [45:0] ap_CS_fsm;
reg    ap_sig_cseq_ST_st1_fsm_0;
reg    ap_sig_61;
reg   [7:0] addr0_0_data_reg;
reg    addr0_0_vld_reg;
wire    addr0_0_ack_out;
reg   [7:0] dout0_1_data_reg;
reg    dout0_1_vld_reg;
reg    dout0_1_vld_in;
reg   [0:0] r_ack0_1_data_reg;
reg   [0:0] r_ack0_1_data_in;
reg    r_ack0_1_vld_reg;
reg    r_ack0_1_vld_in;
reg   [0:0] w_ack0_1_data_reg;
reg   [0:0] w_ack0_1_data_in;
reg    w_ack0_1_vld_reg;
reg    w_ack0_1_vld_in;
reg   [7:0] addr1_0_data_reg;
reg    addr1_0_vld_reg;
wire    addr1_0_ack_out;
reg   [7:0] dout1_1_data_reg;
reg    dout1_1_vld_reg;
reg    dout1_1_vld_in;
reg   [0:0] r_ack1_1_data_reg;
reg   [0:0] r_ack1_1_data_in;
reg    r_ack1_1_vld_reg;
reg    r_ack1_1_vld_in;
reg   [0:0] w_ack1_1_data_reg;
reg   [0:0] w_ack1_1_data_in;
reg    w_ack1_1_vld_reg;
reg    w_ack1_1_vld_in;
reg   [7:0] addr2_0_data_reg;
reg    addr2_0_vld_reg;
wire    addr2_0_ack_out;
reg   [7:0] dout2_1_data_reg;
reg    dout2_1_vld_reg;
reg    dout2_1_vld_in;
reg   [0:0] r_ack2_1_data_reg;
reg   [0:0] r_ack2_1_data_in;
reg    r_ack2_1_vld_reg;
reg    r_ack2_1_vld_in;
reg   [0:0] w_ack2_1_data_reg;
reg   [0:0] w_ack2_1_data_in;
reg    w_ack2_1_vld_reg;
reg    w_ack2_1_vld_in;
reg   [7:0] addr3_0_data_reg;
reg    addr3_0_vld_reg;
wire    addr3_0_ack_out;
reg   [7:0] dout3_1_data_reg;
reg    dout3_1_vld_reg;
reg    dout3_1_vld_in;
reg   [0:0] r_ack3_1_data_reg;
reg   [0:0] r_ack3_1_data_in;
reg    r_ack3_1_vld_reg;
reg    r_ack3_1_vld_in;
reg   [0:0] w_ack3_1_data_reg;
reg   [0:0] w_ack3_1_data_in;
reg    w_ack3_1_vld_reg;
reg    w_ack3_1_vld_in;
wire   [7:0] mem_q0;
reg    ap_sig_cseq_ST_st11_fsm_10;
reg    ap_sig_786;
reg    ap_sig_cseq_ST_st21_fsm_20;
reg    ap_sig_793;
reg    ap_sig_cseq_ST_st31_fsm_30;
reg    ap_sig_801;
reg    ap_sig_cseq_ST_st41_fsm_40;
reg    ap_sig_809;
wire   [8:0] addr_1_fu_518_p2;
reg    ap_sig_cseq_ST_st4_fsm_3;
reg    ap_sig_819;
wire   [0:0] grp_read_fu_258_p2;
reg    ap_sig_cseq_ST_st5_fsm_4;
reg    ap_sig_828;
wire   [2:0] ch_phi_fu_469_p22;
wire   [0:0] grp_read_fu_270_p2;
reg   [7:0] din3_read_reg_585;
wire   [0:0] grp_read_fu_216_p2;
wire   [0:0] grp_read_fu_228_p2;
reg   [7:0] din2_read_reg_598;
wire   [0:0] grp_read_fu_174_p2;
wire   [0:0] grp_read_fu_186_p2;
reg   [7:0] din1_read_reg_611;
wire   [0:0] grp_read_fu_132_p2;
wire   [0:0] grp_read_fu_144_p2;
reg   [7:0] din0_read_reg_624;
reg    ap_sig_cseq_ST_st10_fsm_9;
reg    ap_sig_900;
reg    ap_sig_cseq_ST_st20_fsm_19;
reg    ap_sig_909;
reg    ap_sig_cseq_ST_st30_fsm_29;
reg    ap_sig_918;
reg    ap_sig_cseq_ST_st40_fsm_39;
reg    ap_sig_927;
reg   [7:0] mem_address0;
reg    mem_ce0;
reg    mem_we0;
reg   [7:0] mem_d0;
reg   [8:0] addr_reg_454;
reg    ap_sig_cseq_ST_st3_fsm_2;
reg    ap_sig_946;
wire   [0:0] exitcond_fu_512_p2;
reg   [2:0] ch_reg_465;
reg    ap_sig_cseq_ST_st46_fsm_45;
reg    ap_sig_958;
reg    ap_sig_cseq_ST_st15_fsm_14;
reg    ap_sig_979;
reg    ap_sig_cseq_ST_st25_fsm_24;
reg    ap_sig_987;
reg    ap_sig_cseq_ST_st35_fsm_34;
reg    ap_sig_995;
reg    ap_sig_cseq_ST_st45_fsm_44;
reg    ap_sig_1003;
wire   [63:0] tmp_s_fu_524_p1;
wire   [63:0] tmp_9_fu_529_p1;
reg    ap_sig_cseq_ST_st6_fsm_5;
reg    ap_sig_1041;
wire   [63:0] tmp_5_fu_534_p1;
wire   [63:0] tmp_8_fu_539_p1;
reg    ap_sig_cseq_ST_st16_fsm_15;
reg    ap_sig_1051;
wire   [63:0] tmp_4_fu_544_p1;
wire   [63:0] tmp_7_fu_549_p1;
reg    ap_sig_cseq_ST_st26_fsm_25;
reg    ap_sig_1061;
wire   [63:0] tmp_3_fu_554_p1;
wire   [63:0] tmp_6_fu_559_p1;
reg    ap_sig_cseq_ST_st36_fsm_35;
reg    ap_sig_1071;
wire   [63:0] tmp_2_fu_564_p1;
reg    ap_sig_cseq_ST_st2_fsm_1;
reg    ap_sig_1080;
reg    ap_sig_cseq_ST_st43_fsm_42;
reg    ap_sig_1097;
reg    ap_sig_cseq_ST_st37_fsm_36;
reg    ap_sig_1109;
reg    ap_sig_cseq_ST_st33_fsm_32;
reg    ap_sig_1126;
reg    ap_sig_cseq_ST_st27_fsm_26;
reg    ap_sig_1138;
reg    ap_sig_cseq_ST_st23_fsm_22;
reg    ap_sig_1155;
reg    ap_sig_cseq_ST_st17_fsm_16;
reg    ap_sig_1167;
reg    ap_sig_cseq_ST_st13_fsm_12;
reg    ap_sig_1184;
reg    ap_sig_cseq_ST_st7_fsm_6;
reg    ap_sig_1197;
reg   [45:0] ap_NS_fsm;

// power-on initialization
initial begin
#0 ap_CS_fsm = 46'b1;
#0 addr0_0_data_reg = 8'b00000000;
#0 addr0_0_vld_reg = 1'b0;
#0 dout0_1_data_reg = 8'b00000000;
#0 dout0_1_vld_reg = 1'b0;
#0 r_ack0_1_data_reg = 1'b0;
#0 r_ack0_1_vld_reg = 1'b0;
#0 w_ack0_1_data_reg = 1'b0;
#0 w_ack0_1_vld_reg = 1'b0;
#0 addr1_0_data_reg = 8'b00000000;
#0 addr1_0_vld_reg = 1'b0;
#0 dout1_1_data_reg = 8'b00000000;
#0 dout1_1_vld_reg = 1'b0;
#0 r_ack1_1_data_reg = 1'b0;
#0 r_ack1_1_vld_reg = 1'b0;
#0 w_ack1_1_data_reg = 1'b0;
#0 w_ack1_1_vld_reg = 1'b0;
#0 addr2_0_data_reg = 8'b00000000;
#0 addr2_0_vld_reg = 1'b0;
#0 dout2_1_data_reg = 8'b00000000;
#0 dout2_1_vld_reg = 1'b0;
#0 r_ack2_1_data_reg = 1'b0;
#0 r_ack2_1_vld_reg = 1'b0;
#0 w_ack2_1_data_reg = 1'b0;
#0 w_ack2_1_vld_reg = 1'b0;
#0 addr3_0_data_reg = 8'b00000000;
#0 addr3_0_vld_reg = 1'b0;
#0 dout3_1_data_reg = 8'b00000000;
#0 dout3_1_vld_reg = 1'b0;
#0 r_ack3_1_data_reg = 1'b0;
#0 r_ack3_1_vld_reg = 1'b0;
#0 w_ack3_1_data_reg = 1'b0;
#0 w_ack3_1_vld_reg = 1'b0;
end

sharedmem_mem #(
    .DataWidth( 8 ),
    .AddressRange( 256 ),
    .AddressWidth( 8 ))
mem_U(
    .clk(ap_clk),
    .reset(ap_rst),
    .address0(mem_address0),
    .ce0(mem_ce0),
    .we0(mem_we0),
    .d0(mem_d0),
    .q0(mem_q0)
);

always @ (posedge ap_clk) begin
    if (ap_rst == 1'b1) begin
        ap_CS_fsm <= ap_ST_st1_fsm_0;
    end else begin
        ap_CS_fsm <= ap_NS_fsm;
    end
end

always @ (posedge ap_clk) begin
    if (((1'b1 == ap_sig_cseq_ST_st4_fsm_3) & (1'b0 == exitcond_fu_512_p2))) begin
        addr_reg_454 <= addr_1_fu_518_p2;
    end else if ((1'b1 == ap_sig_cseq_ST_st3_fsm_2)) begin
        addr_reg_454 <= ap_const_lv9_0;
    end
end

always @ (posedge ap_clk) begin
    if (((1'b1 == ap_sig_cseq_ST_st5_fsm_4) & (((1'b0 == grp_read_fu_216_p2) & (1'b0 == grp_read_fu_228_p2) & (1'b0 == grp_read_fu_174_p2) & (1'b0 == grp_read_fu_186_p2) & (1'b0 == grp_read_fu_132_p2) & (1'b0 == grp_read_fu_144_p2) & (ch_phi_fu_469_p22 == ap_const_lv3_0) & ~(1'b0 == grp_read_fu_258_p2)) | (~(1'b0 == grp_read_fu_270_p2) & (1'b0 == grp_read_fu_216_p2) & (1'b0 == grp_read_fu_228_p2) & (1'b0 == grp_read_fu_174_p2) & (1'b0 == grp_read_fu_186_p2) & (1'b0 == grp_read_fu_132_p2) & (1'b0 == grp_read_fu_144_p2) & (ch_phi_fu_469_p22 == ap_const_lv3_0))))) begin
        ch_reg_465 <= ap_const_lv3_4;
    end else if (((1'b1 == ap_sig_cseq_ST_st5_fsm_4) & (((1'b0 == grp_read_fu_174_p2) & (1'b0 == grp_read_fu_186_p2) & (1'b0 == grp_read_fu_132_p2) & (1'b0 == grp_read_fu_144_p2) & (ch_phi_fu_469_p22 == ap_const_lv3_0) & ~(1'b0 == grp_read_fu_216_p2)) | (~(1'b0 == grp_read_fu_228_p2) & (1'b0 == grp_read_fu_174_p2) & (1'b0 == grp_read_fu_186_p2) & (1'b0 == grp_read_fu_132_p2) & (1'b0 == grp_read_fu_144_p2) & (ch_phi_fu_469_p22 == ap_const_lv3_0))))) begin
        ch_reg_465 <= ap_const_lv3_3;
    end else if (((1'b1 == ap_sig_cseq_ST_st5_fsm_4) & (((1'b0 == grp_read_fu_132_p2) & (1'b0 == grp_read_fu_144_p2) & (ch_phi_fu_469_p22 == ap_const_lv3_0) & ~(1'b0 == grp_read_fu_174_p2)) | (~(1'b0 == grp_read_fu_186_p2) & (1'b0 == grp_read_fu_132_p2) & (1'b0 == grp_read_fu_144_p2) & (ch_phi_fu_469_p22 == ap_const_lv3_0))))) begin
        ch_reg_465 <= ap_const_lv3_2;
    end else if (((1'b1 == ap_sig_cseq_ST_st5_fsm_4) & (((ch_phi_fu_469_p22 == ap_const_lv3_0) & ~(1'b0 == grp_read_fu_132_p2)) | (~(1'b0 == grp_read_fu_144_p2) & (ch_phi_fu_469_p22 == ap_const_lv3_0))))) begin
        ch_reg_465 <= ap_const_lv3_1;
    end else if (((1'b1 == ap_sig_cseq_ST_st46_fsm_45) | ((1'b1 == ap_sig_cseq_ST_st5_fsm_4) & (1'b0 == grp_read_fu_258_p2) & (1'b0 == grp_read_fu_270_p2) & (1'b0 == grp_read_fu_216_p2) & (1'b0 == grp_read_fu_228_p2) & (1'b0 == grp_read_fu_174_p2) & (1'b0 == grp_read_fu_186_p2) & (1'b0 == grp_read_fu_132_p2) & (1'b0 == grp_read_fu_144_p2) & (ch_phi_fu_469_p22 == ap_const_lv3_0)) | ((1'b1 == ap_sig_cseq_ST_st4_fsm_3) & ~(1'b0 == exitcond_fu_512_p2)) | (1'b1 == ap_sig_cseq_ST_st15_fsm_14) | (1'b1 == ap_sig_cseq_ST_st25_fsm_24) | (1'b1 == ap_sig_cseq_ST_st35_fsm_34) | (1'b1 == ap_sig_cseq_ST_st45_fsm_44))) begin
        ch_reg_465 <= ap_const_lv3_0;
    end
end

always @ (posedge ap_clk) begin
    if (((~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == 1'b1) & (1'b0 == addr0_0_vld_reg)) | (~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == 1'b1) & (1'b1 == addr0_0_vld_reg) & (1'b1 == addr0_0_ack_out)))) begin
        addr0_0_data_reg <= addr0;
    end
end

always @ (posedge ap_clk) begin
    if (((~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == 1'b1) & (1'b0 == addr1_0_vld_reg)) | (~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == 1'b1) & (1'b1 == addr1_0_vld_reg) & (1'b1 == addr1_0_ack_out)))) begin
        addr1_0_data_reg <= addr1;
    end
end

always @ (posedge ap_clk) begin
    if (((~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == 1'b1) & (1'b0 == addr2_0_vld_reg)) | (~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == 1'b1) & (1'b1 == addr2_0_vld_reg) & (1'b1 == addr2_0_ack_out)))) begin
        addr2_0_data_reg <= addr2;
    end
end

always @ (posedge ap_clk) begin
    if (((~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == 1'b1) & (1'b0 == addr3_0_vld_reg)) | (~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == 1'b1) & (1'b1 == addr3_0_vld_reg) & (1'b1 == addr3_0_ack_out)))) begin
        addr3_0_data_reg <= addr3;
    end
end

always @ (posedge ap_clk) begin
    if (((1'b1 == ap_sig_cseq_ST_st5_fsm_4) & (ch_phi_fu_469_p22 == ap_const_lv3_1) & (1'b0 == grp_read_fu_132_p2) & ~(1'b0 == grp_read_fu_144_p2))) begin
        din0_read_reg_624 <= din0;
    end
end

always @ (posedge ap_clk) begin
    if (((1'b1 == ap_sig_cseq_ST_st5_fsm_4) & (ch_phi_fu_469_p22 == ap_const_lv3_2) & (1'b0 == grp_read_fu_174_p2) & ~(1'b0 == grp_read_fu_186_p2))) begin
        din1_read_reg_611 <= din1;
    end
end

always @ (posedge ap_clk) begin
    if (((1'b1 == ap_sig_cseq_ST_st5_fsm_4) & (ch_phi_fu_469_p22 == ap_const_lv3_3) & (1'b0 == grp_read_fu_216_p2) & ~(1'b0 == grp_read_fu_228_p2))) begin
        din2_read_reg_598 <= din2;
    end
end

always @ (posedge ap_clk) begin
    if (((1'b1 == ap_sig_cseq_ST_st5_fsm_4) & (ch_phi_fu_469_p22 == ap_const_lv3_4) & (1'b0 == grp_read_fu_258_p2) & ~(1'b0 == grp_read_fu_270_p2))) begin
        din3_read_reg_585 <= din3;
    end
end

always @ (posedge ap_clk) begin
    if (((~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == dout0_1_vld_in) & (1'b0 == dout0_1_vld_reg)) | (~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == dout0_1_vld_in) & (1'b1 == dout0_1_vld_reg) & (1'b1 == 1'b1)))) begin
        dout0_1_data_reg <= mem_q0;
    end
end

always @ (posedge ap_clk) begin
    if (((~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == dout1_1_vld_in) & (1'b0 == dout1_1_vld_reg)) | (~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == dout1_1_vld_in) & (1'b1 == dout1_1_vld_reg) & (1'b1 == 1'b1)))) begin
        dout1_1_data_reg <= mem_q0;
    end
end

always @ (posedge ap_clk) begin
    if (((~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == dout2_1_vld_in) & (1'b0 == dout2_1_vld_reg)) | (~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == dout2_1_vld_in) & (1'b1 == dout2_1_vld_reg) & (1'b1 == 1'b1)))) begin
        dout2_1_data_reg <= mem_q0;
    end
end

always @ (posedge ap_clk) begin
    if (((~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == dout3_1_vld_in) & (1'b0 == dout3_1_vld_reg)) | (~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == dout3_1_vld_in) & (1'b1 == dout3_1_vld_reg) & (1'b1 == 1'b1)))) begin
        dout3_1_data_reg <= mem_q0;
    end
end

always @ (posedge ap_clk) begin
    if (((~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == r_ack0_1_vld_in) & (1'b0 == r_ack0_1_vld_reg)) | (~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == r_ack0_1_vld_in) & (1'b1 == r_ack0_1_vld_reg) & (1'b1 == 1'b1)))) begin
        r_ack0_1_data_reg <= r_ack0_1_data_in;
    end
end

always @ (posedge ap_clk) begin
    if (((~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == r_ack1_1_vld_in) & (1'b0 == r_ack1_1_vld_reg)) | (~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == r_ack1_1_vld_in) & (1'b1 == r_ack1_1_vld_reg) & (1'b1 == 1'b1)))) begin
        r_ack1_1_data_reg <= r_ack1_1_data_in;
    end
end

always @ (posedge ap_clk) begin
    if (((~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == r_ack2_1_vld_in) & (1'b0 == r_ack2_1_vld_reg)) | (~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == r_ack2_1_vld_in) & (1'b1 == r_ack2_1_vld_reg) & (1'b1 == 1'b1)))) begin
        r_ack2_1_data_reg <= r_ack2_1_data_in;
    end
end

always @ (posedge ap_clk) begin
    if (((~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == r_ack3_1_vld_in) & (1'b0 == r_ack3_1_vld_reg)) | (~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == r_ack3_1_vld_in) & (1'b1 == r_ack3_1_vld_reg) & (1'b1 == 1'b1)))) begin
        r_ack3_1_data_reg <= r_ack3_1_data_in;
    end
end

always @ (posedge ap_clk) begin
    if (((~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == w_ack0_1_vld_in) & (1'b0 == w_ack0_1_vld_reg)) | (~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == w_ack0_1_vld_in) & (1'b1 == w_ack0_1_vld_reg) & (1'b1 == 1'b1)))) begin
        w_ack0_1_data_reg <= w_ack0_1_data_in;
    end
end

always @ (posedge ap_clk) begin
    if (((~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == w_ack1_1_vld_in) & (1'b0 == w_ack1_1_vld_reg)) | (~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == w_ack1_1_vld_in) & (1'b1 == w_ack1_1_vld_reg) & (1'b1 == 1'b1)))) begin
        w_ack1_1_data_reg <= w_ack1_1_data_in;
    end
end

always @ (posedge ap_clk) begin
    if (((~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == w_ack2_1_vld_in) & (1'b0 == w_ack2_1_vld_reg)) | (~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == w_ack2_1_vld_in) & (1'b1 == w_ack2_1_vld_reg) & (1'b1 == 1'b1)))) begin
        w_ack2_1_data_reg <= w_ack2_1_data_in;
    end
end

always @ (posedge ap_clk) begin
    if (((~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == w_ack3_1_vld_in) & (1'b0 == w_ack3_1_vld_reg)) | (~((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0)) & (1'b1 == w_ack3_1_vld_in) & (1'b1 == w_ack3_1_vld_reg) & (1'b1 == 1'b1)))) begin
        w_ack3_1_data_reg <= w_ack3_1_data_in;
    end
end

always @ (*) begin
    if (((1'b0 == ap_start) & (1'b1 == ap_sig_cseq_ST_st1_fsm_0))) begin
        ap_idle = 1'b1;
    end else begin
        ap_idle = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_900) begin
        ap_sig_cseq_ST_st10_fsm_9 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st10_fsm_9 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_786) begin
        ap_sig_cseq_ST_st11_fsm_10 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st11_fsm_10 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_1184) begin
        ap_sig_cseq_ST_st13_fsm_12 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st13_fsm_12 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_979) begin
        ap_sig_cseq_ST_st15_fsm_14 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st15_fsm_14 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_1051) begin
        ap_sig_cseq_ST_st16_fsm_15 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st16_fsm_15 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_1167) begin
        ap_sig_cseq_ST_st17_fsm_16 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st17_fsm_16 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_61) begin
        ap_sig_cseq_ST_st1_fsm_0 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st1_fsm_0 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_909) begin
        ap_sig_cseq_ST_st20_fsm_19 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st20_fsm_19 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_793) begin
        ap_sig_cseq_ST_st21_fsm_20 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st21_fsm_20 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_1155) begin
        ap_sig_cseq_ST_st23_fsm_22 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st23_fsm_22 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_987) begin
        ap_sig_cseq_ST_st25_fsm_24 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st25_fsm_24 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_1061) begin
        ap_sig_cseq_ST_st26_fsm_25 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st26_fsm_25 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_1138) begin
        ap_sig_cseq_ST_st27_fsm_26 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st27_fsm_26 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_1080) begin
        ap_sig_cseq_ST_st2_fsm_1 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st2_fsm_1 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_918) begin
        ap_sig_cseq_ST_st30_fsm_29 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st30_fsm_29 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_801) begin
        ap_sig_cseq_ST_st31_fsm_30 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st31_fsm_30 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_1126) begin
        ap_sig_cseq_ST_st33_fsm_32 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st33_fsm_32 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_995) begin
        ap_sig_cseq_ST_st35_fsm_34 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st35_fsm_34 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_1071) begin
        ap_sig_cseq_ST_st36_fsm_35 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st36_fsm_35 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_1109) begin
        ap_sig_cseq_ST_st37_fsm_36 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st37_fsm_36 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_946) begin
        ap_sig_cseq_ST_st3_fsm_2 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st3_fsm_2 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_927) begin
        ap_sig_cseq_ST_st40_fsm_39 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st40_fsm_39 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_809) begin
        ap_sig_cseq_ST_st41_fsm_40 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st41_fsm_40 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_1097) begin
        ap_sig_cseq_ST_st43_fsm_42 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st43_fsm_42 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_1003) begin
        ap_sig_cseq_ST_st45_fsm_44 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st45_fsm_44 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_958) begin
        ap_sig_cseq_ST_st46_fsm_45 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st46_fsm_45 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_819) begin
        ap_sig_cseq_ST_st4_fsm_3 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st4_fsm_3 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_828) begin
        ap_sig_cseq_ST_st5_fsm_4 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st5_fsm_4 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_1041) begin
        ap_sig_cseq_ST_st6_fsm_5 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st6_fsm_5 = 1'b0;
    end
end

always @ (*) begin
    if (ap_sig_1197) begin
        ap_sig_cseq_ST_st7_fsm_6 = 1'b1;
    end else begin
        ap_sig_cseq_ST_st7_fsm_6 = 1'b0;
    end
end

always @ (*) begin
    if ((1'b1 == ap_sig_cseq_ST_st41_fsm_40)) begin
        dout0_1_vld_in = 1'b1;
    end else begin
        dout0_1_vld_in = 1'b0;
    end
end

always @ (*) begin
    if ((1'b1 == ap_sig_cseq_ST_st31_fsm_30)) begin
        dout1_1_vld_in = 1'b1;
    end else begin
        dout1_1_vld_in = 1'b0;
    end
end

always @ (*) begin
    if ((1'b1 == ap_sig_cseq_ST_st21_fsm_20)) begin
        dout2_1_vld_in = 1'b1;
    end else begin
        dout2_1_vld_in = 1'b0;
    end
end

always @ (*) begin
    if ((1'b1 == ap_sig_cseq_ST_st11_fsm_10)) begin
        dout3_1_vld_in = 1'b1;
    end else begin
        dout3_1_vld_in = 1'b0;
    end
end

always @ (*) begin
    if ((1'b1 == ap_sig_cseq_ST_st36_fsm_35)) begin
        mem_address0 = tmp_6_fu_559_p1;
    end else if ((1'b1 == ap_sig_cseq_ST_st26_fsm_25)) begin
        mem_address0 = tmp_7_fu_549_p1;
    end else if ((1'b1 == ap_sig_cseq_ST_st16_fsm_15)) begin
        mem_address0 = tmp_8_fu_539_p1;
    end else if ((1'b1 == ap_sig_cseq_ST_st6_fsm_5)) begin
        mem_address0 = tmp_9_fu_529_p1;
    end else if ((1'b1 == ap_sig_cseq_ST_st4_fsm_3)) begin
        mem_address0 = tmp_s_fu_524_p1;
    end else if ((1'b1 == ap_sig_cseq_ST_st40_fsm_39)) begin
        mem_address0 = tmp_2_fu_564_p1;
    end else if ((1'b1 == ap_sig_cseq_ST_st30_fsm_29)) begin
        mem_address0 = tmp_3_fu_554_p1;
    end else if ((1'b1 == ap_sig_cseq_ST_st20_fsm_19)) begin
        mem_address0 = tmp_4_fu_544_p1;
    end else if ((1'b1 == ap_sig_cseq_ST_st10_fsm_9)) begin
        mem_address0 = tmp_5_fu_534_p1;
    end else begin
        mem_address0 = 'bx;
    end
end

always @ (*) begin
    if (((1'b1 == ap_sig_cseq_ST_st4_fsm_3) | (1'b1 == ap_sig_cseq_ST_st10_fsm_9) | (1'b1 == ap_sig_cseq_ST_st20_fsm_19) | (1'b1 == ap_sig_cseq_ST_st30_fsm_29) | (1'b1 == ap_sig_cseq_ST_st40_fsm_39) | (1'b1 == ap_sig_cseq_ST_st6_fsm_5) | (1'b1 == ap_sig_cseq_ST_st16_fsm_15) | (1'b1 == ap_sig_cseq_ST_st26_fsm_25) | (1'b1 == ap_sig_cseq_ST_st36_fsm_35))) begin
        mem_ce0 = 1'b1;
    end else begin
        mem_ce0 = 1'b0;
    end
end

always @ (*) begin
    if ((1'b1 == ap_sig_cseq_ST_st36_fsm_35)) begin
        mem_d0 = din0_read_reg_624;
    end else if ((1'b1 == ap_sig_cseq_ST_st26_fsm_25)) begin
        mem_d0 = din1_read_reg_611;
    end else if ((1'b1 == ap_sig_cseq_ST_st16_fsm_15)) begin
        mem_d0 = din2_read_reg_598;
    end else if ((1'b1 == ap_sig_cseq_ST_st6_fsm_5)) begin
        mem_d0 = din3_read_reg_585;
    end else if ((1'b1 == ap_sig_cseq_ST_st4_fsm_3)) begin
        mem_d0 = ap_const_lv8_0;
    end else begin
        mem_d0 = 'bx;
    end
end

always @ (*) begin
    if ((((1'b1 == ap_sig_cseq_ST_st4_fsm_3) & (1'b0 == exitcond_fu_512_p2)) | (1'b1 == ap_sig_cseq_ST_st6_fsm_5) | (1'b1 == ap_sig_cseq_ST_st16_fsm_15) | (1'b1 == ap_sig_cseq_ST_st26_fsm_25) | (1'b1 == ap_sig_cseq_ST_st36_fsm_35))) begin
        mem_we0 = 1'b1;
    end else begin
        mem_we0 = 1'b0;
    end
end

always @ (*) begin
    if ((~(1'b0 == grp_read_fu_132_p2) & (1'b1 == ap_sig_cseq_ST_st43_fsm_42))) begin
        r_ack0_1_data_in = 1'b1;
    end else if (((1'b1 == ap_sig_cseq_ST_st2_fsm_1) | ((1'b1 == ap_sig_cseq_ST_st5_fsm_4) & ~(ch_phi_fu_469_p22 == ap_const_lv3_0) & ~(ch_phi_fu_469_p22 == ap_const_lv3_1) & ~(ch_phi_fu_469_p22 == ap_const_lv3_2) & ~(ch_phi_fu_469_p22 == ap_const_lv3_3) & ~(ch_phi_fu_469_p22 == ap_const_lv3_4)) | ((1'b0 == grp_read_fu_132_p2) & (1'b1 == ap_sig_cseq_ST_st43_fsm_42)))) begin
        r_ack0_1_data_in = 1'b0;
    end else begin
        r_ack0_1_data_in = 'bx;
    end
end

always @ (*) begin
    if (((1'b1 == ap_sig_cseq_ST_st2_fsm_1) | ((1'b1 == ap_sig_cseq_ST_st5_fsm_4) & ~(ch_phi_fu_469_p22 == ap_const_lv3_0) & ~(ch_phi_fu_469_p22 == ap_const_lv3_1) & ~(ch_phi_fu_469_p22 == ap_const_lv3_2) & ~(ch_phi_fu_469_p22 == ap_const_lv3_3) & ~(ch_phi_fu_469_p22 == ap_const_lv3_4)) | (~(1'b0 == grp_read_fu_132_p2) & (1'b1 == ap_sig_cseq_ST_st43_fsm_42)) | ((1'b0 == grp_read_fu_132_p2) & (1'b1 == ap_sig_cseq_ST_st43_fsm_42)))) begin
        r_ack0_1_vld_in = 1'b1;
    end else begin
        r_ack0_1_vld_in = 1'b0;
    end
end

always @ (*) begin
    if ((~(1'b0 == grp_read_fu_174_p2) & (1'b1 == ap_sig_cseq_ST_st33_fsm_32))) begin
        r_ack1_1_data_in = 1'b1;
    end else if (((1'b1 == ap_sig_cseq_ST_st2_fsm_1) | ((1'b1 == ap_sig_cseq_ST_st5_fsm_4) & ~(ch_phi_fu_469_p22 == ap_const_lv3_0) & ~(ch_phi_fu_469_p22 == ap_const_lv3_1) & ~(ch_phi_fu_469_p22 == ap_const_lv3_2) & ~(ch_phi_fu_469_p22 == ap_const_lv3_3) & ~(ch_phi_fu_469_p22 == ap_const_lv3_4)) | ((1'b0 == grp_read_fu_174_p2) & (1'b1 == ap_sig_cseq_ST_st33_fsm_32)))) begin
        r_ack1_1_data_in = 1'b0;
    end else begin
        r_ack1_1_data_in = 'bx;
    end
end

always @ (*) begin
    if (((1'b1 == ap_sig_cseq_ST_st2_fsm_1) | ((1'b1 == ap_sig_cseq_ST_st5_fsm_4) & ~(ch_phi_fu_469_p22 == ap_const_lv3_0) & ~(ch_phi_fu_469_p22 == ap_const_lv3_1) & ~(ch_phi_fu_469_p22 == ap_const_lv3_2) & ~(ch_phi_fu_469_p22 == ap_const_lv3_3) & ~(ch_phi_fu_469_p22 == ap_const_lv3_4)) | (~(1'b0 == grp_read_fu_174_p2) & (1'b1 == ap_sig_cseq_ST_st33_fsm_32)) | ((1'b0 == grp_read_fu_174_p2) & (1'b1 == ap_sig_cseq_ST_st33_fsm_32)))) begin
        r_ack1_1_vld_in = 1'b1;
    end else begin
        r_ack1_1_vld_in = 1'b0;
    end
end

always @ (*) begin
    if ((~(1'b0 == grp_read_fu_216_p2) & (1'b1 == ap_sig_cseq_ST_st23_fsm_22))) begin
        r_ack2_1_data_in = 1'b1;
    end else if (((1'b1 == ap_sig_cseq_ST_st2_fsm_1) | ((1'b1 == ap_sig_cseq_ST_st5_fsm_4) & ~(ch_phi_fu_469_p22 == ap_const_lv3_0) & ~(ch_phi_fu_469_p22 == ap_const_lv3_1) & ~(ch_phi_fu_469_p22 == ap_const_lv3_2) & ~(ch_phi_fu_469_p22 == ap_const_lv3_3) & ~(ch_phi_fu_469_p22 == ap_const_lv3_4)) | ((1'b0 == grp_read_fu_216_p2) & (1'b1 == ap_sig_cseq_ST_st23_fsm_22)))) begin
        r_ack2_1_data_in = 1'b0;
    end else begin
        r_ack2_1_data_in = 'bx;
    end
end

always @ (*) begin
    if (((1'b1 == ap_sig_cseq_ST_st2_fsm_1) | ((1'b1 == ap_sig_cseq_ST_st5_fsm_4) & ~(ch_phi_fu_469_p22 == ap_const_lv3_0) & ~(ch_phi_fu_469_p22 == ap_const_lv3_1) & ~(ch_phi_fu_469_p22 == ap_const_lv3_2) & ~(ch_phi_fu_469_p22 == ap_const_lv3_3) & ~(ch_phi_fu_469_p22 == ap_const_lv3_4)) | (~(1'b0 == grp_read_fu_216_p2) & (1'b1 == ap_sig_cseq_ST_st23_fsm_22)) | ((1'b0 == grp_read_fu_216_p2) & (1'b1 == ap_sig_cseq_ST_st23_fsm_22)))) begin
        r_ack2_1_vld_in = 1'b1;
    end else begin
        r_ack2_1_vld_in = 1'b0;
    end
end

always @ (*) begin
    if ((~(1'b0 == grp_read_fu_258_p2) & (1'b1 == ap_sig_cseq_ST_st13_fsm_12))) begin
        r_ack3_1_data_in = 1'b1;
    end else if (((1'b1 == ap_sig_cseq_ST_st2_fsm_1) | ((1'b1 == ap_sig_cseq_ST_st5_fsm_4) & ~(ch_phi_fu_469_p22 == ap_const_lv3_0) & ~(ch_phi_fu_469_p22 == ap_const_lv3_1) & ~(ch_phi_fu_469_p22 == ap_const_lv3_2) & ~(ch_phi_fu_469_p22 == ap_const_lv3_3) & ~(ch_phi_fu_469_p22 == ap_const_lv3_4)) | ((1'b0 == grp_read_fu_258_p2) & (1'b1 == ap_sig_cseq_ST_st13_fsm_12)))) begin
        r_ack3_1_data_in = 1'b0;
    end else begin
        r_ack3_1_data_in = 'bx;
    end
end

always @ (*) begin
    if (((1'b1 == ap_sig_cseq_ST_st2_fsm_1) | ((1'b1 == ap_sig_cseq_ST_st5_fsm_4) & ~(ch_phi_fu_469_p22 == ap_const_lv3_0) & ~(ch_phi_fu_469_p22 == ap_const_lv3_1) & ~(ch_phi_fu_469_p22 == ap_const_lv3_2) & ~(ch_phi_fu_469_p22 == ap_const_lv3_3) & ~(ch_phi_fu_469_p22 == ap_const_lv3_4)) | (~(1'b0 == grp_read_fu_258_p2) & (1'b1 == ap_sig_cseq_ST_st13_fsm_12)) | ((1'b0 == grp_read_fu_258_p2) & (1'b1 == ap_sig_cseq_ST_st13_fsm_12)))) begin
        r_ack3_1_vld_in = 1'b1;
    end else begin
        r_ack3_1_vld_in = 1'b0;
    end
end

always @ (*) begin
    if ((~(1'b0 == grp_read_fu_144_p2) & (1'b1 == ap_sig_cseq_ST_st37_fsm_36))) begin
        w_ack0_1_data_in = 1'b1;
    end else if (((1'b1 == ap_sig_cseq_ST_st2_fsm_1) | ((1'b1 == ap_sig_cseq_ST_st5_fsm_4) & ~(ch_phi_fu_469_p22 == ap_const_lv3_0) & ~(ch_phi_fu_469_p22 == ap_const_lv3_1) & ~(ch_phi_fu_469_p22 == ap_const_lv3_2) & ~(ch_phi_fu_469_p22 == ap_const_lv3_3) & ~(ch_phi_fu_469_p22 == ap_const_lv3_4)) | ((1'b0 == grp_read_fu_144_p2) & (1'b1 == ap_sig_cseq_ST_st37_fsm_36)))) begin
        w_ack0_1_data_in = 1'b0;
    end else begin
        w_ack0_1_data_in = 'bx;
    end
end

always @ (*) begin
    if (((1'b1 == ap_sig_cseq_ST_st2_fsm_1) | ((1'b1 == ap_sig_cseq_ST_st5_fsm_4) & ~(ch_phi_fu_469_p22 == ap_const_lv3_0) & ~(ch_phi_fu_469_p22 == ap_const_lv3_1) & ~(ch_phi_fu_469_p22 == ap_const_lv3_2) & ~(ch_phi_fu_469_p22 == ap_const_lv3_3) & ~(ch_phi_fu_469_p22 == ap_const_lv3_4)) | (~(1'b0 == grp_read_fu_144_p2) & (1'b1 == ap_sig_cseq_ST_st37_fsm_36)) | ((1'b0 == grp_read_fu_144_p2) & (1'b1 == ap_sig_cseq_ST_st37_fsm_36)))) begin
        w_ack0_1_vld_in = 1'b1;
    end else begin
        w_ack0_1_vld_in = 1'b0;
    end
end

always @ (*) begin
    if ((~(1'b0 == grp_read_fu_186_p2) & (1'b1 == ap_sig_cseq_ST_st27_fsm_26))) begin
        w_ack1_1_data_in = 1'b1;
    end else if (((1'b1 == ap_sig_cseq_ST_st2_fsm_1) | ((1'b1 == ap_sig_cseq_ST_st5_fsm_4) & ~(ch_phi_fu_469_p22 == ap_const_lv3_0) & ~(ch_phi_fu_469_p22 == ap_const_lv3_1) & ~(ch_phi_fu_469_p22 == ap_const_lv3_2) & ~(ch_phi_fu_469_p22 == ap_const_lv3_3) & ~(ch_phi_fu_469_p22 == ap_const_lv3_4)) | ((1'b0 == grp_read_fu_186_p2) & (1'b1 == ap_sig_cseq_ST_st27_fsm_26)))) begin
        w_ack1_1_data_in = 1'b0;
    end else begin
        w_ack1_1_data_in = 'bx;
    end
end

always @ (*) begin
    if (((1'b1 == ap_sig_cseq_ST_st2_fsm_1) | ((1'b1 == ap_sig_cseq_ST_st5_fsm_4) & ~(ch_phi_fu_469_p22 == ap_const_lv3_0) & ~(ch_phi_fu_469_p22 == ap_const_lv3_1) & ~(ch_phi_fu_469_p22 == ap_const_lv3_2) & ~(ch_phi_fu_469_p22 == ap_const_lv3_3) & ~(ch_phi_fu_469_p22 == ap_const_lv3_4)) | (~(1'b0 == grp_read_fu_186_p2) & (1'b1 == ap_sig_cseq_ST_st27_fsm_26)) | ((1'b0 == grp_read_fu_186_p2) & (1'b1 == ap_sig_cseq_ST_st27_fsm_26)))) begin
        w_ack1_1_vld_in = 1'b1;
    end else begin
        w_ack1_1_vld_in = 1'b0;
    end
end

always @ (*) begin
    if ((~(1'b0 == grp_read_fu_228_p2) & (1'b1 == ap_sig_cseq_ST_st17_fsm_16))) begin
        w_ack2_1_data_in = 1'b1;
    end else if (((1'b1 == ap_sig_cseq_ST_st2_fsm_1) | ((1'b1 == ap_sig_cseq_ST_st5_fsm_4) & ~(ch_phi_fu_469_p22 == ap_const_lv3_0) & ~(ch_phi_fu_469_p22 == ap_const_lv3_1) & ~(ch_phi_fu_469_p22 == ap_const_lv3_2) & ~(ch_phi_fu_469_p22 == ap_const_lv3_3) & ~(ch_phi_fu_469_p22 == ap_const_lv3_4)) | ((1'b0 == grp_read_fu_228_p2) & (1'b1 == ap_sig_cseq_ST_st17_fsm_16)))) begin
        w_ack2_1_data_in = 1'b0;
    end else begin
        w_ack2_1_data_in = 'bx;
    end
end

always @ (*) begin
    if (((1'b1 == ap_sig_cseq_ST_st2_fsm_1) | ((1'b1 == ap_sig_cseq_ST_st5_fsm_4) & ~(ch_phi_fu_469_p22 == ap_const_lv3_0) & ~(ch_phi_fu_469_p22 == ap_const_lv3_1) & ~(ch_phi_fu_469_p22 == ap_const_lv3_2) & ~(ch_phi_fu_469_p22 == ap_const_lv3_3) & ~(ch_phi_fu_469_p22 == ap_const_lv3_4)) | (~(1'b0 == grp_read_fu_228_p2) & (1'b1 == ap_sig_cseq_ST_st17_fsm_16)) | ((1'b0 == grp_read_fu_228_p2) & (1'b1 == ap_sig_cseq_ST_st17_fsm_16)))) begin
        w_ack2_1_vld_in = 1'b1;
    end else begin
        w_ack2_1_vld_in = 1'b0;
    end
end

always @ (*) begin
    if ((~(1'b0 == grp_read_fu_270_p2) & (1'b1 == ap_sig_cseq_ST_st7_fsm_6))) begin
        w_ack3_1_data_in = 1'b1;
    end else if (((1'b1 == ap_sig_cseq_ST_st2_fsm_1) | ((1'b1 == ap_sig_cseq_ST_st5_fsm_4) & ~(ch_phi_fu_469_p22 == ap_const_lv3_0) & ~(ch_phi_fu_469_p22 == ap_const_lv3_1) & ~(ch_phi_fu_469_p22 == ap_const_lv3_2) & ~(ch_phi_fu_469_p22 == ap_const_lv3_3) & ~(ch_phi_fu_469_p22 == ap_const_lv3_4)) | ((1'b0 == grp_read_fu_270_p2) & (1'b1 == ap_sig_cseq_ST_st7_fsm_6)))) begin
        w_ack3_1_data_in = 1'b0;
    end else begin
        w_ack3_1_data_in = 'bx;
    end
end

always @ (*) begin
    if (((1'b1 == ap_sig_cseq_ST_st2_fsm_1) | ((1'b1 == ap_sig_cseq_ST_st5_fsm_4) & ~(ch_phi_fu_469_p22 == ap_const_lv3_0) & ~(ch_phi_fu_469_p22 == ap_const_lv3_1) & ~(ch_phi_fu_469_p22 == ap_const_lv3_2) & ~(ch_phi_fu_469_p22 == ap_const_lv3_3) & ~(ch_phi_fu_469_p22 == ap_const_lv3_4)) | (~(1'b0 == grp_read_fu_270_p2) & (1'b1 == ap_sig_cseq_ST_st7_fsm_6)) | ((1'b0 == grp_read_fu_270_p2) & (1'b1 == ap_sig_cseq_ST_st7_fsm_6)))) begin
        w_ack3_1_vld_in = 1'b1;
    end else begin
        w_ack3_1_vld_in = 1'b0;
    end
end

always @ (*) begin
    case (ap_CS_fsm)
        ap_ST_st1_fsm_0 : begin
            if (~(ap_start == 1'b0)) begin
                ap_NS_fsm = ap_ST_st2_fsm_1;
            end else begin
                ap_NS_fsm = ap_ST_st1_fsm_0;
            end
        end
        ap_ST_st2_fsm_1 : begin
            ap_NS_fsm = ap_ST_st3_fsm_2;
        end
        ap_ST_st3_fsm_2 : begin
            ap_NS_fsm = ap_ST_st4_fsm_3;
        end
        ap_ST_st4_fsm_3 : begin
            if ((1'b0 == exitcond_fu_512_p2)) begin
                ap_NS_fsm = ap_ST_st4_fsm_3;
            end else begin
                ap_NS_fsm = ap_ST_st5_fsm_4;
            end
        end
        ap_ST_st5_fsm_4 : begin
            if ((ch_phi_fu_469_p22 == ap_const_lv3_0)) begin
                ap_NS_fsm = ap_ST_st5_fsm_4;
            end else if (((ch_phi_fu_469_p22 == ap_const_lv3_1) & (1'b0 == grp_read_fu_132_p2) & (1'b0 == grp_read_fu_144_p2))) begin
                ap_NS_fsm = ap_ST_st39_fsm_38;
            end else if (((ch_phi_fu_469_p22 == ap_const_lv3_1) & (1'b0 == grp_read_fu_132_p2) & ~(1'b0 == grp_read_fu_144_p2))) begin
                ap_NS_fsm = ap_ST_st36_fsm_35;
            end else if (((ch_phi_fu_469_p22 == ap_const_lv3_1) & ~(1'b0 == grp_read_fu_132_p2))) begin
                ap_NS_fsm = ap_ST_st40_fsm_39;
            end else if (((ch_phi_fu_469_p22 == ap_const_lv3_2) & (1'b0 == grp_read_fu_174_p2) & (1'b0 == grp_read_fu_186_p2))) begin
                ap_NS_fsm = ap_ST_st29_fsm_28;
            end else if (((ch_phi_fu_469_p22 == ap_const_lv3_2) & (1'b0 == grp_read_fu_174_p2) & ~(1'b0 == grp_read_fu_186_p2))) begin
                ap_NS_fsm = ap_ST_st26_fsm_25;
            end else if (((ch_phi_fu_469_p22 == ap_const_lv3_2) & ~(1'b0 == grp_read_fu_174_p2))) begin
                ap_NS_fsm = ap_ST_st30_fsm_29;
            end else if (((ch_phi_fu_469_p22 == ap_const_lv3_3) & (1'b0 == grp_read_fu_216_p2) & (1'b0 == grp_read_fu_228_p2))) begin
                ap_NS_fsm = ap_ST_st19_fsm_18;
            end else if (((ch_phi_fu_469_p22 == ap_const_lv3_3) & (1'b0 == grp_read_fu_216_p2) & ~(1'b0 == grp_read_fu_228_p2))) begin
                ap_NS_fsm = ap_ST_st16_fsm_15;
            end else if (((ch_phi_fu_469_p22 == ap_const_lv3_3) & ~(1'b0 == grp_read_fu_216_p2))) begin
                ap_NS_fsm = ap_ST_st20_fsm_19;
            end else if (((ch_phi_fu_469_p22 == ap_const_lv3_4) & (1'b0 == grp_read_fu_258_p2) & (1'b0 == grp_read_fu_270_p2))) begin
                ap_NS_fsm = ap_ST_st9_fsm_8;
            end else if (((ch_phi_fu_469_p22 == ap_const_lv3_4) & (1'b0 == grp_read_fu_258_p2) & ~(1'b0 == grp_read_fu_270_p2))) begin
                ap_NS_fsm = ap_ST_st6_fsm_5;
            end else if (((ch_phi_fu_469_p22 == ap_const_lv3_4) & ~(1'b0 == grp_read_fu_258_p2))) begin
                ap_NS_fsm = ap_ST_st10_fsm_9;
            end else begin
                ap_NS_fsm = ap_ST_st46_fsm_45;
            end
        end
        ap_ST_st6_fsm_5 : begin
            ap_NS_fsm = ap_ST_st7_fsm_6;
        end
        ap_ST_st7_fsm_6 : begin
            if ((1'b0 == grp_read_fu_270_p2)) begin
                ap_NS_fsm = ap_ST_st9_fsm_8;
            end else begin
                ap_NS_fsm = ap_ST_st8_fsm_7;
            end
        end
        ap_ST_st8_fsm_7 : begin
            ap_NS_fsm = ap_ST_st7_fsm_6;
        end
        ap_ST_st9_fsm_8 : begin
            ap_NS_fsm = ap_ST_st15_fsm_14;
        end
        ap_ST_st10_fsm_9 : begin
            ap_NS_fsm = ap_ST_st11_fsm_10;
        end
        ap_ST_st11_fsm_10 : begin
            ap_NS_fsm = ap_ST_st12_fsm_11;
        end
        ap_ST_st12_fsm_11 : begin
            ap_NS_fsm = ap_ST_st13_fsm_12;
        end
        ap_ST_st13_fsm_12 : begin
            if ((1'b0 == grp_read_fu_258_p2)) begin
                ap_NS_fsm = ap_ST_st15_fsm_14;
            end else begin
                ap_NS_fsm = ap_ST_st14_fsm_13;
            end
        end
        ap_ST_st14_fsm_13 : begin
            ap_NS_fsm = ap_ST_st13_fsm_12;
        end
        ap_ST_st15_fsm_14 : begin
            ap_NS_fsm = ap_ST_st5_fsm_4;
        end
        ap_ST_st16_fsm_15 : begin
            ap_NS_fsm = ap_ST_st17_fsm_16;
        end
        ap_ST_st17_fsm_16 : begin
            if ((1'b0 == grp_read_fu_228_p2)) begin
                ap_NS_fsm = ap_ST_st19_fsm_18;
            end else begin
                ap_NS_fsm = ap_ST_st18_fsm_17;
            end
        end
        ap_ST_st18_fsm_17 : begin
            ap_NS_fsm = ap_ST_st17_fsm_16;
        end
        ap_ST_st19_fsm_18 : begin
            ap_NS_fsm = ap_ST_st25_fsm_24;
        end
        ap_ST_st20_fsm_19 : begin
            ap_NS_fsm = ap_ST_st21_fsm_20;
        end
        ap_ST_st21_fsm_20 : begin
            ap_NS_fsm = ap_ST_st22_fsm_21;
        end
        ap_ST_st22_fsm_21 : begin
            ap_NS_fsm = ap_ST_st23_fsm_22;
        end
        ap_ST_st23_fsm_22 : begin
            if ((1'b0 == grp_read_fu_216_p2)) begin
                ap_NS_fsm = ap_ST_st25_fsm_24;
            end else begin
                ap_NS_fsm = ap_ST_st24_fsm_23;
            end
        end
        ap_ST_st24_fsm_23 : begin
            ap_NS_fsm = ap_ST_st23_fsm_22;
        end
        ap_ST_st25_fsm_24 : begin
            ap_NS_fsm = ap_ST_st5_fsm_4;
        end
        ap_ST_st26_fsm_25 : begin
            ap_NS_fsm = ap_ST_st27_fsm_26;
        end
        ap_ST_st27_fsm_26 : begin
            if ((1'b0 == grp_read_fu_186_p2)) begin
                ap_NS_fsm = ap_ST_st29_fsm_28;
            end else begin
                ap_NS_fsm = ap_ST_st28_fsm_27;
            end
        end
        ap_ST_st28_fsm_27 : begin
            ap_NS_fsm = ap_ST_st27_fsm_26;
        end
        ap_ST_st29_fsm_28 : begin
            ap_NS_fsm = ap_ST_st35_fsm_34;
        end
        ap_ST_st30_fsm_29 : begin
            ap_NS_fsm = ap_ST_st31_fsm_30;
        end
        ap_ST_st31_fsm_30 : begin
            ap_NS_fsm = ap_ST_st32_fsm_31;
        end
        ap_ST_st32_fsm_31 : begin
            ap_NS_fsm = ap_ST_st33_fsm_32;
        end
        ap_ST_st33_fsm_32 : begin
            if ((1'b0 == grp_read_fu_174_p2)) begin
                ap_NS_fsm = ap_ST_st35_fsm_34;
            end else begin
                ap_NS_fsm = ap_ST_st34_fsm_33;
            end
        end
        ap_ST_st34_fsm_33 : begin
            ap_NS_fsm = ap_ST_st33_fsm_32;
        end
        ap_ST_st35_fsm_34 : begin
            ap_NS_fsm = ap_ST_st5_fsm_4;
        end
        ap_ST_st36_fsm_35 : begin
            ap_NS_fsm = ap_ST_st37_fsm_36;
        end
        ap_ST_st37_fsm_36 : begin
            if ((1'b0 == grp_read_fu_144_p2)) begin
                ap_NS_fsm = ap_ST_st39_fsm_38;
            end else begin
                ap_NS_fsm = ap_ST_st38_fsm_37;
            end
        end
        ap_ST_st38_fsm_37 : begin
            ap_NS_fsm = ap_ST_st37_fsm_36;
        end
        ap_ST_st39_fsm_38 : begin
            ap_NS_fsm = ap_ST_st45_fsm_44;
        end
        ap_ST_st40_fsm_39 : begin
            ap_NS_fsm = ap_ST_st41_fsm_40;
        end
        ap_ST_st41_fsm_40 : begin
            ap_NS_fsm = ap_ST_st42_fsm_41;
        end
        ap_ST_st42_fsm_41 : begin
            ap_NS_fsm = ap_ST_st43_fsm_42;
        end
        ap_ST_st43_fsm_42 : begin
            if ((1'b0 == grp_read_fu_132_p2)) begin
                ap_NS_fsm = ap_ST_st45_fsm_44;
            end else begin
                ap_NS_fsm = ap_ST_st44_fsm_43;
            end
        end
        ap_ST_st44_fsm_43 : begin
            ap_NS_fsm = ap_ST_st43_fsm_42;
        end
        ap_ST_st45_fsm_44 : begin
            ap_NS_fsm = ap_ST_st5_fsm_4;
        end
        ap_ST_st46_fsm_45 : begin
            ap_NS_fsm = ap_ST_st5_fsm_4;
        end
        default : begin
            ap_NS_fsm = 'bx;
        end
    endcase
end

assign addr0_0_ack_out = 1'b0;

assign addr1_0_ack_out = 1'b0;

assign addr2_0_ack_out = 1'b0;

assign addr3_0_ack_out = 1'b0;

assign addr_1_fu_518_p2 = (addr_reg_454 + ap_const_lv9_1);

assign ap_done = 1'b0;

assign ap_ready = 1'b0;

always @ (*) begin
    ap_sig_1003 = (1'b1 == ap_CS_fsm[ap_const_lv32_2C]);
end

always @ (*) begin
    ap_sig_1041 = (1'b1 == ap_CS_fsm[ap_const_lv32_5]);
end

always @ (*) begin
    ap_sig_1051 = (1'b1 == ap_CS_fsm[ap_const_lv32_F]);
end

always @ (*) begin
    ap_sig_1061 = (1'b1 == ap_CS_fsm[ap_const_lv32_19]);
end

always @ (*) begin
    ap_sig_1071 = (1'b1 == ap_CS_fsm[ap_const_lv32_23]);
end

always @ (*) begin
    ap_sig_1080 = (1'b1 == ap_CS_fsm[ap_const_lv32_1]);
end

always @ (*) begin
    ap_sig_1097 = (1'b1 == ap_CS_fsm[ap_const_lv32_2A]);
end

always @ (*) begin
    ap_sig_1109 = (1'b1 == ap_CS_fsm[ap_const_lv32_24]);
end

always @ (*) begin
    ap_sig_1126 = (1'b1 == ap_CS_fsm[ap_const_lv32_20]);
end

always @ (*) begin
    ap_sig_1138 = (1'b1 == ap_CS_fsm[ap_const_lv32_1A]);
end

always @ (*) begin
    ap_sig_1155 = (1'b1 == ap_CS_fsm[ap_const_lv32_16]);
end

always @ (*) begin
    ap_sig_1167 = (1'b1 == ap_CS_fsm[ap_const_lv32_10]);
end

always @ (*) begin
    ap_sig_1184 = (1'b1 == ap_CS_fsm[ap_const_lv32_C]);
end

always @ (*) begin
    ap_sig_1197 = (1'b1 == ap_CS_fsm[ap_const_lv32_6]);
end

always @ (*) begin
    ap_sig_61 = (ap_CS_fsm[ap_const_lv32_0] == 1'b1);
end

always @ (*) begin
    ap_sig_786 = (1'b1 == ap_CS_fsm[ap_const_lv32_A]);
end

always @ (*) begin
    ap_sig_793 = (1'b1 == ap_CS_fsm[ap_const_lv32_14]);
end

always @ (*) begin
    ap_sig_801 = (1'b1 == ap_CS_fsm[ap_const_lv32_1E]);
end

always @ (*) begin
    ap_sig_809 = (1'b1 == ap_CS_fsm[ap_const_lv32_28]);
end

always @ (*) begin
    ap_sig_819 = (1'b1 == ap_CS_fsm[ap_const_lv32_3]);
end

always @ (*) begin
    ap_sig_828 = (1'b1 == ap_CS_fsm[ap_const_lv32_4]);
end

always @ (*) begin
    ap_sig_900 = (1'b1 == ap_CS_fsm[ap_const_lv32_9]);
end

always @ (*) begin
    ap_sig_909 = (1'b1 == ap_CS_fsm[ap_const_lv32_13]);
end

always @ (*) begin
    ap_sig_918 = (1'b1 == ap_CS_fsm[ap_const_lv32_1D]);
end

always @ (*) begin
    ap_sig_927 = (1'b1 == ap_CS_fsm[ap_const_lv32_27]);
end

always @ (*) begin
    ap_sig_946 = (1'b1 == ap_CS_fsm[ap_const_lv32_2]);
end

always @ (*) begin
    ap_sig_958 = (1'b1 == ap_CS_fsm[ap_const_lv32_2D]);
end

always @ (*) begin
    ap_sig_979 = (1'b1 == ap_CS_fsm[ap_const_lv32_E]);
end

always @ (*) begin
    ap_sig_987 = (1'b1 == ap_CS_fsm[ap_const_lv32_18]);
end

always @ (*) begin
    ap_sig_995 = (1'b1 == ap_CS_fsm[ap_const_lv32_22]);
end

assign ch_phi_fu_469_p22 = ch_reg_465;

assign dout0_o = dout0_1_data_reg;

assign dout1_o = dout1_1_data_reg;

assign dout2_o = dout2_1_data_reg;

assign dout3_o = dout3_1_data_reg;

assign exitcond_fu_512_p2 = ((addr_reg_454 == ap_const_lv9_100) ? 1'b1 : 1'b0);

assign grp_read_fu_132_p2 = r_req0;

assign grp_read_fu_144_p2 = w_req0;

assign grp_read_fu_174_p2 = r_req1;

assign grp_read_fu_186_p2 = w_req1;

assign grp_read_fu_216_p2 = r_req2;

assign grp_read_fu_228_p2 = w_req2;

assign grp_read_fu_258_p2 = r_req3;

assign grp_read_fu_270_p2 = w_req3;

assign r_ack0_o = r_ack0_1_data_reg;

assign r_ack1_o = r_ack1_1_data_reg;

assign r_ack2_o = r_ack2_1_data_reg;

assign r_ack3_o = r_ack3_1_data_reg;

assign tmp_2_fu_564_p1 = addr0_0_data_reg;

assign tmp_3_fu_554_p1 = addr1_0_data_reg;

assign tmp_4_fu_544_p1 = addr2_0_data_reg;

assign tmp_5_fu_534_p1 = addr3_0_data_reg;

assign tmp_6_fu_559_p1 = addr0_0_data_reg;

assign tmp_7_fu_549_p1 = addr1_0_data_reg;

assign tmp_8_fu_539_p1 = addr2_0_data_reg;

assign tmp_9_fu_529_p1 = addr3_0_data_reg;

assign tmp_s_fu_524_p1 = addr_reg_454;

assign w_ack0_o = w_ack0_1_data_reg;

assign w_ack1_o = w_ack1_1_data_reg;

assign w_ack2_o = w_ack2_1_data_reg;

assign w_ack3_o = w_ack3_1_data_reg;

endmodule //sharedmem
