PandA-2024.02
TopEntityMemoryMapped.hpp
Go to the documentation of this file.
1 /*
2  * _/_/_/ _/_/ _/ _/ _/_/_/ _/_/
3  * _/ _/ _/ _/ _/_/ _/ _/ _/ _/ _/
4  * _/_/_/ _/_/_/_/ _/ _/_/ _/ _/ _/_/_/_/
5  * _/ _/ _/ _/ _/ _/ _/ _/ _/
6  * _/ _/ _/ _/ _/ _/_/_/ _/ _/
7  *
8  * ***********************************************
9  * PandA Project
10  * URL: http://panda.dei.polimi.it
11  * Politecnico di Milano - DEIB
12  * System Architectures Group
13  * ***********************************************
14  * Copyright (C) 2004-2024 Politecnico di Milano
15  *
16  * This file is part of the PandA framework.
17  *
18  * The PandA framework is free software; you can redistribute it and/or modify
19  * it under the terms of the GNU General Public License as published by
20  * the Free Software Foundation; either version 3 of the License, or
21  * (at your option) any later version.
22  *
23  * This program is distributed in the hope that it will be useful,
24  * but WITHOUT ANY WARRANTY; without even the implied warranty of
25  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26  * GNU General Public License for more details.
27  *
28  * You should have received a copy of the GNU General Public License
29  * along with this program. If not, see <http://www.gnu.org/licenses/>.
30  */
39 #ifndef _TOPENTITYMEMORYMAPPED_H_
40 #define _TOPENTITYMEMORYMAPPED_H_
41 
42 #include "custom_set.hpp"
43 #include "top_entity.hpp"
44 
45 #include <list>
46 #include <string>
47 
48 class module;
50 
69 {
70  public:
77  TopEntityMemoryMapped(const ParameterConstRef _parameters, const HLS_managerRef HLSMgr, unsigned int funId,
78  const DesignFlowManagerConstRef design_flow_manager);
79 
83  ~TopEntityMemoryMapped() override;
84 
90 
91  private:
92  std::list<std::string> ParametersName;
93  std::list<structural_objectRef> AddedComponents;
95 
97  bool is_root_function{false};
98 
100  unsigned int _channels_number;
101 
104 
108  void allocate_parameters() const;
109 
111 
113 
115 
116  void resizing_IO(module* fu_module, unsigned int max_n_ports) const;
117 
118  void Initialize() override;
119 };
120 
121 #endif /* _TOPENTITYMEMORYMAPPED_H_ */
structural_managerRef SM
reference to the resulting circuit
Definition: top_entity.hpp:54
const HLS_managerRef HLSMgr
information about all the HLS synthesis
Definition: hls_step.hpp:205
void allocate_parameters() const
Allocates the in/out parameters of the module as internal registers.
const unsigned int funId
identifier of the function to be processed (0 means that it is a global step)
Base class for the top entity creation.
MemoryAllocation_ChannelsType
The number of channels.
DesignFlowStep_Status InternalExec() override
Execute the step.
std::list< structural_objectRef > AddedComponents
redefinition of set to manage ordered/unordered structures
~TopEntityMemoryMapped() override
Destructor.
unsigned int _channels_number
Function scope channels number.
const Wrefcount< const DesignFlowManager > design_flow_manager
The design flow manager.
std::list< std::string > ParametersName
void resizing_IO(module *fu_module, unsigned int max_n_ports) const
bool is_root_function
true when the module is a root function
DesignFlowStep_Status
The status of a step.
void insertStatusRegister(structural_managerRef SM, structural_objectRef wrappedObj)
void Initialize() override
Initialize the step (i.e., like a constructor, but executed just before exec.
void insertStartDoneLogic(structural_managerRef SM, structural_objectRef wrappedObj)
Template borrowed from the ANTLR library by Terence Parr (http://www.jGuru.com - Software rights: htt...
Definition: refcount.hpp:94
void insertMemoryMappedRegister(structural_managerRef SM, structural_objectRef wrappedObj)
Build a wrapper layer on the top entity implementing the momory mapped interface. ...
MemoryAllocation_ChannelsType _channels_type
Function scope channels type.
This class describes a generic module.
TopEntityMemoryMapped(const ParameterConstRef _parameters, const HLS_managerRef HLSMgr, unsigned int funId, const DesignFlowManagerConstRef design_flow_manager)
Constructor.

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