X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/blast.git/blobdiff_plain/5d4e709cb8d460b2efc083e6e7999f1c3a0eb602..HEAD:/BlockImplementation.h?ds=sidebyside diff --git a/BlockImplementation.h b/BlockImplementation.h index 4866e85..a9a5249 100644 --- a/BlockImplementation.h +++ b/BlockImplementation.h @@ -17,7 +17,6 @@ class ArithmeticEvaluator; #include "Exception.h" class Exception; - using namespace std; using namespace Qt; @@ -36,43 +35,40 @@ public: inline QHash getConsumptionPattern() { return consumptionPattern; } inline QHash getProductionPattern() { return productionPattern; } inline QString getProductionCounter() { return productionCounter; } + inline QList getResources() { return resources; } + // setters + inline void setDelta(QString _delta) { delta = _delta; } + inline void setConsumptionPattern(QHash pattern) { consumptionPattern = pattern; } + inline void setProductionPattern(QHash pattern) { productionPattern = pattern; } + inline void setProductionCounter(QString pattern) { productionCounter = pattern; } - QString eval(QString line, QTextStream& out); - QString evalComplex(QString line, int num); - QString evalString(QString s); - QList* evalStringComplex(QString s); - QString evalValue(QString s); - QString calculateWidth(QString s); + // testers + + inline bool hasNoPatterns() { return noPatterns; } inline void setReference(ReferenceBlock* _reference) { reference = _reference; } void loadPatterns(QDomElement &root) throw(Exception); - bool checkPatterns(); - void generateVHDL(FunctionalBlock* _block, const QString& path) throw(Exception); // main entry to generate the VHDL code + bool checkPatterns(); - + inline void addResource(QString file) { resources.append(file); } private: QString xmlFile; QString referenceXml; QString referenceMd5; - QString nameEnt, line; + + QList resources; + QMap paramMap; ArithmeticEvaluator* evaluator; ReferenceBlock* reference; FunctionalBlock* block; // the current functional block for which this implementation is used. + bool noPatterns; QString delta; QHash consumptionPattern; // key = reference interface name, value = pattern expression QHash productionPattern; // key = reference interface name, value = pattern expression - QString productionCounter; - - void generateComments(QDomElement &elt,QString coreFile, QTextStream& out) throw(Exception); // generates comments from element - void generateLibraries(QDomElement &elt, QTextStream& out) throw(Exception); // generates libraries from element - void generateEntity(QTextStream& out, bool hasController=false) throw(Exception); // generate the entity using reference - void generateArchitecture(QDomElement &elt, QTextStream& out) throw(Exception); // generate the architecture using element - void generateController(QTextStream& out) throw(Exception); // generate the wishbone controller of the block - - QString getIfaceUserName(AbstractInterface* refIface); // get the name of an interface given by the user, from the reference interface + QString productionCounter; friend QDataStream &operator<<(QDataStream &out, const BlockImplementation &impl); friend QDataStream &operator>>(QDataStream &in, BlockImplementation &impl);