PandA-2024.02
create_address_translation.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) 2015-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  */
40 #ifndef CREATE_ADDRESS_TRANSLATION_HPP
41 #define CREATE_ADDRESS_TRANSLATION_HPP
42 
44 
49 
54 {
55  protected:
58 
61 
64 
67 
70 
73 
75  bool already_executed{false};
76 
87  void ComputeAddress(const AsnTypeRef asn_type, const unsigned int tree_parameter_type,
88  unsigned long long& bambu_address, unsigned long long int& taste_address,
89  unsigned int& registers, const bool first_level, const bool little_endianess);
90 
96  ComputeFrontendRelationships(const DesignFlowStep::RelationshipType relationship_type) const override;
97 
101  void Initialize() override;
102 
107  bool HasToBeExecuted() const override;
108 
109  public:
116  CreateAddressTranslation(const application_managerRef AppM, const DesignFlowManagerConstRef design_flow_manager,
118 
122  ~CreateAddressTranslation() override;
123 
128  DesignFlowStep_Status Exec() override;
129 };
130 #endif
void Initialize() override
Initialize the step (i.e., like a constructor, but executed just before exec.
void ComputeAddress(const AsnTypeRef asn_type, const unsigned int tree_parameter_type, unsigned long long &bambu_address, unsigned long long int &taste_address, unsigned int &registers, const bool first_level, const bool little_endianess)
Compute the addresses and add them to the writers.
RelationshipType
The relationship type.
bool HasToBeExecuted() const override
Check if this step has actually to be executed.
This class manages the tree structures extracted from the raw file.
Class which creates source code of hdl module to translate addresses from pci address space to bambu ...
const CustomUnorderedSet< std::pair< FrontendFlowStepType, FunctionRelationship > > ComputeFrontendRelationships(const DesignFlowStep::RelationshipType relationship_type) const override
Return the set of analyses in relationship with this design step.
IndentedOutputStreamRef memory_enabling
The memory enabling stream.
bool already_executed
True if it was already executed.
REF_FORWARD_DECL(AadlInformation)
~CreateAddressTranslation() override
Destructor.
const Wrefcount< const DesignFlowManager > design_flow_manager
The design flow manager.
const ParameterConstRef parameters
Set of input parameters.
DesignFlowStep_Status
The status of a step.
tree_managerConstRef TreeM
The tree manager.
IndentedOutputStreamRef data_size
The data size stream.
IndentedOutputStreamRef address_translation
The address translation stream.
CONSTREF_FORWARD_DECL(tree_manager)
const AadlInformationRef aadl_information
The asn information.
const application_managerRef AppM
The application manager.
Class to print indented code.
DesignFlowStep_Status Exec() override
Execute this step.
This class contains the base representation for a generic frontend flow step which works on the whole...
IndentedOutputStreamRef endianess_check
The endianess check stream.
CreateAddressTranslation(const application_managerRef AppM, const DesignFlowManagerConstRef design_flow_manager, const ParameterConstRef parameters)
Constructor.

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