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

Private GIT Repository
after merge
authorstephane Domas <stephane.domas@univ-fcomte.fr>
Mon, 5 Mar 2018 10:00:46 +0000 (11:00 +0100)
committerstephane Domas <stephane.domas@univ-fcomte.fr>
Mon, 5 Mar 2018 10:00:46 +0000 (11:00 +0100)
1  2 
AbstractBlock.cpp
AbstractBlock.h
GroupBlock.cpp
blast.creator.user
lib/implementations/impls.bmf
lib/references/references.bmf

diff --combined AbstractBlock.cpp
index 90031d9c29c3fa31adce2d82569b81b808420872,13adcae22b44098ea2cd9834481bda1d37e80428..336b677a10aeb7f3b75ab64967af1e283181d85c
@@@ -3,17 -3,20 +3,22 @@@
  #include <QMessageBox>\r
  #include "AbstractInterface.h"\r
  #include "BlockParameter.h"\r
 +#include "Parameters.h"\r
+ #include "GroupBlock.h"\r
+ #include "ConnectedInterface.h"\r
\r
 +\r
  AbstractBlock::AbstractBlock() {\r
    name = "";\r
    parent = NULL;\r
  }\r
  \r
+ /*\r
  AbstractBlock::AbstractBlock(const QString& _name) {\r
 -  name = normalizeName(_name);\r
 +  name = Parameters::normalizeName(_name);\r
    parent = NULL;\r
  }\r
+ */\r
  \r
  AbstractBlock::~AbstractBlock() {\r
  \r
@@@ -26,7 -29,7 +31,7 @@@
  }\r
  \r
  void AbstractBlock::setName(const QString& str) {\r
 -  name = normalizeName(str);\r
 +  name = Parameters::normalizeName(str);\r
  }\r
  \r
  void AbstractBlock::setParent(AbstractBlock* _parent) {\r
@@@ -236,6 -239,56 +241,51 @@@ QList<BlockParameter *> AbstractBlock::
    return lst;\r
  }\r
  \r
 -QString AbstractBlock::normalizeName(const QString &name) {\r
 -  QString s = name;\r
 -  s.replace(QRegularExpression("[^a-zA-Z0-9_]"),"_");\r
 -  s.replace(QRegularExpression("[_]+"),"_");\r
 -  return s;\r
 -}\r
 +\r
  \r
+ void AbstractBlock::connectClkReset() throw(Exception) {\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
+   QList<AbstractInterface* > lstClk = getInterfaces(AbstractInterface::Input,AbstractInterface::Clock);\r
+   QList<AbstractInterface* > lstRst = getInterfaces(AbstractInterface::Input,AbstractInterface::Reset);\r
\r
+   if ((lstClk.isEmpty()) || (lstRst.isEmpty())) {\r
+     throw(Exception(IFACE_GROUP_NOCLKRST,this));\r
+   }\r
\r
+   ConnectedInterface* toClk = AI_TO_CON(lstClk.at(0));\r
+   ConnectedInterface* toRst = AI_TO_CON(lstRst.at(0));\r
\r
+   ConnectedInterface* fromClk = NULL;\r
+   ConnectedInterface* fromRst = NULL;\r
\r
+   if (parentBlock->isTop()) {\r
+     AbstractBlock* clkrstgen = parentBlock->getFunctionalBlockByName("clkrstgen");\r
+     if (clkrstgen == NULL) {\r
+       throw(Exception(IFACE_TOP_NOCLKRSTGEN,this));\r
+     }\r
+     else {\r
+       fromClk = AI_TO_CON(clkrstgen->getIfaceFromName("clk"));\r
+       fromRst = AI_TO_CON(clkrstgen->getIfaceFromName("reset"));\r
+     }\r
+   }\r
+   else {\r
+     fromClk = AI_TO_CON(parentBlock->getIfaceFromName("clk"));\r
+     fromRst = AI_TO_CON(parentBlock->getIfaceFromName("reset"));\r
+   }\r
+   if ((fromClk == NULL) || (fromRst == NULL)) {\r
+     throw(Exception(IFACE_GROUP_NOCLKRST,parentBlock));\r
+   }\r
+   else {\r
+     fromClk->connectTo(toClk);\r
+     fromRst->connectTo(toRst);\r
+   }\r
\r
\r
+ }\r
\r
\r
  \r
diff --combined AbstractBlock.h
index ebb1560e26f7b496ba731b634337e8d7a0bd78cd,616682de66bc2cfbc12151269c3293671d97f33c..3e811e9300a74c1501ecb709013a195b823c817d
@@@ -21,7 -21,7 +21,7 @@@ class AbstractBlock 
  public:  \r
        \r
    AbstractBlock();\r
-   AbstractBlock(const QString& _name);\r
+   //AbstractBlock(const QString& _name);\r
    virtual ~AbstractBlock();\r
  \r
    // getters\r
@@@ -30,7 -30,7 +30,7 @@@
    inline QList<BlockParameter *> getParameters() { return params; }\r
    inline QList<AbstractInterface*> getInputs() { return inputs; }\r
    inline QList<AbstractInterface*> getOutputs() { return outputs; }\r
-   inline QList<AbstractInterface*> getBidirs() { return bidirs; }\r
+   inline QList<AbstractInterface*> getBidirs() { return bidirs; }  \r
    QList<BlockParameter *> getUserParameters();\r
    QList<BlockParameter *> getGenericParameters();\r
    QList<BlockParameter *> getPortParameters();\r
@@@ -56,7 -56,9 +56,9 @@@
    bool isWBConfigurable();\r
  \r
    // others\r
 -  static QString normalizeName(const QString& name);\r
+   void connectClkReset() throw(Exception);\r
\r
 +\r
    virtual void parametersValidation(QList<AbstractBlock*>* checkedBlocks, QList<AbstractBlock*>* blocksToConfigure) = 0; // ugly but usefull   \r
  \r
    void addParameter(BlockParameter *param);\r
diff --combined GroupBlock.cpp
index 0ba203dba5c6bb00f73774b41806afd94541ff3c,4746a7480b9db4d660c4e560eaa090e0533a5d8e..6cd76b9f3d1ee192a4c24eae858a52b8ca6ba787
@@@ -5,7 -5,6 +5,7 @@@
  #include "GroupInterface.h"
  #include "string.h"
  #include <sstream>
 +#include "Parameters.h"
  
  int GroupBlock::counter = 1;
  
@@@ -32,20 -31,21 +32,21 @@@ GroupBlock::GroupBlock(GroupBlock *_par
      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    
-     _parent->addBlock(this);
-     // connect clk/rst ifaces to parent clk/rst or to clkrstgen if parent is top group
-     if (_parent->isTop()) {
-       
+     try {
+       connectClkReset();
      }
-     else {
-       
+     catch(Exception e) {
+       AbstractBlock* source = (AbstractBlock *)(e.getSource());
+       cerr << qPrintable(source->getName()) << ":" << qPrintable(e.getMessage()) << endl;
+       throw(e);
      }
    }
  }
  
  GroupBlock::~GroupBlock() {
@@@ -269,7 -269,7 +270,7 @@@ void GroupBlock::generateVHDL(const QSt
    QString coreFile = "";
  
    coreFile = path;
 -  coreFile.append(normalizeName(name));
 +  coreFile.append(Parameters::normalizeName(name));
    coreFile.append(".vhd");
  
    QFile vhdlCore(coreFile);
diff --combined blast.creator.user
index 2d89560b84152122fd247d0486e54c0339055e30,f58f19423c23f89b64da350976087acf841992ce..0000000000000000000000000000000000000000
deleted file mode 100755,100755
+++ /dev/null
@@@ -1,198 -1,198 +1,0 @@@
--<?xml version="1.0" encoding="UTF-8"?>
--<!DOCTYPE QtCreatorProject>
- <!-- Written by QtCreator 4.2.0, 2018-02-12T16:51:17. -->
 -<!-- Written by QtCreator 4.2.0, 2018-01-24T21:11:11. -->
--<qtcreator>
-- <data>
--  <variable>EnvironmentId</variable>
-   <value type="QByteArray">{94112477-caab-4897-8f75-5f412f2c883a}</value>
 -  <value type="QByteArray">{c8006d66-d34f-42be-ad10-d0207752286d}</value>
-- </data>
-- <data>
--  <variable>ProjectExplorer.Project.ActiveTarget</variable>
--  <value type="int">0</value>
-- </data>
-- <data>
--  <variable>ProjectExplorer.Project.EditorSettings</variable>
--  <valuemap type="QVariantMap">
--   <value type="bool" key="EditorConfiguration.AutoIndent">true</value>
--   <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
--   <value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
--   <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
--    <value type="QString" key="language">Cpp</value>
--    <valuemap type="QVariantMap" key="value">
--     <value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
--    </valuemap>
--   </valuemap>
--   <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
--    <value type="QString" key="language">QmlJS</value>
--    <valuemap type="QVariantMap" key="value">
--     <value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
--    </valuemap>
--   </valuemap>
--   <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
--   <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
--   <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
--   <value type="int" key="EditorConfiguration.IndentSize">4</value>
--   <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
--   <value type="int" key="EditorConfiguration.MarginColumn">80</value>
--   <value type="bool" key="EditorConfiguration.MouseHiding">true</value>
--   <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
--   <value type="int" key="EditorConfiguration.PaddingMode">1</value>
--   <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
--   <value type="bool" key="EditorConfiguration.ShowMargin">false</value>
--   <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
--   <value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
--   <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
--   <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
--   <value type="int" key="EditorConfiguration.TabSize">8</value>
--   <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
--   <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
--   <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
--   <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
--   <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
--   <value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
--  </valuemap>
-- </data>
-- <data>
--  <variable>ProjectExplorer.Project.PluginSettings</variable>
--  <valuemap type="QVariantMap"/>
-- </data>
-- <data>
--  <variable>ProjectExplorer.Project.Target.0</variable>
--  <valuemap type="QVariantMap">
--   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
--   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{c934e180-ebc6-41ed-be82-502cc94f41f6}</value>
 -   <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{2c9bf876-3476-44eb-8065-1f0844704dda}</value>
--   <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
--   <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
--   <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
--   <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
--    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/sdomas/Projet/Blast/code/blast</value>
--    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
--     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
--      <valuelist type="QVariantList" key="GenericProjectManager.GenericMakeStep.BuildTargets">
--       <value type="QString">all</value>
--      </valuelist>
--      <value type="bool" key="GenericProjectManager.GenericMakeStep.Clean">false</value>
--      <value type="QString" key="GenericProjectManager.GenericMakeStep.MakeArguments"></value>
--      <value type="QString" key="GenericProjectManager.GenericMakeStep.MakeCommand"></value>
--      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
--      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
--      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
--      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">GenericProjectManager.GenericMakeStep</value>
--     </valuemap>
--     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
--     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Compiler</value>
--     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
--     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
--    </valuemap>
--    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
--     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
--      <valuelist type="QVariantList" key="GenericProjectManager.GenericMakeStep.BuildTargets">
--       <value type="QString">clean</value>
--      </valuelist>
--      <value type="bool" key="GenericProjectManager.GenericMakeStep.Clean">true</value>
--      <value type="QString" key="GenericProjectManager.GenericMakeStep.MakeArguments"></value>
--      <value type="QString" key="GenericProjectManager.GenericMakeStep.MakeCommand"></value>
--      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
--      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
--      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
--      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">GenericProjectManager.GenericMakeStep</value>
--     </valuemap>
--     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
--     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Nettoyer</value>
--     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
--     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
--    </valuemap>
--    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
--    <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
--    <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
--    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Défaut</value>
--    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Défaut</value>
--    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">GenericProjectManager.GenericBuildConfiguration</value>
--   </valuemap>
--   <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
--   <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
--    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
--     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
--     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Déploiement</value>
--     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
--     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
--    </valuemap>
--    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
--    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Déployer localement</value>
--    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
--    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
--   </valuemap>
--   <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
--   <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
--   <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
--    <value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
--    <value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
--    <value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
--    <value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
--    <value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
--    <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
--    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
--    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
--    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
--    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
--    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
--    <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
--    <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
--    <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
--    <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
--    <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
--    <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
--    <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
--    <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
--    <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
--    <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
--    <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
--    <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
--     <value type="int">0</value>
--     <value type="int">1</value>
--     <value type="int">2</value>
--     <value type="int">3</value>
--     <value type="int">4</value>
--     <value type="int">5</value>
--     <value type="int">6</value>
--     <value type="int">7</value>
--     <value type="int">8</value>
--     <value type="int">9</value>
--     <value type="int">10</value>
--     <value type="int">11</value>
--     <value type="int">12</value>
--     <value type="int">13</value>
--     <value type="int">14</value>
--    </valuelist>
--    <value type="int" key="PE.EnvironmentAspect.Base">2</value>
--    <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
--    <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Arguments"></value>
--    <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Executable"></value>
--    <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.WorkingDirectory">%{buildDir}</value>
--    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Custom Executable</value>
--    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
--    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value>
--    <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
--    <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
--    <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
--    <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
--    <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
--    <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
--   </valuemap>
--   <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
--  </valuemap>
-- </data>
-- <data>
--  <variable>ProjectExplorer.Project.TargetCount</variable>
--  <value type="int">1</value>
-- </data>
-- <data>
--  <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
--  <value type="int">18</value>
-- </data>
-- <data>
--  <variable>Version</variable>
--  <value type="int">18</value>
-- </data>
--</qtcreator>
diff --combined lib/implementations/impls.bmf
index 1d8c695ca0ae47323573d8acc1705f47d7c816bf,8384e85ac170221fc80d284ca79dc7c38aca81f0..0000000000000000000000000000000000000000
deleted file mode 100644,100644
Binary files differ
diff --combined lib/references/references.bmf
index 2c93c037751fd725fb1ce2d4e62209c562b58efc,a34f5925c214b924674d852699a77d62c20aedb5..0000000000000000000000000000000000000000
deleted file mode 100644,100644
Binary files differ