-- ==============================================================
-- 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.
-- 
-- ===========================================================

library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;

entity sharedmem is
port (
    ap_clk : IN STD_LOGIC;
    ap_rst : IN STD_LOGIC;
    ap_start : IN STD_LOGIC;
    ap_done : OUT STD_LOGIC;
    ap_idle : OUT STD_LOGIC;
    ap_ready : OUT STD_LOGIC;
    addr0 : IN STD_LOGIC_VECTOR (7 downto 0);
    din0 : IN STD_LOGIC_VECTOR (7 downto 0);
    dout0_i : IN STD_LOGIC_VECTOR (7 downto 0);
    dout0_o : OUT STD_LOGIC_VECTOR (7 downto 0);
    r_req0 : IN STD_LOGIC_VECTOR (0 downto 0);
    r_ack0_i : IN STD_LOGIC_VECTOR (0 downto 0);
    r_ack0_o : OUT STD_LOGIC_VECTOR (0 downto 0);
    w_req0 : IN STD_LOGIC_VECTOR (0 downto 0);
    w_ack0_i : IN STD_LOGIC_VECTOR (0 downto 0);
    w_ack0_o : OUT STD_LOGIC_VECTOR (0 downto 0);
    addr1 : IN STD_LOGIC_VECTOR (7 downto 0);
    din1 : IN STD_LOGIC_VECTOR (7 downto 0);
    dout1_i : IN STD_LOGIC_VECTOR (7 downto 0);
    dout1_o : OUT STD_LOGIC_VECTOR (7 downto 0);
    r_req1 : IN STD_LOGIC_VECTOR (0 downto 0);
    r_ack1_i : IN STD_LOGIC_VECTOR (0 downto 0);
    r_ack1_o : OUT STD_LOGIC_VECTOR (0 downto 0);
    w_req1 : IN STD_LOGIC_VECTOR (0 downto 0);
    w_ack1_i : IN STD_LOGIC_VECTOR (0 downto 0);
    w_ack1_o : OUT STD_LOGIC_VECTOR (0 downto 0);
    addr2 : IN STD_LOGIC_VECTOR (7 downto 0);
    din2 : IN STD_LOGIC_VECTOR (7 downto 0);
    dout2_i : IN STD_LOGIC_VECTOR (7 downto 0);
    dout2_o : OUT STD_LOGIC_VECTOR (7 downto 0);
    r_req2 : IN STD_LOGIC_VECTOR (0 downto 0);
    r_ack2_i : IN STD_LOGIC_VECTOR (0 downto 0);
    r_ack2_o : OUT STD_LOGIC_VECTOR (0 downto 0);
    w_req2 : IN STD_LOGIC_VECTOR (0 downto 0);
    w_ack2_i : IN STD_LOGIC_VECTOR (0 downto 0);
    w_ack2_o : OUT STD_LOGIC_VECTOR (0 downto 0);
    addr3 : IN STD_LOGIC_VECTOR (7 downto 0);
    din3 : IN STD_LOGIC_VECTOR (7 downto 0);
    dout3_i : IN STD_LOGIC_VECTOR (7 downto 0);
    dout3_o : OUT STD_LOGIC_VECTOR (7 downto 0);
    r_req3 : IN STD_LOGIC_VECTOR (0 downto 0);
    r_ack3_i : IN STD_LOGIC_VECTOR (0 downto 0);
    r_ack3_o : OUT STD_LOGIC_VECTOR (0 downto 0);
    w_req3 : IN STD_LOGIC_VECTOR (0 downto 0);
    w_ack3_i : IN STD_LOGIC_VECTOR (0 downto 0);
    w_ack3_o : OUT STD_LOGIC_VECTOR (0 downto 0) );
end;


architecture behav of sharedmem is 
    attribute CORE_GENERATION_INFO : STRING;
    attribute CORE_GENERATION_INFO of behav : architecture is
    "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}";
    constant ap_const_logic_1 : STD_LOGIC := '1';
    constant ap_const_logic_0 : STD_LOGIC := '0';
    constant ap_ST_st1_fsm_0 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000000000000000000000000000001";
    constant ap_ST_st2_fsm_1 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000000000000000000000000000010";
    constant ap_ST_st3_fsm_2 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000000000000000000000000000100";
    constant ap_ST_st4_fsm_3 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000000000000000000000000001000";
    constant ap_ST_st5_fsm_4 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000000000000000000000000010000";
    constant ap_ST_st6_fsm_5 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000000000000000000000000100000";
    constant ap_ST_st7_fsm_6 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000000000000000000000001000000";
    constant ap_ST_st8_fsm_7 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000000000000000000000010000000";
    constant ap_ST_st9_fsm_8 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000000000000000000000100000000";
    constant ap_ST_st10_fsm_9 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000000000000000000001000000000";
    constant ap_ST_st11_fsm_10 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000000000000000000010000000000";
    constant ap_ST_st12_fsm_11 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000000000000000000100000000000";
    constant ap_ST_st13_fsm_12 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000000000000000001000000000000";
    constant ap_ST_st14_fsm_13 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000000000000000010000000000000";
    constant ap_ST_st15_fsm_14 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000000000000000100000000000000";
    constant ap_ST_st16_fsm_15 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000000000000001000000000000000";
    constant ap_ST_st17_fsm_16 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000000000000010000000000000000";
    constant ap_ST_st18_fsm_17 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000000000000100000000000000000";
    constant ap_ST_st19_fsm_18 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000000000001000000000000000000";
    constant ap_ST_st20_fsm_19 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000000000010000000000000000000";
    constant ap_ST_st21_fsm_20 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000000000100000000000000000000";
    constant ap_ST_st22_fsm_21 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000000001000000000000000000000";
    constant ap_ST_st23_fsm_22 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000000010000000000000000000000";
    constant ap_ST_st24_fsm_23 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000000100000000000000000000000";
    constant ap_ST_st25_fsm_24 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000001000000000000000000000000";
    constant ap_ST_st26_fsm_25 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000010000000000000000000000000";
    constant ap_ST_st27_fsm_26 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000000100000000000000000000000000";
    constant ap_ST_st28_fsm_27 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000001000000000000000000000000000";
    constant ap_ST_st29_fsm_28 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000010000000000000000000000000000";
    constant ap_ST_st30_fsm_29 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000000100000000000000000000000000000";
    constant ap_ST_st31_fsm_30 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000001000000000000000000000000000000";
    constant ap_ST_st32_fsm_31 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000010000000000000000000000000000000";
    constant ap_ST_st33_fsm_32 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000000100000000000000000000000000000000";
    constant ap_ST_st34_fsm_33 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000001000000000000000000000000000000000";
    constant ap_ST_st35_fsm_34 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000010000000000000000000000000000000000";
    constant ap_ST_st36_fsm_35 : STD_LOGIC_VECTOR (45 downto 0) := "0000000000100000000000000000000000000000000000";
    constant ap_ST_st37_fsm_36 : STD_LOGIC_VECTOR (45 downto 0) := "0000000001000000000000000000000000000000000000";
    constant ap_ST_st38_fsm_37 : STD_LOGIC_VECTOR (45 downto 0) := "0000000010000000000000000000000000000000000000";
    constant ap_ST_st39_fsm_38 : STD_LOGIC_VECTOR (45 downto 0) := "0000000100000000000000000000000000000000000000";
    constant ap_ST_st40_fsm_39 : STD_LOGIC_VECTOR (45 downto 0) := "0000001000000000000000000000000000000000000000";
    constant ap_ST_st41_fsm_40 : STD_LOGIC_VECTOR (45 downto 0) := "0000010000000000000000000000000000000000000000";
    constant ap_ST_st42_fsm_41 : STD_LOGIC_VECTOR (45 downto 0) := "0000100000000000000000000000000000000000000000";
    constant ap_ST_st43_fsm_42 : STD_LOGIC_VECTOR (45 downto 0) := "0001000000000000000000000000000000000000000000";
    constant ap_ST_st44_fsm_43 : STD_LOGIC_VECTOR (45 downto 0) := "0010000000000000000000000000000000000000000000";
    constant ap_ST_st45_fsm_44 : STD_LOGIC_VECTOR (45 downto 0) := "0100000000000000000000000000000000000000000000";
    constant ap_ST_st46_fsm_45 : STD_LOGIC_VECTOR (45 downto 0) := "1000000000000000000000000000000000000000000000";
    constant ap_const_lv32_0 : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000000000";
    constant ap_const_lv1_1 : STD_LOGIC_VECTOR (0 downto 0) := "1";
    constant ap_const_lv8_0 : STD_LOGIC_VECTOR (7 downto 0) := "00000000";
    constant ap_const_lv1_0 : STD_LOGIC_VECTOR (0 downto 0) := "0";
    constant ap_const_lv32_A : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000001010";
    constant ap_const_lv32_14 : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000010100";
    constant ap_const_lv32_1E : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000011110";
    constant ap_const_lv32_28 : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000101000";
    constant ap_const_lv32_3 : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000000011";
    constant ap_const_lv32_4 : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000000100";
    constant ap_const_lv3_4 : STD_LOGIC_VECTOR (2 downto 0) := "100";
    constant ap_const_lv3_3 : STD_LOGIC_VECTOR (2 downto 0) := "011";
    constant ap_const_lv3_2 : STD_LOGIC_VECTOR (2 downto 0) := "010";
    constant ap_const_lv3_1 : STD_LOGIC_VECTOR (2 downto 0) := "001";
    constant ap_const_lv32_9 : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000001001";
    constant ap_const_lv32_13 : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000010011";
    constant ap_const_lv32_1D : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000011101";
    constant ap_const_lv32_27 : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000100111";
    constant ap_const_lv9_0 : STD_LOGIC_VECTOR (8 downto 0) := "000000000";
    constant ap_const_lv32_2 : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000000010";
    constant ap_const_lv3_0 : STD_LOGIC_VECTOR (2 downto 0) := "000";
    constant ap_const_lv32_2D : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000101101";
    constant ap_const_lv32_E : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000001110";
    constant ap_const_lv32_18 : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000011000";
    constant ap_const_lv32_22 : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000100010";
    constant ap_const_lv32_2C : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000101100";
    constant ap_const_lv32_5 : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000000101";
    constant ap_const_lv32_F : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000001111";
    constant ap_const_lv32_19 : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000011001";
    constant ap_const_lv32_23 : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000100011";
    constant ap_const_lv32_1 : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000000001";
    constant ap_const_lv32_2A : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000101010";
    constant ap_const_lv32_24 : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000100100";
    constant ap_const_lv32_20 : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000100000";
    constant ap_const_lv32_1A : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000011010";
    constant ap_const_lv32_16 : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000010110";
    constant ap_const_lv32_10 : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000010000";
    constant ap_const_lv32_C : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000001100";
    constant ap_const_lv32_6 : STD_LOGIC_VECTOR (31 downto 0) := "00000000000000000000000000000110";
    constant ap_const_lv9_100 : STD_LOGIC_VECTOR (8 downto 0) := "100000000";
    constant ap_const_lv9_1 : STD_LOGIC_VECTOR (8 downto 0) := "000000001";

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

    component sharedmem_mem IS
    generic (
        DataWidth : INTEGER;
        AddressRange : INTEGER;
        AddressWidth : INTEGER );
    port (
        clk : IN STD_LOGIC;
        reset : IN STD_LOGIC;
        address0 : IN STD_LOGIC_VECTOR (7 downto 0);
        ce0 : IN STD_LOGIC;
        we0 : IN STD_LOGIC;
        d0 : IN STD_LOGIC_VECTOR (7 downto 0);
        q0 : OUT STD_LOGIC_VECTOR (7 downto 0) );
    end component;



begin
    mem_U : component sharedmem_mem
    generic map (
        DataWidth => 8,
        AddressRange => 256,
        AddressWidth => 8)
    port map (
        clk => ap_clk,
        reset => ap_rst,
        address0 => mem_address0,
        ce0 => mem_ce0,
        we0 => mem_we0,
        d0 => mem_d0,
        q0 => mem_q0);





    ap_CS_fsm_assign_proc : process(ap_clk)
    begin
        if (ap_clk'event and ap_clk =  '1') then
            if (ap_rst = '1') then
                ap_CS_fsm <= ap_ST_st1_fsm_0;
            else
                ap_CS_fsm <= ap_NS_fsm;
            end if;
        end if;
    end process;


    addr0_0_vld_reg_assign_proc : process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
        end if;
    end process;

    addr1_0_vld_reg_assign_proc : process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
        end if;
    end process;

    addr2_0_vld_reg_assign_proc : process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
        end if;
    end process;

    addr3_0_vld_reg_assign_proc : process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
        end if;
    end process;

    addr_reg_454_assign_proc : process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
            if (((ap_const_logic_1 = ap_sig_cseq_ST_st4_fsm_3) and (ap_const_lv1_0 = exitcond_fu_512_p2))) then 
                addr_reg_454 <= addr_1_fu_518_p2;
            elsif ((ap_const_logic_1 = ap_sig_cseq_ST_st3_fsm_2)) then 
                addr_reg_454 <= ap_const_lv9_0;
            end if; 
        end if;
    end process;

    ch_reg_465_assign_proc : process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
            if (((ap_const_logic_1 = ap_sig_cseq_ST_st5_fsm_4) and (((ap_const_lv1_0 = grp_read_fu_216_p2) and (ap_const_lv1_0 = grp_read_fu_228_p2) and (ap_const_lv1_0 = grp_read_fu_174_p2) and (ap_const_lv1_0 = grp_read_fu_186_p2) and (ap_const_lv1_0 = grp_read_fu_132_p2) and (ap_const_lv1_0 = grp_read_fu_144_p2) and (ch_phi_fu_469_p22 = ap_const_lv3_0) and not((ap_const_lv1_0 = grp_read_fu_258_p2))) or (not((ap_const_lv1_0 = grp_read_fu_270_p2)) and (ap_const_lv1_0 = grp_read_fu_216_p2) and (ap_const_lv1_0 = grp_read_fu_228_p2) and (ap_const_lv1_0 = grp_read_fu_174_p2) and (ap_const_lv1_0 = grp_read_fu_186_p2) and (ap_const_lv1_0 = grp_read_fu_132_p2) and (ap_const_lv1_0 = grp_read_fu_144_p2) and (ch_phi_fu_469_p22 = ap_const_lv3_0))))) then 
                ch_reg_465 <= ap_const_lv3_4;
            elsif (((ap_const_logic_1 = ap_sig_cseq_ST_st5_fsm_4) and (((ap_const_lv1_0 = grp_read_fu_174_p2) and (ap_const_lv1_0 = grp_read_fu_186_p2) and (ap_const_lv1_0 = grp_read_fu_132_p2) and (ap_const_lv1_0 = grp_read_fu_144_p2) and (ch_phi_fu_469_p22 = ap_const_lv3_0) and not((ap_const_lv1_0 = grp_read_fu_216_p2))) or (not((ap_const_lv1_0 = grp_read_fu_228_p2)) and (ap_const_lv1_0 = grp_read_fu_174_p2) and (ap_const_lv1_0 = grp_read_fu_186_p2) and (ap_const_lv1_0 = grp_read_fu_132_p2) and (ap_const_lv1_0 = grp_read_fu_144_p2) and (ch_phi_fu_469_p22 = ap_const_lv3_0))))) then 
                ch_reg_465 <= ap_const_lv3_3;
            elsif (((ap_const_logic_1 = ap_sig_cseq_ST_st5_fsm_4) and (((ap_const_lv1_0 = grp_read_fu_132_p2) and (ap_const_lv1_0 = grp_read_fu_144_p2) and (ch_phi_fu_469_p22 = ap_const_lv3_0) and not((ap_const_lv1_0 = grp_read_fu_174_p2))) or (not((ap_const_lv1_0 = grp_read_fu_186_p2)) and (ap_const_lv1_0 = grp_read_fu_132_p2) and (ap_const_lv1_0 = grp_read_fu_144_p2) and (ch_phi_fu_469_p22 = ap_const_lv3_0))))) then 
                ch_reg_465 <= ap_const_lv3_2;
            elsif (((ap_const_logic_1 = ap_sig_cseq_ST_st5_fsm_4) and (((ch_phi_fu_469_p22 = ap_const_lv3_0) and not((ap_const_lv1_0 = grp_read_fu_132_p2))) or (not((ap_const_lv1_0 = grp_read_fu_144_p2)) and (ch_phi_fu_469_p22 = ap_const_lv3_0))))) then 
                ch_reg_465 <= ap_const_lv3_1;
            elsif (((ap_const_logic_1 = ap_sig_cseq_ST_st46_fsm_45) or ((ap_const_logic_1 = ap_sig_cseq_ST_st5_fsm_4) and (ap_const_lv1_0 = grp_read_fu_258_p2) and (ap_const_lv1_0 = grp_read_fu_270_p2) and (ap_const_lv1_0 = grp_read_fu_216_p2) and (ap_const_lv1_0 = grp_read_fu_228_p2) and (ap_const_lv1_0 = grp_read_fu_174_p2) and (ap_const_lv1_0 = grp_read_fu_186_p2) and (ap_const_lv1_0 = grp_read_fu_132_p2) and (ap_const_lv1_0 = grp_read_fu_144_p2) and (ch_phi_fu_469_p22 = ap_const_lv3_0)) or ((ap_const_logic_1 = ap_sig_cseq_ST_st4_fsm_3) and not((ap_const_lv1_0 = exitcond_fu_512_p2))) or (ap_const_logic_1 = ap_sig_cseq_ST_st15_fsm_14) or (ap_const_logic_1 = ap_sig_cseq_ST_st25_fsm_24) or (ap_const_logic_1 = ap_sig_cseq_ST_st35_fsm_34) or (ap_const_logic_1 = ap_sig_cseq_ST_st45_fsm_44))) then 
                ch_reg_465 <= ap_const_lv3_0;
            end if; 
        end if;
    end process;

    dout0_1_vld_reg_assign_proc : process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
        end if;
    end process;

    dout1_1_vld_reg_assign_proc : process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
        end if;
    end process;

    dout2_1_vld_reg_assign_proc : process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
        end if;
    end process;

    dout3_1_vld_reg_assign_proc : process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
        end if;
    end process;

    r_ack0_1_vld_reg_assign_proc : process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
        end if;
    end process;

    r_ack1_1_vld_reg_assign_proc : process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
        end if;
    end process;

    r_ack2_1_vld_reg_assign_proc : process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
        end if;
    end process;

    r_ack3_1_vld_reg_assign_proc : process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
        end if;
    end process;

    w_ack0_1_vld_reg_assign_proc : process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
        end if;
    end process;

    w_ack1_1_vld_reg_assign_proc : process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
        end if;
    end process;

    w_ack2_1_vld_reg_assign_proc : process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
        end if;
    end process;

    w_ack3_1_vld_reg_assign_proc : process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
        end if;
    end process;
    process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
            if (((not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = ap_const_logic_1) and (ap_const_logic_0 = addr0_0_vld_reg)) or (not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = ap_const_logic_1) and (ap_const_logic_1 = addr0_0_vld_reg) and (ap_const_logic_1 = addr0_0_ack_out)))) then
                addr0_0_data_reg <= addr0;
            end if;
        end if;
    end process;
    process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
            if (((not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = ap_const_logic_1) and (ap_const_logic_0 = addr1_0_vld_reg)) or (not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = ap_const_logic_1) and (ap_const_logic_1 = addr1_0_vld_reg) and (ap_const_logic_1 = addr1_0_ack_out)))) then
                addr1_0_data_reg <= addr1;
            end if;
        end if;
    end process;
    process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
            if (((not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = ap_const_logic_1) and (ap_const_logic_0 = addr2_0_vld_reg)) or (not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = ap_const_logic_1) and (ap_const_logic_1 = addr2_0_vld_reg) and (ap_const_logic_1 = addr2_0_ack_out)))) then
                addr2_0_data_reg <= addr2;
            end if;
        end if;
    end process;
    process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
            if (((not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = ap_const_logic_1) and (ap_const_logic_0 = addr3_0_vld_reg)) or (not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = ap_const_logic_1) and (ap_const_logic_1 = addr3_0_vld_reg) and (ap_const_logic_1 = addr3_0_ack_out)))) then
                addr3_0_data_reg <= addr3;
            end if;
        end if;
    end process;
    process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
            if (((ap_const_logic_1 = ap_sig_cseq_ST_st5_fsm_4) and (ch_phi_fu_469_p22 = ap_const_lv3_1) and (ap_const_lv1_0 = grp_read_fu_132_p2) and not((ap_const_lv1_0 = grp_read_fu_144_p2)))) then
                din0_read_reg_624 <= din0;
            end if;
        end if;
    end process;
    process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
            if (((ap_const_logic_1 = ap_sig_cseq_ST_st5_fsm_4) and (ch_phi_fu_469_p22 = ap_const_lv3_2) and (ap_const_lv1_0 = grp_read_fu_174_p2) and not((ap_const_lv1_0 = grp_read_fu_186_p2)))) then
                din1_read_reg_611 <= din1;
            end if;
        end if;
    end process;
    process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
            if (((ap_const_logic_1 = ap_sig_cseq_ST_st5_fsm_4) and (ch_phi_fu_469_p22 = ap_const_lv3_3) and (ap_const_lv1_0 = grp_read_fu_216_p2) and not((ap_const_lv1_0 = grp_read_fu_228_p2)))) then
                din2_read_reg_598 <= din2;
            end if;
        end if;
    end process;
    process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
            if (((ap_const_logic_1 = ap_sig_cseq_ST_st5_fsm_4) and (ch_phi_fu_469_p22 = ap_const_lv3_4) and (ap_const_lv1_0 = grp_read_fu_258_p2) and not((ap_const_lv1_0 = grp_read_fu_270_p2)))) then
                din3_read_reg_585 <= din3;
            end if;
        end if;
    end process;
    process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
            if (((not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = dout0_1_vld_in) and (ap_const_logic_0 = dout0_1_vld_reg)) or (not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = dout0_1_vld_in) and (ap_const_logic_1 = dout0_1_vld_reg) and (ap_const_logic_1 = ap_const_logic_1)))) then
                dout0_1_data_reg <= mem_q0;
            end if;
        end if;
    end process;
    process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
            if (((not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = dout1_1_vld_in) and (ap_const_logic_0 = dout1_1_vld_reg)) or (not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = dout1_1_vld_in) and (ap_const_logic_1 = dout1_1_vld_reg) and (ap_const_logic_1 = ap_const_logic_1)))) then
                dout1_1_data_reg <= mem_q0;
            end if;
        end if;
    end process;
    process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
            if (((not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = dout2_1_vld_in) and (ap_const_logic_0 = dout2_1_vld_reg)) or (not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = dout2_1_vld_in) and (ap_const_logic_1 = dout2_1_vld_reg) and (ap_const_logic_1 = ap_const_logic_1)))) then
                dout2_1_data_reg <= mem_q0;
            end if;
        end if;
    end process;
    process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
            if (((not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = dout3_1_vld_in) and (ap_const_logic_0 = dout3_1_vld_reg)) or (not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = dout3_1_vld_in) and (ap_const_logic_1 = dout3_1_vld_reg) and (ap_const_logic_1 = ap_const_logic_1)))) then
                dout3_1_data_reg <= mem_q0;
            end if;
        end if;
    end process;
    process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
            if (((not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = r_ack0_1_vld_in) and (ap_const_logic_0 = r_ack0_1_vld_reg)) or (not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = r_ack0_1_vld_in) and (ap_const_logic_1 = r_ack0_1_vld_reg) and (ap_const_logic_1 = ap_const_logic_1)))) then
                r_ack0_1_data_reg <= r_ack0_1_data_in;
            end if;
        end if;
    end process;
    process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
            if (((not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = r_ack1_1_vld_in) and (ap_const_logic_0 = r_ack1_1_vld_reg)) or (not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = r_ack1_1_vld_in) and (ap_const_logic_1 = r_ack1_1_vld_reg) and (ap_const_logic_1 = ap_const_logic_1)))) then
                r_ack1_1_data_reg <= r_ack1_1_data_in;
            end if;
        end if;
    end process;
    process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
            if (((not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = r_ack2_1_vld_in) and (ap_const_logic_0 = r_ack2_1_vld_reg)) or (not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = r_ack2_1_vld_in) and (ap_const_logic_1 = r_ack2_1_vld_reg) and (ap_const_logic_1 = ap_const_logic_1)))) then
                r_ack2_1_data_reg <= r_ack2_1_data_in;
            end if;
        end if;
    end process;
    process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
            if (((not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = r_ack3_1_vld_in) and (ap_const_logic_0 = r_ack3_1_vld_reg)) or (not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = r_ack3_1_vld_in) and (ap_const_logic_1 = r_ack3_1_vld_reg) and (ap_const_logic_1 = ap_const_logic_1)))) then
                r_ack3_1_data_reg <= r_ack3_1_data_in;
            end if;
        end if;
    end process;
    process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
            if (((not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = w_ack0_1_vld_in) and (ap_const_logic_0 = w_ack0_1_vld_reg)) or (not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = w_ack0_1_vld_in) and (ap_const_logic_1 = w_ack0_1_vld_reg) and (ap_const_logic_1 = ap_const_logic_1)))) then
                w_ack0_1_data_reg <= w_ack0_1_data_in;
            end if;
        end if;
    end process;
    process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
            if (((not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = w_ack1_1_vld_in) and (ap_const_logic_0 = w_ack1_1_vld_reg)) or (not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = w_ack1_1_vld_in) and (ap_const_logic_1 = w_ack1_1_vld_reg) and (ap_const_logic_1 = ap_const_logic_1)))) then
                w_ack1_1_data_reg <= w_ack1_1_data_in;
            end if;
        end if;
    end process;
    process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
            if (((not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = w_ack2_1_vld_in) and (ap_const_logic_0 = w_ack2_1_vld_reg)) or (not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = w_ack2_1_vld_in) and (ap_const_logic_1 = w_ack2_1_vld_reg) and (ap_const_logic_1 = ap_const_logic_1)))) then
                w_ack2_1_data_reg <= w_ack2_1_data_in;
            end if;
        end if;
    end process;
    process (ap_clk)
    begin
        if (ap_clk'event and ap_clk = '1') then
            if (((not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = w_ack3_1_vld_in) and (ap_const_logic_0 = w_ack3_1_vld_reg)) or (not(((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) and (ap_const_logic_1 = w_ack3_1_vld_in) and (ap_const_logic_1 = w_ack3_1_vld_reg) and (ap_const_logic_1 = ap_const_logic_1)))) then
                w_ack3_1_data_reg <= w_ack3_1_data_in;
            end if;
        end if;
    end process;

    ap_NS_fsm_assign_proc : process (ap_start, ap_CS_fsm, grp_read_fu_258_p2, ch_phi_fu_469_p22, grp_read_fu_270_p2, grp_read_fu_216_p2, grp_read_fu_228_p2, grp_read_fu_174_p2, grp_read_fu_186_p2, grp_read_fu_132_p2, grp_read_fu_144_p2, exitcond_fu_512_p2)
    begin
        case ap_CS_fsm is
            when ap_ST_st1_fsm_0 => 
                if (not((ap_start = ap_const_logic_0))) then
                    ap_NS_fsm <= ap_ST_st2_fsm_1;
                else
                    ap_NS_fsm <= ap_ST_st1_fsm_0;
                end if;
            when ap_ST_st2_fsm_1 => 
                ap_NS_fsm <= ap_ST_st3_fsm_2;
            when ap_ST_st3_fsm_2 => 
                ap_NS_fsm <= ap_ST_st4_fsm_3;
            when ap_ST_st4_fsm_3 => 
                if ((ap_const_lv1_0 = exitcond_fu_512_p2)) then
                    ap_NS_fsm <= ap_ST_st4_fsm_3;
                else
                    ap_NS_fsm <= ap_ST_st5_fsm_4;
                end if;
            when ap_ST_st5_fsm_4 => 
                if ((ch_phi_fu_469_p22 = ap_const_lv3_0)) then
                    ap_NS_fsm <= ap_ST_st5_fsm_4;
                elsif (((ch_phi_fu_469_p22 = ap_const_lv3_1) and (ap_const_lv1_0 = grp_read_fu_132_p2) and (ap_const_lv1_0 = grp_read_fu_144_p2))) then
                    ap_NS_fsm <= ap_ST_st39_fsm_38;
                elsif (((ch_phi_fu_469_p22 = ap_const_lv3_1) and (ap_const_lv1_0 = grp_read_fu_132_p2) and not((ap_const_lv1_0 = grp_read_fu_144_p2)))) then
                    ap_NS_fsm <= ap_ST_st36_fsm_35;
                elsif (((ch_phi_fu_469_p22 = ap_const_lv3_1) and not((ap_const_lv1_0 = grp_read_fu_132_p2)))) then
                    ap_NS_fsm <= ap_ST_st40_fsm_39;
                elsif (((ch_phi_fu_469_p22 = ap_const_lv3_2) and (ap_const_lv1_0 = grp_read_fu_174_p2) and (ap_const_lv1_0 = grp_read_fu_186_p2))) then
                    ap_NS_fsm <= ap_ST_st29_fsm_28;
                elsif (((ch_phi_fu_469_p22 = ap_const_lv3_2) and (ap_const_lv1_0 = grp_read_fu_174_p2) and not((ap_const_lv1_0 = grp_read_fu_186_p2)))) then
                    ap_NS_fsm <= ap_ST_st26_fsm_25;
                elsif (((ch_phi_fu_469_p22 = ap_const_lv3_2) and not((ap_const_lv1_0 = grp_read_fu_174_p2)))) then
                    ap_NS_fsm <= ap_ST_st30_fsm_29;
                elsif (((ch_phi_fu_469_p22 = ap_const_lv3_3) and (ap_const_lv1_0 = grp_read_fu_216_p2) and (ap_const_lv1_0 = grp_read_fu_228_p2))) then
                    ap_NS_fsm <= ap_ST_st19_fsm_18;
                elsif (((ch_phi_fu_469_p22 = ap_const_lv3_3) and (ap_const_lv1_0 = grp_read_fu_216_p2) and not((ap_const_lv1_0 = grp_read_fu_228_p2)))) then
                    ap_NS_fsm <= ap_ST_st16_fsm_15;
                elsif (((ch_phi_fu_469_p22 = ap_const_lv3_3) and not((ap_const_lv1_0 = grp_read_fu_216_p2)))) then
                    ap_NS_fsm <= ap_ST_st20_fsm_19;
                elsif (((ch_phi_fu_469_p22 = ap_const_lv3_4) and (ap_const_lv1_0 = grp_read_fu_258_p2) and (ap_const_lv1_0 = grp_read_fu_270_p2))) then
                    ap_NS_fsm <= ap_ST_st9_fsm_8;
                elsif (((ch_phi_fu_469_p22 = ap_const_lv3_4) and (ap_const_lv1_0 = grp_read_fu_258_p2) and not((ap_const_lv1_0 = grp_read_fu_270_p2)))) then
                    ap_NS_fsm <= ap_ST_st6_fsm_5;
                elsif (((ch_phi_fu_469_p22 = ap_const_lv3_4) and not((ap_const_lv1_0 = grp_read_fu_258_p2)))) then
                    ap_NS_fsm <= ap_ST_st10_fsm_9;
                else
                    ap_NS_fsm <= ap_ST_st46_fsm_45;
                end if;
            when ap_ST_st6_fsm_5 => 
                ap_NS_fsm <= ap_ST_st7_fsm_6;
            when ap_ST_st7_fsm_6 => 
                if ((ap_const_lv1_0 = grp_read_fu_270_p2)) then
                    ap_NS_fsm <= ap_ST_st9_fsm_8;
                else
                    ap_NS_fsm <= ap_ST_st8_fsm_7;
                end if;
            when ap_ST_st8_fsm_7 => 
                ap_NS_fsm <= ap_ST_st7_fsm_6;
            when ap_ST_st9_fsm_8 => 
                ap_NS_fsm <= ap_ST_st15_fsm_14;
            when ap_ST_st10_fsm_9 => 
                ap_NS_fsm <= ap_ST_st11_fsm_10;
            when ap_ST_st11_fsm_10 => 
                ap_NS_fsm <= ap_ST_st12_fsm_11;
            when ap_ST_st12_fsm_11 => 
                ap_NS_fsm <= ap_ST_st13_fsm_12;
            when ap_ST_st13_fsm_12 => 
                if ((ap_const_lv1_0 = grp_read_fu_258_p2)) then
                    ap_NS_fsm <= ap_ST_st15_fsm_14;
                else
                    ap_NS_fsm <= ap_ST_st14_fsm_13;
                end if;
            when ap_ST_st14_fsm_13 => 
                ap_NS_fsm <= ap_ST_st13_fsm_12;
            when ap_ST_st15_fsm_14 => 
                ap_NS_fsm <= ap_ST_st5_fsm_4;
            when ap_ST_st16_fsm_15 => 
                ap_NS_fsm <= ap_ST_st17_fsm_16;
            when ap_ST_st17_fsm_16 => 
                if ((ap_const_lv1_0 = grp_read_fu_228_p2)) then
                    ap_NS_fsm <= ap_ST_st19_fsm_18;
                else
                    ap_NS_fsm <= ap_ST_st18_fsm_17;
                end if;
            when ap_ST_st18_fsm_17 => 
                ap_NS_fsm <= ap_ST_st17_fsm_16;
            when ap_ST_st19_fsm_18 => 
                ap_NS_fsm <= ap_ST_st25_fsm_24;
            when ap_ST_st20_fsm_19 => 
                ap_NS_fsm <= ap_ST_st21_fsm_20;
            when ap_ST_st21_fsm_20 => 
                ap_NS_fsm <= ap_ST_st22_fsm_21;
            when ap_ST_st22_fsm_21 => 
                ap_NS_fsm <= ap_ST_st23_fsm_22;
            when ap_ST_st23_fsm_22 => 
                if ((ap_const_lv1_0 = grp_read_fu_216_p2)) then
                    ap_NS_fsm <= ap_ST_st25_fsm_24;
                else
                    ap_NS_fsm <= ap_ST_st24_fsm_23;
                end if;
            when ap_ST_st24_fsm_23 => 
                ap_NS_fsm <= ap_ST_st23_fsm_22;
            when ap_ST_st25_fsm_24 => 
                ap_NS_fsm <= ap_ST_st5_fsm_4;
            when ap_ST_st26_fsm_25 => 
                ap_NS_fsm <= ap_ST_st27_fsm_26;
            when ap_ST_st27_fsm_26 => 
                if ((ap_const_lv1_0 = grp_read_fu_186_p2)) then
                    ap_NS_fsm <= ap_ST_st29_fsm_28;
                else
                    ap_NS_fsm <= ap_ST_st28_fsm_27;
                end if;
            when ap_ST_st28_fsm_27 => 
                ap_NS_fsm <= ap_ST_st27_fsm_26;
            when ap_ST_st29_fsm_28 => 
                ap_NS_fsm <= ap_ST_st35_fsm_34;
            when ap_ST_st30_fsm_29 => 
                ap_NS_fsm <= ap_ST_st31_fsm_30;
            when ap_ST_st31_fsm_30 => 
                ap_NS_fsm <= ap_ST_st32_fsm_31;
            when ap_ST_st32_fsm_31 => 
                ap_NS_fsm <= ap_ST_st33_fsm_32;
            when ap_ST_st33_fsm_32 => 
                if ((ap_const_lv1_0 = grp_read_fu_174_p2)) then
                    ap_NS_fsm <= ap_ST_st35_fsm_34;
                else
                    ap_NS_fsm <= ap_ST_st34_fsm_33;
                end if;
            when ap_ST_st34_fsm_33 => 
                ap_NS_fsm <= ap_ST_st33_fsm_32;
            when ap_ST_st35_fsm_34 => 
                ap_NS_fsm <= ap_ST_st5_fsm_4;
            when ap_ST_st36_fsm_35 => 
                ap_NS_fsm <= ap_ST_st37_fsm_36;
            when ap_ST_st37_fsm_36 => 
                if ((ap_const_lv1_0 = grp_read_fu_144_p2)) then
                    ap_NS_fsm <= ap_ST_st39_fsm_38;
                else
                    ap_NS_fsm <= ap_ST_st38_fsm_37;
                end if;
            when ap_ST_st38_fsm_37 => 
                ap_NS_fsm <= ap_ST_st37_fsm_36;
            when ap_ST_st39_fsm_38 => 
                ap_NS_fsm <= ap_ST_st45_fsm_44;
            when ap_ST_st40_fsm_39 => 
                ap_NS_fsm <= ap_ST_st41_fsm_40;
            when ap_ST_st41_fsm_40 => 
                ap_NS_fsm <= ap_ST_st42_fsm_41;
            when ap_ST_st42_fsm_41 => 
                ap_NS_fsm <= ap_ST_st43_fsm_42;
            when ap_ST_st43_fsm_42 => 
                if ((ap_const_lv1_0 = grp_read_fu_132_p2)) then
                    ap_NS_fsm <= ap_ST_st45_fsm_44;
                else
                    ap_NS_fsm <= ap_ST_st44_fsm_43;
                end if;
            when ap_ST_st44_fsm_43 => 
                ap_NS_fsm <= ap_ST_st43_fsm_42;
            when ap_ST_st45_fsm_44 => 
                ap_NS_fsm <= ap_ST_st5_fsm_4;
            when ap_ST_st46_fsm_45 => 
                ap_NS_fsm <= ap_ST_st5_fsm_4;
            when others =>  
                ap_NS_fsm <= "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        end case;
    end process;
    addr0_0_ack_out <= ap_const_logic_0;
    addr1_0_ack_out <= ap_const_logic_0;
    addr2_0_ack_out <= ap_const_logic_0;
    addr3_0_ack_out <= ap_const_logic_0;
    addr_1_fu_518_p2 <= std_logic_vector(unsigned(addr_reg_454) + unsigned(ap_const_lv9_1));
    ap_done <= ap_const_logic_0;

    ap_idle_assign_proc : process(ap_start, ap_sig_cseq_ST_st1_fsm_0)
    begin
        if (((ap_const_logic_0 = ap_start) and (ap_const_logic_1 = ap_sig_cseq_ST_st1_fsm_0))) then 
            ap_idle <= ap_const_logic_1;
        else 
            ap_idle <= ap_const_logic_0;
        end if; 
    end process;

    ap_ready <= ap_const_logic_0;

    ap_sig_1003_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_1003 <= (ap_const_lv1_1 = ap_CS_fsm(44 downto 44));
    end process;


    ap_sig_1041_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_1041 <= (ap_const_lv1_1 = ap_CS_fsm(5 downto 5));
    end process;


    ap_sig_1051_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_1051 <= (ap_const_lv1_1 = ap_CS_fsm(15 downto 15));
    end process;


    ap_sig_1061_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_1061 <= (ap_const_lv1_1 = ap_CS_fsm(25 downto 25));
    end process;


    ap_sig_1071_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_1071 <= (ap_const_lv1_1 = ap_CS_fsm(35 downto 35));
    end process;


    ap_sig_1080_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_1080 <= (ap_const_lv1_1 = ap_CS_fsm(1 downto 1));
    end process;


    ap_sig_1097_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_1097 <= (ap_const_lv1_1 = ap_CS_fsm(42 downto 42));
    end process;


    ap_sig_1109_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_1109 <= (ap_const_lv1_1 = ap_CS_fsm(36 downto 36));
    end process;


    ap_sig_1126_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_1126 <= (ap_const_lv1_1 = ap_CS_fsm(32 downto 32));
    end process;


    ap_sig_1138_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_1138 <= (ap_const_lv1_1 = ap_CS_fsm(26 downto 26));
    end process;


    ap_sig_1155_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_1155 <= (ap_const_lv1_1 = ap_CS_fsm(22 downto 22));
    end process;


    ap_sig_1167_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_1167 <= (ap_const_lv1_1 = ap_CS_fsm(16 downto 16));
    end process;


    ap_sig_1184_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_1184 <= (ap_const_lv1_1 = ap_CS_fsm(12 downto 12));
    end process;


    ap_sig_1197_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_1197 <= (ap_const_lv1_1 = ap_CS_fsm(6 downto 6));
    end process;


    ap_sig_61_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_61 <= (ap_CS_fsm(0 downto 0) = ap_const_lv1_1);
    end process;


    ap_sig_786_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_786 <= (ap_const_lv1_1 = ap_CS_fsm(10 downto 10));
    end process;


    ap_sig_793_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_793 <= (ap_const_lv1_1 = ap_CS_fsm(20 downto 20));
    end process;


    ap_sig_801_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_801 <= (ap_const_lv1_1 = ap_CS_fsm(30 downto 30));
    end process;


    ap_sig_809_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_809 <= (ap_const_lv1_1 = ap_CS_fsm(40 downto 40));
    end process;


    ap_sig_819_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_819 <= (ap_const_lv1_1 = ap_CS_fsm(3 downto 3));
    end process;


    ap_sig_828_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_828 <= (ap_const_lv1_1 = ap_CS_fsm(4 downto 4));
    end process;


    ap_sig_900_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_900 <= (ap_const_lv1_1 = ap_CS_fsm(9 downto 9));
    end process;


    ap_sig_909_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_909 <= (ap_const_lv1_1 = ap_CS_fsm(19 downto 19));
    end process;


    ap_sig_918_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_918 <= (ap_const_lv1_1 = ap_CS_fsm(29 downto 29));
    end process;


    ap_sig_927_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_927 <= (ap_const_lv1_1 = ap_CS_fsm(39 downto 39));
    end process;


    ap_sig_946_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_946 <= (ap_const_lv1_1 = ap_CS_fsm(2 downto 2));
    end process;


    ap_sig_958_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_958 <= (ap_const_lv1_1 = ap_CS_fsm(45 downto 45));
    end process;


    ap_sig_979_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_979 <= (ap_const_lv1_1 = ap_CS_fsm(14 downto 14));
    end process;


    ap_sig_987_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_987 <= (ap_const_lv1_1 = ap_CS_fsm(24 downto 24));
    end process;


    ap_sig_995_assign_proc : process(ap_CS_fsm)
    begin
                ap_sig_995 <= (ap_const_lv1_1 = ap_CS_fsm(34 downto 34));
    end process;


    ap_sig_cseq_ST_st10_fsm_9_assign_proc : process(ap_sig_900)
    begin
        if (ap_sig_900) then 
            ap_sig_cseq_ST_st10_fsm_9 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st10_fsm_9 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st11_fsm_10_assign_proc : process(ap_sig_786)
    begin
        if (ap_sig_786) then 
            ap_sig_cseq_ST_st11_fsm_10 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st11_fsm_10 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st13_fsm_12_assign_proc : process(ap_sig_1184)
    begin
        if (ap_sig_1184) then 
            ap_sig_cseq_ST_st13_fsm_12 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st13_fsm_12 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st15_fsm_14_assign_proc : process(ap_sig_979)
    begin
        if (ap_sig_979) then 
            ap_sig_cseq_ST_st15_fsm_14 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st15_fsm_14 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st16_fsm_15_assign_proc : process(ap_sig_1051)
    begin
        if (ap_sig_1051) then 
            ap_sig_cseq_ST_st16_fsm_15 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st16_fsm_15 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st17_fsm_16_assign_proc : process(ap_sig_1167)
    begin
        if (ap_sig_1167) then 
            ap_sig_cseq_ST_st17_fsm_16 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st17_fsm_16 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st1_fsm_0_assign_proc : process(ap_sig_61)
    begin
        if (ap_sig_61) then 
            ap_sig_cseq_ST_st1_fsm_0 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st1_fsm_0 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st20_fsm_19_assign_proc : process(ap_sig_909)
    begin
        if (ap_sig_909) then 
            ap_sig_cseq_ST_st20_fsm_19 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st20_fsm_19 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st21_fsm_20_assign_proc : process(ap_sig_793)
    begin
        if (ap_sig_793) then 
            ap_sig_cseq_ST_st21_fsm_20 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st21_fsm_20 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st23_fsm_22_assign_proc : process(ap_sig_1155)
    begin
        if (ap_sig_1155) then 
            ap_sig_cseq_ST_st23_fsm_22 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st23_fsm_22 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st25_fsm_24_assign_proc : process(ap_sig_987)
    begin
        if (ap_sig_987) then 
            ap_sig_cseq_ST_st25_fsm_24 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st25_fsm_24 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st26_fsm_25_assign_proc : process(ap_sig_1061)
    begin
        if (ap_sig_1061) then 
            ap_sig_cseq_ST_st26_fsm_25 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st26_fsm_25 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st27_fsm_26_assign_proc : process(ap_sig_1138)
    begin
        if (ap_sig_1138) then 
            ap_sig_cseq_ST_st27_fsm_26 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st27_fsm_26 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st2_fsm_1_assign_proc : process(ap_sig_1080)
    begin
        if (ap_sig_1080) then 
            ap_sig_cseq_ST_st2_fsm_1 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st2_fsm_1 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st30_fsm_29_assign_proc : process(ap_sig_918)
    begin
        if (ap_sig_918) then 
            ap_sig_cseq_ST_st30_fsm_29 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st30_fsm_29 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st31_fsm_30_assign_proc : process(ap_sig_801)
    begin
        if (ap_sig_801) then 
            ap_sig_cseq_ST_st31_fsm_30 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st31_fsm_30 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st33_fsm_32_assign_proc : process(ap_sig_1126)
    begin
        if (ap_sig_1126) then 
            ap_sig_cseq_ST_st33_fsm_32 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st33_fsm_32 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st35_fsm_34_assign_proc : process(ap_sig_995)
    begin
        if (ap_sig_995) then 
            ap_sig_cseq_ST_st35_fsm_34 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st35_fsm_34 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st36_fsm_35_assign_proc : process(ap_sig_1071)
    begin
        if (ap_sig_1071) then 
            ap_sig_cseq_ST_st36_fsm_35 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st36_fsm_35 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st37_fsm_36_assign_proc : process(ap_sig_1109)
    begin
        if (ap_sig_1109) then 
            ap_sig_cseq_ST_st37_fsm_36 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st37_fsm_36 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st3_fsm_2_assign_proc : process(ap_sig_946)
    begin
        if (ap_sig_946) then 
            ap_sig_cseq_ST_st3_fsm_2 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st3_fsm_2 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st40_fsm_39_assign_proc : process(ap_sig_927)
    begin
        if (ap_sig_927) then 
            ap_sig_cseq_ST_st40_fsm_39 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st40_fsm_39 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st41_fsm_40_assign_proc : process(ap_sig_809)
    begin
        if (ap_sig_809) then 
            ap_sig_cseq_ST_st41_fsm_40 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st41_fsm_40 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st43_fsm_42_assign_proc : process(ap_sig_1097)
    begin
        if (ap_sig_1097) then 
            ap_sig_cseq_ST_st43_fsm_42 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st43_fsm_42 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st45_fsm_44_assign_proc : process(ap_sig_1003)
    begin
        if (ap_sig_1003) then 
            ap_sig_cseq_ST_st45_fsm_44 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st45_fsm_44 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st46_fsm_45_assign_proc : process(ap_sig_958)
    begin
        if (ap_sig_958) then 
            ap_sig_cseq_ST_st46_fsm_45 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st46_fsm_45 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st4_fsm_3_assign_proc : process(ap_sig_819)
    begin
        if (ap_sig_819) then 
            ap_sig_cseq_ST_st4_fsm_3 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st4_fsm_3 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st5_fsm_4_assign_proc : process(ap_sig_828)
    begin
        if (ap_sig_828) then 
            ap_sig_cseq_ST_st5_fsm_4 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st5_fsm_4 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st6_fsm_5_assign_proc : process(ap_sig_1041)
    begin
        if (ap_sig_1041) then 
            ap_sig_cseq_ST_st6_fsm_5 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st6_fsm_5 <= ap_const_logic_0;
        end if; 
    end process;


    ap_sig_cseq_ST_st7_fsm_6_assign_proc : process(ap_sig_1197)
    begin
        if (ap_sig_1197) then 
            ap_sig_cseq_ST_st7_fsm_6 <= ap_const_logic_1;
        else 
            ap_sig_cseq_ST_st7_fsm_6 <= ap_const_logic_0;
        end if; 
    end process;

    ch_phi_fu_469_p22 <= ch_reg_465;

    dout0_1_vld_in_assign_proc : process(ap_sig_cseq_ST_st41_fsm_40)
    begin
        if ((ap_const_logic_1 = ap_sig_cseq_ST_st41_fsm_40)) then 
            dout0_1_vld_in <= ap_const_logic_1;
        else 
            dout0_1_vld_in <= ap_const_logic_0;
        end if; 
    end process;

    dout0_o <= dout0_1_data_reg;

    dout1_1_vld_in_assign_proc : process(ap_sig_cseq_ST_st31_fsm_30)
    begin
        if ((ap_const_logic_1 = ap_sig_cseq_ST_st31_fsm_30)) then 
            dout1_1_vld_in <= ap_const_logic_1;
        else 
            dout1_1_vld_in <= ap_const_logic_0;
        end if; 
    end process;

    dout1_o <= dout1_1_data_reg;

    dout2_1_vld_in_assign_proc : process(ap_sig_cseq_ST_st21_fsm_20)
    begin
        if ((ap_const_logic_1 = ap_sig_cseq_ST_st21_fsm_20)) then 
            dout2_1_vld_in <= ap_const_logic_1;
        else 
            dout2_1_vld_in <= ap_const_logic_0;
        end if; 
    end process;

    dout2_o <= dout2_1_data_reg;

    dout3_1_vld_in_assign_proc : process(ap_sig_cseq_ST_st11_fsm_10)
    begin
        if ((ap_const_logic_1 = ap_sig_cseq_ST_st11_fsm_10)) then 
            dout3_1_vld_in <= ap_const_logic_1;
        else 
            dout3_1_vld_in <= ap_const_logic_0;
        end if; 
    end process;

    dout3_o <= dout3_1_data_reg;
    exitcond_fu_512_p2 <= "1" when (addr_reg_454 = ap_const_lv9_100) else "0";
    grp_read_fu_132_p2 <= r_req0;
    grp_read_fu_144_p2 <= w_req0;
    grp_read_fu_174_p2 <= r_req1;
    grp_read_fu_186_p2 <= w_req1;
    grp_read_fu_216_p2 <= r_req2;
    grp_read_fu_228_p2 <= w_req2;
    grp_read_fu_258_p2 <= r_req3;
    grp_read_fu_270_p2 <= w_req3;

    mem_address0_assign_proc : process(ap_sig_cseq_ST_st4_fsm_3, ap_sig_cseq_ST_st10_fsm_9, ap_sig_cseq_ST_st20_fsm_19, ap_sig_cseq_ST_st30_fsm_29, ap_sig_cseq_ST_st40_fsm_39, tmp_s_fu_524_p1, tmp_9_fu_529_p1, ap_sig_cseq_ST_st6_fsm_5, tmp_5_fu_534_p1, tmp_8_fu_539_p1, ap_sig_cseq_ST_st16_fsm_15, tmp_4_fu_544_p1, tmp_7_fu_549_p1, ap_sig_cseq_ST_st26_fsm_25, tmp_3_fu_554_p1, tmp_6_fu_559_p1, ap_sig_cseq_ST_st36_fsm_35, tmp_2_fu_564_p1)
    begin
        if ((ap_const_logic_1 = ap_sig_cseq_ST_st36_fsm_35)) then 
            mem_address0 <= tmp_6_fu_559_p1(8 - 1 downto 0);
        elsif ((ap_const_logic_1 = ap_sig_cseq_ST_st26_fsm_25)) then 
            mem_address0 <= tmp_7_fu_549_p1(8 - 1 downto 0);
        elsif ((ap_const_logic_1 = ap_sig_cseq_ST_st16_fsm_15)) then 
            mem_address0 <= tmp_8_fu_539_p1(8 - 1 downto 0);
        elsif ((ap_const_logic_1 = ap_sig_cseq_ST_st6_fsm_5)) then 
            mem_address0 <= tmp_9_fu_529_p1(8 - 1 downto 0);
        elsif ((ap_const_logic_1 = ap_sig_cseq_ST_st4_fsm_3)) then 
            mem_address0 <= tmp_s_fu_524_p1(8 - 1 downto 0);
        elsif ((ap_const_logic_1 = ap_sig_cseq_ST_st40_fsm_39)) then 
            mem_address0 <= tmp_2_fu_564_p1(8 - 1 downto 0);
        elsif ((ap_const_logic_1 = ap_sig_cseq_ST_st30_fsm_29)) then 
            mem_address0 <= tmp_3_fu_554_p1(8 - 1 downto 0);
        elsif ((ap_const_logic_1 = ap_sig_cseq_ST_st20_fsm_19)) then 
            mem_address0 <= tmp_4_fu_544_p1(8 - 1 downto 0);
        elsif ((ap_const_logic_1 = ap_sig_cseq_ST_st10_fsm_9)) then 
            mem_address0 <= tmp_5_fu_534_p1(8 - 1 downto 0);
        else 
            mem_address0 <= "XXXXXXXX";
        end if; 
    end process;


    mem_ce0_assign_proc : process(ap_sig_cseq_ST_st4_fsm_3, ap_sig_cseq_ST_st10_fsm_9, ap_sig_cseq_ST_st20_fsm_19, ap_sig_cseq_ST_st30_fsm_29, ap_sig_cseq_ST_st40_fsm_39, ap_sig_cseq_ST_st6_fsm_5, ap_sig_cseq_ST_st16_fsm_15, ap_sig_cseq_ST_st26_fsm_25, ap_sig_cseq_ST_st36_fsm_35)
    begin
        if (((ap_const_logic_1 = ap_sig_cseq_ST_st4_fsm_3) or (ap_const_logic_1 = ap_sig_cseq_ST_st10_fsm_9) or (ap_const_logic_1 = ap_sig_cseq_ST_st20_fsm_19) or (ap_const_logic_1 = ap_sig_cseq_ST_st30_fsm_29) or (ap_const_logic_1 = ap_sig_cseq_ST_st40_fsm_39) or (ap_const_logic_1 = ap_sig_cseq_ST_st6_fsm_5) or (ap_const_logic_1 = ap_sig_cseq_ST_st16_fsm_15) or (ap_const_logic_1 = ap_sig_cseq_ST_st26_fsm_25) or (ap_const_logic_1 = ap_sig_cseq_ST_st36_fsm_35))) then 
            mem_ce0 <= ap_const_logic_1;
        else 
            mem_ce0 <= ap_const_logic_0;
        end if; 
    end process;


    mem_d0_assign_proc : process(ap_sig_cseq_ST_st4_fsm_3, din3_read_reg_585, din2_read_reg_598, din1_read_reg_611, din0_read_reg_624, ap_sig_cseq_ST_st6_fsm_5, ap_sig_cseq_ST_st16_fsm_15, ap_sig_cseq_ST_st26_fsm_25, ap_sig_cseq_ST_st36_fsm_35)
    begin
        if ((ap_const_logic_1 = ap_sig_cseq_ST_st36_fsm_35)) then 
            mem_d0 <= din0_read_reg_624;
        elsif ((ap_const_logic_1 = ap_sig_cseq_ST_st26_fsm_25)) then 
            mem_d0 <= din1_read_reg_611;
        elsif ((ap_const_logic_1 = ap_sig_cseq_ST_st16_fsm_15)) then 
            mem_d0 <= din2_read_reg_598;
        elsif ((ap_const_logic_1 = ap_sig_cseq_ST_st6_fsm_5)) then 
            mem_d0 <= din3_read_reg_585;
        elsif ((ap_const_logic_1 = ap_sig_cseq_ST_st4_fsm_3)) then 
            mem_d0 <= ap_const_lv8_0;
        else 
            mem_d0 <= "XXXXXXXX";
        end if; 
    end process;


    mem_we0_assign_proc : process(ap_sig_cseq_ST_st4_fsm_3, exitcond_fu_512_p2, ap_sig_cseq_ST_st6_fsm_5, ap_sig_cseq_ST_st16_fsm_15, ap_sig_cseq_ST_st26_fsm_25, ap_sig_cseq_ST_st36_fsm_35)
    begin
        if ((((ap_const_logic_1 = ap_sig_cseq_ST_st4_fsm_3) and (ap_const_lv1_0 = exitcond_fu_512_p2)) or (ap_const_logic_1 = ap_sig_cseq_ST_st6_fsm_5) or (ap_const_logic_1 = ap_sig_cseq_ST_st16_fsm_15) or (ap_const_logic_1 = ap_sig_cseq_ST_st26_fsm_25) or (ap_const_logic_1 = ap_sig_cseq_ST_st36_fsm_35))) then 
            mem_we0 <= ap_const_logic_1;
        else 
            mem_we0 <= ap_const_logic_0;
        end if; 
    end process;


    r_ack0_1_data_in_assign_proc : process(ap_sig_cseq_ST_st5_fsm_4, ch_phi_fu_469_p22, grp_read_fu_132_p2, ap_sig_cseq_ST_st2_fsm_1, ap_sig_cseq_ST_st43_fsm_42)
    begin
        if ((not((ap_const_lv1_0 = grp_read_fu_132_p2)) and (ap_const_logic_1 = ap_sig_cseq_ST_st43_fsm_42))) then 
            r_ack0_1_data_in <= ap_const_lv1_1;
        elsif (((ap_const_logic_1 = ap_sig_cseq_ST_st2_fsm_1) or ((ap_const_logic_1 = ap_sig_cseq_ST_st5_fsm_4) and not((ch_phi_fu_469_p22 = ap_const_lv3_0)) and not((ch_phi_fu_469_p22 = ap_const_lv3_1)) and not((ch_phi_fu_469_p22 = ap_const_lv3_2)) and not((ch_phi_fu_469_p22 = ap_const_lv3_3)) and not((ch_phi_fu_469_p22 = ap_const_lv3_4))) or ((ap_const_lv1_0 = grp_read_fu_132_p2) and (ap_const_logic_1 = ap_sig_cseq_ST_st43_fsm_42)))) then 
            r_ack0_1_data_in <= ap_const_lv1_0;
        else 
            r_ack0_1_data_in <= "X";
        end if; 
    end process;


    r_ack0_1_vld_in_assign_proc : process(ap_sig_cseq_ST_st5_fsm_4, ch_phi_fu_469_p22, grp_read_fu_132_p2, ap_sig_cseq_ST_st2_fsm_1, ap_sig_cseq_ST_st43_fsm_42)
    begin
        if (((ap_const_logic_1 = ap_sig_cseq_ST_st2_fsm_1) or ((ap_const_logic_1 = ap_sig_cseq_ST_st5_fsm_4) and not((ch_phi_fu_469_p22 = ap_const_lv3_0)) and not((ch_phi_fu_469_p22 = ap_const_lv3_1)) and not((ch_phi_fu_469_p22 = ap_const_lv3_2)) and not((ch_phi_fu_469_p22 = ap_const_lv3_3)) and not((ch_phi_fu_469_p22 = ap_const_lv3_4))) or (not((ap_const_lv1_0 = grp_read_fu_132_p2)) and (ap_const_logic_1 = ap_sig_cseq_ST_st43_fsm_42)) or ((ap_const_lv1_0 = grp_read_fu_132_p2) and (ap_const_logic_1 = ap_sig_cseq_ST_st43_fsm_42)))) then 
            r_ack0_1_vld_in <= ap_const_logic_1;
        else 
            r_ack0_1_vld_in <= ap_const_logic_0;
        end if; 
    end process;

    r_ack0_o <= r_ack0_1_data_reg;

    r_ack1_1_data_in_assign_proc : process(ap_sig_cseq_ST_st5_fsm_4, ch_phi_fu_469_p22, grp_read_fu_174_p2, ap_sig_cseq_ST_st2_fsm_1, ap_sig_cseq_ST_st33_fsm_32)
    begin
        if ((not((ap_const_lv1_0 = grp_read_fu_174_p2)) and (ap_const_logic_1 = ap_sig_cseq_ST_st33_fsm_32))) then 
            r_ack1_1_data_in <= ap_const_lv1_1;
        elsif (((ap_const_logic_1 = ap_sig_cseq_ST_st2_fsm_1) or ((ap_const_logic_1 = ap_sig_cseq_ST_st5_fsm_4) and not((ch_phi_fu_469_p22 = ap_const_lv3_0)) and not((ch_phi_fu_469_p22 = ap_const_lv3_1)) and not((ch_phi_fu_469_p22 = ap_const_lv3_2)) and not((ch_phi_fu_469_p22 = ap_const_lv3_3)) and not((ch_phi_fu_469_p22 = ap_const_lv3_4))) or ((ap_const_lv1_0 = grp_read_fu_174_p2) and (ap_const_logic_1 = ap_sig_cseq_ST_st33_fsm_32)))) then 
            r_ack1_1_data_in <= ap_const_lv1_0;
        else 
            r_ack1_1_data_in <= "X";
        end if; 
    end process;


    r_ack1_1_vld_in_assign_proc : process(ap_sig_cseq_ST_st5_fsm_4, ch_phi_fu_469_p22, grp_read_fu_174_p2, ap_sig_cseq_ST_st2_fsm_1, ap_sig_cseq_ST_st33_fsm_32)
    begin
        if (((ap_const_logic_1 = ap_sig_cseq_ST_st2_fsm_1) or ((ap_const_logic_1 = ap_sig_cseq_ST_st5_fsm_4) and not((ch_phi_fu_469_p22 = ap_const_lv3_0)) and not((ch_phi_fu_469_p22 = ap_const_lv3_1)) and not((ch_phi_fu_469_p22 = ap_const_lv3_2)) and not((ch_phi_fu_469_p22 = ap_const_lv3_3)) and not((ch_phi_fu_469_p22 = ap_const_lv3_4))) or (not((ap_const_lv1_0 = grp_read_fu_174_p2)) and (ap_const_logic_1 = ap_sig_cseq_ST_st33_fsm_32)) or ((ap_const_lv1_0 = grp_read_fu_174_p2) and (ap_const_logic_1 = ap_sig_cseq_ST_st33_fsm_32)))) then 
            r_ack1_1_vld_in <= ap_const_logic_1;
        else 
            r_ack1_1_vld_in <= ap_const_logic_0;
        end if; 
    end process;

    r_ack1_o <= r_ack1_1_data_reg;

    r_ack2_1_data_in_assign_proc : process(ap_sig_cseq_ST_st5_fsm_4, ch_phi_fu_469_p22, grp_read_fu_216_p2, ap_sig_cseq_ST_st2_fsm_1, ap_sig_cseq_ST_st23_fsm_22)
    begin
        if ((not((ap_const_lv1_0 = grp_read_fu_216_p2)) and (ap_const_logic_1 = ap_sig_cseq_ST_st23_fsm_22))) then 
            r_ack2_1_data_in <= ap_const_lv1_1;
        elsif (((ap_const_logic_1 = ap_sig_cseq_ST_st2_fsm_1) or ((ap_const_logic_1 = ap_sig_cseq_ST_st5_fsm_4) and not((ch_phi_fu_469_p22 = ap_const_lv3_0)) and not((ch_phi_fu_469_p22 = ap_const_lv3_1)) and not((ch_phi_fu_469_p22 = ap_const_lv3_2)) and not((ch_phi_fu_469_p22 = ap_const_lv3_3)) and not((ch_phi_fu_469_p22 = ap_const_lv3_4))) or ((ap_const_lv1_0 = grp_read_fu_216_p2) and (ap_const_logic_1 = ap_sig_cseq_ST_st23_fsm_22)))) then 
            r_ack2_1_data_in <= ap_const_lv1_0;
        else 
            r_ack2_1_data_in <= "X";
        end if; 
    end process;


    r_ack2_1_vld_in_assign_proc : process(ap_sig_cseq_ST_st5_fsm_4, ch_phi_fu_469_p22, grp_read_fu_216_p2, ap_sig_cseq_ST_st2_fsm_1, ap_sig_cseq_ST_st23_fsm_22)
    begin
        if (((ap_const_logic_1 = ap_sig_cseq_ST_st2_fsm_1) or ((ap_const_logic_1 = ap_sig_cseq_ST_st5_fsm_4) and not((ch_phi_fu_469_p22 = ap_const_lv3_0)) and not((ch_phi_fu_469_p22 = ap_const_lv3_1)) and not((ch_phi_fu_469_p22 = ap_const_lv3_2)) and not((ch_phi_fu_469_p22 = ap_const_lv3_3)) and not((ch_phi_fu_469_p22 = ap_const_lv3_4))) or (not((ap_const_lv1_0 = grp_read_fu_216_p2)) and (ap_const_logic_1 = ap_sig_cseq_ST_st23_fsm_22)) or ((ap_const_lv1_0 = grp_read_fu_216_p2) and (ap_const_logic_1 = ap_sig_cseq_ST_st23_fsm_22)))) then 
            r_ack2_1_vld_in <= ap_const_logic_1;
        else 
            r_ack2_1_vld_in <= ap_const_logic_0;
        end if; 
    end process;

    r_ack2_o <= r_ack2_1_data_reg;

    r_ack3_1_data_in_assign_proc : process(grp_read_fu_258_p2, ap_sig_cseq_ST_st5_fsm_4, ch_phi_fu_469_p22, ap_sig_cseq_ST_st2_fsm_1, ap_sig_cseq_ST_st13_fsm_12)
    begin
        if ((not((ap_const_lv1_0 = grp_read_fu_258_p2)) and (ap_const_logic_1 = ap_sig_cseq_ST_st13_fsm_12))) then 
            r_ack3_1_data_in <= ap_const_lv1_1;
        elsif (((ap_const_logic_1 = ap_sig_cseq_ST_st2_fsm_1) or ((ap_const_logic_1 = ap_sig_cseq_ST_st5_fsm_4) and not((ch_phi_fu_469_p22 = ap_const_lv3_0)) and not((ch_phi_fu_469_p22 = ap_const_lv3_1)) and not((ch_phi_fu_469_p22 = ap_const_lv3_2)) and not((ch_phi_fu_469_p22 = ap_const_lv3_3)) and not((ch_phi_fu_469_p22 = ap_const_lv3_4))) or ((ap_const_lv1_0 = grp_read_fu_258_p2) and (ap_const_logic_1 = ap_sig_cseq_ST_st13_fsm_12)))) then 
            r_ack3_1_data_in <= ap_const_lv1_0;
        else 
            r_ack3_1_data_in <= "X";
        end if; 
    end process;


    r_ack3_1_vld_in_assign_proc : process(grp_read_fu_258_p2, ap_sig_cseq_ST_st5_fsm_4, ch_phi_fu_469_p22, ap_sig_cseq_ST_st2_fsm_1, ap_sig_cseq_ST_st13_fsm_12)
    begin
        if (((ap_const_logic_1 = ap_sig_cseq_ST_st2_fsm_1) or ((ap_const_logic_1 = ap_sig_cseq_ST_st5_fsm_4) and not((ch_phi_fu_469_p22 = ap_const_lv3_0)) and not((ch_phi_fu_469_p22 = ap_const_lv3_1)) and not((ch_phi_fu_469_p22 = ap_const_lv3_2)) and not((ch_phi_fu_469_p22 = ap_const_lv3_3)) and not((ch_phi_fu_469_p22 = ap_const_lv3_4))) or (not((ap_const_lv1_0 = grp_read_fu_258_p2)) and (ap_const_logic_1 = ap_sig_cseq_ST_st13_fsm_12)) or ((ap_const_lv1_0 = grp_read_fu_258_p2) and (ap_const_logic_1 = ap_sig_cseq_ST_st13_fsm_12)))) then 
            r_ack3_1_vld_in <= ap_const_logic_1;
        else 
            r_ack3_1_vld_in <= ap_const_logic_0;
        end if; 
    end process;

    r_ack3_o <= r_ack3_1_data_reg;
    tmp_2_fu_564_p1 <= std_logic_vector(resize(unsigned(addr0_0_data_reg),64));
    tmp_3_fu_554_p1 <= std_logic_vector(resize(unsigned(addr1_0_data_reg),64));
    tmp_4_fu_544_p1 <= std_logic_vector(resize(unsigned(addr2_0_data_reg),64));
    tmp_5_fu_534_p1 <= std_logic_vector(resize(unsigned(addr3_0_data_reg),64));
    tmp_6_fu_559_p1 <= std_logic_vector(resize(unsigned(addr0_0_data_reg),64));
    tmp_7_fu_549_p1 <= std_logic_vector(resize(unsigned(addr1_0_data_reg),64));
    tmp_8_fu_539_p1 <= std_logic_vector(resize(unsigned(addr2_0_data_reg),64));
    tmp_9_fu_529_p1 <= std_logic_vector(resize(unsigned(addr3_0_data_reg),64));
    tmp_s_fu_524_p1 <= std_logic_vector(resize(unsigned(addr_reg_454),64));

    w_ack0_1_data_in_assign_proc : process(ap_sig_cseq_ST_st5_fsm_4, ch_phi_fu_469_p22, grp_read_fu_144_p2, ap_sig_cseq_ST_st2_fsm_1, ap_sig_cseq_ST_st37_fsm_36)
    begin
        if ((not((ap_const_lv1_0 = grp_read_fu_144_p2)) and (ap_const_logic_1 = ap_sig_cseq_ST_st37_fsm_36))) then 
            w_ack0_1_data_in <= ap_const_lv1_1;
        elsif (((ap_const_logic_1 = ap_sig_cseq_ST_st2_fsm_1) or ((ap_const_logic_1 = ap_sig_cseq_ST_st5_fsm_4) and not((ch_phi_fu_469_p22 = ap_const_lv3_0)) and not((ch_phi_fu_469_p22 = ap_const_lv3_1)) and not((ch_phi_fu_469_p22 = ap_const_lv3_2)) and not((ch_phi_fu_469_p22 = ap_const_lv3_3)) and not((ch_phi_fu_469_p22 = ap_const_lv3_4))) or ((ap_const_lv1_0 = grp_read_fu_144_p2) and (ap_const_logic_1 = ap_sig_cseq_ST_st37_fsm_36)))) then 
            w_ack0_1_data_in <= ap_const_lv1_0;
        else 
            w_ack0_1_data_in <= "X";
        end if; 
    end process;


    w_ack0_1_vld_in_assign_proc : process(ap_sig_cseq_ST_st5_fsm_4, ch_phi_fu_469_p22, grp_read_fu_144_p2, ap_sig_cseq_ST_st2_fsm_1, ap_sig_cseq_ST_st37_fsm_36)
    begin
        if (((ap_const_logic_1 = ap_sig_cseq_ST_st2_fsm_1) or ((ap_const_logic_1 = ap_sig_cseq_ST_st5_fsm_4) and not((ch_phi_fu_469_p22 = ap_const_lv3_0)) and not((ch_phi_fu_469_p22 = ap_const_lv3_1)) and not((ch_phi_fu_469_p22 = ap_const_lv3_2)) and not((ch_phi_fu_469_p22 = ap_const_lv3_3)) and not((ch_phi_fu_469_p22 = ap_const_lv3_4))) or (not((ap_const_lv1_0 = grp_read_fu_144_p2)) and (ap_const_logic_1 = ap_sig_cseq_ST_st37_fsm_36)) or ((ap_const_lv1_0 = grp_read_fu_144_p2) and (ap_const_logic_1 = ap_sig_cseq_ST_st37_fsm_36)))) then 
            w_ack0_1_vld_in <= ap_const_logic_1;
        else 
            w_ack0_1_vld_in <= ap_const_logic_0;
        end if; 
    end process;

    w_ack0_o <= w_ack0_1_data_reg;

    w_ack1_1_data_in_assign_proc : process(ap_sig_cseq_ST_st5_fsm_4, ch_phi_fu_469_p22, grp_read_fu_186_p2, ap_sig_cseq_ST_st2_fsm_1, ap_sig_cseq_ST_st27_fsm_26)
    begin
        if ((not((ap_const_lv1_0 = grp_read_fu_186_p2)) and (ap_const_logic_1 = ap_sig_cseq_ST_st27_fsm_26))) then 
            w_ack1_1_data_in <= ap_const_lv1_1;
        elsif (((ap_const_logic_1 = ap_sig_cseq_ST_st2_fsm_1) or ((ap_const_logic_1 = ap_sig_cseq_ST_st5_fsm_4) and not((ch_phi_fu_469_p22 = ap_const_lv3_0)) and not((ch_phi_fu_469_p22 = ap_const_lv3_1)) and not((ch_phi_fu_469_p22 = ap_const_lv3_2)) and not((ch_phi_fu_469_p22 = ap_const_lv3_3)) and not((ch_phi_fu_469_p22 = ap_const_lv3_4))) or ((ap_const_lv1_0 = grp_read_fu_186_p2) and (ap_const_logic_1 = ap_sig_cseq_ST_st27_fsm_26)))) then 
            w_ack1_1_data_in <= ap_const_lv1_0;
        else 
            w_ack1_1_data_in <= "X";
        end if; 
    end process;


    w_ack1_1_vld_in_assign_proc : process(ap_sig_cseq_ST_st5_fsm_4, ch_phi_fu_469_p22, grp_read_fu_186_p2, ap_sig_cseq_ST_st2_fsm_1, ap_sig_cseq_ST_st27_fsm_26)
    begin
        if (((ap_const_logic_1 = ap_sig_cseq_ST_st2_fsm_1) or ((ap_const_logic_1 = ap_sig_cseq_ST_st5_fsm_4) and not((ch_phi_fu_469_p22 = ap_const_lv3_0)) and not((ch_phi_fu_469_p22 = ap_const_lv3_1)) and not((ch_phi_fu_469_p22 = ap_const_lv3_2)) and not((ch_phi_fu_469_p22 = ap_const_lv3_3)) and not((ch_phi_fu_469_p22 = ap_const_lv3_4))) or (not((ap_const_lv1_0 = grp_read_fu_186_p2)) and (ap_const_logic_1 = ap_sig_cseq_ST_st27_fsm_26)) or ((ap_const_lv1_0 = grp_read_fu_186_p2) and (ap_const_logic_1 = ap_sig_cseq_ST_st27_fsm_26)))) then 
            w_ack1_1_vld_in <= ap_const_logic_1;
        else 
            w_ack1_1_vld_in <= ap_const_logic_0;
        end if; 
    end process;

    w_ack1_o <= w_ack1_1_data_reg;

    w_ack2_1_data_in_assign_proc : process(ap_sig_cseq_ST_st5_fsm_4, ch_phi_fu_469_p22, grp_read_fu_228_p2, ap_sig_cseq_ST_st2_fsm_1, ap_sig_cseq_ST_st17_fsm_16)
    begin
        if ((not((ap_const_lv1_0 = grp_read_fu_228_p2)) and (ap_const_logic_1 = ap_sig_cseq_ST_st17_fsm_16))) then 
            w_ack2_1_data_in <= ap_const_lv1_1;
        elsif (((ap_const_logic_1 = ap_sig_cseq_ST_st2_fsm_1) or ((ap_const_logic_1 = ap_sig_cseq_ST_st5_fsm_4) and not((ch_phi_fu_469_p22 = ap_const_lv3_0)) and not((ch_phi_fu_469_p22 = ap_const_lv3_1)) and not((ch_phi_fu_469_p22 = ap_const_lv3_2)) and not((ch_phi_fu_469_p22 = ap_const_lv3_3)) and not((ch_phi_fu_469_p22 = ap_const_lv3_4))) or ((ap_const_lv1_0 = grp_read_fu_228_p2) and (ap_const_logic_1 = ap_sig_cseq_ST_st17_fsm_16)))) then 
            w_ack2_1_data_in <= ap_const_lv1_0;
        else 
            w_ack2_1_data_in <= "X";
        end if; 
    end process;


    w_ack2_1_vld_in_assign_proc : process(ap_sig_cseq_ST_st5_fsm_4, ch_phi_fu_469_p22, grp_read_fu_228_p2, ap_sig_cseq_ST_st2_fsm_1, ap_sig_cseq_ST_st17_fsm_16)
    begin
        if (((ap_const_logic_1 = ap_sig_cseq_ST_st2_fsm_1) or ((ap_const_logic_1 = ap_sig_cseq_ST_st5_fsm_4) and not((ch_phi_fu_469_p22 = ap_const_lv3_0)) and not((ch_phi_fu_469_p22 = ap_const_lv3_1)) and not((ch_phi_fu_469_p22 = ap_const_lv3_2)) and not((ch_phi_fu_469_p22 = ap_const_lv3_3)) and not((ch_phi_fu_469_p22 = ap_const_lv3_4))) or (not((ap_const_lv1_0 = grp_read_fu_228_p2)) and (ap_const_logic_1 = ap_sig_cseq_ST_st17_fsm_16)) or ((ap_const_lv1_0 = grp_read_fu_228_p2) and (ap_const_logic_1 = ap_sig_cseq_ST_st17_fsm_16)))) then 
            w_ack2_1_vld_in <= ap_const_logic_1;
        else 
            w_ack2_1_vld_in <= ap_const_logic_0;
        end if; 
    end process;

    w_ack2_o <= w_ack2_1_data_reg;

    w_ack3_1_data_in_assign_proc : process(ap_sig_cseq_ST_st5_fsm_4, ch_phi_fu_469_p22, grp_read_fu_270_p2, ap_sig_cseq_ST_st2_fsm_1, ap_sig_cseq_ST_st7_fsm_6)
    begin
        if ((not((ap_const_lv1_0 = grp_read_fu_270_p2)) and (ap_const_logic_1 = ap_sig_cseq_ST_st7_fsm_6))) then 
            w_ack3_1_data_in <= ap_const_lv1_1;
        elsif (((ap_const_logic_1 = ap_sig_cseq_ST_st2_fsm_1) or ((ap_const_logic_1 = ap_sig_cseq_ST_st5_fsm_4) and not((ch_phi_fu_469_p22 = ap_const_lv3_0)) and not((ch_phi_fu_469_p22 = ap_const_lv3_1)) and not((ch_phi_fu_469_p22 = ap_const_lv3_2)) and not((ch_phi_fu_469_p22 = ap_const_lv3_3)) and not((ch_phi_fu_469_p22 = ap_const_lv3_4))) or ((ap_const_lv1_0 = grp_read_fu_270_p2) and (ap_const_logic_1 = ap_sig_cseq_ST_st7_fsm_6)))) then 
            w_ack3_1_data_in <= ap_const_lv1_0;
        else 
            w_ack3_1_data_in <= "X";
        end if; 
    end process;


    w_ack3_1_vld_in_assign_proc : process(ap_sig_cseq_ST_st5_fsm_4, ch_phi_fu_469_p22, grp_read_fu_270_p2, ap_sig_cseq_ST_st2_fsm_1, ap_sig_cseq_ST_st7_fsm_6)
    begin
        if (((ap_const_logic_1 = ap_sig_cseq_ST_st2_fsm_1) or ((ap_const_logic_1 = ap_sig_cseq_ST_st5_fsm_4) and not((ch_phi_fu_469_p22 = ap_const_lv3_0)) and not((ch_phi_fu_469_p22 = ap_const_lv3_1)) and not((ch_phi_fu_469_p22 = ap_const_lv3_2)) and not((ch_phi_fu_469_p22 = ap_const_lv3_3)) and not((ch_phi_fu_469_p22 = ap_const_lv3_4))) or (not((ap_const_lv1_0 = grp_read_fu_270_p2)) and (ap_const_logic_1 = ap_sig_cseq_ST_st7_fsm_6)) or ((ap_const_lv1_0 = grp_read_fu_270_p2) and (ap_const_logic_1 = ap_sig_cseq_ST_st7_fsm_6)))) then 
            w_ack3_1_vld_in <= ap_const_logic_1;
        else 
            w_ack3_1_vld_in <= ap_const_logic_0;
        end if; 
    end process;

    w_ack3_o <= w_ack3_1_data_reg;
end behav;
