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

Private GIT Repository
nearly finished GroupBlock VHDL gen
[blast.git] / ReferenceInterface.cpp
index 8aca1329f1cbcb29efa027868071753db643cf69..89369525932d8f0aac2afa1f46215b3631f4e41b 100644 (file)
@@ -7,17 +7,25 @@ ReferenceInterface::ReferenceInterface(AbstractBlock* _owner)  throw(Exception)
 }
 
 ReferenceInterface::ReferenceInterface(AbstractBlock* _owner,
 }
 
 ReferenceInterface::ReferenceInterface(AbstractBlock* _owner,
-                                       const QString& _name, const QString&_type,
-                                       const QString& _width,
+                                       const QString& _name,
                                        int _direction,
                                        int _purpose,
                                        int _direction,
                                        int _purpose,
-                                       int _level,
+                                       const QString& _type,
+                                       const QString& _width,
+                                       int _endianess,
                                        int _multiplicity)
                                        int _multiplicity)
-throw (Exception) : AbstractInterface(_owner, _name, _type, _width, _direction, _purpose, _level) {
+throw (Exception) : AbstractInterface(_owner, _name, _direction, _purpose, _type, _width) {
 
   if (_owner->isReferenceBlock()) throw(Exception(BLOCK_INVALID_TYPE));
 
   multiplicity = _multiplicity;
 
   if (_owner->isReferenceBlock()) throw(Exception(BLOCK_INVALID_TYPE));
 
   multiplicity = _multiplicity;
+  
+  if (purpose == Control) {
+    // override some attributes with forced values
+    type = Boolean;
+    width = "1";
+    multiplicity = 1;
+  }  
   if (direction == InOut) {
     multiplicity = 1;
   }
   if (direction == InOut) {
     multiplicity = 1;
   }
@@ -43,20 +51,12 @@ int ReferenceInterface::translatePurpose(const QString& txt) {
   else if (txt == "reset") {
     return Reset;
   }
   else if (txt == "reset") {
     return Reset;
   }
-  if (txt == "wb") {
+  else if (txt == "wb") {
     return Wishbone;
     return Wishbone;
-  }
+  }  
   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;