]> AND Private Git Repository - blast.git/blobdiff - AbstractBlock.cpp
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
finished testbench generation
[blast.git] / AbstractBlock.cpp
index 0f3f8015920df89b13bc3b19c4c2157913203519..de282720412988b118630585b1e20dd2013eeba4 100644 (file)
@@ -76,8 +76,10 @@ bool AbstractBlock::isStimuliBlock() {
  * and has at least one data output.\r
  * By the way, blocks that have no data input/output\r
  * (like clkrstgen) are not sources !\r
+ * A source may also be a block of special type source.\r
  */\r
 bool AbstractBlock::isSourceBlock() {\r
+  if (specialType == Source) return true;\r
   if (getDataInputs().size() > 0) return false;\r
   if (getDataOutputs().size() == 0) return false;\r
   return true;\r
@@ -278,73 +280,6 @@ QList<BlockParameter *> AbstractBlock::getWishboneParameters() {
   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