}\r
/* NB: a generator is a block that has no data inputs\r
* and has at least one data output.\r
+ * By the way, blokcs that have no data input/output\r
+ * (like clkrstgen) are not generators !\r
*/\r
bool AbstractBlock::isGeneratorBlock() {\r
if (getDataInputs().size() > 0) return false;\r
- \r
+ if (getDataOutputs().size() == 0) return false;\r
return true;\r
}\r
\r
\r
GroupBlock* parentBlock = AB_TO_GRP(parent);\r
\r
- cout << "connecting clk/rst for child " << qPrintable(name) << " of " << qPrintable(parentBlock->getName()) << endl;\r
+\r
\r
QList<AbstractInterface* > lstClk = getInterfaces(AbstractInterface::Input,AbstractInterface::Clock);\r
QList<AbstractInterface* > lstRst = getInterfaces(AbstractInterface::Input,AbstractInterface::Reset);\r
fromClk = AI_TO_CON(clkrstgen->getIfaceFromName("clk"));\r
fromRst = AI_TO_CON(clkrstgen->getIfaceFromName("reset"));\r
}\r
+ cout << "connecting clk/rst for " << qPrintable(name) << " to clkrstgen" << endl;\r
}\r
else {\r
fromClk = AI_TO_CON(parentBlock->getIfaceFromName("clk"));\r
fromRst = AI_TO_CON(parentBlock->getIfaceFromName("reset"));\r
+ cout << "connecting clk/rst for child " << qPrintable(name) << " of " << qPrintable(parentBlock->getName()) << endl;\r
}\r
if ((fromClk == NULL) || (fromRst == NULL)) {\r
throw(Exception(IFACE_GROUP_NOCLKRST,parentBlock));\r
else {\r
fromClk->connectTo(toClk);\r
fromRst->connectTo(toRst);\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::generateEntity(QTextStream& out, bool hasController) throw(Exception) {\r
\r
+ out << "entity " << name << " is" << endl;\r
+ try {\r
+ generateEntityOrComponentBody(out, 0, hasController);\r
+ }\r
+ catch(Exception e) {\r
+ throw(e);\r
+ }\r
+ out << "end entity " << name << ";" << endl << endl;\r
}\r
\r
+void AbstractBlock::generateComponent(QTextStream& out, bool hasController) throw(Exception) {\r
+\r
+ out << " component " << name << " is" << endl;\r
+ try {\r
+ generateEntityOrComponentBody(out, 2, hasController);\r
+ }\r
+ catch(Exception e) {\r
+ throw(e);\r
+ }\r
+ out << " end component; " << endl << endl;\r
+}\r
\r
\r