PandA-2024.02
fsm_controller.hpp
Go to the documentation of this file.
1 /*
2  *
3  * _/_/_/ _/_/ _/ _/ _/_/_/ _/_/
4  * _/ _/ _/ _/ _/_/ _/ _/ _/ _/ _/
5  * _/_/_/ _/_/_/_/ _/ _/_/ _/ _/ _/_/_/_/
6  * _/ _/ _/ _/ _/ _/ _/ _/ _/
7  * _/ _/ _/ _/ _/ _/_/_/ _/ _/
8  *
9  * ***********************************************
10  * PandA Project
11  * URL: http://panda.dei.polimi.it
12  * Politecnico di Milano - DEIB
13  * System Architectures Group
14  * ***********************************************
15  * Copyright (C) 2004-2024 Politecnico di Milano
16  *
17  * This file is part of the PandA framework.
18  *
19  * The PandA framework is free software; you can redistribute it and/or modify
20  * it under the terms of the GNU General Public License as published by
21  * the Free Software Foundation; either version 3 of the License, or
22  * (at your option) any later version.
23  *
24  * This program is distributed in the hope that it will be useful,
25  * but WITHOUT ANY WARRANTY; without even the implied warranty of
26  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27  * GNU General Public License for more details.
28  *
29  * You should have received a copy of the GNU General Public License
30  * along with this program. If not, see <http://www.gnu.org/licenses/>.
31  *
32  */
41 #ifndef FSM_CONTROLLER_HPP
42 #define FSM_CONTROLLER_HPP
43 
45 
47 #include <string>
48 
51 
53 {
57  void create_state_machine(std::string& parse);
58 
63  std::string get_guard_value(const tree_managerRef TM, const unsigned int index, vertex op,
64  const OpGraphConstRef data);
65 
71 
72  protected:
77  virtual void add_correct_transition_memory(const std::string& state_representation, structural_managerRef SM);
78 
79  public:
84  fsm_controller(const ParameterConstRef Param, const HLS_managerRef HLSMgr, unsigned int funId,
85  const DesignFlowManagerConstRef design_flow_manager,
87 
91  ~fsm_controller() override;
92 };
93 #endif
virtual void add_correct_transition_memory(const std::string &state_representation, structural_managerRef SM)
Set the correct NP functionality.
const HLS_managerRef HLSMgr
information about all the HLS synthesis
Definition: hls_step.hpp:205
void create_state_machine(std::string &parse)
Generates the string representation of the FSM.
DesignFlowStep_Status InternalExec() override
Execute the step.
This class manages the tree structures extracted from the raw file.
const unsigned int funId
identifier of the function to be processed (0 means that it is a global step)
const HLSFlowStep_Type hls_flow_step_type
The type of this step.
Definition: hls_step.hpp:208
CONSTREF_FORWARD_DECL(OpGraph)
std::string get_guard_value(const tree_managerRef TM, const unsigned int index, vertex op, const OpGraphConstRef data)
Returns the value of the guard value of a case_label_expr default is not managed. ...
HLSFlowStep_Type
Definition: hls_step.hpp:95
fsm_controller(const ParameterConstRef Param, const HLS_managerRef HLSMgr, unsigned int funId, const DesignFlowManagerConstRef design_flow_manager, const HLSFlowStep_Type hls_flow_step_type=HLSFlowStep_Type::FSM_CONTROLLER_CREATOR)
Constructor.
#define index(x, y)
Definition: Keccak.c:74
boost::graph_traits< graph >::vertex_descriptor vertex
vertex definition.
Definition: graph.hpp:1303
const Wrefcount< const DesignFlowManager > design_flow_manager
The design flow manager.
Base class for all the controller creation algorithms.
DesignFlowStep_Status
The status of a step.
Generic class managing controller creation algorithms.
~fsm_controller() override
Destructor.
Class used to describe a particular graph with operations as nodes.
Definition: op_graph.hpp:783
REF_FORWARD_DECL(tree_manager)
STD include.

Generated on Mon Feb 12 2024 13:02:53 for PandA-2024.02 by doxygen 1.8.13