Index: trunk/IPs/systemC/processor/Morpheo/Script/SelfTest.sh
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Script/SelfTest.sh	(revision 85)
+++ trunk/IPs/systemC/processor/Morpheo/Script/SelfTest.sh	(revision 88)
@@ -10,84 +10,102 @@
 declare    test_ok="Test OK";
 declare    tmp="${MORPHEO_HOME}/tmp/SelfTest";
-declare    path="${MORPHEO_TOPLEVEL}/IPs/systemC/processor/Morpheo/Behavioural";
+declare    path="${MORPHEO_TOPLEVEL}/IPs/systemC/processor/Morpheo/";
 
 declare -a directory=(
-    ""
-    "Custom"
-
-    "Generic/Counter"
-    "Generic/Queue_Control"                                 
-    "Generic/Queue"                                 
-    "Generic/RegisterFile/RegisterFile_Monolithic"  
-    "Generic/RegisterFile/RegisterFile_Multi_Banked"
-    "Generic/RegisterFile"                          
-    "Generic/Select/Select_Priority_Fixed"           
-    "Generic/Select"                                
-    "Generic/Shifter"                               
-    "Generic/Sort"                                  
-    "Generic/Victim/Victim_Pseudo_LRU"              
-    "Generic/Victim"                                
-
-    "Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/Operation"
-    "Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit"
-    "Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit"
-    "Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit"
-    "Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit"
-    "Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue"
-    "Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station"
-    "Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit"
-    "Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit"
-    "Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue"
-    "Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue"
-    "Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit"
-    "Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit"
-    "Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit"
-    "Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit"
-    "Core/Multi_Execute_loop/Execute_loop/Network"
-    "Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue"
-    "Core/Multi_Execute_loop/Execute_loop/Register_unit"
-#   "Core/Multi_Execute_loop/Execute_loop"
-#   "Core/Multi_Execute_loop"
-
-    "Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit"
-    "Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit"
-    "Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit"
-    "Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit"
-    "Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue"
-    "Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit"
-    "Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit"
-    "Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_queue"
-    "Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select"
-    "Core/Multi_OOO_Engine/OOO_Engine/Rename_unit"
-    "Core/Multi_OOO_Engine/OOO_Engine"
-    "Core/Multi_OOO_Engine"
+    "Common"
+
+    "Behavioural"
+    "Behavioural/Configuration"
+    "Behavioural/Custom"
+
+    "Behavioural/Generic/Counter"
+    "Behavioural/Generic/Priority"
+    "Behavioural/Generic/Queue_Control"                                 
+    "Behavioural/Generic/Queue"                                 
+    "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic"  
+    "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked"
+    "Behavioural/Generic/RegisterFile"                          
+    "Behavioural/Generic/Select/Select_Priority_Fixed"           
+    "Behavioural/Generic/Select"                                
+    "Behavioural/Generic/Shifter"                               
+    "Behavioural/Generic/Sort"                                  
+    "Behavioural/Generic/Victim/Victim_Pseudo_LRU"              
+    "Behavioural/Generic/Victim"                                
+
+    "Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue"
+    "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/Operation"
+    "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit"
+    "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit"
+    "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit"
+    "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit"
+    "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue"
+    "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station"
+    "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit"
+    "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit"
+    "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue"
+    "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue"
+    "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit"
+    "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit"
+    "Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit"
+    "Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit"
+    "Behavioural/Core/Multi_Execute_loop/Execute_loop/Network"
+    "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue"
+    "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit"
+    "Behavioural/Core/Multi_Execute_loop/Execute_loop"
+    "Behavioural/Core/Multi_Execute_loop"
+
+    "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit"
+    "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue"
+    "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/OOO_Engine_Glue"
+    "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit"
+    "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit"
+    "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit"
+    "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit"
+    "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit"
+    "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue"
+    "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit"
+    "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit"
+    "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue"
+    "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select"
+    "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit"
+    "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit"
+    "Behavioural/Core/Multi_OOO_Engine/OOO_Engine"
+    "Behavioural/Core/Multi_OOO_Engine"
     
-    "Core/Multi_Front_end/Front_end/Context_State"
-    "Core/Multi_Front_end/Front_end/Decod_unit/Decod/Instruction"
-    "Core/Multi_Front_end/Front_end/Decod_unit/Decod"
-    "Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue"
-    "Core/Multi_Front_end/Front_end/Decod_unit"
-    "Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management"
-    "Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue"
-    "Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue"
-    "Core/Multi_Front_end/Front_end/Ifetch_unit"
-    "Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Glue"
-    "Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register"
-    "Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer"
-    "Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue"
-    "Core/Multi_Front_end/Front_end/Prediction_unit/Direction"
-#   "Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Meta_Predictor_Glue"
-#   "Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue"
-#   "Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table"
-#   "Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table"
-#   "Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor"
-#   "Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor"
-    "Core/Multi_Front_end/Front_end/Prediction_unit/Prediction_unit_Glue"
-    "Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack"
-    "Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table"
-    "Core/Multi_Front_end/Front_end/Prediction_unit"
-    "Core/Multi_Front_end/Front_end"
-    "Core/Multi_Front_end"
-
+    "Behavioural/Core/Multi_Front_end/Front_end/Context_State"
+    "Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/Instruction"
+    "Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod"
+    "Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue"
+    "Behavioural/Core/Multi_Front_end/Front_end/Decod_unit"
+    "Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue"
+    "Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management"
+    "Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue"
+    "Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue"
+    "Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit"
+    "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Glue"
+    "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register"
+    "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer"
+    "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue"
+    "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction"
+#   "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Meta_Predictor_Glue"
+#   "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue"
+#   "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/Branch_History_Table"
+#   "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/Pattern_History_Table"
+#   "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor"
+#   "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor"
+    "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Prediction_unit_Glue"
+    "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack"
+    "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table"
+    "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit"
+    "Behavioural/Core/Multi_Front_end/Front_end"
+    "Behavioural/Core/Multi_Front_end"
+
+    "Behavioural/Core/Icache_Access"
+    "Behavioural/Core/Dcache_Access"
+
+    "Behavioural/Core/Core_Glue"
+    "Behavioural/Core"
+
+    "TopLevel"
     );
                                            
@@ -126,5 +144,5 @@
 
     if test ! -d ${tmp}; then
-	mkdir ${tmp};
+	mkdir -p ${tmp};
     fi;
 
@@ -212,15 +230,17 @@
 
 		cd ${path}/${i};
-		make clean;
-		dir="SelfTest";
-
-		if test -d ${dir}; then
-		    cd ${dir};
+
+                if test -f "Makefile"; then
 		    make clean;
-		else
-		    echo "${component} have not SelfTest directory.";
-		fi;
-		cd ${pwd};
-
+		    dir="SelfTest";
+                    
+		    if test -d ${dir}; then
+		        cd ${dir};
+		        make clean;
+		    else
+		        echo "${component} have not SelfTest directory.";
+		    fi;
+		    cd ${pwd};
+                fi;
 	    done;
 	    ;;
