X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/blast.git/blobdiff_plain/756baf5c8eaf003e8271dab9c395de2b0e704857..e9f53048b4a0192d95382277e8f40e850998b256:/GroupBlock.cpp?ds=inline diff --git a/GroupBlock.cpp b/GroupBlock.cpp index 422cf97..a3966bd 100644 --- a/GroupBlock.cpp +++ b/GroupBlock.cpp @@ -5,31 +5,48 @@ #include "GroupInterface.h" #include "string.h" #include +#include "Parameters.h" int GroupBlock::counter = 1; GroupBlock::GroupBlock(GroupBlock *_parent) throw(Exception) : AbstractBlock() { + GroupInterface* clk = NULL; + GroupInterface* rst = NULL; + // force topGroup to false if this group has a parent if (_parent != NULL) { topGroup = false; name = QString("sub_group")+"_"+QString::number(counter++); + // creating clk/rst interfaces + clk = new GroupInterface(this,"clk", AbstractInterface::Input, AbstractInterface::Clock); + rst = new GroupInterface(this,"reset", AbstractInterface::Input, AbstractInterface::Reset); + addInterface(clk); + addInterface(rst); } else { topGroup = true; name = QString("top_group"); // creating external clk/rst interfaces - GroupInterface* clk = new GroupInterface(this,"ext_clk", AbstractInterface::Input, AbstractInterface::Clock); - GroupInterface* rst = new GroupInterface(this,"ext_reset", AbstractInterface::Input, AbstractInterface::Reset); + clk = new GroupInterface(this,"ext_clk", AbstractInterface::Input, AbstractInterface::Clock); + rst = new GroupInterface(this,"ext_reset", AbstractInterface::Input, AbstractInterface::Reset); addInterface(clk); addInterface(rst); - // creating clkrstgen block : done in Dispatcher since this has no access to library + // creating clkrstgen block and connecting it to this: done in Dispatcher since this has no access to library } parent = _parent; - if (parent != NULL) { - // adding this to the child blocks of parent - AB_TO_GRP(parent)->addBlock(this); + + if (_parent != NULL) { + try { + connectClkReset(); + } + catch(Exception e) { + AbstractBlock* source = (AbstractBlock *)(e.getSource()); + cerr << qPrintable(source->getName()) << ":" << qPrintable(e.getMessage()) << endl; + throw(e); + } } + } GroupBlock::~GroupBlock() { @@ -253,7 +270,7 @@ void GroupBlock::generateVHDL(const QString& path) throw(Exception) { QString coreFile = ""; coreFile = path; - coreFile.append(normalizeName(name)); + coreFile.append(Parameters::normalizeName(name)); coreFile.append(".vhd"); QFile vhdlCore(coreFile); @@ -278,11 +295,11 @@ void GroupBlock::generateVHDL(const QString& path) throw(Exception) { } -void GroupBlock::generateComments(QTextStream& out) throw(Exception) { +void GroupBlock::generateComments(QTextStream& out, QDomElement &elt, QString coreFile) throw(Exception) { out << " -- VHDL generated automatically for " << name << " --" << endl << endl; } -void GroupBlock::generateLibraries(QTextStream& out) throw(Exception) { +void GroupBlock::generateLibraries(QTextStream& out, QDomElement &elt) throw(Exception) { out << "library IEEE;" << endl; out << "use IEEE.STD_LOGIC_1164.all;" << endl; @@ -393,7 +410,7 @@ void GroupBlock::generateEntity(QTextStream& out) throw(Exception) { } -void GroupBlock::generateArchitecture(QTextStream& out) throw(Exception) { +void GroupBlock::generateArchitecture(QTextStream& out, QDomElement &elt) throw(Exception) { }