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

Private GIT Repository
removed leve attr. from interfaces
authorStéphane Domas <sdomas@prodigy.iut-bm.univ-fcomte.fr>
Wed, 3 May 2017 09:18:41 +0000 (11:18 +0200)
committerStéphane Domas <sdomas@prodigy.iut-bm.univ-fcomte.fr>
Wed, 3 May 2017 09:18:41 +0000 (11:18 +0200)
23 files changed:
AbstractInterface.cpp
AbstractInterface.h
ConnectedInterface.cpp
ConnectedInterface.h
Dispatcher.cpp
FunctionalInterface.cpp
GroupInterface.cpp
GroupInterface.h
GroupItem.cpp
InterfaceItem.cpp
InterfacePropertiesWindow.cpp
ReferenceBlock.cpp
ReferenceInterface.cpp
ReferenceInterface.h
blastconfig.xml
block.xsd
lib/README.txt
lib/implementations/impls.bmf
lib/references/apf27-wb-master.xml
lib/references/demux.xml
lib/references/references.bmf
projectfile.xsd
testproject.xml

index 25cd2d3b284789e8e1ba7d7da932a5295f883555..e651f583583e507f0b198288088bcd629114e909 100644 (file)
@@ -8,23 +8,18 @@ AbstractInterface::AbstractInterface(AbstractBlock* _owner) {
   name = "";
   width = "1";
   direction = Input;
   name = "";
   width = "1";
   direction = Input;
-  purpose = Data;
-  level = Basic;
+  purpose = Data;  
   type = Boolean;
 
 }
 
   type = Boolean;
 
 }
 
-AbstractInterface::AbstractInterface(AbstractBlock* _owner, const QString& _name, const QString& _type, const QString& _width, int _direction, int _purpose, int _level) {
+AbstractInterface::AbstractInterface(AbstractBlock* _owner, const QString& _name, const QString& _type, const QString& _width, int _direction, int _purpose) {
 
   owner = _owner;  
   name = _name;
   width = _width;
   direction = _direction;
   purpose = _purpose;
 
   owner = _owner;  
   name = _name;
   width = _width;
   direction = _direction;
   purpose = _purpose;
-  level = _level;
-  if (direction == InOut) {
-    level = Top;
-  }
   type = typeFromString(_type);
 }
 
   type = typeFromString(_type);
 }
 
@@ -35,7 +30,6 @@ AbstractInterface::AbstractInterface(AbstractInterface* other) {
   width = other->width;
   direction = other->direction;
   purpose = other->purpose;
   width = other->width;
   direction = other->direction;
   purpose = other->purpose;
-  level = other->level;
 }
 
 AbstractInterface::~AbstractInterface() {
 }
 
 AbstractInterface::~AbstractInterface() {
@@ -89,19 +83,6 @@ QString AbstractInterface::getDirectionString() {
     return str;
 }
 
     return str;
 }
 
-QString AbstractInterface::getLevelString() {
-    QString str;
-    switch(level){
-        case AbstractInterface::Basic:
-            str = QString("basic");
-            break;
-        case AbstractInterface::Top:
-            str = QString("top");
-            break;
-    }
-    return str;
-}
-
 double AbstractInterface::getDoubleWidth() throw(QException) {
 
   static QString fctName = "AbstractInterface::getDoubleWidth()";
 double AbstractInterface::getDoubleWidth() throw(QException) {
 
   static QString fctName = "AbstractInterface::getDoubleWidth()";
@@ -143,36 +124,16 @@ void AbstractInterface::setDirection(int _direction) {
   if ((_direction > Input) && (_direction <= InOut)) {
     direction = _direction;
   }
   if ((_direction > Input) && (_direction <= InOut)) {
     direction = _direction;
   }
-  if (direction == InOut) {
-    level = Top;
-  }
-}
-
-void AbstractInterface::setLevel(int _level) {
-  if ((_level >= Basic) << (_level < Top)) {
-    level = _level;
-  }
-  if (direction == InOut) {
-    level = Top;
-  }
 }
 
 
 }
 
 
-
-int AbstractInterface::getIntDirection(QString str)
-{
+int AbstractInterface::getIntDirection(QString str) {
     if(str == "input") return Input;
     if(str == "output") return Output;
     if(str == "inOut") return InOut;
     return -1;
 }
 
     if(str == "input") return Input;
     if(str == "output") return Output;
     if(str == "inOut") return InOut;
     return -1;
 }
 
-int AbstractInterface::getIntLevel(QString str)
-{
-    if(str == "basic") return Basic;
-    if(str == "top") return Top;
-    return -1;
-}
 
 QString AbstractInterface::getTypeString() {
 
 
 QString AbstractInterface::getTypeString() {
 
index 78414c36236a33a040736e75b5193c2d8c87cc47..608d04ca8e8867bc273769cb73069ed1de7a3178 100644 (file)
@@ -25,16 +25,14 @@ public :
 
   enum IfaceWidthType { Expression = 1, Boolean, Natural};
   enum IfacePurpose { Data = 1, Clock = 2, Reset = 3, Wishbone = 4 };
 
   enum IfaceWidthType { Expression = 1, Boolean, Natural};
   enum IfacePurpose { Data = 1, Clock = 2, Reset = 3, Wishbone = 4 };
-  enum IfaceDirection { Input = 1, Output = 2, InOut = 3 };
-  enum IfaceLevel { Basic = 1, Top = 2 };  
+  enum IfaceDirection { Input = 1, Output = 2, InOut = 3 };  
   enum IfaceVHDLContext { Entity = 1, Component = 2, Architecture = 3 }; // NB : 3 is when creating an instance of the block that owns this iface
   enum IfaceVHDLFlags { NoComma = 1 };
 
   enum IfaceVHDLContext { Entity = 1, Component = 2, Architecture = 3 }; // NB : 3 is when creating an instance of the block that owns this iface
   enum IfaceVHDLFlags { NoComma = 1 };
 
-  static int getIntDirection(QString str);
-  static int getIntLevel(QString str);
+  static int getIntDirection(QString str);  
 
   AbstractInterface(AbstractBlock* _owner);
 
   AbstractInterface(AbstractBlock* _owner);
-  AbstractInterface(AbstractBlock* _owner, const QString& _name, const QString& _type, const QString& _width, int _direction, int _purpose, int _level);
+  AbstractInterface(AbstractBlock* _owner, const QString& _name, const QString& _type, const QString& _width, int _direction, int _purpose);
   AbstractInterface(AbstractInterface* other);
   virtual ~AbstractInterface();
 
   AbstractInterface(AbstractInterface* other);
   virtual ~AbstractInterface();
 
@@ -46,9 +44,7 @@ public :
   inline int getPurpose() { return purpose;}
   QString getPurposeString();
   inline int getDirection() { return direction;}
   inline int getPurpose() { return purpose;}
   QString getPurposeString();
   inline int getDirection() { return direction;}
-  QString getDirectionString();
-  inline int getLevel() { return level;}
-  QString getLevelString();
+  QString getDirectionString();  
   inline AbstractBlock *getOwner() { return owner;}
 
   double getDoubleWidth() throw(QException);
   inline AbstractBlock *getOwner() { return owner;}
 
   double getDoubleWidth() throw(QException);
@@ -67,8 +63,7 @@ public :
   inline void setType(int _type) { type = _type;}
   inline void setType(const QString& _type) { type = typeFromString(_type);}
   void setPurpose(int _purpose);
   inline void setType(int _type) { type = _type;}
   inline void setType(const QString& _type) { type = typeFromString(_type);}
   void setPurpose(int _purpose);
-  void setDirection(int _direction);
-  void setLevel(int _level);
+  void setDirection(int _direction);  
 
   // testers
   virtual bool isReferenceInterface();
 
   // testers
   virtual bool isReferenceInterface();
@@ -98,7 +93,6 @@ protected:
   QString width;
   int purpose;
   int direction;
   QString width;
   int purpose;
   int direction;
-  int level;
 
   AbstractBlock* owner;
 };
 
   AbstractBlock* owner;
 };
index fbfa7851bff89f264b2fa24eb68bfd9de5da5ff1..69a484bf764016e681441871e66862caf6d8854d 100644 (file)
@@ -8,7 +8,7 @@ ConnectedInterface::ConnectedInterface(AbstractBlock* _owner) : AbstractInterfac
   connectedFrom = NULL;\r
 }\r
 \r
   connectedFrom = NULL;\r
 }\r
 \r
-ConnectedInterface::ConnectedInterface(AbstractBlock* _owner, const QString& _name, const QString& _type, const QString& _width, int _direction, int _purpose, int _level) : AbstractInterface(_owner, _name, _type, _width, _direction, _purpose, _level) {\r
+ConnectedInterface::ConnectedInterface(AbstractBlock* _owner, const QString& _name, const QString& _type, const QString& _width, int _direction, int _purpose) : AbstractInterface(_owner, _name, _type, _width, _direction, _purpose) {\r
   connectedFrom = NULL;\r
 }\r
 \r
   connectedFrom = NULL;\r
 }\r
 \r
index 968a00a60c7198836954ba6ab7549e5958cef8ec..a8ce4de7861bda09abe777c8e0fc8948975c6b49 100644 (file)
@@ -20,7 +20,7 @@ class ConnectedInterface : public AbstractInterface {
 public :
 
   ConnectedInterface(AbstractBlock* _owner);
 public :
 
   ConnectedInterface(AbstractBlock* _owner);
-  ConnectedInterface(AbstractBlock* _owner, const QString& _name, const QString& _type, const QString& _width, int _direction, int _purpose, int _level);
+  ConnectedInterface(AbstractBlock* _owner, const QString& _name, const QString& _type, const QString& _width, int _direction, int _purpose);
   // getters
   inline QList<ConnectedInterface*> getConnectedTo() { return connectedTo;}
   inline ConnectedInterface* getConnectedFrom() { return connectedFrom;}
   // getters
   inline QList<ConnectedInterface*> getConnectedTo() { return connectedTo;}
   inline ConnectedInterface* getConnectedFrom() { return connectedFrom;}
index bbeb84142b6347aea12f14742f400cd24570e0a7..73577b2a5fed6a991a55e760c10ea2436db8a01f 100644 (file)
@@ -807,7 +807,7 @@ void Dispatcher::connectInterToGroup(InterfaceItem *item){
   GroupItem *parentItem = item->getOwner()->getScene()->getGroupItem();
 
   // creating/adding the group interface in the graph model
   GroupItem *parentItem = item->getOwner()->getScene()->getGroupItem();
 
   // creating/adding the group interface in the graph model
-  GroupInterface *groupInter = new GroupInterface(parentBlock,refInter->getName()+"_group",refInter->getDirection(),refInter->getLevel());
+  GroupInterface *groupInter = new GroupInterface(parentBlock,refInter->getName()+"_group",refInter->getDirection());
   groupInter->setType(refInter->getType());
   groupInter->setWidth(refInter->getWidth());
   groupInter->setPurpose(refInter->getPurpose());
   groupInter->setType(refInter->getType());
   groupInter->setWidth(refInter->getWidth());
   groupInter->setPurpose(refInter->getPurpose());
index bce7ca1f3d1293d7f66f453a6d22a44cb0966458..1b8ff07961ea4b3062b730c08210979add4244a0 100644 (file)
@@ -19,8 +19,7 @@ FunctionalInterface::FunctionalInterface(AbstractBlock* _owner, ReferenceInterfa
   name = reference->getName();\r
   width = reference->getWidth();\r
   direction = reference->getDirection();\r
   name = reference->getName();\r
   width = reference->getWidth();\r
   direction = reference->getDirection();\r
-  purpose = reference->getPurpose();\r
-  level = reference->getLevel(); \r
+  purpose = reference->getPurpose();  \r
   connectedFrom = NULL;\r
 }\r
 \r
   connectedFrom = NULL;\r
 }\r
 \r
@@ -79,8 +78,7 @@ AbstractInterface *FunctionalInterface::clone() {
   FunctionalInterface *inter = new FunctionalInterface(owner, reference);\r
   inter->setWidth(width);\r
   inter->setDirection(direction);\r
   FunctionalInterface *inter = new FunctionalInterface(owner, reference);\r
   inter->setWidth(width);\r
   inter->setDirection(direction);\r
-  inter->setPurpose(purpose);\r
-  inter->setLevel(level);  \r
+  inter->setPurpose(purpose);  \r
   inter->connectFrom(NULL);\r
   inter->setName(reference->getName()+"_"+QString::number(id+1));\r
   return inter;\r
   inter->connectFrom(NULL);\r
   inter->setName(reference->getName()+"_"+QString::number(id+1));\r
   return inter;\r
index 14f8b43e08b0912f8fc4f50e00c4a1e233ade918..1c10bffba03f2b4eeeddd8c8f3ff35f233dce163 100644 (file)
@@ -2,18 +2,9 @@
 #include "FunctionalInterface.h"
 #include "GroupBlock.h"
 
 #include "FunctionalInterface.h"
 #include "GroupBlock.h"
 
-GroupInterface::GroupInterface(AbstractBlock* _owner, const QString& _name, int _direction, int _level) throw(Exception) : ConnectedInterface(_owner,_name,"expression","",_direction,AbstractInterface::Data,_level) {
+GroupInterface::GroupInterface(AbstractBlock* _owner, const QString& _name, int _direction) throw(Exception) : ConnectedInterface(_owner,_name,"expression","",_direction,AbstractInterface::Data) {
   if (! _owner->isGroupBlock()) throw(Exception(BLOCK_INVALID_TYPE));
 
   if (! _owner->isGroupBlock()) throw(Exception(BLOCK_INVALID_TYPE));
 
-  /* If the owner group is the top group, then all its interfaces are at top level => force them to be top.
-     If not, force them to be basic
-   */
-  if (((GroupBlock*)_owner)->isTop()) {
-    level = AbstractInterface::Top;
-  }
-  else {
-    level = AbstractInterface::Basic;
-  }
   connectedFrom = NULL;
 }
 
   connectedFrom = NULL;
 }
 
@@ -22,11 +13,10 @@ bool GroupInterface::isGroupInterface() {
 }
 
 AbstractInterface *GroupInterface::clone() {
 }
 
 AbstractInterface *GroupInterface::clone() {
-    GroupInterface *inter = new GroupInterface(owner,name,direction,level);
+    GroupInterface *inter = new GroupInterface(owner,name,direction);
     inter->setWidth(width);
     inter->setDirection(direction);
     inter->setWidth(width);
     inter->setDirection(direction);
-    inter->setPurpose(purpose);
-    inter->setLevel(level);
+    inter->setPurpose(purpose);    
     inter->connectFrom(NULL);
 
     return inter;
     inter->connectFrom(NULL);
 
     return inter;
index 2a22dc76482a02fed17cca69002749a2c0f21a17..d487ebce4a7be3a35f9857d49cbb56884243b83d 100644 (file)
@@ -34,7 +34,7 @@ using namespace Qt;
 class GroupInterface : public ConnectedInterface {
 
 public :
 class GroupInterface : public ConnectedInterface {
 
 public :
-  GroupInterface(AbstractBlock* _owner, const QString& _name, int _direction, int _level = AbstractInterface::Basic) throw (Exception);
+  GroupInterface(AbstractBlock* _owner, const QString& _name, int _direction) throw (Exception);
 
   // getters
 
 
   // getters
 
index 69b5e0473dc19ca5a5a622883bc49613f4750b1f..679cc5e7498310cf06767cc0e9469dc4462a1ae5 100644 (file)
@@ -636,10 +636,6 @@ void GroupItem::load(QDomElement groupElement) throw(Exception) {
     QString name = currentInterfaceNode.attribute("name","none");
     if(name == "none") throw(Exception(PROJECTFILE_CORRUPTED));
 
     QString name = currentInterfaceNode.attribute("name","none");
     if(name == "none") throw(Exception(PROJECTFILE_CORRUPTED));
 
-    QString levelStr = currentInterfaceNode.attribute("level","none");
-    int level = AbstractInterface::getIntLevel(levelStr);
-    if(level == -1) throw(Exception(PROJECTFILE_CORRUPTED));
-
     QString directionStr = currentInterfaceNode.attribute("direction","none");
     int direction = AbstractInterface::getIntDirection(directionStr);
     if(direction == -1) throw(Exception(PROJECTFILE_CORRUPTED));
     QString directionStr = currentInterfaceNode.attribute("direction","none");
     int direction = AbstractInterface::getIntDirection(directionStr);
     if(direction == -1) throw(Exception(PROJECTFILE_CORRUPTED));
@@ -651,7 +647,7 @@ void GroupItem::load(QDomElement groupElement) throw(Exception) {
     double position = currentInterfaceNode.attribute("position","none").toDouble(&ok);
     if(!ok) throw(Exception(PROJECTFILE_CORRUPTED));
 
     double position = currentInterfaceNode.attribute("position","none").toDouble(&ok);
     if(!ok) throw(Exception(PROJECTFILE_CORRUPTED));
 
-    GroupInterface *groupInterface = new GroupInterface(groupBlock,name,direction,level);
+    GroupInterface *groupInterface = new GroupInterface(groupBlock,name,direction);
 
     InterfaceItem *interfaceItem = new InterfaceItem(position,orientation,groupInterface,this,params);
     interfaceItem->setId(id);
 
     InterfaceItem *interfaceItem = new InterfaceItem(position,orientation,groupInterface,this,params);
     interfaceItem->setId(id);
@@ -691,8 +687,7 @@ void GroupItem::save(QXmlStreamWriter &writer) {
     writer.writeStartElement("group_iface");
 
     writer.writeAttribute("id",QString::number(item->getId()));
     writer.writeStartElement("group_iface");
 
     writer.writeAttribute("id",QString::number(item->getId()));
-    writer.writeAttribute("name",item->getName());
-    writer.writeAttribute("level",QString(item->refInter->getLevelString()));
+    writer.writeAttribute("name",item->getName());    
     writer.writeAttribute("direction",QString(item->refInter->getDirectionString()));
     writer.writeAttribute("orientation",item->getStrOrientation());
     writer.writeAttribute("position",QString::number(item->getPositionRatio()));
     writer.writeAttribute("direction",QString(item->refInter->getDirectionString()));
     writer.writeAttribute("orientation",item->getStrOrientation());
     writer.writeAttribute("position",QString::number(item->getPositionRatio()));
index 0e87a1934d67e8fc30b604466cad3ca2fe7cf4f5..7c384d286709e06039ea3d6f909e9dc8f7828df7 100644 (file)
@@ -85,11 +85,8 @@ void InterfaceItem::paint(QPainter *painter) {
 
     if(selected) {
       painter->setPen(QPen(Qt::red,2));
 
     if(selected) {
       painter->setPen(QPen(Qt::red,2));
-    }
-    else if(refInter->getLevel() == AbstractInterface::Basic) {
-      painter->setPen(QPen(Qt::darkCyan,1));
-    }
-    else if(refInter->getLevel() == AbstractInterface::Top) {
+    }    
+    else  {
       painter->setPen(QPen(Qt::black,1));
     }
 
       painter->setPen(QPen(Qt::black,1));
     }
 
index 2200bf67abb8c9e1d4253981fecb5c893c995e4e..419b33e126a07ccb4d87648db8fb74c4323f8756 100644 (file)
@@ -20,10 +20,7 @@ InterfacePropertiesWindow::InterfacePropertiesWindow(InterfaceItem *_inter, QWid
   layout->addWidget(new QLabel("Direction :"), 4, 0);
   layout->addWidget(new QLabel(inter->refInter->getDirectionString()), 4, 1);
   layout->addWidget(new QLabel("Purpose :"), 5, 0);
   layout->addWidget(new QLabel("Direction :"), 4, 0);
   layout->addWidget(new QLabel(inter->refInter->getDirectionString()), 4, 1);
   layout->addWidget(new QLabel("Purpose :"), 5, 0);
-  layout->addWidget(new QLabel(inter->refInter->getPurposeString()), 5, 1);
-  layout->addWidget(new QLabel("Level :"), 6, 0);
-  layout->addWidget(new QLabel(inter->refInter->getLevelString()), 6, 1);
-
+  layout->addWidget(new QLabel(inter->refInter->getPurposeString()), 5, 1);  
   this->setLayout(layout);
 
   show();
   this->setLayout(layout);
 
   show();
index 8b50bfa4d0d6d466402614e53154304dab18893b..93f7c41c3f1a40fdb07c970bbbc169540804c681 100644 (file)
@@ -204,8 +204,6 @@ void ReferenceBlock::loadInterfaces(QDomElement &elt) throw(Exception) {
   QString widthStr;
   QString purposeStr;
   int purpose;
   QString widthStr;
   QString purposeStr;
   int purpose;
-  QString levelStr;
-  int level;
   QString multStr;
   int mult;
   AbstractInterface* inter;
   QString multStr;
   int mult;
   AbstractInterface* inter;
@@ -225,12 +223,10 @@ void ReferenceBlock::loadInterfaces(QDomElement &elt) throw(Exception) {
     cout << "purpose for " << nameStr.toStdString() << " : " << purposeStr.toStdString() << endl;
     purpose = ReferenceInterface::translatePurpose(purposeStr);
     cout << "translated purpose : " << purpose << endl;
     cout << "purpose for " << nameStr.toStdString() << " : " << purposeStr.toStdString() << endl;
     purpose = ReferenceInterface::translatePurpose(purposeStr);
     cout << "translated purpose : " << purpose << endl;
-    levelStr = eltInput.attribute("level","none");
-    level = ReferenceInterface::translateLevel(levelStr);
     multStr = eltInput.attribute("multiplicity","none");
     mult = ReferenceInterface::translateMultiplicity(multStr);
 
     multStr = eltInput.attribute("multiplicity","none");
     mult = ReferenceInterface::translateMultiplicity(multStr);
 
-    inter = new ReferenceInterface(this,nameStr,typeStr,widthStr,AbstractInterface::Input, purpose, level, mult);
+    inter = new ReferenceInterface(this,nameStr,typeStr,widthStr,AbstractInterface::Input, purpose, mult);
     inputs.append(inter);
   }
 
     inputs.append(inter);
   }
 
@@ -244,12 +240,10 @@ void ReferenceBlock::loadInterfaces(QDomElement &elt) throw(Exception) {
     widthStr = eltOutput.attribute("width","none");
     purposeStr = eltOutput.attribute("type","none");
     purpose = ReferenceInterface::translatePurpose(purposeStr);
     widthStr = eltOutput.attribute("width","none");
     purposeStr = eltOutput.attribute("type","none");
     purpose = ReferenceInterface::translatePurpose(purposeStr);
-    levelStr = eltOutput.attribute("level","none");
-    level = ReferenceInterface::translateLevel(levelStr);
     multStr = eltOutput.attribute("multiplicity","none");
     mult = ReferenceInterface::translateMultiplicity(multStr);
 
     multStr = eltOutput.attribute("multiplicity","none");
     mult = ReferenceInterface::translateMultiplicity(multStr);
 
-    inter = new ReferenceInterface(this,nameStr,typeStr,widthStr,AbstractInterface::Output, purpose, level, mult);
+    inter = new ReferenceInterface(this,nameStr,typeStr,widthStr,AbstractInterface::Output, purpose, mult);
     outputs.append(inter);
   }
 
     outputs.append(inter);
   }
 
@@ -263,12 +257,10 @@ void ReferenceBlock::loadInterfaces(QDomElement &elt) throw(Exception) {
     widthStr = eltBidir.attribute("width","none");
     purposeStr = eltBidir.attribute("type","none");
     purpose = ReferenceInterface::translatePurpose(purposeStr);
     widthStr = eltBidir.attribute("width","none");
     purposeStr = eltBidir.attribute("type","none");
     purpose = ReferenceInterface::translatePurpose(purposeStr);
-    levelStr = eltBidir.attribute("level","none");
-    level = ReferenceInterface::translateLevel(levelStr);
     multStr = eltBidir.attribute("multiplicity","none");
     mult = ReferenceInterface::translateMultiplicity(multStr);
 
     multStr = eltBidir.attribute("multiplicity","none");
     mult = ReferenceInterface::translateMultiplicity(multStr);
 
-    inter = new ReferenceInterface(this,nameStr,typeStr,widthStr,AbstractInterface::InOut, purpose, level, mult);
+    inter = new ReferenceInterface(this,nameStr,typeStr,widthStr,AbstractInterface::InOut, purpose, mult);
     bidirs.append(inter);
   }
 }
     bidirs.append(inter);
   }
 }
@@ -323,8 +315,7 @@ QDataStream& operator<<(QDataStream &out, const ReferenceBlock &b) {
     toWrite << iface->getName();
     toWrite << iface->getWidth();
     toWrite << iface->getPurpose();
     toWrite << iface->getName();
     toWrite << iface->getWidth();
     toWrite << iface->getPurpose();
-    toWrite << iface->getDirection();
-    toWrite << iface->getLevel();
+    toWrite << iface->getDirection();    
     toWrite << iface->getMultiplicity();
   }
   toWrite << b.outputs.size();
     toWrite << iface->getMultiplicity();
   }
   toWrite << b.outputs.size();
@@ -333,8 +324,7 @@ QDataStream& operator<<(QDataStream &out, const ReferenceBlock &b) {
     toWrite << iface->getName();
     toWrite << iface->getWidth();
     toWrite << iface->getPurpose();
     toWrite << iface->getName();
     toWrite << iface->getWidth();
     toWrite << iface->getPurpose();
-    toWrite << iface->getDirection();
-    toWrite << iface->getLevel();
+    toWrite << iface->getDirection();    
     toWrite << iface->getMultiplicity();
   }
   toWrite << b.bidirs.size();
     toWrite << iface->getMultiplicity();
   }
   toWrite << b.bidirs.size();
@@ -343,8 +333,7 @@ QDataStream& operator<<(QDataStream &out, const ReferenceBlock &b) {
     toWrite << iface->getName();
     toWrite << iface->getWidth();
     toWrite << iface->getPurpose();
     toWrite << iface->getName();
     toWrite << iface->getWidth();
     toWrite << iface->getPurpose();
-    toWrite << iface->getDirection();
-    toWrite << iface->getLevel();
+    toWrite << iface->getDirection();    
     toWrite << iface->getMultiplicity();
   }
 
     toWrite << iface->getMultiplicity();
   }
 
@@ -421,9 +410,7 @@ QDataStream& operator>>(QDataStream &in, ReferenceBlock &b) {
     in >> val;
     iface->setPurpose(val);
     in >> val;
     in >> val;
     iface->setPurpose(val);
     in >> val;
-    iface->setDirection(val);
-    in >> val;
-    iface->setLevel(val);
+    iface->setDirection(val);    
     in >> val;
     iface->setMultiplicity(val);
     b.inputs.append(iface);
     in >> val;
     iface->setMultiplicity(val);
     b.inputs.append(iface);
@@ -441,9 +428,7 @@ QDataStream& operator>>(QDataStream &in, ReferenceBlock &b) {
     iface->setPurpose(val);
     in >> val;
     iface->setDirection(val);
     iface->setPurpose(val);
     in >> val;
     iface->setDirection(val);
-    in >> val;
-    iface->setLevel(val);
-    in >> val;
+    in >> val;   
     iface->setMultiplicity(val);
     b.outputs.append(iface);
   }
     iface->setMultiplicity(val);
     b.outputs.append(iface);
   }
@@ -460,9 +445,7 @@ QDataStream& operator>>(QDataStream &in, ReferenceBlock &b) {
     iface->setPurpose(val);
     in >> val;
     iface->setDirection(val);
     iface->setPurpose(val);
     in >> val;
     iface->setDirection(val);
-    in >> val;
-    iface->setLevel(val);
-    in >> val;
+    in >> val;    
     iface->setMultiplicity(val);
     b.bidirs.append(iface);
   }
     iface->setMultiplicity(val);
     b.bidirs.append(iface);
   }
index 8aca1329f1cbcb29efa027868071753db643cf69..faa51e842eb6e858d2f97ad69c68e92b7d2e9c8a 100644 (file)
@@ -11,9 +11,8 @@ ReferenceInterface::ReferenceInterface(AbstractBlock* _owner,
                                        const QString& _width,
                                        int _direction,
                                        int _purpose,
                                        const QString& _width,
                                        int _direction,
                                        int _purpose,
-                                       int _level,
                                        int _multiplicity)
                                        int _multiplicity)
-throw (Exception) : AbstractInterface(_owner, _name, _type, _width, _direction, _purpose, _level) {
+throw (Exception) : AbstractInterface(_owner, _name, _type, _width, _direction, _purpose) {
 
   if (_owner->isReferenceBlock()) throw(Exception(BLOCK_INVALID_TYPE));
 
 
   if (_owner->isReferenceBlock()) throw(Exception(BLOCK_INVALID_TYPE));
 
@@ -49,14 +48,6 @@ int ReferenceInterface::translatePurpose(const QString& txt) {
   return Data;
 }
 
   return Data;
 }
 
-int ReferenceInterface::translateLevel(const QString& txt) {
-
-  if (txt == "top") {
-    return Top;
-  }
-  return Basic;
-}
-
 int ReferenceInterface::translateMultiplicity(const QString& txt) {
   bool ok;
   int mult;
 int ReferenceInterface::translateMultiplicity(const QString& txt) {
   bool ok;
   int mult;
index cd5bd0ff12366a02a89537766463eee3bab9542f..9ea4b23a054f9633c02cdc23a9fbaedf2156a6f1 100644 (file)
@@ -19,7 +19,7 @@ class ReferenceInterface : public AbstractInterface {
 public :  
 
   ReferenceInterface(AbstractBlock *_owner) throw(Exception);
 public :  
 
   ReferenceInterface(AbstractBlock *_owner) throw(Exception);
-  ReferenceInterface(AbstractBlock* _owner, const QString& _name, const QString& _type, const QString& _width, int _direction, int _purpose, int _level, int _multiplicity=1) throw (Exception);
+  ReferenceInterface(AbstractBlock* _owner, const QString& _name, const QString& _type, const QString& _width, int _direction, int _purpose, int _multiplicity=1) throw (Exception);
 
   // getters
   inline int getMultiplicity() { return multiplicity; }
 
   // getters
   inline int getMultiplicity() { return multiplicity; }
@@ -32,8 +32,7 @@ public :
 
   // others
 
 
   // others
 
-  static int translatePurpose(const QString& txt);
-  static int translateLevel(const QString& txt);
+  static int translatePurpose(const QString& txt);  
   static int translateMultiplicity(const QString& txt);
 
   inline AbstractInterface *clone(){ return NULL; }
   static int translateMultiplicity(const QString& txt);
 
   inline AbstractInterface *clone(){ return NULL; }
index a8184b81d5ed1032a8cbb785f0e8b3cf317f8aa0..43677e4ce972a421bc1fba7354b76df609c8a467 100644 (file)
@@ -9,13 +9,13 @@
     <category name="user" id="5" parent="0"/>
   </categories>
 
     <category name="user" id="5" parent="0"/>
   </categories>
 
-  <references nb="2" lib_file="/home/sdomas/Projet/Blast/code/v0.2/lib/references/references.bmf" >
-    <reference_lib path="/home/sdomas/Projet/Blast/code/v0.2/" />
-    <reference_lib path="/home/sdomas/Projet/Blast/code/v0.2/lib/references" />
+  <references nb="2" lib_file="/home/sdomas/Projet/Blast/code/blast/lib/references/references.bmf" >
+    <reference_lib path="/home/sdomas/Projet/Blast/code/blast/" />
+    <reference_lib path="/home/sdomas/Projet/Blast/code/blast/lib/references" />
   </references>
 
   </references>
 
-  <implementations nb="1" lib_file="/home/sdomas/Projet/Blast/code/v0.2/lib/implementations/impls.bmf" >
-    <impl_lib path="/home/sdomas/Projet/Blast/code/v0.2/lib/implementations" />
+  <implementations nb="1" lib_file="/home/sdomas/Projet/Blast/code/blast/lib/implementations/impls.bmf" >
+    <impl_lib path="/home/sdomas/Projet/Blast/code/blast/lib/implementations" />
   </implementations>
 
   <defaults>
   </implementations>
 
   <defaults>
index 42c82efdfaa95501d3918535a21df9338ad90ea6..a5c2c2d0c612e32eaae9e8e361e4bc9be592d0c7 100644 (file)
--- a/block.xsd
+++ b/block.xsd
@@ -18,7 +18,6 @@
        <xs:attribute ref="name" use="required"/>
        <xs:attribute ref="width" use="required"/>
        <xs:attribute ref="type"/>
        <xs:attribute ref="name" use="required"/>
        <xs:attribute ref="width" use="required"/>
        <xs:attribute ref="type"/>
-       <xs:attribute ref="level"/>
        <xs:attribute ref="purpose"/>
        <xs:attribute ref="multiplicity"/>
     </xs:attributeGroup>
        <xs:attribute ref="purpose"/>
        <xs:attribute ref="multiplicity"/>
     </xs:attributeGroup>
@@ -32,7 +31,6 @@
     <xs:attribute name="core" type="xs:string"/>
     <xs:attribute name="wishbone" type="xs:string"/>
     <xs:attribute name="context" type="xs:string" />
     <xs:attribute name="core" type="xs:string"/>
     <xs:attribute name="wishbone" type="xs:string"/>
     <xs:attribute name="context" type="xs:string" />
-    <xs:attribute name="level" type="xs:string" />
     <xs:attribute name="multiplicity" type="xs:string" />
     <xs:attribute name="width" type="xs:string"/>
     <xs:attribute name="purpose" type="xs:string"/>
     <xs:attribute name="multiplicity" type="xs:string" />
     <xs:attribute name="width" type="xs:string"/>
     <xs:attribute name="purpose" type="xs:string"/>
index 9ca12b84fd41e643d214d4d6847e86a851f3dcd6..225b83efc2b9c5c62b075a07fd44373b79a700ab 100644 (file)
@@ -14,14 +14,12 @@ XML description of a block model :
   - name : required
   - width : required
   - purpose : optional. Possible values : clock, reset, wb, data, ... Default value is data
   - name : required
   - width : required
   - purpose : optional. Possible values : clock, reset, wb, data, ... Default value is data
-  - level : optional. Possible values : basic, top, ... Default value is basic
   - multiplicity : optional. Possible values : *, a number. Default value is 1.
 
 <bidirs> attributes :
   - name : required
   - width : required
   - purpose : optional but forced to data
   - multiplicity : optional. Possible values : *, a number. Default value is 1.
 
 <bidirs> attributes :
   - name : required
   - width : required
   - purpose : optional but forced to data
-  - level : optional but forced to top
   - multiplicity : optional. Possible values : *, a number. Default value is 1.
   If an interface has a multiplicity > 1, the user will be able to create several
   instances of that interface. Their default name will be the reference name
   - multiplicity : optional. Possible values : *, a number. Default value is 1.
   If an interface has a multiplicity > 1, the user will be able to create several
   instances of that interface. Their default name will be the reference name
index b544d25e4ebde346bafd0ec44ee2a3ffd1e6216f..b447cd00fc83aa972d258290e90574e545720a97 100644 (file)
Binary files a/lib/implementations/impls.bmf and b/lib/implementations/impls.bmf differ
index 82ee08afc4441ed29cf4162f5522b01eaa3b5bd8..97300cd2ab46eef1c5e38b27521872d3b1538808 100644 (file)
       <input name="clk" type="boolean" width="1" purpose="clock" />
       <input name="rst" type="boolean" width="1" purpose="reset" />
       
       <input name="clk" type="boolean" width="1" purpose="clock" />
       <input name="rst" type="boolean" width="1" purpose="reset" />
       
-      <input name="imx_addr" type="expression" width="$wb_addr_width" level="top"/>
-      <input name="imx_cs_n" type="boolean" width="1" level="top"/>
-      <input name="imx_oe_n" type="boolean" width="1" level="top"/>
-      <input name="imx_eb3_n" type="boolean" width="1" level="top"/>
+      <input name="imx_addr" type="expression" width="$wb_addr_width" />
+      <input name="imx_cs_n" type="boolean" width="1" />
+      <input name="imx_oe_n" type="boolean" width="1" />
+      <input name="imx_eb3_n" type="boolean" width="1" />
       
       <input name="ack_i" type="boolean" width="1" purpose="wb" />
       <input name="dat_i" width="$wb_data_width" purpose="wb" />
       
       <input name="ack_i" type="boolean" width="1" purpose="wb" />
       <input name="dat_i" width="$wb_data_width" purpose="wb" />
@@ -39,7 +39,7 @@
       <output name="we_o" type="boolean" width="1" purpose="wb" />
     </outputs>
     <bidirs>
       <output name="we_o" type="boolean" width="1" purpose="wb" />
     </outputs>
     <bidirs>
-      <bidir name="imx_data" width="$wb_data_width" level="top"/>
+      <bidir name="imx_data" width="$wb_data_width"/>
     </bidirs>
   </interfaces>
 
     </bidirs>
   </interfaces>
 
index cd66442927cf03db83fec04dd35c08b7151849b5..ec2e982d7ad6d321e16a28eee91312d717fedc1c 100644 (file)
@@ -25,7 +25,7 @@
       <input name="clk" type="boolean" width="1" purpose="clock" />\r
       <input name="rst" type="boolean" width="1" purpose="reset" />\r
       \r
       <input name="clk" type="boolean" width="1" purpose="clock" />\r
       <input name="rst" type="boolean" width="1" purpose="reset" />\r
       \r
-      <input name="val_i" type="expression" width="$val_width" level="top"/>\r
+      <input name="val_i" type="expression" width="$val_width" />\r
       <input name="sel_i" type="expression" width="$sel_width" />\r
     </inputs>\r
     <outputs>\r
       <input name="sel_i" type="expression" width="$sel_width" />\r
     </inputs>\r
     <outputs>\r
index 6685627c4574b4e5f554b3157b7bef51a2406f6d..4f6c352e286cae4281e5e186c692bae3e74dbad8 100644 (file)
Binary files a/lib/references/references.bmf and b/lib/references/references.bmf differ
index e5693dc66ebb444a2016c2981b3ea54a09ee1cac..f898ca2be21de07820c2f449ab421f72b552ee2b 100644 (file)
@@ -16,7 +16,6 @@
     <xs:attributeGroup name="group_ifaceAttrGroup">
        <xs:attribute ref="id"/>
        <xs:attribute ref="name"/>
     <xs:attributeGroup name="group_ifaceAttrGroup">
        <xs:attribute ref="id"/>
        <xs:attribute ref="name"/>
-       <xs:attribute ref="level"/>
        <xs:attribute ref="direction"/>
        <xs:attribute ref="orientation"/>
        <xs:attribute ref="position"/>
        <xs:attribute ref="direction"/>
        <xs:attribute ref="orientation"/>
        <xs:attribute ref="position"/>
 
     <xs:attribute name="position" type="xs:string"/>
     <xs:attribute name="dimension" type="xs:string"/>
 
     <xs:attribute name="position" type="xs:string"/>
     <xs:attribute name="dimension" type="xs:string"/>
-    <xs:attribute name="level" type="xs:string"/>
     <xs:attribute name="direction" type="xs:string"/>
     <xs:attribute name="orientation" type="xs:string"/>
     <xs:attribute name="name" type="xs:string"/>
     <xs:attribute name="direction" type="xs:string"/>
     <xs:attribute name="orientation" type="xs:string"/>
     <xs:attribute name="name" type="xs:string"/>
index f482cfd4dbca6ead4dd7cb28f48d76a086fd0ccb..fbff37be80b7ef2b52ec534f737b7b912a65eb80 100644 (file)
@@ -6,10 +6,10 @@
       \r
       <group_item id="1" name="top" upper_group="-1" upper_item="-1" position="20,30" dimension="800,600">\r
        <group_ifaces count="4">\r
       \r
       <group_item id="1" name="top" upper_group="-1" upper_item="-1" position="20,30" dimension="800,600">\r
        <group_ifaces count="4">\r
-         <group_iface id="1" name="in_1" level="top" direction="input" orientation="west" position="0.3" />\r
-         <group_iface id="2" name="in_2" level="top" direction="input" orientation="west" position="0.6" />\r
-         <group_iface id="3" name="out_1" level="top" direction="output" orientation="south" position="0.5" />\r
-         <group_iface id="4" name="out_2" level="top" direction="output" orientation="east" position="0.5" />\r
+         <group_iface id="1" name="in_1" direction="input" orientation="west" position="0.3" />\r
+         <group_iface id="2" name="in_2" direction="input" orientation="west" position="0.6" />\r
+         <group_iface id="3" name="out_1" direction="output" orientation="south" position="0.5" />\r
+         <group_iface id="4" name="out_2" direction="output" orientation="east" position="0.5" />\r
        </group_ifaces>\r
       </group_item>\r
       \r
        </group_ifaces>\r
       </group_item>\r
       \r
       \r
       <group_item id="4" upper_group="1" upper_item="3" name="subgroup_1" position="20,30" dimension="400,400">\r
        <group_ifaces count="4">\r
       \r
       <group_item id="4" upper_group="1" upper_item="3" name="subgroup_1" position="20,30" dimension="400,400">\r
        <group_ifaces count="4">\r
-         <group_iface id="11" name="in_1" level="basic" direction="input" orientation="west" position="0.3" />\r
-         <group_iface id="12" name="in_2" level="basic" direction="input" orientation="west" position="0.6" />\r
-         <group_iface id="13" name="out_1" level="basic" direction="output" orientation="east" position="0.3" />\r
-         <group_iface id="14" name="out_2" level="basic" direction="output" orientation="east" position="0.6" />\r
+         <group_iface id="11" name="in_1"  direction="input" orientation="west" position="0.3" />\r
+         <group_iface id="12" name="in_2"  direction="input" orientation="west" position="0.6" />\r
+         <group_iface id="13" name="out_1" direction="output" orientation="east" position="0.3" />\r
+         <group_iface id="14" name="out_2" direction="output" orientation="east" position="0.6" />\r
        </group_ifaces>\r
       </group_item>\r
       \r
        </group_ifaces>\r
       </group_item>\r
       \r