PandA-2024.02
technology_flow_step_factory.cpp
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  */
43 
45 #include "fix_characterization.hpp"
49 #include "load_file_technology.hpp"
50 #include "load_technology.hpp"
51 #include "write_technology.hpp"
52 
54  const DesignFlowManagerConstRef _design_flow_manager,
55  const ParameterConstRef _parameters)
56  : DesignFlowStepFactory(_design_flow_manager, _parameters), TM(_TM), target(_target)
57 {
58 }
59 
61 
62 const std::string TechnologyFlowStepFactory::GetPrefix() const
63 {
64  return "Technology";
65 }
66 
69 {
70  switch(technology_flow_step_type)
71  {
73  {
75  }
76 #if HAVE_CIRCUIT_BUILT
77  case TechnologyFlowStep_Type::LOAD_BUILTIN_TECHNOLOGY:
78  {
80  }
81 #endif
83  {
85  }
87  {
89  }
91  {
93  }
95  {
97  }
99  {
101  }
102  default:
103  THROW_UNREACHABLE("");
104  }
105  THROW_UNREACHABLE("");
106  return DesignFlowStepRef();
107 }
const ParameterConstRef parameters
The set of input parameters.
const std::string GetPrefix() const override
Return the prefix of the steps created by the factory.
const technology_managerRef TM
The technology manager.
string target
Definition: lenet_tvm.py:16
This class loads device dependent technology information.
Step to fix components characterization.
Step which loads default technology libraries.
This class loads a technology library from a file specified at command line.
#define THROW_UNREACHABLE(str_expr)
helper function used to specify that some points should never be reached
Definition: exceptions.hpp:292
Pseudo step to force dependencies from all load_*_technology steps.
Step which write technology information.
const generic_deviceRef target
The target device.
Step which loads device dependent technology information.
TechnologyFlowStepFactory(const technology_managerRef TM, const generic_deviceRef target, const DesignFlowManagerConstRef design_flow_manager, const ParameterConstRef parameters)
Constructor.
Factory for technology flow step.
DesignFlowStepRef CreateTechnologyFlowStep(const TechnologyFlowStep_Type technology_flow_step_type) const
Create a scheduling design flow step.
~TechnologyFlowStepFactory() override
Destructor.
TechnologyFlowStep_Type
refcount< T > lock() const
Definition: refcount.hpp:212
This class loads default technology libraries.
refcount< DesignFlowStep > DesignFlowStepRef
Step which loads device dependent technology information.
const Wrefcount< const DesignFlowManager > design_flow_manager
The design flow manager.
Template borrowed from the ANTLR library by Terence Parr (http://www.jGuru.com - Software rights: htt...
Definition: refcount.hpp:94
Step to writes technology as xml file.
Step which loads technology library from file.
This class load builtin components in technology manager.
Step which fixes characterization.
Technology steps which loads builtin components.

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