text: // ==============================================================
  // RTL generated by Vivado(TM) HLS - High-Level Synthesis from C, C++ and SystemC
  // Version: 2019.1
  // Copyright (C) 1986-2019 Xilinx, Inc. All Rights Reserved.
  // 
  // ===========================================================
  
  #ifndef _SubBytes_HH_
  #define _SubBytes_HH_
  
  #include "systemc.h"
  #include "AESL_pkg.h"
  
  #include "SubBytes_sbox.h"
  
  namespace ap_rtl {
  
  struct SubBytes : public sc_module {
      // Port declarations 39
      sc_in_clk ap_clk;
      sc_in< sc_logic > ap_rst;
      sc_in< sc_logic > ap_start;
      sc_out< sc_logic > ap_done;
      sc_out< sc_logic > ap_idle;
      sc_out< sc_logic > ap_ready;
      sc_in< sc_logic > ap_ce;
      sc_in< sc_lv<8> > state_0_0_read;
      sc_in< sc_lv<8> > state_0_1_read;
      sc_in< sc_lv<8> > state_0_2_read;
      sc_in< sc_lv<8> > state_0_3_read;
      sc_in< sc_lv<8> > state_1_0_read;
      sc_in< sc_lv<8> > state_1_1_read;
      sc_in< sc_lv<8> > state_1_2_read;
      sc_in< sc_lv<8> > state_1_3_read;
      sc_in< sc_lv<8> > state_2_0_read;
      sc_in< sc_lv<8> > state_2_1_read;
      sc_in< sc_lv<8> > state_2_2_read;
      sc_in< sc_lv<8> > state_2_3_read;
      sc_in< sc_lv<8> > state_3_0_read;
      sc_in< sc_lv<8> > state_3_1_read;
      sc_in< sc_lv<8> > state_3_2_read;
      sc_in< sc_lv<8> > state_3_3_read;
      sc_out< sc_lv<8> > ap_return_0;
      sc_out< sc_lv<8> > ap_return_1;
      sc_out< sc_lv<8> > ap_return_2;
      sc_out< sc_lv<8> > ap_return_3;
      sc_out< sc_lv<8> > ap_return_4;
      sc_out< sc_lv<8> > ap_return_5;
      sc_out< sc_lv<8> > ap_return_6;
      sc_out< sc_lv<8> > ap_return_7;
      sc_out< sc_lv<8> > ap_return_8;
      sc_out< sc_lv<8> > ap_return_9;
      sc_out< sc_lv<8> > ap_return_10;
      sc_out< sc_lv<8> > ap_return_11;
      sc_out< sc_lv<8> > ap_return_12;
      sc_out< sc_lv<8> > ap_return_13;
      sc_out< sc_lv<8> > ap_return_14;
      sc_out< sc_lv<8> > ap_return_15;
  
  
      // Module declarations
      SubBytes(sc_module_name name);
      SC_HAS_PROCESS(SubBytes);
  
      ~SubBytes();
  
      sc_trace_file* mVcdFile;
  
      SubBytes_sbox* sbox_U;
      sc_signal< sc_lv<1> > ap_CS_fsm;
      sc_signal< sc_logic > ap_CS_fsm_pp0_stage0;
      sc_signal< sc_logic > ap_enable_reg_pp0_iter0;
      sc_signal< bool > ap_block_pp0_stage0;
      sc_signal< sc_logic > ap_enable_reg_pp0_iter1;
      sc_signal< sc_logic > ap_idle_pp0;
      sc_signal< bool > ap_block_state1_pp0_stage0_iter0;
      sc_signal< bool > ap_block_state2_pp0_stage0_iter1;
      sc_signal< bool > ap_block_pp0_stage0_11001;
      sc_signal< sc_lv<8> > sbox_address0;
      sc_signal< sc_logic > sbox_ce0;
      sc_signal< sc_lv<8> > sbox_q0;
      sc_signal< sc_lv<8> > sbox_address1;
      sc_signal< sc_logic > sbox_ce1;
      sc_signal< sc_lv<8> > sbox_q1;
      sc_signal< sc_lv<8> > sbox_address2;
      sc_signal< sc_logic > sbox_ce2;
      sc_signal< sc_lv<8> > sbox_q2;
      sc_signal< sc_lv<8> > sbox_address3;
      sc_signal< sc_logic > sbox_ce3;
      sc_signal< sc_lv<8> > sbox_q3;
      sc_signal< sc_lv<8> > sbox_address4;
      sc_signal< sc_logic > sbox_ce4;
      sc_signal< sc_lv<8> > sbox_q4;
      sc_signal< sc_lv<8> > sbox_address5;
      sc_signal< sc_logic > sbox_ce5;
      sc_signal< sc_lv<8> > sbox_q5;
      sc_signal< sc_lv<8> > sbox_address6;
      sc_signal< sc_logic > sbox_ce6;
      sc_signal< sc_lv<8> > sbox_q6;
      sc_signal< sc_lv<8> > sbox_address7;
      sc_signal< sc_logic > sbox_ce7;
      sc_signal< sc_lv<8> > sbox_q7;
      sc_signal< sc_lv<8> > sbox_address8;
      sc_signal< sc_logic > sbox_ce8;
      sc_signal< sc_lv<8> > sbox_q8;
      sc_signal< sc_lv<8> > sbox_address9;
      sc_signal< sc_logic > sbox_ce9;
      sc_signal< sc_lv<8> > sbox_q9;
      sc_signal< sc_lv<8> > sbox_address10;
      sc_signal< sc_logic > sbox_ce10;
      sc_signal< sc_lv<8> > sbox_q10;
      sc_signal< sc_lv<8> > sbox_address11;
      sc_signal< sc_logic > sbox_ce11;
      sc_signal< sc_lv<8> > sbox_q11;
      sc_signal< sc_lv<8> > sbox_address12;
      sc_signal< sc_logic > sbox_ce12;
      sc_signal< sc_lv<8> > sbox_q12;
      sc_signal< sc_lv<8> > sbox_address13;
      sc_signal< sc_logic > sbox_ce13;
      sc_signal< sc_lv<8> > sbox_q13;
      sc_signal< sc_lv<8> > sbox_address14;
      sc_signal< sc_logic > sbox_ce14;
      sc_signal< sc_lv<8> > sbox_q14;
      sc_signal< sc_lv<8> > sbox_address15;
      sc_signal< sc_logic > sbox_ce15;
      sc_signal< sc_lv<8> > sbox_q15;
      sc_signal< bool > ap_block_pp0_stage0_subdone;
      sc_signal< sc_lv<64> > zext_ln276_fu_329_p1;
      sc_signal< sc_lv<64> > zext_ln276_1_fu_334_p1;
      sc_signal< sc_lv<64> > zext_ln276_2_fu_339_p1;
      sc_signal< sc_lv<64> > zext_ln276_3_fu_344_p1;
      sc_signal< sc_lv<64> > zext_ln276_4_fu_349_p1;
      sc_signal< sc_lv<64> > zext_ln276_5_fu_354_p1;
      sc_signal< sc_lv<64> > zext_ln276_6_fu_359_p1;
      sc_signal< sc_lv<64> > zext_ln276_7_fu_364_p1;
      sc_signal< sc_lv<64> > zext_ln276_8_fu_369_p1;
      sc_signal< sc_lv<64> > zext_ln276_9_fu_374_p1;
      sc_signal< sc_lv<64> > zext_ln276_10_fu_379_p1;
      sc_signal< sc_lv<64> > zext_ln276_11_fu_384_p1;
      sc_signal< sc_lv<64> > zext_ln276_12_fu_389_p1;
      sc_signal< sc_lv<64> > zext_ln276_13_fu_394_p1;
      sc_signal< sc_lv<64> > zext_ln276_14_fu_399_p1;
      sc_signal< sc_lv<64> > zext_ln276_15_fu_404_p1;
      sc_signal< sc_lv<1> > ap_NS_fsm;
      sc_signal< sc_logic > ap_idle_pp0_0to0;
      sc_signal< sc_logic > ap_reset_idle_pp0;
      sc_signal< sc_logic > ap_enable_pp0;
      static const sc_logic ap_const_logic_1;
      static const sc_logic ap_const_logic_0;
      static const sc_lv<1> ap_ST_fsm_pp0_stage0;
      static const bool ap_const_boolean_1;
      static const sc_lv<32> ap_const_lv32_0;
      static const bool ap_const_boolean_0;
      // Thread declarations
      void thread_ap_clk_no_reset_();
      void thread_ap_CS_fsm_pp0_stage0();
      void thread_ap_block_pp0_stage0();
      void thread_ap_block_pp0_stage0_11001();
      void thread_ap_block_pp0_stage0_subdone();
      void thread_ap_block_state1_pp0_stage0_iter0();
      void thread_ap_block_state2_pp0_stage0_iter1();
      void thread_ap_done();
      void thread_ap_enable_pp0();
      void thread_ap_enable_reg_pp0_iter0();
      void thread_ap_idle();
      void thread_ap_idle_pp0();
      void thread_ap_idle_pp0_0to0();
      void thread_ap_ready();
      void thread_ap_reset_idle_pp0();
      void thread_ap_return_0();
      void thread_ap_return_1();
      void thread_ap_return_10();
      void thread_ap_return_11();
      void thread_ap_return_12();
      void thread_ap_return_13();
      void thread_ap_return_14();
      void thread_ap_return_15();
      void thread_ap_return_2();
      void thread_ap_return_3();
      void thread_ap_return_4();
      void thread_ap_return_5();
      void thread_ap_return_6();
      void thread_ap_return_7();
      void thread_ap_return_8();
      void thread_ap_return_9();
      void thread_sbox_address0();
      void thread_sbox_address1();
      void thread_sbox_address10();
      void thread_sbox_address11();
      void thread_sbox_address12();
      void thread_sbox_address13();
      void thread_sbox_address14();
      void thread_sbox_address15();
      void thread_sbox_address2();
      void thread_sbox_address3();
      void thread_sbox_address4();
      void thread_sbox_address5();
      void thread_sbox_address6();
      void thread_sbox_address7();
      void thread_sbox_address8();
      void thread_sbox_address9();
      void thread_sbox_ce0();
      void thread_sbox_ce1();
      void thread_sbox_ce10();
      void thread_sbox_ce11();
      void thread_sbox_ce12();
      void thread_sbox_ce13();
      void thread_sbox_ce14();
      void thread_sbox_ce15();
      void thread_sbox_ce2();
      void thread_sbox_ce3();
      void thread_sbox_ce4();
      void thread_sbox_ce5();
      void thread_sbox_ce6();
      void thread_sbox_ce7();
      void thread_sbox_ce8();
      void thread_sbox_ce9();
      void thread_zext_ln276_10_fu_379_p1();
      void thread_zext_ln276_11_fu_384_p1();
      void thread_zext_ln276_12_fu_389_p1();
      void thread_zext_ln276_13_fu_394_p1();
      void thread_zext_ln276_14_fu_399_p1();
      void thread_zext_ln276_15_fu_404_p1();
      void thread_zext_ln276_1_fu_334_p1();
      void thread_zext_ln276_2_fu_339_p1();
      void thread_zext_ln276_3_fu_344_p1();
      void thread_zext_ln276_4_fu_349_p1();
      void thread_zext_ln276_5_fu_354_p1();
      void thread_zext_ln276_6_fu_359_p1();
      void thread_zext_ln276_7_fu_364_p1();
      void thread_zext_ln276_8_fu_369_p1();
      void thread_zext_ln276_9_fu_374_p1();
      void thread_zext_ln276_fu_329_p1();
      void thread_ap_NS_fsm();
  };
  
  }
  
  using namespace ap_rtl;
  
  #endif
  