Go to the documentation of this file.
61 allowRemoval_(
false) {
67 addParameter(allowRemovalPN_,
BOOL,
false,
91 virtual std::vector<RowID>
94 std::vector<RowID> result;
112 removeSockets(*mach);
115 std::vector<std::string> removedFUNames;
116 removeUnconnectedFUs(*mach, removedFUNames);
123 std::vector<std::string> removedRFNames;
124 checkRFPorts(*mach, removedRFNames);
135 while (!removedRFNames.empty()) {
137 removedRFNames.size()-1));
138 removedRFNames.pop_back();
141 while (!removedFUNames.empty()) {
143 removedFUNames.size()-1));
144 removedFUNames.pop_back();
154 result.push_back(confID);
157 std::ostringstream msg(std::ostringstream::out);
158 msg <<
"Error while using RemoveUnconnectedComponents:"
176 readOptionalParameter(allowRemovalPN_, allowRemoval_);
187 std::vector<std::string>& removedFUNames) {
193 for (
int i = 0; i < FUNav.
count(); ++i) {
195 bool noConnections =
true;
196 for (
int j = 0; j <
FU->portCount(); ++j) {
200 noConnections =
false;
207 removedFUNames.push_back(
FU->name());
226 for (
int i = 0; i < FUNav.
count(); ++i) {
228 for (
int j = 0; j <
FU->portCount(); ++j) {
234 for (
int soc = 0; i < socketNav.
count(); ++soc) {
235 socket = socketNav.
item(soc);
258 std::vector<std::string>& removedRFNames) {
264 for (
int i = 0; i < RFNav.
count(); ++i) {
266 for (
int j = 0; j <
RF->portCount(); ++j) {
274 if (
RF->portCount() < 1) {
276 removedRFNames.push_back(
RF->name());
282 for (
int soc = 0; i < socketNav.
count(); ++soc) {
283 socket = socketNav.
item(soc);
303 for (
int i = 0; i < busNav.
count(); ++i) {
304 bool isConnected =
false;
305 for (
int j = 0; j < socketNav.
count(); ++j) {
306 if ((busNav.
item(i))->isConnectedTo(
307 *socketNav.
item(j))) {
327 std::list<std::string> removedSocketNames;
virtual void removeFunctionUnit(FunctionUnit &unit)
virtual std::vector< RowID > explore(const RowID &configurationID, const unsigned int &)
void removeFUImplementation(const std::string &unitName)
virtual bool canConnect(const TTAMachine::Socket &socket, const TTAMachine::Segment &segment)
void removeRFImplementation(const std::string &unitName)
virtual bool requiresHDB() const
TTAMachine::Machine * architecture(RowID id) const
virtual bool requiresSimulationData() const
virtual void removeBus(Bus &bus)
void removeUnconnectedFUs(TTAMachine::Machine &mach, std::vector< std::string > &removedFUNames)
int RowID
Type definition of row ID in relational databases.
bool allowRemoval_
parameter allow removal of unused ports and RFs without ports.
static std::string toString(const T &source)
virtual int socketCount() const
void checkBuses(TTAMachine::Machine &mach)
virtual void attachSocket(Socket &socket)
virtual bool producesArchitecture() const
const std::string PLUGIN_DESCRIPTION
#define EXPORT_DESIGN_SPACE_EXPLORER_PLUGIN(PLUGIN_NAME__)
MachineTester & machineTester() const
virtual FunctionUnitNavigator functionUnitNavigator() const
virtual void removeRegisterFile(RegisterFile &unit)
virtual SocketNavigator socketNavigator() const
std::string errorMessage() const
void checkRFPorts(TTAMachine::Machine &mach, std::vector< std::string > &removedRFNames)
RowID addConfiguration(const MachineConfiguration &conf)
RowID addArchitecture(const TTAMachine::Machine &mom)
virtual RegisterFileNavigator registerFileNavigator() const
MachineConfiguration configuration(RowID id) const
virtual bool requiresApplication() const
find Finds info of the inner loops in the false
void checkFUPorts(TTAMachine::Machine &mach)
virtual BusNavigator busNavigator() const
IDF::MachineImplementation * implementation(RowID id) const
RemoveUnconnectedComponents()
ComponentType * item(int index) const
void removeSockets(TTAMachine::Machine &mach)
virtual bool requiresStartingPointArchitecture() const
static const std::string allowRemovalPN_
RowID addImplementation(const IDF::MachineImplementation &impl, double longestPathDelay, CostEstimator::AreaInGates area)
void removeNotConnectedSockets(TTAMachine::Machine &mach, std::list< std::string > &removedSocketNames)