X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/blast.git/blobdiff_plain/84eeae848c9d322ea4c935b8ec7338f69becbc10..HEAD:/ReferenceBlock.h?ds=sidebyside diff --git a/ReferenceBlock.h b/ReferenceBlock.h index 8212fcd..63dca3c 100644 --- a/ReferenceBlock.h +++ b/ReferenceBlock.h @@ -26,29 +26,34 @@ public: ReferenceBlock(const QString _xmlFile); + // getters int getType(); inline QString getXmlFile() { return xmlFile; } - inline QString getBriefDescription() { return descriptionBrief; } - inline QString getDetailedDescription() { return descriptionDetail; } + inline QString getDescription() { return description; } inline QList getCategories() { return categories; } inline QList getImplementations() { return implementations; } - inline QString getHashMd5() { return hashMd5; } - + inline QString getHashMd5() { return hashMd5; } inline AbstractBlock* getParent() { return NULL; } + QList getExternalResources(); - void addCategory(int id); - void setBriefDescription(const QString& str); - void setDetailedDescription(const QString& str); + // setters + void setDescription(const QString& str); + + // others void addImplementation(BlockImplementation* impl); + void addCategory(int id); void load(QDomElement &elt) throw(Exception); void setHashMd5(); + void generateVHDL(const QString& path) throw(Exception); // main entry to generate the VHDL code + + void parametersValidation(QList* checkedBlocks, QList* blocksToConfigure); + private: QString xmlFile; // the xml file from which attributes are initialized. QString hashMd5; - QString descriptionBrief; - QString descriptionDetail; + QString description; QList categories; QList implementations; // set when implementations are read @@ -56,20 +61,22 @@ private: void loadInformations(QDomElement &elt) throw(Exception); void loadParameters(QDomElement &elt) throw(Exception); void loadInterfaces(QDomElement &elt) throw(Exception); - void createInterfaceForParameters() throw(Exception); + void createInterfaceForWishbone() throw(Exception); friend QDataStream &operator<<(QDataStream &out, const ReferenceBlock &b); friend QDataStream &operator>>(QDataStream &in, ReferenceBlock &b); - - // AbstractBlock interface -public: - void parametersValidation(QList* checkedBlocks, QList* blocksToConfigure); - -private: // patterns - bool checkInputPatternCompatibility(); - bool computeOutputPattern(int nbExec = -1); + void checkInputPatternCompatibility() throw(Exception); + void computeOutputPattern(int nbExec = -1) throw(Exception); + void computeAdmittanceDelays() throw(Exception); + + void generateComments(QTextStream& out, QDomElement &elt, QString coreFile) throw(Exception); // generates comments from element + void generateLibraries(QTextStream& out, QDomElement &elt) throw(Exception); // generates libraries from element + void generateArchitecture(QTextStream& out, QDomElement &elt ) throw(Exception); // generate the architecture using element + void generateController(QTextStream& out) throw(Exception); // generate the wishbone controller of the block + void generateEntityOrComponentBody(QTextStream& out, int indentLevel, bool hasController=false) throw(Exception); // generate the entity/compo body using reference + }; #endif // __REFERENCEBLOCK_H__