Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/SelfTest/src/main.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/SelfTest/src/main.cpp	(revision 110)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/SelfTest/src/main.cpp	(revision 111)
@@ -7,6 +7,7 @@
 
 #include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/SelfTest/include/test.h"
+#include "Behavioural/include/Selftest.h"
 
-#define NB_PARAMS 0
+#define NB_PARAMS 3+7*3
 
 void usage (int argc, char * argv[])
@@ -14,6 +15,14 @@
   err (_("<Usage> %s name_instance list_params.\n"),argv[0]);
   err (_("list_params is :\n"));
-  err (_(" *  ()\n"));
-
+  err (_(" * nb_inst_predict            (uint32_t)\n"));
+  err (_(" * nb_inst_update             (uint32_t)\n"));
+  err (_(" * size_address               (uint32_t)\n"));
+  err (_(" * have_bht               [3] (bool    )\n"));
+  err (_(" * bht_size_shifter       [3] (uint32_t)\n"));
+  err (_(" * bht_nb_shifter         [3] (uint32_t)\n"));
+  err (_(" * have_pht               [3] (bool    )\n"));
+  err (_(" * pht_size_counter       [3] (uint32_t)\n"));
+  err (_(" * pht_nb_counter         [3] (uint32_t)\n"));
+  err (_(" * pht_size_address_share [3] (uint32_t)\n"));
   exit (1);
 }
@@ -31,4 +40,29 @@
 
   string name = argv[x++];
+  uint32_t _nb_inst_predict           ;
+  uint32_t _nb_inst_update            ;
+  uint32_t _size_address              ;
+  bool     _have_bht               [3];
+  uint32_t _bht_size_shifter       [3];
+  uint32_t _bht_nb_shifter         [3];
+  bool     _have_pht               [3];
+  uint32_t _pht_size_counter       [3];
+  uint32_t _pht_nb_counter         [3];
+  uint32_t _pht_size_address_share [3];
+
+  SELFTEST0(_nb_inst_predict           ,uint32_t,argv,x);
+  SELFTEST0(_nb_inst_update            ,uint32_t,argv,x);
+  SELFTEST0(_size_address              ,uint32_t,argv,x);
+
+  for (uint32_t i=0; i<3; ++i)
+    {
+  SELFTEST0(_have_bht               [i],bool    ,argv,x);
+  SELFTEST0(_bht_size_shifter       [i],uint32_t,argv,x);
+  SELFTEST0(_bht_nb_shifter         [i],uint32_t,argv,x);
+  SELFTEST0(_have_pht               [i],bool    ,argv,x);
+  SELFTEST0(_pht_size_counter       [i],uint32_t,argv,x);
+  SELFTEST0(_pht_nb_counter         [i],uint32_t,argv,x);
+  SELFTEST0(_pht_size_address_share [i],uint32_t,argv,x);
+    }
 
   int _return = EXIT_SUCCESS;
@@ -37,4 +71,14 @@
       morpheo::behavioural::core::multi_front_end::front_end::prediction_unit::direction::meta_predictor::Parameters * param = new morpheo::behavioural::core::multi_front_end::front_end::prediction_unit::direction::meta_predictor::Parameters
 	(
+         _nb_inst_predict       ,
+         _nb_inst_update        ,
+         _size_address          ,
+         _have_bht              ,
+         _bht_size_shifter      ,
+         _bht_nb_shifter        ,
+         _have_pht              ,
+         _pht_size_counter      ,
+         _pht_nb_counter        ,
+         _pht_size_address_share,
          true // is_toplevel
         );
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/SelfTest/src/test.cpp	(revision 110)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/SelfTest/src/test.cpp	(revision 111)
@@ -50,4 +50,15 @@
   sc_clock              *  in_CLOCK  = new sc_clock ("clock", 1.0, 0.5);	 
   sc_signal<Tcontrol_t> *  in_NRESET = new sc_signal<Tcontrol_t> ("NRESET");
+  ALLOC1_SC_SIGNAL( in_PREDICT_VAL          ," in_PREDICT_VAL          ",Tcontrol_t,_param->_nb_inst_predict);
+  ALLOC1_SC_SIGNAL(out_PREDICT_ACK          ,"out_PREDICT_ACK          ",Tcontrol_t,_param->_nb_inst_predict);
+  ALLOC1_SC_SIGNAL( in_PREDICT_ADDRESS      ," in_PREDICT_ADDRESS      ",Taddress_t,_param->_nb_inst_predict);
+  ALLOC1_SC_SIGNAL(out_PREDICT_DIRECTION    ,"out_PREDICT_DIRECTION    ",Tcontrol_t,_param->_nb_inst_predict);
+  ALLOC1_SC_SIGNAL(out_PREDICT_HISTORY      ,"out_PREDICT_HISTORY      ",Thistory_t,_param->_nb_inst_predict);
+  
+  ALLOC1_SC_SIGNAL( in_UPDATE_VAL           ," in_UPDATE_VAL           ",Tcontrol_t,_param->_nb_inst_update);
+  ALLOC1_SC_SIGNAL(out_UPDATE_ACK           ,"out_UPDATE_ACK           ",Tcontrol_t,_param->_nb_inst_update);
+  ALLOC1_SC_SIGNAL( in_UPDATE_ADDRESS       ," in_UPDATE_ADDRESS       ",Taddress_t,_param->_nb_inst_update);
+  ALLOC1_SC_SIGNAL( in_UPDATE_HISTORY       ," in_UPDATE_HISTORY       ",Thistory_t,_param->_nb_inst_update);
+  ALLOC1_SC_SIGNAL( in_UPDATE_DIRECTION     ," in_UPDATE_DIRECTION     ",Tcontrol_t,_param->_nb_inst_update);
   
   /********************************************************
@@ -60,4 +71,15 @@
   (*(_Meta_Predictor->in_NRESET))       (*(in_NRESET));
 
+  INSTANCE1_SC_SIGNAL(_Meta_Predictor, in_PREDICT_VAL          ,_param->_nb_inst_predict);
+  INSTANCE1_SC_SIGNAL(_Meta_Predictor,out_PREDICT_ACK          ,_param->_nb_inst_predict);
+  INSTANCE1_SC_SIGNAL(_Meta_Predictor, in_PREDICT_ADDRESS      ,_param->_nb_inst_predict);
+  INSTANCE1_SC_SIGNAL(_Meta_Predictor,out_PREDICT_DIRECTION    ,_param->_nb_inst_predict);
+  INSTANCE1_SC_SIGNAL(_Meta_Predictor,out_PREDICT_HISTORY      ,_param->_nb_inst_predict);
+
+  INSTANCE1_SC_SIGNAL(_Meta_Predictor, in_UPDATE_VAL           ,_param->_nb_inst_update);
+  INSTANCE1_SC_SIGNAL(_Meta_Predictor,out_UPDATE_ACK           ,_param->_nb_inst_update);
+  INSTANCE1_SC_SIGNAL(_Meta_Predictor, in_UPDATE_ADDRESS       ,_param->_nb_inst_update);
+  INSTANCE1_SC_SIGNAL(_Meta_Predictor, in_UPDATE_HISTORY       ,_param->_nb_inst_update);
+  INSTANCE1_SC_SIGNAL(_Meta_Predictor, in_UPDATE_DIRECTION     ,_param->_nb_inst_update);
 
   msg(_("<%s> : Start Simulation ............\n"),name.c_str());
@@ -104,4 +126,16 @@
   delete in_CLOCK;
   delete in_NRESET;
+
+  DELETE1_SC_SIGNAL( in_PREDICT_VAL          ,_param->_nb_inst_predict);
+  DELETE1_SC_SIGNAL(out_PREDICT_ACK          ,_param->_nb_inst_predict);
+  DELETE1_SC_SIGNAL( in_PREDICT_ADDRESS      ,_param->_nb_inst_predict);
+  DELETE1_SC_SIGNAL(out_PREDICT_DIRECTION    ,_param->_nb_inst_predict);
+  DELETE1_SC_SIGNAL(out_PREDICT_HISTORY      ,_param->_nb_inst_predict);
+
+  DELETE1_SC_SIGNAL( in_UPDATE_VAL           ,_param->_nb_inst_update);
+  DELETE1_SC_SIGNAL(out_UPDATE_ACK           ,_param->_nb_inst_update);
+  DELETE1_SC_SIGNAL( in_UPDATE_ADDRESS       ,_param->_nb_inst_update);
+  DELETE1_SC_SIGNAL( in_UPDATE_HISTORY       ,_param->_nb_inst_update);
+  DELETE1_SC_SIGNAL( in_UPDATE_DIRECTION     ,_param->_nb_inst_update);
     }
 #endif
