Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interface.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interface.cpp	(revision 110)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interface.cpp	(revision 112)
@@ -70,15 +70,9 @@
     log_printf(FUNC,Behavioural,"~Interface","Begin");
 
-    if (_list_signal->empty()== false)
-      {
-	std::list<Signal*>::iterator i = _list_signal->begin();
-
-	while (i != _list_signal->end())
-	  {
-	    delete (*i);
-	    ++i;
-	  }
-      }
-
+    for (std::list<Signal*>::iterator it = _list_signal->begin();
+         it != _list_signal->end();
+         ++it)
+      delete (*it);
+    
     delete _list_signal;
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interface_set_signal.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interface_set_signal.cpp	(revision 110)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interface_set_signal.cpp	(revision 112)
@@ -20,5 +20,5 @@
     std::string signame = signal_name(_name, name, direction);
     
-    Signal * sig = new Signal       (signame, direction, size, presence_port);
+    Signal * sig = new Signal (signame, direction, size, presence_port);
 
     _list_signal->push_back (sig);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interfaces.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interfaces.cpp	(revision 110)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interfaces.cpp	(revision 112)
@@ -39,14 +39,8 @@
 #endif
 
-    if (_list_interface->empty()== false)
-      {
-	std::list<Interface_fifo*>::iterator i     = _list_interface->begin();
-
-	while (i != _list_interface->end())
-	  {
-	    delete (*i);
-	    ++i;
-	  }
-      }
+    for (std::list<Interface_fifo*>::iterator it = _list_interface->begin();
+         it!=_list_interface->end();
+         ++it)
+      delete (*it);
 
     delete _list_interface;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model.cpp	(revision 112)
@@ -0,0 +1,30 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/include/Model.h"
+
+namespace morpheo              {
+namespace behavioural          {
+
+#undef  FUNCTION
+#define FUNCTION "Model::Model"
+  Model::Model (void)
+  {
+    log_begin(Behavioural,FUNCTION);
+    log_end(Behavioural,FUNCTION);
+  }
+
+#undef  FUNCTION
+#define FUNCTION "Model::~Model"
+  Model::~Model(void)
+  {
+    log_begin(Behavioural,FUNCTION);
+    log_end(Behavioural,FUNCTION);
+  }
+
+}; // end namespace behavioural          
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model_get_debug.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model_get_debug.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model_get_debug.cpp	(revision 112)
@@ -0,0 +1,34 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/include/Model.h"
+
+namespace morpheo              {
+namespace behavioural          {
+
+#undef  FUNCTION
+#define FUNCTION "Model::get_debug"
+  debug_verbosity_t Model::get_debug (std::string component)
+  {
+    log_begin(Behavioural,FUNCTION);
+
+    debug_verbosity_t _return;
+
+    std::map<std::string,model_t>::iterator it = models.find(component);
+
+    if (it != models.end())
+      _return = it->second.debug;
+    else
+      _return = default_debug;
+    
+    log_end(Behavioural,FUNCTION);
+
+    return _return;
+  }
+
+}; // end namespace behavioural          
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model_get_type.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model_get_type.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model_get_type.cpp	(revision 112)
@@ -0,0 +1,34 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/include/Model.h"
+
+namespace morpheo              {
+namespace behavioural          {
+
+#undef  FUNCTION
+#define FUNCTION "Model::get_type"
+  model_type_t Model::get_type (std::string component)
+  {
+    log_begin(Behavioural,FUNCTION);
+
+    model_type_t _return;
+
+    std::map<std::string,model_t>::iterator it = models.find(component);
+
+    if (it != models.end())
+      _return = it->second.type;
+    else
+      _return = default_type;
+
+    log_end(Behavioural,FUNCTION);
+
+    return _return;
+  }
+
+}; // end namespace behavioural          
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model_set_model.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model_set_model.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model_set_model.cpp	(revision 112)
@@ -0,0 +1,29 @@
+/*
+ * $Id$
+ *
+ * [ Description ]
+ * 
+ */
+
+#include "Behavioural/include/Model.h"
+
+namespace morpheo              {
+namespace behavioural          {
+
+#undef  FUNCTION
+#define FUNCTION "Model::get_type"
+  void Model::set_model (std::string component, model_type_t type, debug_verbosity_t debug)
+  {
+    log_begin(Behavioural,FUNCTION);
+
+    model_t model;
+    model.type  = type ;
+    model.debug = debug;
+
+    models [component] = model;
+
+    log_end(Behavioural,FUNCTION);
+  }
+
+}; // end namespace behavioural          
+}; // end namespace morpheo              
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/SPR_access_mode_get_mode.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/src/SPR_access_mode_get_mode.cpp	(revision 112)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/src/SPR_access_mode_get_mode.cpp	(revision 112)
@@ -0,0 +1,18 @@
+#include "Behavioural/include/SPR_access_mode.h"
+
+namespace morpheo {
+namespace behavioural {
+
+  spr_access_mode_t SPR_access_mode::get_mode (spr_address_t address)
+  {
+    return get_mode(address._group, address._register);
+  }
+  
+  spr_access_mode_t SPR_access_mode::get_mode (uint32_t num_group, uint32_t num_reg)
+  {
+    return _spr_generic [num_group][num_reg];
+  }
+
+}; // end namespace behavioural
+}; // end namespace morpheo              
+
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Simulation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Simulation.cpp	(revision 110)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Simulation.cpp	(revision 112)
@@ -17,4 +17,5 @@
   double              _simulation_nb_instruction;
   std::vector<double> _simulation_nb_instruction_commited;
+  Model               _model;
 
   void simulation_init (double nb_cycle,
