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

#ifndef _lcddrv_wait_tmr_HH_
#define _lcddrv_wait_tmr_HH_

#include "systemc.h"
#include "AESL_pkg.h"


namespace ap_rtl {

struct lcddrv_wait_tmr : public sc_module {
    // Port declarations 10
    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_lv<25> > tmr;
    sc_in< sc_lv<1> > dummy_tmr_out_i;
    sc_out< sc_lv<1> > dummy_tmr_out_o;
    sc_out< sc_logic > dummy_tmr_out_o_ap_vld;


    // Module declarations
    lcddrv_wait_tmr(sc_module_name name);
    SC_HAS_PROCESS(lcddrv_wait_tmr);

    ~lcddrv_wait_tmr();

    sc_trace_file* mVcdFile;

    sc_signal< sc_lv<3> > ap_CS_fsm;
    sc_signal< sc_logic > ap_sig_cseq_ST_st1_fsm_0;
    sc_signal< bool > ap_sig_20;
    sc_signal< sc_lv<24> > t_1_fu_67_p2;
    sc_signal< sc_logic > ap_sig_cseq_ST_st3_fsm_2;
    sc_signal< bool > ap_sig_41;
    sc_signal< sc_lv<24> > t_reg_47;
    sc_signal< sc_logic > ap_sig_cseq_ST_st2_fsm_1;
    sc_signal< bool > ap_sig_51;
    sc_signal< sc_lv<1> > exitcond_fu_62_p2;
    sc_signal< sc_lv<1> > not_s_fu_73_p2;
    sc_signal< sc_lv<25> > t_cast_fu_58_p1;
    sc_signal< sc_lv<3> > ap_NS_fsm;
    static const sc_logic ap_const_logic_1;
    static const sc_logic ap_const_logic_0;
    static const sc_lv<3> ap_ST_st1_fsm_0;
    static const sc_lv<3> ap_ST_st2_fsm_1;
    static const sc_lv<3> ap_ST_st3_fsm_2;
    static const sc_lv<32> ap_const_lv32_0;
    static const sc_lv<1> ap_const_lv1_1;
    static const sc_lv<32> ap_const_lv32_2;
    static const sc_lv<24> ap_const_lv24_0;
    static const sc_lv<32> ap_const_lv32_1;
    static const sc_lv<1> ap_const_lv1_0;
    static const sc_lv<24> ap_const_lv24_1;
    // Thread declarations
    void thread_ap_clk_no_reset_();
    void thread_ap_done();
    void thread_ap_idle();
    void thread_ap_ready();
    void thread_ap_sig_20();
    void thread_ap_sig_41();
    void thread_ap_sig_51();
    void thread_ap_sig_cseq_ST_st1_fsm_0();
    void thread_ap_sig_cseq_ST_st2_fsm_1();
    void thread_ap_sig_cseq_ST_st3_fsm_2();
    void thread_dummy_tmr_out_o();
    void thread_dummy_tmr_out_o_ap_vld();
    void thread_exitcond_fu_62_p2();
    void thread_not_s_fu_73_p2();
    void thread_t_1_fu_67_p2();
    void thread_t_cast_fu_58_p1();
    void thread_ap_NS_fsm();
};

}

using namespace ap_rtl;

#endif
