Go to the documentation of this file.
33 #ifndef TTA_COMPONENT_IMPLEMENTATION_SELECTOR_HH
34 #define TTA_COMPONENT_IMPLEMENTATION_SELECTOR_HH
83 std::map<const IDF::FUImplementationLocation*, CostEstimates*>
87 std::list<TTAMachine::FunctionUnit*>
89 const std::set<std::string>& operationSet,
int width = 0)
const;
91 std::map<const IDF::RFImplementationLocation*, CostEstimates*>
94 double frequencyMHz = 0,
double maxArea = 0);
96 std::map<const IDF::IUImplementationLocation*, CostEstimates*>
104 const std::string& icDecoder =
"ic_hdb",
105 const std::string& icDecoderHDB =
"asic_130nm_1.5V.hdb",
106 const double& frequency = 0,
const double& maxArea = 0);
110 const std::string& icDecoder =
"ic_hdb",
111 const std::string& icDecoderHDB =
"asic_130nm_1.5V.hdb",
112 const double& frequency = 0,
const double& maxArea = 0);
116 const double& frequency = 0,
const double& maxArea = 0,
117 const bool& filterLongestPathDelay =
true);
121 const double& frequency = 0,
const double& maxArea = 0);
125 const double& frequency = 0,
const double& maxArea = 0);
134 bool operator() (
const std::pair<const IDF::UnitImplementationLocation*, CostEstimates*>& p1,
135 const std::pair<const IDF::UnitImplementationLocation*, CostEstimates*>& p2)
const {
136 return p1.first->id() < p2.first->id();
IDF::MachineImplementation * selectComponents(const TTAMachine::Machine *mach, const std::string &icDecoder="ic_hdb", const std::string &icDecoderHDB="asic_130nm_1.5V.hdb", const double &frequency=0, const double &maxArea=0)
UnitImplementationLocation RFImplementationLocation
bool operator()(const std::pair< const IDF::UnitImplementationLocation *, CostEstimates * > &p1, const std::pair< const IDF::UnitImplementationLocation *, CostEstimates * > &p2) const
void addHDB(const HDB::HDBManager &hdb)
virtual ~ComponentImplementationSelector()
void selectIUs(const TTAMachine::Machine *mach, IDF::MachineImplementation *idf, const double &frequency=0, const double &maxArea=0)
void addCase(const TTAProgram::Program &program, const ExecutionTrace &traceDB)
std::map< const IDF::RFImplementationLocation *, CostEstimates * > rfImplementations(const TTAMachine::RegisterFile &rf, bool guarded=false, double frequencyMHz=0, double maxArea=0)
CostEstimator::Estimator estimator_
Cost estimator to estimate the unit costs.
ComponentImplementationSelector()
std::map< const IDF::FUImplementationLocation *, CostEstimates * > fuImplementations(const TTAMachine::FunctionUnit &fu, double frequencyMHz=0, double maxArea=0)
void selectFUs(const TTAMachine::Machine *mach, IDF::MachineImplementation *idf, const double &frequency=0, const double &maxArea=0, const bool &filterLongestPathDelay=true)
UnitImplementationLocation FUImplementationLocation
std::set< std::string > usedHDBs_
HDBs from which implementations are serched are stored in this set.
void selectRFs(const TTAMachine::Machine *mach, IDF::MachineImplementation *idf, const double &frequency=0, const double &maxArea=0)
UnitImplementationLocation IUImplementationLocation
std::list< TTAMachine::FunctionUnit * > fuArchsByOpSetWithMinLatency(const std::set< std::string > &operationSet, int width=0) const
std::map< const IDF::IUImplementationLocation *, CostEstimates * > iuImplementations(const TTAMachine::ImmediateUnit &iu, double frequencyMHz=0, double maxArea=0)
find Finds info of the inner loops in the program
void selectComponentsToConf(DSDBManager::MachineConfiguration &conf, DSDBManager &dsdb, TTAMachine::Machine *mach=NULL, const std::string &icDecoder="ic_hdb", const std::string &icDecoderHDB="asic_130nm_1.5V.hdb", const double &frequency=0, const double &maxArea=0)