#include "ConnectedInterface.h"\r
\r
\r
-AbstractBlock::AbstractBlock() {\r
+AbstractBlock::AbstractBlock(Graph *_graph) {\r
name = "";\r
parent = NULL;\r
specialType = NotSpecial;\r
+ graph = _graph;\r
}\r
\r
/*\r
return lst;\r
}\r
\r
-void AbstractBlock::connectClock(QString clkName, int idGen) throw(Exception) {\r
-\r
- GroupBlock* parentBlock = AB_TO_GRP(parent); \r
- ConnectedInterface* fromClk = NULL;\r
- ConnectedInterface* toClk = AI_TO_CON(getIfaceFromName(clkName));\r
-\r
- if (parentBlock->isTop()) {\r
- QString genName = "clkrstgen_" + QString::number(idGen);\r
- AbstractBlock* clkrstgen = parentBlock->getFunctionalBlockByName(genName);\r
- if (clkrstgen == NULL) {\r
- throw(Exception(IFACE_TOP_NOCLKRSTGEN,this));\r
- }\r
- else {\r
- fromClk = AI_TO_CON(clkrstgen->getIfaceFromName("clk")); \r
- }\r
- cout << "connecting clock for " << qPrintable(name) << " to " << qPrintable(genName) << endl;\r
- }\r
- else {\r
- // searching for ext_clk_idGen\r
- QString name = "ext_clk_"+QString::number(idGen);\r
- fromClk = AI_TO_CON(parentBlock->getIfaceFromName(name));\r
- cout << "connecting clk for child " << qPrintable(name) << " of " << qPrintable(parentBlock->getName()) << endl;\r
- }\r
-\r
- if (fromClk == NULL) {\r
- throw(Exception(IFACE_GROUP_NOCLKRST,parentBlock));\r
- }\r
- else {\r
- fromClk->connectTo(toClk);\r
- cout << "connection done between " << qPrintable(toClk->getConnectedFrom()->getOwner()->getName()) << "/" << qPrintable(toClk->getConnectedFrom()->getName());\r
- cout << " and " << qPrintable(toClk->getOwner()->getName()) << "/" << qPrintable(toClk->getName()) << endl;\r
- }\r
-}\r
-\r
-void AbstractBlock::connectReset(QString rstName, int idGen) throw(Exception) {\r
-\r
- GroupBlock* parentBlock = AB_TO_GRP(parent);\r
- ConnectedInterface* fromRst = NULL;\r
- ConnectedInterface* toRst = AI_TO_CON(getIfaceFromName(rstName));\r
-\r
- if (parentBlock->isTop()) {\r
- QString genName = "clkrstgen_" + QString::number(idGen);\r
- AbstractBlock* clkrstgen = parentBlock->getFunctionalBlockByName(genName);\r
- if (clkrstgen == NULL) {\r
- throw(Exception(IFACE_TOP_NOCLKRSTGEN,this));\r
- }\r
- else {\r
- fromRst = AI_TO_CON(clkrstgen->getIfaceFromName("reset"));\r
- }\r
- cout << "connecting reset for " << qPrintable(name) << " to " << qPrintable(genName) << endl;\r
- }\r
- else {\r
- QString name = "ext_reset_"+QString::number(idGen);\r
- fromRst = AI_TO_CON(parentBlock->getIfaceFromName(name));\r
- cout << "connecting reset for child " << qPrintable(name) << " of " << qPrintable(parentBlock->getName()) << endl;\r
- }\r
-\r
- if (fromRst == NULL) {\r
- throw(Exception(IFACE_GROUP_NOCLKRST,parentBlock));\r
- }\r
- else {\r
- fromRst->connectTo(toRst);\r
- cout << "connection done between " << qPrintable(toRst->getConnectedFrom()->getOwner()->getName()) << "/" << qPrintable(toRst->getConnectedFrom()->getName());\r
- cout << " and " << qPrintable(toRst->getOwner()->getName()) << "/" << qPrintable(toRst->getName()) << endl;\r
- }\r
-}\r
-\r
void AbstractBlock::generateEntity(QTextStream& out, bool hasController) throw(Exception) {\r
\r
out << "entity " << name << " is" << endl;\r