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

Private GIT Repository
moved clocks list to graph
[blast.git] / Parameters.h
index a152f1cca2c41549113c9f63ddf0d9f34454ce37..e14b3fe11cc856e2d2705c440f157fd6335e58d9 100644 (file)
@@ -16,6 +16,7 @@ class ReferenceBlock;
 class GroupBlock;\r
 class FunctionalBlock;\r
 class GroupScene;\r
 class GroupBlock;\r
 class FunctionalBlock;\r
 class GroupScene;\r
+class AbstractBoxItem;\r
 class GroupItem;\r
 class BoxItem;\r
 class InterfaceItem;\r
 class GroupItem;\r
 class BoxItem;\r
 class InterfaceItem;\r
@@ -23,6 +24,7 @@ class Graph;
 class GroupWidget;\r
 \r
 #include "BlockImplementation.h"\r
 class GroupWidget;\r
 \r
 #include "BlockImplementation.h"\r
+#include "ExternalResource.h"\r
 \r
 #include "Exception.h"\r
 class Exception;\r
 \r
 #include "Exception.h"\r
 class Exception;\r
@@ -77,15 +79,25 @@ public :
   inline void setCursorState(CursorState state) { cursorState = state; }\r
   inline void setDispatcher(Dispatcher* _dispatcher) { dispatcher = _dispatcher;}\r
 \r
   inline void setCursorState(CursorState state) { cursorState = state; }\r
   inline void setDispatcher(Dispatcher* _dispatcher) { dispatcher = _dispatcher;}\r
 \r
+  // testers\r
+\r
+  // others\r
+  static QString normalizeName(const QString& name);\r
+  QList<ExternalResource*> searchResourceByName(const QString& name);\r
+\r
   /***************************************************\r
     attributes that are general to the application\r
   ***************************************************/  \r
   BlockLibraryTree* categoryTree;\r
   QList<QString> refPathes;\r
   QList<QString> implPathes;\r
   /***************************************************\r
     attributes that are general to the application\r
   ***************************************************/  \r
   BlockLibraryTree* categoryTree;\r
   QList<QString> refPathes;\r
   QList<QString> implPathes;\r
+  QList<QString> sourcePathes;\r
   QList<ReferenceBlock*> availableBlocks;\r
   QList<BlockImplementation*> availableImplementations;\r
   QList<ReferenceBlock*> availableBlocks;\r
   QList<BlockImplementation*> availableImplementations;\r
+  QList<ExternalResource*> availableResources;\r
 \r
 \r
+  ReferenceBlock* delayRef;\r
+  BlockImplementation* delayImpl;  \r
 \r
   QString refLib;\r
   QString implLib;\r
 \r
   QString refLib;\r
   QString implLib;\r
@@ -93,6 +105,8 @@ public :
   // defaults for vhdl\r
   int wbDataWidth;\r
   int wbAddressWidth;\r
   // defaults for vhdl\r
   int wbDataWidth;\r
   int wbAddressWidth;\r
+  QString validityExtension; //! the string to add to ports to obtain the name of the associated validity port.\r
+  \r
   // defaults for scene elements\r
   int defaultBlockWidth;\r
   int defaultBlockHeight;\r
   // defaults for scene elements\r
   int defaultBlockWidth;\r
   int defaultBlockHeight;\r
@@ -106,8 +120,10 @@ public :
   QString defaultIfaceFontName;\r
   int defaultIfaceFontSize;\r
   int connGapLength;\r
   QString defaultIfaceFontName;\r
   int defaultIfaceFontSize;\r
   int connGapLength;\r
-  QPainterPath inArrow;\r
-  QPainterPath outArrow;\r
+  QPainterPath dataArrowIn;\r
+  QPainterPath dataArrowOut;\r
+  QPainterPath clkrstArrow;\r
+\r
 \r
   /***************************************************\r
    attributes that are specific for the current project\r
 \r
   /***************************************************\r
    attributes that are specific for the current project\r
@@ -118,13 +134,19 @@ public :
   EditState editState; // takes values from EDIT_STATE_XXX\r
   bool unsaveModif;\r
   bool isRstClkShown;\r
   EditState editState; // takes values from EDIT_STATE_XXX\r
   bool unsaveModif;\r
   bool isRstClkShown;\r
+  QMap<FunctionalBlock*, BoxItem*> blockToItem; // allow to retrieve a box item from a functionnal block\r
+  QString projectPath;\r
+  QString projectName;\r
+  QString projectFile; // equals to projectPath/projectName.xml\r
+  bool autoConnMainClk; // true if auto-connection to main clock (i.e. ext_clk) \r
+  double mainClock; // main clock freq (reported in graph->clocks(0))\r
 \r
 \r
-  Graph* createGraph();\r
+  Graph* initGraph(bool createTopGroupIfaces = true);\r
   void destroyGraph();\r
   inline Graph* getGraph() { return graph; }  \r
   ReferenceBlock* getReferenceBlock(int idCategory, int idBlock); // get the reference block from its category and index\r
   void destroyGraph();\r
   inline Graph* getGraph() { return graph; }  \r
   ReferenceBlock* getReferenceBlock(int idCategory, int idBlock); // get the reference block from its category and index\r
-  FunctionalBlock* duplicateFunctionalBlock(FunctionalBlock* block); // adding a copy of a functional block to current group\r
-\r
+  ReferenceBlock* getHiddenReferenceBlock(QString blockName); // get a hidden block by name, i.e. in category 100  \r
+  double getFeedingClockFrequency(AbstractInterface* iface); // determine at which freq. is synchronized iface\r
 \r
   void clear();\r
 \r
 \r
   void clear();\r
 \r
@@ -135,11 +157,14 @@ public :
   void loadReferencesFromXml() throw(Exception);\r
   void loadReferencesFromLib() throw(Exception);\r
   void saveReferencesToLib() throw(Exception);\r
   void loadReferencesFromXml() throw(Exception);\r
   void loadReferencesFromLib() throw(Exception);\r
   void saveReferencesToLib() throw(Exception);\r
+  void createDelayBlock();\r
 \r
   void loadImplementationsFromXml() throw(Exception);\r
   void loadImplementationsFromLib() throw(Exception);\r
   void saveImplementationsToLib() throw(Exception);\r
 \r
 \r
   void loadImplementationsFromXml() throw(Exception);\r
   void loadImplementationsFromLib() throw(Exception);\r
   void saveImplementationsToLib() throw(Exception);\r
 \r
+  void loadSources() throw(Exception);\r
+\r
   void addAvailableBlock(ReferenceBlock *block);  \r
   void parametersValidation();\r
   void connectionsValidation();\r
   void addAvailableBlock(ReferenceBlock *block);  \r
   void parametersValidation();\r
   void connectionsValidation();\r
@@ -151,10 +176,12 @@ public :
   ReferenceBlock* searchBlockByXml(QString xmlName);\r
   ReferenceBlock* searchBlockByMd5(QString sumMd5);\r
 \r
   ReferenceBlock* searchBlockByXml(QString xmlName);\r
   ReferenceBlock* searchBlockByMd5(QString sumMd5);\r
 \r
+  BoxItem* searchFunctionalBlock(AbstractBlock* block);\r
+\r
   void save(QString confFile);\r
 \r
 \r
   void save(QString confFile);\r
 \r
 \r
-  QString projectPath;\r
+\r
 \r
 private:\r
   Graph* graph; // the graph model of blocks\r
 \r
 private:\r
   Graph* graph; // the graph model of blocks\r
@@ -167,6 +194,7 @@ private:
 \r
   GroupScene* searchSceneById(int id, GroupScene* scene);\r
   BoxItem* searchBlockItemById(int id, GroupScene* scene);\r
 \r
   GroupScene* searchSceneById(int id, GroupScene* scene);\r
   BoxItem* searchBlockItemById(int id, GroupScene* scene);\r
+  BoxItem* searchFunctionalBlockRecur(AbstractBlock* block, GroupScene* scene);\r
   GroupItem* searchGroupItemById(int id, GroupScene* scene);\r
   InterfaceItem* searchInterfaceItemById(int id, GroupScene *scene);\r
 \r
   GroupItem* searchGroupItemById(int id, GroupScene* scene);\r
   InterfaceItem* searchInterfaceItemById(int id, GroupScene *scene);\r
 \r