diff --git a/simulators/c++2/src_simulator/arch/CPU.cpp b/simulators/c++2/src_simulator/arch/CPU.cpp
index 3a02c798d6a4e853aa28e43d5c1f0213139ff74f..6415fa913ae2d74357b909c4ed822209f7c96cfb 100644
--- a/simulators/c++2/src_simulator/arch/CPU.cpp
+++ b/simulators/c++2/src_simulator/arch/CPU.cpp
@@ -168,7 +168,155 @@ void CPU::schedule2XML(std::ostringstream& glob,std::ofstream& myfile) const{
 
   }
 }
+std::map<TMLTask*, std::string> CPU::HWTIMELINE2HTML(std::ofstream& myfile,std::map<TMLTask*, std::string> taskCellClasses,unsigned int nextCellClassIndex, std::string& iTracetaskList) const {
+    TransactionList _transactListClone;
+    std::string taskList = iTracetaskList.c_str();
+    for (int z = 0; z < _transactList.size(); z++) {
+        std::string taskName = _transactList[z]->getCommand()->getTask()->toString();
+        std::size_t pos = taskList.find(taskName); /*pos1 = position of "bin" if we working with open model*/
+        if(pos != std::string::npos){
+            _transactListClone.push_back(_transactList[z]);
+        }
+    }
+    if ( _transactListClone.size() == 0 ) {
+        std::cout << "Device never activated" << std::endl;
+    } else {
+        myfile << "<tr><td width=\"170px\" style=\"max-width: unset;min-width: 170px;background-color: aqua;\">" <<  _name << "_core_" << this->_cycleTime << "</td>\n<td class=\"notfirst\"></td>\n<td class=\"notlast\"></td>" << std::endl;//myfile << "<table>" << std::endl << "<tr>";
+//        std::map<TMLTask*, std::string> taskCellClasses;
+//        unsigned int nextCellClassIndex = 0;
+        TMLTime aCurrTime = 0;
+        unsigned int tempReduce = 0;
+        std::vector<unsigned int> listScale;
+        std::vector<unsigned int> listScaleTime;
+        listScale.push_back(0);
+        listScaleTime.push_back(0);
+        bool changeCssClass = false;
+        unsigned int endTimeOfCore = 0;
+        for( unsigned int j = _transactListClone.size()-1; j >= 0; j-- ) {
+            if(  _transactListClone[j]->getTransactCoreNumber() == this->_cycleTime ){
+                endTimeOfCore = _transactListClone[j]->getEndTime();
+                break;
+            }
+        }
+        for( TransactionList::const_iterator i = _transactListClone.begin(); i != _transactListClone.end(); ++i ) {
+          std::cout<<"get transaction core number is: "<<(*i)->getTransactCoreNumber()<<std::endl;
+          std::cout<<"time : "<<_cycleTime<<std::endl;
+          //std::cout << "CPU:calcSTL: html of CPU " << _name << ": " << (*i)->toString() << std::endl;
+          if( (*i)->getTransactCoreNumber() == this->_cycleTime ){
+        TMLTransaction* aCurrTrans = *i;
+        unsigned int aBlanks = aCurrTrans->getStartTime() - aCurrTime;
+        bool isBlankTooBig = false;
+        std::ostringstream tempString;
+        int tempBlanks;
+        if(endTimeOfCore >= 250 && aBlanks > 10) {
+            int newBlanks = 10;
+            tempBlanks = aBlanks;
+            tempReduce += aBlanks - newBlanks;
+            aBlanks = newBlanks;
+            isBlankTooBig = true;
+            changeCssClass = true;
+        }
+        if ( aBlanks >= 0 && (!(aCurrTrans->getCommand()->getActiveDelay()) && aCurrTrans->getCommand()->isDelayTransaction()) ){
+            listScale.push_back(aBlanks+1);
+            tempString << tempBlanks+1;
+            if(aCurrTrans->getStartTime()+1 > listScaleTime.back()){
+                listScaleTime.push_back(aCurrTrans->getStartTime()+1);
+            }
+            if (isBlankTooBig){
+                writeHTMLColumn( myfile, aBlanks+1, "not", "idle time", "<- idle " + tempString.str() + " ->", false );
+            } else {
+                writeHTMLColumn( myfile, aBlanks+1, "not", "idle time" );
+            }
+        }
+        else if ( aBlanks > 0 ){
+            listScale.push_back(aBlanks);
+            tempString << tempBlanks;
+            if(aCurrTrans->getStartTime() > listScaleTime.back()){
+                listScaleTime.push_back(aCurrTrans->getStartTime());
+            }
+            if (isBlankTooBig){
+                writeHTMLColumn( myfile, aBlanks, "not", "idle time", "<- idle " + tempString.str() + " ->", false );
+            } else {
+                writeHTMLColumn( myfile, aBlanks, "not", "idle time" );
+            }
+        }
 
+        unsigned int aLength = aCurrTrans->getPenalties();
+        if ( aLength != 0 ) {
+          listScaleTime.push_back(listScaleTime.back()+aLength);
+          if (endTimeOfCore >= 250 && aLength > 10){
+              tempReduce += aLength - 10;
+              aLength = 10;
+          }
+          listScale.push_back(aLength);
+          std::ostringstream title;
+          title << "idle:" << aCurrTrans->getIdlePenalty() << " switching penalty:" << aCurrTrans->getTaskSwitchingPenalty();
+          writeHTMLColumn( myfile, aLength, "not", title.str() );
+        }
+        aLength = aCurrTrans->getOperationLength();
+
+        // Issue #4
+        TMLTask* task = aCurrTrans->getCommand()->getTask();
+        const std::string cellClass = determineHTMLCellClass( taskCellClasses, task, nextCellClassIndex );
+        std::string aCurrTransName=aCurrTrans->toShortString();
+        unsigned int indexTrans=aCurrTransName.find_first_of(":");
+        std::string aCurrContent=aCurrTransName.substr(indexTrans+1,2);
+        if(!(!(aCurrTrans->getCommand()->getActiveDelay()) && aCurrTrans->getCommand()->isDelayTransaction())){
+          if (endTimeOfCore >= 250 && aLength > 10){
+            tempReduce += aLength - 10;
+            aLength = 10;
+          }
+          writeHTMLColumn( myfile, aLength, cellClass, aCurrTrans->toShortString(), aCurrContent );
+          listScale.push_back(aLength);
+          if(aCurrTrans->getStartTime() > listScaleTime.back()){
+             listScaleTime.push_back(aCurrTrans->getStartTime());
+          }
+          if(aCurrTrans->getEndTime() > listScaleTime.back()){
+             listScaleTime.push_back(aCurrTrans->getEndTime());
+          }
+        }
+            if(aCurrTrans->getCommand()->getTask()->getIsDaemon() == true && aCurrTrans->getEndTime() > _simulatedTime)
+          aCurrTime = _simulatedTime;
+        else
+          aCurrTime = aCurrTrans->getEndTime();
+          }
+        }
+
+        myfile << "</tr>" << std::endl << "<tr>";
+        for ( unsigned int aLength = 0; aLength < aCurrTime - tempReduce + 2; aLength++ ) {
+            if( aLength == 1) {
+              myfile << "<th class=\"notfirst\">";
+            } else {
+              myfile << "<th></th>";
+            }
+        }
+        myfile << "</tr>" << std::endl << "<tr>";
+        myfile << "<td width=\"170px\" style=\"max-width: unset;min-width: 170px;border-style: none none none none;\"></td>\n<td class=\"notfirst\"></td>\n<td class=\"notlast\"></td>\n";
+        for ( unsigned int aLength = 0; aLength < listScale.size(); aLength += 1 ) {
+          std::ostringstream spanVal;
+          if(aLength < listScaleTime.size())
+            spanVal << listScaleTime[aLength];
+          else
+            spanVal << "";
+          if(aLength+1 >= listScale.size()){
+            if(changeCssClass){
+                writeHTMLColumn( myfile, 5, "sc1",  spanVal.str(), spanVal.str(), false );
+            } else
+                writeHTMLColumn( myfile, 5, "sc", spanVal.str(), spanVal.str(), false );
+          }else {
+            if(changeCssClass){
+                writeHTMLColumn( myfile, listScale[aLength+1], "sc1", spanVal.str(), spanVal.str(), false );
+            } else
+                writeHTMLColumn( myfile, listScale[aLength+1], "sc", spanVal.str(), spanVal.str(), false );
+            }
+          //myfile << "<td colspan=\"5\" class=\"sc\">" << aLength << "</td>";
+        }
+
+        myfile << "</tr>" << std::endl << std::endl;
+        myfile << SCHED_HTML_JS_CLEAR << std::endl;
+    }
+    return taskCellClasses;
+}
 void CPU::HW2HTML(std::ofstream& myfile) const {  
   // myfile << "<h2><span>Scheduling for device: "<< _name <<"_core_"<<this->_cycleTime<< "</span></h2>" << std::endl;
   myfile << SCHED_HTML_BOARD;
diff --git a/simulators/c++2/src_simulator/arch/CPU.h b/simulators/c++2/src_simulator/arch/CPU.h
index 5e4448648d6d7aab6a5aa208de573fde8b70f515..71c9de992436648116193b4803794b7a1c694b9b 100755
--- a/simulators/c++2/src_simulator/arch/CPU.h
+++ b/simulators/c++2/src_simulator/arch/CPU.h
@@ -121,6 +121,7 @@ public:
 	void buttonPieChart(std::ofstream& myfile) const;
 	void showPieChart(std::ofstream& myfile) const;
 	void HW2HTML(std::ofstream& myfile) const;
+	std::map<TMLTask*, std::string> HWTIMELINE2HTML(std::ofstream& myfile,std::map<TMLTask*, std::string> taskCellClasses,unsigned int nextCellClassIndex, std::string& iTracetaskList) const;
 	void schedule2HTML(std::ofstream& myfile) const;
 	void schedule2XML(std::ostringstream& glob,std::ofstream& myfile) const;
 	inline void setCoreNumberGraph(unsigned int n){ _coreNumberGraph=n;}
diff --git a/simulators/c++2/src_simulator/arch/FPGA.cpp b/simulators/c++2/src_simulator/arch/FPGA.cpp
index 452cb560affb8f59ae4a1f78ab10c91d3c3f66ac..260db510d35cb4e602459601abbf9f252ea0dc70 100644
--- a/simulators/c++2/src_simulator/arch/FPGA.cpp
+++ b/simulators/c++2/src_simulator/arch/FPGA.cpp
@@ -579,6 +579,159 @@ std::string FPGA::determineHTMLCellClass(unsigned int &nextColor ) {
 	return taskCellClasses[  _htmlCurrTask ];
 }
 
+std::string FPGA::determineHTMLCellClass(std::map<TMLTask*, std::string> &taskColors, TMLTask* task, unsigned int &nextColor) {
+	std::map<TMLTask*, std::string>::const_iterator it = taskColors.find( task );
+
+	if ( it == taskColors.end() ) {
+		unsigned int aColor = nextColor % NB_HTML_COLORS;
+		std::ostringstream cellClass;
+		cellClass << "t" << aColor;
+		taskColors[ task ] = cellClass.str();
+		nextColor++;
+	}
+
+	return taskColors[ task ];
+}
+
+std::map<TMLTask*, std::string> FPGA::HWTIMELINE2HTML(std::ofstream& myfile,std::map<TMLTask*, std::string> taskCellClasses1,unsigned int nextCellClassIndex1, std::string& iTracetaskList) {
+    TransactionList _transactListClone;
+    std::string taskList = iTracetaskList.c_str();
+    for (int z = 0; z < _transactList.size(); z++) {
+        std::string taskName = _transactList[z]->getCommand()->getTask()->toString();
+        std::size_t pos = taskList.find(taskName); /*pos1 = position of "bin" if we working with open model*/
+        if(pos != std::string::npos){
+            _transactListClone.push_back(_transactList[z]);
+        }
+    }
+    if ( _transactListClone.size() == 0 ) {
+        std::cout << "Device never activated" << std::endl;
+    } else {
+        if(_startFlagHTML == true){
+            myfile << "<tr><td width=\"170px\" style=\"max-width: unset;min-width: 170px;background-color: aqua;\">" <<  _name << "</td>\n<td class=\"notfirst\"></td>\n<td class=\"notlast\"></td>" << std::endl;
+        } else {
+            myfile << "<tr><td width=\"170px\" style=\"max-width: unset;min-width: 170px;border-style: none none none none;\"></td>\n<td class=\"notfirst\"></td>\n<td class=\"notlast\"></td>\n"<< std::endl;
+        }
+        TMLTime aCurrTime = 0;
+        unsigned int taskOccurTime = 0;
+        unsigned int tempReduce = 0;
+        std::vector<unsigned int> listScale;
+        std::vector<unsigned int> listScaleTime;
+        listScale.push_back(0);
+        listScaleTime.push_back(0);
+        bool changeCssClass = false;
+        for( TransactionList::const_iterator i = _transactListClone.begin(); i != _transactListClone.end(); ++i ) {
+        #ifdef DEBUG_FPGA
+          std::cout <<  (*i)-> getCommand()->getTask()->toString() <<std::endl;
+          std::cout<< _htmlCurrTask->toString()<<std::endl;
+        #endif
+          if( (*i)-> getCommand()->getTask() == _htmlCurrTask ){
+        if(taskOccurTime==0){
+          taskOccurTime++;
+        }
+        #ifdef DEBUG_FPGA
+        std::cout<<"in!!"<<_htmlCurrTask->toString()<<std::endl;
+        #endif
+        TMLTransaction* aCurrTrans = *i;
+        unsigned int aBlanks = aCurrTrans->getStartTime() - aCurrTime;
+        bool isBlankTooBig = false;
+        std::ostringstream tempString;
+        int tempBlanks;
+        if(_htmlCurrTask->getEndLastTransaction() >= 250 && aBlanks >10) {
+            int newBlanks = 10;
+            tempBlanks = aBlanks;
+            tempReduce += aBlanks - newBlanks;
+            aBlanks = newBlanks;
+            isBlankTooBig = true;
+            changeCssClass = true;
+        }
+        if ( aBlanks >= 0 && (!(aCurrTrans->getCommand()->getActiveDelay()) && aCurrTrans->getCommand()->isDelayTransaction()) ){
+            listScale.push_back(aBlanks+1);
+            tempString << tempBlanks+1;
+            if(aCurrTrans->getStartTime()+1 > listScaleTime.back()){
+                listScaleTime.push_back(aCurrTrans->getStartTime()+1);
+            }
+            if (isBlankTooBig){
+                writeHTMLColumn( myfile, aBlanks+1, "not", "idle time", "<- idle " + tempString.str() + " ->", false );
+            } else {
+                writeHTMLColumn( myfile, aBlanks+1, "not", "idle time" );
+            }
+        }
+        else if ( aBlanks > 0 ){
+            listScale.push_back(aBlanks);
+            tempString << tempBlanks;
+            if(aCurrTrans->getStartTime() > listScaleTime.back()){
+                listScaleTime.push_back(aCurrTrans->getStartTime());
+            }
+            if (isBlankTooBig){
+                writeHTMLColumn( myfile, aBlanks, "not", "idle time", "<- idle " + tempString.str() + " ->", false );
+            } else {
+                writeHTMLColumn( myfile, aBlanks, "not", "idle time" );
+            }
+        }
+
+        unsigned int aLength = aCurrTrans->getOperationLength();
+        const std::string cellClass = determineHTMLCellClass( taskCellClasses1, _htmlCurrTask, nextCellClassIndex1);
+        std::string aCurrTransName=aCurrTrans->toShortString();
+        unsigned int indexTrans=aCurrTransName.find_first_of(":");
+        std::string aCurrContent=aCurrTransName.substr(indexTrans+1,2);
+        if(!(!(aCurrTrans->getCommand()->getActiveDelay()) && aCurrTrans->getCommand()->isDelayTransaction())){
+          if(_htmlCurrTask->getEndLastTransaction() >= 250 && aLength >10){
+              tempReduce += aLength - 10;
+              aLength = 10;
+          }
+          writeHTMLColumn( myfile, aLength, cellClass, aCurrTrans->toShortString(), aCurrContent );
+          listScale.push_back(aLength);
+          if(aCurrTrans->getStartTime() > listScaleTime.back()){
+             listScaleTime.push_back(aCurrTrans->getStartTime());
+          }
+          if(aCurrTrans->getEndTime() > listScaleTime.back()){
+             listScaleTime.push_back(aCurrTrans->getEndTime());
+          }
+        }
+        if(aCurrTrans->getCommand()->getTask()->getIsDaemon() == true && aCurrTrans->getEndTime() > _simulatedTime)
+          aCurrTime = _simulatedTime;
+        else
+          aCurrTime = aCurrTrans->getEndTime();
+          }
+        }
+
+        myfile << "</tr>" << std::endl << "<tr>";
+
+        for ( unsigned int aLength = 0; aLength < aCurrTime - tempReduce + 2; aLength++ ) {
+            if( aLength == 1) {
+              myfile << "<th class=\"notfirst\">";
+            } else {
+              myfile << "<th></th>";
+            }
+        }
+        myfile << "</tr>" << std::endl << "<tr>";
+        myfile << "<td width=\"170px\" style=\"max-width: unset;min-width: 170px;border-style: none none none none;\"></td>\n<td class=\"notfirst\"></td>\n<td class=\"notlast\"></td>\n";
+
+        for ( unsigned int aLength = 0; aLength < listScale.size(); aLength += 1 ) {
+          std::ostringstream spanVal;
+          if(aLength < listScaleTime.size())
+            spanVal << listScaleTime[aLength];
+          else
+            spanVal << "";
+          if(aLength+1 >= listScale.size()){
+
+            if(changeCssClass){
+                 writeHTMLColumn( myfile, 5, "sc1",  spanVal.str(), spanVal.str(), false );
+            } else
+                 writeHTMLColumn( myfile, 5, "sc", spanVal.str(), spanVal.str(), false );
+          } else {
+                if(changeCssClass){
+                    writeHTMLColumn( myfile, listScale[aLength+1], "sc1", spanVal.str(), spanVal.str(), false );
+                } else
+                     writeHTMLColumn( myfile, listScale[aLength+1], "sc", spanVal.str(), spanVal.str(), false );
+          }
+        }
+        myfile << "</tr>" << std::endl << std::endl;
+        myfile << SCHED_HTML_JS_CLEAR << std::endl;
+    }
+    return taskCellClasses1;
+}
+
 void FPGA::HW2HTML(std::ofstream& myfile)  {    
   if(_startFlagHTML == true){
     //myfile << "<h2><span>Scheduling for device: "<< _name << "</span></h2>" << std::endl;
diff --git a/simulators/c++2/src_simulator/arch/FPGA.h b/simulators/c++2/src_simulator/arch/FPGA.h
index dfa7554750d8e916da3f6b3b1ea6144755d83c3d..acd819bc3d6b75148dcdad963273cba811e763b9 100644
--- a/simulators/c++2/src_simulator/arch/FPGA.h
+++ b/simulators/c++2/src_simulator/arch/FPGA.h
@@ -133,6 +133,7 @@ public:
 	///inline unsigned int getTransNumber() { return _transNumber;}
         inline unsigned int getID () { return _ID;}
 	void HW2HTML(std::ofstream& myfile) ;
+	std::map<TMLTask*, std::string> HWTIMELINE2HTML(std::ofstream& myfile,std::map<TMLTask*, std::string> taskCellClasses,unsigned int nextCellClassIndex, std::string& iTracetaskList);
 	void removeTrans(int numberOfTrans);
 	void schedule2HTML(std::ofstream& myfile) ;
 	inline const TaskList& getTaskList() const{return _taskList;}
@@ -145,6 +146,7 @@ public:
 	void buttonPieChart(std::ofstream& myfile) const;
 	void showPieChart(std::ofstream& myfile) const;
 	std::string determineHTMLCellClass(unsigned int &nextColor );
+	std::string determineHTMLCellClass(std::map<TMLTask*, std::string> &taskColors, TMLTask* task, unsigned int &nextColor);
 	void scheduleBlank(std::ofstream& myfile);
 protected:
 	///List of all tasks running on the FPGA
diff --git a/simulators/c++2/src_simulator/arch/SchedulableDevice.cpp b/simulators/c++2/src_simulator/arch/SchedulableDevice.cpp
index 36457c16e2a9f0e4ce022b41b3939c25c2ae8fce..a5e62d81f6c60da3e7f68f26b9af9f7d9bf37033 100644
--- a/simulators/c++2/src_simulator/arch/SchedulableDevice.cpp
+++ b/simulators/c++2/src_simulator/arch/SchedulableDevice.cpp
@@ -298,6 +298,151 @@ void SchedulableDevice::buttonPieChart(std::ofstream& myfile) const{
     myfile << "   chart" << _ID << ".update();" << std::endl;
 }
 
+std::map<TMLTask*, std::string> SchedulableDevice::HWTIMELINE2HTML(std::ofstream& myfile,std::map<TMLTask*, std::string> taskCellClasses,unsigned int nextCellClassIndex, std::string& iTracetaskList) const {
+    TransactionList _transactListClone;
+    std::string taskList = iTracetaskList.c_str();
+    for (int z = 0; z < _transactList.size(); z++) {
+        std::string taskName = _transactList[z]->getCommand()->getTask()->toString();
+        std::size_t pos = taskList.find(taskName); /*pos1 = position of "bin" if we working with open model*/
+        if(pos != std::string::npos){
+            _transactListClone.push_back(_transactList[z]);
+        }
+    }
+    if ( _transactListClone.size() == 0 ) {
+        std::cout << "Device never activated" << std::endl;
+    } else {
+        myfile << "<tr><td width=\"170px\" style=\"max-width: unset;min-width: 170px;background-color: aqua;\">" <<  _name << "</td>\n<td class=\"notfirst\"></td>\n<td class=\"notlast\"></td>" << std::endl;
+//        std::map<TMLTask*, std::string> taskCellClasses;
+//        unsigned int nextCellClassIndex = 0;
+        TMLTime aCurrTime = 0;
+        unsigned int tempReduce = 0;
+        std::vector<unsigned int> listScale;
+        std::vector<unsigned int> listScaleTime;
+        listScale.push_back(0);
+        listScaleTime.push_back(0);
+        bool changeCssClass = false;
+        TMLTransaction* checkLastTime = _transactListClone.back();
+        for( TransactionList::const_iterator i = _transactListClone.begin(); i != _transactListClone.end(); ++i ) {
+          std::cout<<"get transaction core number is: "<<(*i)->getTransactCoreNumber()<<std::endl;
+          std::cout<<"time : "<<_cycleTime<<std::endl;
+          std::cout << "CPU:calcSTL: html of CPU " << _name << ": " << (*i)->toString() << std::endl;
+          //if( (*i)->getTransactCoreNumber() == this->_cycleTime ){
+          TMLTransaction* aCurrTrans = *i;
+          unsigned int aBlanks = aCurrTrans->getStartTime() - aCurrTime;
+        bool isBlankTooBig = false;
+        std::ostringstream tempString;
+        int tempBlanks;
+        if((checkLastTime)->getEndTime() >= 250 && aBlanks > 10) {
+            int newBlanks = 10;
+            tempBlanks = aBlanks;
+            tempReduce += aBlanks - newBlanks;
+            aBlanks = newBlanks;
+            isBlankTooBig = true;
+            changeCssClass = true;
+        }
+        if ( aBlanks >= 0 && (!(aCurrTrans->getCommand()->getActiveDelay()) && aCurrTrans->getCommand()->isDelayTransaction()) ){
+            listScale.push_back(aBlanks+1);
+            tempString << tempBlanks+1;
+            if(aCurrTrans->getStartTime()+1 > listScaleTime.back()){
+                listScaleTime.push_back(aCurrTrans->getStartTime()+1);
+            }
+            if (isBlankTooBig){
+                writeHTMLColumn( myfile, aBlanks+1, "not", "idle time", "<- idle " + tempString.str() + " ->", false );
+            } else {
+                writeHTMLColumn( myfile, aBlanks+1, "not", "idle time" );
+            }
+        }
+        else if ( aBlanks > 0 ){
+            listScale.push_back(aBlanks);
+            tempString << tempBlanks;
+            if(aCurrTrans->getStartTime() > listScaleTime.back()){
+                listScaleTime.push_back(aCurrTrans->getStartTime());
+            }
+            if (isBlankTooBig){
+                writeHTMLColumn( myfile, aBlanks, "not", "idle time", "<- idle " + tempString.str() + " ->", false );
+            } else {
+                writeHTMLColumn( myfile, aBlanks, "not", "idle time" );
+            }
+        }
+
+          unsigned int aLength = aCurrTrans->getPenalties();
+
+          if ( aLength != 0 ) {
+        std::ostringstream title;
+        listScaleTime.push_back(listScaleTime.back()+aLength);
+        if(checkLastTime->getEndTime() >= 250 && aLength >10){
+            tempReduce += aLength - 10;
+            aLength = 10;
+        }
+        listScale.push_back(aLength);
+        title << "idle:" << aCurrTrans->getIdlePenalty() << " switching penalty:" << aCurrTrans->getTaskSwitchingPenalty();
+        writeHTMLColumn( myfile, aLength, "not", title.str() );
+          }
+
+          aLength = aCurrTrans->getOperationLength();
+
+          // Issue #4
+          TMLTask* task = aCurrTrans->getCommand()->getTask();
+          const std::string cellClass = determineHTMLCellClass( taskCellClasses, task, nextCellClassIndex);
+          std::string aCurrTransName=aCurrTrans->toShortString();
+          unsigned int indexTrans=aCurrTransName.find_first_of(":");
+          std::string aCurrContent=aCurrTransName.substr(indexTrans+1,2);
+          if(!(!(aCurrTrans->getCommand()->getActiveDelay()) && aCurrTrans->getCommand()->isDelayTransaction())){
+              if(checkLastTime->getEndTime() >= 250 && aLength >10){
+                  tempReduce += aLength - 10;
+                  aLength = 10;
+              }
+              writeHTMLColumn( myfile, aLength, cellClass, aCurrTrans->toShortString(), aCurrContent);
+              listScale.push_back(aLength);
+              if(aCurrTrans->getStartTime() > listScaleTime.back()){
+                 listScaleTime.push_back(aCurrTrans->getStartTime());
+              }
+              if(aCurrTrans->getEndTime() > listScaleTime.back()){
+                 listScaleTime.push_back(aCurrTrans->getEndTime());
+              }
+          }
+          aCurrTime = aCurrTrans->getEndTime();
+          // }
+        }
+
+
+        myfile << "</tr>" << std::endl << "<tr>";
+
+        for ( unsigned int aLength = 0; aLength < aCurrTime - tempReduce + 2; aLength++ ) {
+            if( aLength == 1) {
+              myfile << "<th class=\"notfirst\">";
+            } else {
+              myfile << "<th></th>";
+            }
+        }
+        myfile << "</tr>" << std::endl << "<tr>";
+        myfile << "<td width=\"170px\" style=\"max-width: unset;min-width: 170px;border-style: none none none none;\"></td>\n<td class=\"notfirst\"></td>\n<td class=\"notlast\"></td>\n";
+
+        for ( unsigned int aLength = 0; aLength < listScale.size(); aLength += 1 ) {
+          std::ostringstream spanVal;
+          if(aLength < listScaleTime.size())
+            spanVal << listScaleTime[aLength];
+          else
+            spanVal << "";
+          if(aLength+1 >= listScale.size()){
+
+            if(changeCssClass){
+                writeHTMLColumn( myfile, 5, "sc1",  spanVal.str(), spanVal.str(), false );
+            } else
+                writeHTMLColumn( myfile, 5, "sc", spanVal.str(), spanVal.str(), false );
+          }else {
+            if(changeCssClass){
+                writeHTMLColumn( myfile, listScale[aLength+1], "sc1", spanVal.str(), spanVal.str(), false );
+            } else
+                writeHTMLColumn( myfile, listScale[aLength+1], "sc", spanVal.str(), spanVal.str(), false );
+            }
+        }
+
+        myfile << "</tr>" << std::endl;
+        myfile << SCHED_HTML_JS_CLEAR << std::endl;
+    }
+    return taskCellClasses;
+}
 
 void SchedulableDevice::HW2HTML(std::ofstream& myfile) const {    
   //	myfile << "<h2><span>Scheduling for device: "<< _name << "</span></h2>" << std::endl;
diff --git a/simulators/c++2/src_simulator/arch/SchedulableDevice.h b/simulators/c++2/src_simulator/arch/SchedulableDevice.h
index ca1742df39ffd6bb24a8c6a179b136134adbc16a..58b3f76ec3711963d426b49bc4fbd184fe3f36dc 100644
--- a/simulators/c++2/src_simulator/arch/SchedulableDevice.h
+++ b/simulators/c++2/src_simulator/arch/SchedulableDevice.h
@@ -79,6 +79,7 @@ public:
 	void drawPieChart(std::ofstream& myfile) const;
 	void showPieChart(std::ofstream& myfile) const;
 	void HW2HTML(std::ofstream& myfile) const;
+	std::map<TMLTask*, std::string> HWTIMELINE2HTML(std::ofstream& myfile,std::map<TMLTask*, std::string> taskCellClasses,unsigned int nextCellClassIndex, std::string& iTracetaskList) const;
 	///Writes a HTML representation of the schedule to an output file
 	/**
       	\param myfile Reference to the ofstream object representing the output file
diff --git a/simulators/c++2/src_simulator/definitions.h b/simulators/c++2/src_simulator/definitions.h
index 3cd29b848baafe44a17ee9913d986fe8e729169b..399337e8ecbb22f0aa17b2198abf35525801ab0e 100644
--- a/simulators/c++2/src_simulator/definitions.h
+++ b/simulators/c++2/src_simulator/definitions.h
@@ -323,6 +323,88 @@ using std::max;
         ds.hidden=!ds.hidden;\n \
 	});\n"
 
+#define SCHED_HTML_CSS_CONTENT_TIMELINE "table{\n \
+    border-collapse: collapse;\n \
+    empty-cells: show;\n \
+    margin: 0.4cm;\n \
+}\n \
+td{\n \
+    padding: 10px 5px;\n \
+    border: 1px solid black;\n \
+    max-width: 5px;\n \
+}\n \
+th{\n \
+    padding: 5px;\n \
+}\n \
+.sc{\n \
+    border-style: none;\n \
+    padding: 0px;\n \
+    font-size: small;\n \
+    transform: rotate(45deg);\n \
+    transform-origin: left top;\n \
+}\n \
+.sc1{\n \
+    border-style: none;\n \
+    padding: 0px;\n \
+    font-size: small;\n \
+    color: red;\n \
+    transform: rotate(45deg);\n \
+    transform-origin: left top;\n \
+}\n \
+h2 {\n \
+    border-bottom: 1px solid #666;\n \
+}\n \
+h2 span {\n \
+    position: relative;\n \
+    left: -0.3em;\n \
+    bottom: -0.6em;\n \
+    padding: 1px 0.5em;\n \
+    border-style: solid;\n \
+    border-width: 1px 1px 1px 0.8em;\n \
+    border-color: #666 #666 #666 #008;\n \
+    background-color: #ddd;\n \
+}\n \
+.space{border-style: none;}\n \
+.not{background-color: white; text-align: center}\n \
+.notfirst{\n \
+    background-color: white;\n \
+    border-width: 2px;\n \
+    border-color: red;\n \
+    border-style: none solid none none;\n \
+}\n \
+.notmid {\n \
+    background-color: white;\n \
+    text-align: right;\n \
+    border-style: solid none none none;\n \
+}\n \
+.notlast {\n \
+    background-color: white;\n \
+    width: 5px;\n \
+    border-style: none none none none;\n \
+}\n \
+.t0{background-color: yellow;}\n \
+.t1{background-color: purple;}\n \
+.t2{background-color: red;}\n \
+.t3{background-color: silver;}\n \
+.t4{background-color: teal;}\n \
+.t5{background-color: aqua;}\n \
+.t6{background-color: olive;}\n \
+.t7{background-color: navy;}\n \
+.t8{background-color: maroon;}\n \
+.t9{background-color: lime;}\n \
+.t10{background-color: green;}\n \
+.t11{background-color: gray;}\n \
+.t12{background-color: fuchsia;}\n \
+.t13{background-color: blue;}\n \
+.t14{background-color: LightGoldenRodYellow;}\n \
+.wrapper {\n \
+    width: 256px;\n \
+    height: 256px;\n \
+}\n \
+.clear {\n \
+    clear:both\n \
+}"
+
 #define SCHED_HTML_CSS_CONTENT "table{\n \
 	border-collapse: collapse;\n \
 	empty-cells: show;\n \
diff --git a/simulators/c++2/src_simulator/sim/Simulator.cpp b/simulators/c++2/src_simulator/sim/Simulator.cpp
index 8ff6df6695136d3cace196b9cf3dd122d577346e..286fe798fc2fea43d61b9b6848018a80694c4524 100644
--- a/simulators/c++2/src_simulator/sim/Simulator.cpp
+++ b/simulators/c++2/src_simulator/sim/Simulator.cpp
@@ -461,7 +461,67 @@ void Simulator::latencies2XML(std::ostringstream& glob, int id1, int id2) {
     (*j)->latencies2XML(glob, id1,id2);
   }
 }
+void Simulator::timeline2HTML(std::string& iTraceFileName,std::string& iTracetaskList) const {
+    if ( !ends_with( iTraceFileName, EXT_HTML ) ) {
+        iTraceFileName.append( EXT_HTML );
+    }
+    std::ofstream myfile(iTraceFileName.c_str());
+    //myfile<<"model name: "<<iTraceFileName.c_str();
+    std::map<TMLTask*, std::string> taskCellClasses;
+
+    if (myfile.is_open()) {
+        myfile << SCHED_HTML_DOC; // <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n
+        myfile << SCHED_HTML_BEG_HTML; // <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n
+        myfile << SCHED_HTML_BEG_HEAD; // <head>\n
+        myfile << SCHED_HTML_BEG_STYLE; // <style>\n";
+        myfile << SCHED_HTML_CSS_CONTENT_TIMELINE;
+        myfile << SCHED_HTML_END_STYLE; // <style>\n";
+        myfile << SCHED_HTML_META; // <meta http-equiv=\"content-type\" content=\"text/html; charset=ISO-8859-1\" />\n
+        myfile << SCHED_HTML_BEG_TITLE; // <title>
+        myfile << "Scheduling";
+        myfile << SCHED_HTML_END_TITLE; // </title>\n
+        myfile << SCHED_HTML_END_HEAD; // </head>\n
+        myfile << SCHED_HTML_BEG_BODY; // <body>\n
+//        myfile << "<h1>Task to show: " << iTracetaskList.c_str() <<"</h1>\n";
+        myfile << "<table style=\"float: left;position: relative;\"><tr><td width=\"170px\" style=\"max-width: unset;min-width: 170px;border-style: none none none none;\"></td>\n"
+               << "<td class=\"notfirst\"></td>\n"
+               << "<td style=\"border-style: solid none none none; border-width: 2px;border-color: red;text-align: right\"colspan=\"1000\"><b>Time</b></td>\n</tr>\n"
+               << "<tr><th></th><th class=\"notfirst\"></th></tr>\n"
+               << "<div class = \"clear\"></div>" << std::endl;
+        for(CPUList::const_iterator i=_simComp->getCPUList().begin(); i != _simComp->getCPUList().end(); ++i){
+            for(unsigned int j = 0; j < (*i)->getAmoutOfCore(); j++) {
+                taskCellClasses = (*i)->HWTIMELINE2HTML(myfile, taskCellClasses, taskCellClasses.size(), iTracetaskList);
+                (*i)->setCycleTime((*i)->getCycleTime()+1);
+            }
+            if((*i)->getAmoutOfCore() == 1)
+                (*i)->setCycleTime(0);
+            }
+
+        for(FPGAList::const_iterator j=_simComp->getFPGAList().begin(); j != _simComp->getFPGAList().end(); ++j){
+            (*j)->setStartFlagHTML(true);
+            for(TaskList::const_iterator i = (*j)->getTaskList().begin(); i != (*j)->getTaskList().end(); ++i){
+                (*j)->setHtmlCurrTask(*i);
+                taskCellClasses = (*j)->HWTIMELINE2HTML(myfile, taskCellClasses, taskCellClasses.size(), iTracetaskList);
+                (*j)->setStartFlagHTML(false);
+            }
+        }
 
+        for(BusList::const_iterator j=_simComp->getBusList().begin(); j != _simComp->getBusList().end(); ++j){
+            taskCellClasses = (*j)->HWTIMELINE2HTML(myfile, taskCellClasses, taskCellClasses.size(), iTracetaskList);
+        }
+        myfile << "</tr>\n<tr><th>HW</th><th class=\"notfirst\"></th></tr>\n<div class = \"clear\"></div>\n";
+        myfile << "</table>\n<table>\n<tr><td width=\"170px\" style=\"max-width: unset;min-width: 170px;border-style: none none none none;\"></td>\n<td class=\"notlast\"></td>\n<td class=\"notlast\"></td>\n";
+        for( std::map<TMLTask*, std::string>::iterator taskColIt = taskCellClasses.begin(); taskColIt != taskCellClasses.end(); ++taskColIt ) {
+            TMLTask* task = (*taskColIt).first;
+            // Unset the default td max-width of 5px. For some reason setting the max-with on a specific t style does not work
+            myfile << "<td class=\"" << taskCellClasses[ task ] << "\"></td><td style=\"max-width: unset;min-width: 170px;\">" << task->toString() << "</td><td class=\"space\"></td>";
+        }
+        myfile << "</tr>\n</table>\n";
+        myfile << SCHED_HTML_END_BODY; // </body>\n
+        myfile << SCHED_HTML_END_HTML; // </html>\n
+        myfile.close();
+    }
+}
 void Simulator::schedule2HTML(std::string& iTraceFileName) const {
 #ifdef DEBUG_HTML
 std::cout<<"schedule2HTML--------------------------------------******************"<<std::endl;
@@ -1880,10 +1940,12 @@ void Simulator::decodeCommand(std::string iCmd, std::ostream& iXmlOutStream){
     std::cout << "End Write x samples/events to channel y." << std::endl;
     break;
   }
-  case 7: //Save trace in file x
+  case 7: { //Save trace in file x
     std::cout << "Save trace in file x." << std::endl;
     aInpStream >> aParam1;
     aInpStream >>aStrParam;
+    std::string aStrParamTask;
+    aInpStream >> aStrParamTask;
     switch (aParam1){
     case 0: //VCD
       aGlobMsg << TAG_MSGo << "Schedule output in VCD format" << TAG_MSGc << std::endl;
@@ -1900,12 +1962,17 @@ void Simulator::decodeCommand(std::string iCmd, std::ostream& iXmlOutStream){
     case 3: //XML
       aGlobMsg << TAG_MSGo << "Schedule output in XML format" << TAG_MSGc << std::endl;
       schedule2XML(anEntityMsg,aStrParam);
+    case 4: //timeline diagram
+      aGlobMsg << TAG_MSGo << "Schedule output in HTML format" << TAG_MSGc << std::endl;
+      timeline2HTML(aStrParam, aStrParamTask);
+      break;
     default:
       aGlobMsg << TAG_MSGo << MSG_CMDNFOUND<< TAG_MSGc << std::endl;
       anErrorCode=3;
     }
     std::cout << "End Save trace in file x." << std::endl;
     break;
+  }
   case 8:{ //Save simulation state in file x
     std::cout << "Save simulation state in file x." << std::endl;
     aInpStream >> aStrParam;
diff --git a/simulators/c++2/src_simulator/sim/Simulator.h b/simulators/c++2/src_simulator/sim/Simulator.h
index b84a8a6a871e940a77a6fa8e2df578ae47495d79..ee75500b245d765302a90e9e81bf7e9d96a7dceb 100644
--- a/simulators/c++2/src_simulator/sim/Simulator.h
+++ b/simulators/c++2/src_simulator/sim/Simulator.h
@@ -247,6 +247,7 @@ public:
 
 	///Writes a HTML representation of the schedule of CPUs and buses to an output file
 	void schedule2HTML(std::string& iTraceFileName) const;
+	void timeline2HTML(std::string& iTraceFileName, std::string& iTracetaskList) const;
 
 	///Writes simulation traces in VCD format to an output file
 	/**
diff --git a/src/main/java/remotesimulation/CommandParser.java b/src/main/java/remotesimulation/CommandParser.java
index e272283e07398369b485c40e18433367e5bfbd5a..de2ac9c92b1401b79198f115bcc590ad9b17241f 100755
--- a/src/main/java/remotesimulation/CommandParser.java
+++ b/src/main/java/remotesimulation/CommandParser.java
@@ -494,6 +494,16 @@ public class CommandParser {
         sc = new SimulationCommand("save-trace-in-file", "stif", "7", params, paramNames, "Saves the current trace of the simulation in a VCD, HTML, TXT or XML file");
         commandList.add(sc);
 
+        // save-timeline-trace-in-file
+        params = new int[2];
+        paramNames = new String[2];
+        params[0] = 2;
+        paramNames[0] = "File name";
+        params[1] = 2;
+        paramNames[1] = "Task List";
+        sc = new SimulationCommand("save-timeline-trace-in-file", "stltif", "7 4", params, paramNames, "Saves the current timeline trace of the simulation in a HTML file");
+        commandList.add(sc);
+
         // set-variable
         params = new int[3];
         paramNames = new String[3];
diff --git a/src/main/java/ui/interactivesimulation/JFrameInteractiveSimulation.java b/src/main/java/ui/interactivesimulation/JFrameInteractiveSimulation.java
index caa9044e10b3f2a8877f93ea924e96fbb912358d..b2ce7781948b2d63d825ab22031a3aae34b09153 100644
--- a/src/main/java/ui/interactivesimulation/JFrameInteractiveSimulation.java
+++ b/src/main/java/ui/interactivesimulation/JFrameInteractiveSimulation.java
@@ -260,6 +260,8 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListene
 	private JFrameTMLSimulationPanelTimeline tmlSimPanelTimeline;
 	private BufferedWriter bw;
 	private int simIndex=0;
+    private String listOfTaskToShowInTimeLine = "";
+    private String timelineTempFile = "";
     
 	public JFrameInteractiveSimulation(Frame _f, MainGUI _mgui, String _title, String _hostSystemC, String _pathExecute, TMLMapping<TGComponent> _tmap, List<Point> _points) {
         super(_title);
@@ -1533,90 +1535,50 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListene
 		}
 	}
 
-	public void writeSimTraceTimeline() {
-	    Object wait = 0;
-	    Thread updateTransaction = new Thread(new Runnable() {
-            @Override
-            public void run() {
-                try {
-                    synchronized (wait) {
-                        buttonShowTraceTimeline.setEnabled(false);
-                        updateTransactions();
-                        UIManager.put("ProgressMonitor.progressText", "Processing");
-                        ProgressMonitor pm = new ProgressMonitor(getContentPane(), "Updating Transaction List",
-                                "Task starting", 0, 100);
-                        int temp = 0;
-                        while (trans == null) {
-                            temp ++;
-                            pm.setMillisToDecideToPopup(100);
-                            //after deciding if predicted time is longer than 100 show popup
-                            pm.setMillisToPopup(100);
-                            //updating ProgressMonitor note
-                            pm.setNote("Updating transaction list");
-                            pm.setProgress(temp);
-                            Thread.sleep(50);
-                        }
-                        pm.setNote("Task finished");
-                        pm.close();
-                        wait.notify();
-                    }
-                } catch (InterruptedException e) {
-                    e.printStackTrace();
-                }
-            }
-        });
-
-	    Thread startTimelinePane = new Thread(new Runnable() {
-            @Override
-            public void run() {
-                try {
-                    synchronized (wait) {
-                        while(trans == null) {
-                            System.out.println("Wait transaction list");
-                            Thread.sleep(100);
-                            wait.wait();
-                        }
-                    }
-                    if (trans != null && !trans.isEmpty()) {
-                        System.out.println("trans is updated with size " + trans.size());
-                        //Make a popup to select which tasks
-                        Vector<String> tmlComponentsToValidate = new Vector<String>();
-                        List<String> tasks = new ArrayList<String>();
-                        for (TMLTask task : tmap.getTMLModeling().getTasks()) {
-                            tasks.add(task.getName());
-                        }
-                        JDialogSelectTasks jdstmlc = new JDialogSelectTasks(f, tmlComponentsToValidate, tasks, "Select tasks to show in trace");
-
-                        GraphicLib.centerOnParent(jdstmlc);
-                        jdstmlc.setVisible(true);
-                        Vector<SimulationTransaction> _transCopy = new Vector<SimulationTransaction>();
-//                int temp = 0;
-//                if (trans.size() > 2000) temp = trans.size() - 2000;// get 2000 latest transactions.
-                        for (int i = 0; i < trans.size(); i++) {
-                            for (String taskname : tmlComponentsToValidate) {
-                                if (taskname.equals(trans.get(i).taskName)) {
-                                    int checkPenalty = Integer.valueOf(trans.get(i).endTime) - Integer.valueOf(trans.get(i).startTime) - Integer.valueOf(trans.get(i).length);
-                                    if (checkPenalty > 0) trans.get(i).startTime = String.valueOf(Integer.valueOf(trans.get(i).endTime) - Integer.valueOf(trans.get(i).length));
-                                    _transCopy.add(trans.get(i));
-                                }
-                            }
-                        }
-                        if (!_transCopy.isEmpty()) {
-                            tmlSimPanelTimeline = new JFrameTMLSimulationPanelTimeline(new Frame(), mgui, _transCopy, "Show Trace - Timeline");
-                            tmlSimPanelTimeline.setVisible(true);
-                        }
-                        buttonShowTraceTimeline.setEnabled(true);
-                    } else {
-                        System.out.println("Trans is null, Transaction list need to be updated (button \"Update transactions\" under Transactions tab).");
-                        buttonShowTraceTimeline.setEnabled(true);
-                    }
-                } catch (InterruptedException e) {
-                    e.printStackTrace();
-                }
-            }
-        });
-	    updateTransaction.start();
-	    startTimelinePane.start();
+	private void updateTimelineTrace() {
+        if (tmlSimPanelTimeline != null && tmlSimPanelTimeline.isShowing() && !listOfTaskToShowInTimeLine.equals("")) {
+            tmlSimPanelTimeline.setParam(paramMainCommand.getText().trim());
+            mctb.setEnabled(false);
+            tmlSimPanelTimeline.setContentPaneEnable(false);
+//            System.out.println(timelineTempFile);
+//            System.out.println(listOfTaskToShowInTimeLine);
+            sendCommand( "save-timeline-trace-in-file" + " " + timelineTempFile + " " + listOfTaskToShowInTimeLine );
+            tmlSimPanelTimeline.setPaneContent(timelineTempFile);
+            tmlSimPanelTimeline.setContentPaneEnable(true);
+            mctb.setEnabled(true);
+        }
+    }
+
+	private void writeSimTraceTimeline() {
+        buttonShowTraceTimeline.setEnabled(false);
+        //Make a popup to select which tasks
+        Vector<String> tmlComponentsToValidate = new Vector<String>();
+        List<String> tasks = new ArrayList<String>();
+        for (TMLTask task : tmap.getTMLModeling().getTasks()) {
+            tasks.add(task.getName());
+        }
+        JDialogSelectTasks jdstmlc = new JDialogSelectTasks(f, tmlComponentsToValidate, tasks, "Select tasks to show in trace");
+        GraphicLib.centerOnParent(jdstmlc);
+        jdstmlc.setVisible(true);
+        listOfTaskToShowInTimeLine = "";
+        timelineTempFile = "timetimetrace.html";
+        for (String taskname : tmlComponentsToValidate) {
+            listOfTaskToShowInTimeLine += taskname + ",";
+        }
+        final String directory = saveDirName.getText().trim();
+        if ( !directory.isEmpty() ) {
+            if (!directory.endsWith(File.separator))
+                timelineTempFile = directory + File.separator + timelineTempFile;
+            else
+                timelineTempFile = directory + timelineTempFile;
+        }
+        if (!listOfTaskToShowInTimeLine.equals("")) {
+            sendCommand( "save-timeline-trace-in-file" + " " + timelineTempFile + " " + listOfTaskToShowInTimeLine );
+            tmlSimPanelTimeline = new JFrameTMLSimulationPanelTimeline(new Frame(), mgui, this, "Show Trace - Timeline", timelineTempFile);
+            tmlSimPanelTimeline.setParam(paramMainCommand.getText().trim());
+            tmlSimPanelTimeline.setVisible(true);
+        }
+        buttonShowTraceTimeline.setEnabled(true);
     }
 	
 	public void writeArchitectureSimTrace(){
@@ -2837,7 +2799,7 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListene
 	        int type;
             if (format.compareTo("0") == 0) {
                 type = SimulationTrace.VCD_DIPLO;
-            } else if (format.compareTo("1") == 0) {
+            } else if (format.compareTo("1") == 0 || format.compareTo("4") == 0) {
 	            type = SimulationTrace.HTML_DIPLO;
             } else  if (format.compareTo("2") == 0){
 	            type = SimulationTrace.TXT_DIPLO;
@@ -3546,27 +3508,37 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListene
             //TraceManager.addDev("Start simulation!");
         } else if (command.equals(actions[InteractiveSimulationActions.ACT_RUN_SIMU].getActionCommand()))  {
             sendCommand("run-to-next-breakpoint");
+            updateTimelineTrace();
         } else if (command.equals(actions[InteractiveSimulationActions.ACT_RUN_X_TIME_UNITS].getActionCommand()))  {
             sendCommandWithPositiveInt("run-x-time-units");
+            updateTimelineTrace();
         } else if (command.equals(actions[InteractiveSimulationActions.ACT_RUN_TO_TIME].getActionCommand()))  {
             sendCommandWithPositiveInt("run-to-time");
+            updateTimelineTrace();
         } else if (command.equals(actions[InteractiveSimulationActions.ACT_RUN_X_TRANSACTIONS].getActionCommand()))  {
             sendCommandWithPositiveInt("run-x-transactions");
+            updateTimelineTrace();
         } else if (command.equals(actions[InteractiveSimulationActions.ACT_RUN_X_COMMANDS].getActionCommand()))  {
             sendCommandWithPositiveInt("run-x-commands");
+            updateTimelineTrace();
         } else if (command.equals(actions[InteractiveSimulationActions.ACT_RUN_EXPLORATION].getActionCommand()))  {
             runExploration();
             //sendCommand("run-exploration");
         } else if (command.equals(actions[InteractiveSimulationActions.ACT_RUN_TO_NEXT_BUS_TRANSFER].getActionCommand()))  {
             toNextBusTransfer();
+            updateTimelineTrace();
         } else if (command.equals(actions[InteractiveSimulationActions.ACT_RUN_UNTIL_CPU_EXECUTES].getActionCommand()))  {
             runUntilCPUExecutes();
+            updateTimelineTrace();
         } else if (command.equals(actions[InteractiveSimulationActions.ACT_RUN_UNTIL_MEMORY_ACCESS].getActionCommand()))  {
             toNextMemoryTransfer();
+            updateTimelineTrace();
         } else if (command.equals(actions[InteractiveSimulationActions.ACT_RUN_UNTIL_TASK_EXECUTES].getActionCommand()))  {
             runUntilTaskExecutes();
+            updateTimelineTrace();
         } else if (command.equals(actions[InteractiveSimulationActions.ACT_RUN_UNTIL_CHANNEL_ACCESS].getActionCommand()))  {
             runUntilChannelAccess();
+            updateTimelineTrace();
         } else if (command.equals(actions[InteractiveSimulationActions.ACT_SAVE_VCD].getActionCommand()))  {
             saveTraceVCD();
         } else if (command.equals(actions[InteractiveSimulationActions.ACT_SAVE_HTML].getActionCommand()))  {
@@ -3593,6 +3565,7 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListene
             transTimes=new HashMap<String, List<String>>();
             processLatency();
             askForUpdate();
+            updateTimelineTrace();
         } else if (command.equals(actions[InteractiveSimulationActions.ACT_REMOVE_ALL_TRANS].getActionCommand())) {
             sendCommand("rmat 1");
 
diff --git a/src/main/java/ui/interactivesimulation/JFrameTMLSimulationPanelTimeline.java b/src/main/java/ui/interactivesimulation/JFrameTMLSimulationPanelTimeline.java
index b4983aec0ea58165669a97cf5d99f9782a59cc5b..e7d3b9116daf023de1002f49b07f59f27f5cc220 100644
--- a/src/main/java/ui/interactivesimulation/JFrameTMLSimulationPanelTimeline.java
+++ b/src/main/java/ui/interactivesimulation/JFrameTMLSimulationPanelTimeline.java
@@ -1,42 +1,50 @@
 package ui.interactivesimulation;
 
 import myutil.FileUtils;
+import myutil.GraphicLib;
 import myutil.TraceManager;
+import tmltranslator.TMLMapping;
 import ui.ColorManager;
 import ui.MainGUI;
+import ui.TGComponent;
 
 import javax.swing.*;
+import javax.swing.text.Document;
 import java.awt.*;
 import java.awt.event.*;
 import java.io.File;
 import java.io.FileOutputStream;
+import java.io.IOException;
+import java.nio.file.DirectoryNotEmptyException;
+import java.nio.file.Files;
+import java.nio.file.NoSuchFileException;
+import java.nio.file.Paths;
 import java.util.*;
 
 public class JFrameTMLSimulationPanelTimeline extends JFrame implements ActionListener {
 
     public InteractiveSimulationActions[] actions;
-    private Vector<SimulationTransaction> transTransfer;
-    private int indexTrans = 0;
-    private static final int BIG_IDLE = 50;
-    private static int NUMBER_OF_TRANS_TO_SHOW = 200;
     private static String htmlPaneContent;
-    private JButton buttonPrev;
-    private JButton buttonNext;
-    private JComboBox<Integer> comboBoxUpdateView;
-    private int maxIndexTrans = 0;
     private JTextPane sdpanel;
     protected JLabel status;
     private Container framePanel;
     private ProgressMonitor pm;
-
+    private String filePath;
     private MainGUI mgui;
+    private JTabbedPane commandTab;
+    private JFrameInteractiveSimulation jfis;
+    private String[] cpuIDs, busIDs, memIDs, taskIDs, chanIDs;
+    protected JComboBox<String> cpus, busses, mems, tasks, chans;
+    private TMLMapping<TGComponent> tmap;
+    private JTextField paramMainCommand;
 
-    public JFrameTMLSimulationPanelTimeline(Frame _f, MainGUI _mgui, Vector<SimulationTransaction> _trans, String _title) {
+    public JFrameTMLSimulationPanelTimeline(Frame _f, MainGUI _mgui,JFrameInteractiveSimulation _jfis, String _title, String _path) {
         super(_title);
         mgui = _mgui;
+        tmap =  mgui.gtm.getTMLMapping();
+        filePath = _path;
+        jfis = _jfis;
         initActions();
-        transTransfer = new Vector<SimulationTransaction>(_trans);
-        maxIndexTrans = (transTransfer.size() - 1) / NUMBER_OF_TRANS_TO_SHOW;
         makeComponents();
     }
 
@@ -53,70 +61,108 @@ public class JFrameTMLSimulationPanelTimeline extends JFrame implements ActionLi
         framePanel.setLayout(new BorderLayout());
 
         // Top panel
+        JPanel timelinePane = new JPanel();
         JPanel topPanel = new JPanel();
-        buttonPrev = new JButton(actions[InteractiveSimulationActions.ACT_SHOW_PREV_TRANS_TIMELINE]);
-        topPanel.add(buttonPrev);
-        buttonNext = new JButton(actions[InteractiveSimulationActions.ACT_SHOW_NEXT_TRANS_TIMELINE]);
-        topPanel.add(buttonNext);
         JButton buttonClose = new JButton(actions[InteractiveSimulationActions.ACT_QUIT_SD_WINDOW]);
         topPanel.add(buttonClose);
         JButton buttonHtml = new JButton(actions[InteractiveSimulationActions.ACT_SAVE_TIMELINE_HTML]);
         topPanel.add(buttonHtml);
-        JTextField numberTrans = new JTextField("Number of transactions to Show");
-        numberTrans.setEditable(false);
-        topPanel.add(numberTrans);
-        Integer[] numberOfTransToShow = new Integer[] {100, 200, 500, 1000, 2000};
-        comboBoxUpdateView = new JComboBox<Integer>(numberOfTransToShow);
-        switch (NUMBER_OF_TRANS_TO_SHOW){
-            case 100: comboBoxUpdateView.setSelectedIndex(0); break;
-            case 500: comboBoxUpdateView.setSelectedIndex(2); break;
-            case 1000: comboBoxUpdateView.setSelectedIndex(3); break;
-            case 2000: comboBoxUpdateView.setSelectedIndex(4); break;
-            default: comboBoxUpdateView.setSelectedIndex(1); break;
+        timelinePane.add(topPanel,BorderLayout.NORTH);
+        //Main control
+        JPanel jp01, jp02;
+        jp01 = new JPanel(new BorderLayout());
+        commandTab = GraphicLib.createTabbedPaneRegular();//new JTabbedPane();
+        commandTab.addTab("Control", null, jp01, "Main control commands");
+
+        MainCommandsToolBar mctb = new MainCommandsToolBar(jfis);
+        jp01.add(mctb, BorderLayout.NORTH);
+
+        jp02 = new JPanel();
+        //jp01.setPreferredSize(new Dimension(375, 400));
+        GridBagLayout gridbag01 = new GridBagLayout();
+        GridBagConstraints c01 = new GridBagConstraints();
+        jp02.setLayout(gridbag01);
+
+        c01.gridheight = 1;
+        c01.weighty = 1.0;
+        c01.weightx = 1.0;
+        c01.gridwidth = 1;
+        c01.fill = GridBagConstraints.BOTH;
+        c01.gridheight = 1;
+
+        jp02.add(new JLabel("Command parameter: "), c01);
+        c01.gridwidth = GridBagConstraints.REMAINDER; //end row
+        paramMainCommand = new JTextField("1", 30);
+        paramMainCommand.setEditable(false);
+        jp02.add(paramMainCommand, c01);
+
+        c01.gridwidth = 1;
+        jp02.add(new JLabel("CPUs and HwA: "), c01);
+        c01.gridwidth = GridBagConstraints.REMAINDER; //end row
+        if (cpuIDs == null) {
+            cpus = new JComboBox<String>();
+        } else {
+            cpus = new JComboBox<String>(cpuIDs);
+        }
+        jp02.add(cpus, c01);
+
+        c01.gridwidth = 1;
+        jp02.add(new JLabel("Buses: "), c01);
+        c01.gridwidth = GridBagConstraints.REMAINDER; //end row
+        if (busIDs == null) {
+            busses = new JComboBox<String>();
+        } else {
+            busses = new JComboBox<String>(busIDs);
+        }
+        jp02.add(busses, c01);
+
+        c01.gridwidth = 1;
+        jp02.add(new JLabel("Memories: "), c01);
+        c01.gridwidth = GridBagConstraints.REMAINDER; //end row
+        if (memIDs == null) {
+            mems = new JComboBox<String>();
+        } else {
+            mems = new JComboBox<String>(memIDs);
+        }
+        jp02.add(mems, c01);
+
+        c01.gridwidth = 1;
+        jp02.add(new JLabel("Tasks: "), c01);
+        c01.gridwidth = GridBagConstraints.REMAINDER; //end row
+        if (taskIDs == null) {
+            tasks = new JComboBox<String>();
+        } else {
+            tasks = new JComboBox<String>(taskIDs);
         }
+        jp02.add(tasks, c01);
 
-        comboBoxUpdateView.addActionListener(new ActionListener() {
-
-            @Override
-            public void actionPerformed(ActionEvent event) {
-                try {
-                    NUMBER_OF_TRANS_TO_SHOW = (Integer) comboBoxUpdateView.getSelectedItem();
-                } catch (Exception e) {
-                    //TraceManager.addDev(nbOfTransactions.getText());
-                    //TraceManager.addDev("Invalid default transaction");
-                    NUMBER_OF_TRANS_TO_SHOW = 200;
-                }
-                Thread t = new Thread(new Runnable() {
-                    @Override
-                    public void run() {
-                        buttonPrev.setEnabled(false);
-                        buttonNext.setEnabled(false);
-                        maxIndexTrans = (transTransfer.size() - 1) / NUMBER_OF_TRANS_TO_SHOW;
-                        indexTrans = 0;
-                        htmlPaneContent = generateHtmlContent(indexTrans);
-                        sdpanel.setText(htmlPaneContent);
-                        updateButtonState();
-                    }
-                });
-                t.start();
-            }
-        });
-        topPanel.add(comboBoxUpdateView);
-
-        if(transTransfer.size() <= NUMBER_OF_TRANS_TO_SHOW) {
-            buttonPrev.setEnabled(false);
-            buttonNext.setEnabled(false);
+        c01.gridwidth = 1;
+        jp02.add(new JLabel("Channels: "), c01);
+        c01.gridwidth = GridBagConstraints.REMAINDER; //end row
+        if (chanIDs == null) {
+            chans = new JComboBox<String>();
+        } else {
+            chans = new JComboBox<String>(chanIDs);
         }
-        updateButtonState();
+        jp02.add(chans, c01);
 
-        framePanel.add(topPanel, BorderLayout.NORTH);
+        jp01.add(jp02, BorderLayout.CENTER);
 
+        JSplitPane split = new JSplitPane(JSplitPane.VERTICAL_SPLIT, true, topPanel, commandTab);
+        //split.setBackground(ColorManager.InteractiveSimulationBackground);
+        timelinePane.add(split, BorderLayout.CENTER);
+        timelinePane.add(commandTab, BorderLayout.SOUTH);
+        framePanel.add(timelinePane, BorderLayout.NORTH);
         // Simulation panel
         sdpanel = new JTextPane();
         sdpanel.setEditable(false);
         sdpanel.setContentType("text/html");
-        htmlPaneContent = generateHtmlContent(0);
-        sdpanel.setText(htmlPaneContent);
+        File file = new File(filePath);
+        try {
+            sdpanel.setPage(file.toURI().toURL());
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
 
         JScrollPane jsp = new JScrollPane(sdpanel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
         jsp.setWheelScrollingEnabled(true);
@@ -128,263 +174,81 @@ public class JFrameTMLSimulationPanelTimeline extends JFrame implements ActionLi
         framePanel.add(status, BorderLayout.SOUTH);
 
         pack();
+    }
+
+    private void initActions() {
+        actions = new InteractiveSimulationActions[InteractiveSimulationActions.NB_ACTION];
+        for (int i = 0; i < InteractiveSimulationActions.NB_ACTION; i++) {
+            actions[i] = new InteractiveSimulationActions(i);
+            actions[i].addActionListener(this);
+        }
 
+        cpuIDs = makeCPUIDs();
+        busIDs = makeBusIDs();
+        memIDs = makeMemIDs();
+        taskIDs = makeTasksIDs();
+        chanIDs = makeChanIDs();
     }
-    public String generateHtmlContent( int indexTrans) {
-        Vector<SimulationTransaction> trans = new Vector<SimulationTransaction>(transTransfer.subList((0 < NUMBER_OF_TRANS_TO_SHOW * indexTrans) ? NUMBER_OF_TRANS_TO_SHOW * indexTrans : 0 ,(transTransfer.size() - 1 < NUMBER_OF_TRANS_TO_SHOW * indexTrans +NUMBER_OF_TRANS_TO_SHOW) ? transTransfer.size() : NUMBER_OF_TRANS_TO_SHOW * indexTrans +NUMBER_OF_TRANS_TO_SHOW));
-        System.out.println("Sub list from " + ((0 < NUMBER_OF_TRANS_TO_SHOW * indexTrans) ? NUMBER_OF_TRANS_TO_SHOW * indexTrans : 0) + " to " + ((transTransfer.size() - 1 < NUMBER_OF_TRANS_TO_SHOW * indexTrans +NUMBER_OF_TRANS_TO_SHOW) ? transTransfer.size() - 1 : NUMBER_OF_TRANS_TO_SHOW * indexTrans + NUMBER_OF_TRANS_TO_SHOW) + " transize " + trans.size());
-        String htmlContent = "";
-        Map<String, Vector<SimulationTransaction>> map = new HashMap<String, Vector<SimulationTransaction>>();
-        Map<String, String> taskColors = new HashMap<String, String>();
-        int taskIndex = 0;
-        int endTime = 0;
-        for (int i = 0; i < trans.size(); i++) {
-            //HW and task
-            String hwnode = (trans.get(i).deviceName.contains("Bus") ? trans.get(i).deviceName : trans.get(i).deviceName + "_core_" + trans.get(i).coreNumber);
-            if (map.get(hwnode) == null) {
-                map.put(hwnode, new Vector<SimulationTransaction>());
-            }
-            map.get(hwnode).add(trans.get(i));
-            // task color
-            String taskname = trans.get(i).taskName;
-            if (taskColors.get(taskname) == null) {
-                int cellIndex = taskIndex % 15;
-                taskIndex++;
-                String cellClass = "t" + String.valueOf(cellIndex);
-                taskColors.put(taskname, cellClass);
-            }
+    public String[] makeCPUIDs() {
+        if (tmap == null) {
+            return null;
         }
-        UIManager.put("ProgressMonitor.progressText", "Processing");
-        pm = new ProgressMonitor(framePanel, "Generating Content", "Task starting", 0, map.size());
-        pm.setMillisToDecideToPopup(100);
-        pm.setMillisToPopup(100);
-        for (String i : map.keySet()) {
-            if (Integer.valueOf(map.get(i).lastElement().endTime) > endTime) endTime = Integer.valueOf(map.get(i).lastElement().endTime);
+
+        return tmap.getCPUandHwAIDs();
+    }
+
+    public String[] makeBusIDs() {
+        if (tmap == null) {
+            return null;
         }
-        if (endTime > 2000) endTime = 2000;
-        htmlContent = "<!DOCTYPE html>\n" + "<html>\n";
-        htmlContent += "<head>\n" +
-                "<style>\n";
-        htmlContent += "table{\n" +
-                " \tborder-collapse: collapse;\n" +
-                " \tempty-cells: show;\n" +
-                " \tmargin: 0.4cm;\n" +
-                " }\n" +
-                " td{\n" +
-                " \tpadding: 10px 5px;\n" +
-                " \tborder: 1px solid black;\n" +
-                " \tmax-width: 5px;\n" +
-                " }\n" +
-                " th{\n" +
-                " \tpadding: 5px;\n" +
-                " }\n" +
-                " .sc{\n" +
-                " \tborder-style: none;\n" +
-                " \tpadding: 0px;\n" +
-                " \tfont-size: small;\n" +
-                "     transform: rotate(45deg);\n" +
-                "     transform-origin: left top;\n" +
-                " }\n" +
-                " .sc1{\n" +
-                " \tborder-style: none;\n" +
-                " \tpadding: 0px;\n" +
-                " \tfont-size: small;\n" +
-                " \tcolor: red;\n" +
-                "     transform: rotate(45deg);\n" +
-                "     transform-origin: left top;\n" +
-                " }\n" +
-                " h2 {\n" +
-                " \tborder-bottom: 1px solid #666;\n" +
-                " }\n" +
-                " h2 span {\n" +
-                " \tposition: relative;\n" +
-                " \tleft: -0.3em;\n" +
-                " \tbottom: -0.6em;\n" +
-                " \tpadding: 1px 0.5em;\n" +
-                " \tborder-style: solid;\n" +
-                " \tborder-width: 1px 1px 1px 0.8em;\n" +
-                " \tborder-color: #666 #666 #666 #008;\n" +
-                " \tbackground-color: #ddd;\n" +
-                " }\n" +
-                " .space{border-style: none;}\n" +
-                " .not{background-color: white; text-align: center}\n" +
-                ".notfirst{\n" +
-                " \tbackground-color: white;\n" +
-                " \tborder-width: 2px;\n" +
-                " \tborder-color: red;\n" +
-                " \tborder-style: none solid none none;\n" +
-                " }\n" +
-                " .notmid {\n" +
-                " \tbackground-color: white;\n" +
-                " \ttext-align: right;\n" +
-                " \tborder-style: solid none none none;\n" +
-                " }\n" +
-                " .notlast {\n" +
-                " \tbackground-color: white;\n" +
-                " \twidth: 5px;\n" +
-                " \tborder-style: none none none none;\n" +
-                " }\n" +
-                " .t0{background-color: yellow;}\n" +
-                " \n" +
-                " .t1{background-color: purple;}\n" +
-                " \n" +
-                " .t2{background-color: red;}\n" +
-                " \n" +
-                " .t3{background-color: silver;}\n" +
-                " \n" +
-                " .t4{background-color: teal;}\n" +
-                " \n" +
-                " .t5{background-color: aqua;}\n" +
-                " \n" +
-                " .t6{background-color: olive;}\n" +
-                " \n" +
-                " .t7{background-color: navy;}\n" +
-                "\n" +
-                " .t8{background-color: maroon;}\n" +
-                " \n" +
-                " .t9{background-color: lime;}\n" +
-                " \n" +
-                " .t10{background-color: green;}\n" +
-                " \n" +
-                " .t11{background-color: gray;}\n" +
-                "\n" +
-                " .t12{background-color: fuchsia;}\n" +
-                " \n" +
-                " .t13{background-color: blue;}\n" +
-                " \n" +
-                " .t14{background-color: LightGoldenRodYellow;}\n" +
-                " \n" +
-                " .wrapper {\n" +
-                " \twidth: 256px;\n" +
-                " \theight: 256px;\n" +
-                " }\n" +
-                " \n" +
-                " .clear {\n" +
-                " \tclear:both\n" +
-                " }\n";
-        htmlContent += "</style>\n" +
-                "</head>\n<body>\n<table style=\"float: left;position: relative;\">";
-        htmlContent += "<tr><td width=\"170px\" style=\"max-width: unset;min-width: 170px;border-style: none none none none;\"></td>\n" +
-                "<td class=\"notfirst\"></td>\n" +
-                "<td style=\"border-style: solid none none none; border-width: 2px;border-color: red;text-align: right\" colspan=\"" + endTime +
-                "\"><b>Time</b></td>\n</tr>\n" +
-                "<tr><th></th><th class=\"notfirst\"></th></tr>\n" +
-                "<div class = \"clear\"></div>";
-        int count = 0;
-        for (String i : map.keySet()) {
-            pm.setNote("Writing content for " + i);
-            //updating ProgressMonitor progress
-            pm.setProgress(count);
-            if (pm.isCanceled()) {
-                htmlContent = "<h1>Process has been terminated by user.</h1>";
-                return htmlContent;
-            }
-            System.out.println("Writing content for " + i);
-            count ++;
-            int rowLength = 0;
-            Vector<String> listScale = new Vector<String>();
-            Vector<String> listScaleTime = new Vector<String>();
-            listScale.add("0");
-            listScaleTime.add("0");
-            htmlContent += "<tr><td width=\"170px\" style=\"max-width: unset;min-width: 170px;background-color: aqua;\">" + i + "</td>\n<td class=\"notfirst\"></td>\n<td class=\"notlast\"></td>\n";
-            for (int j = 0; j < map.get(i).size(); j++) {
-
-                if (j == 0 && Integer.valueOf(map.get(i).get(j).startTime) != 0) {
-                    if(Integer.valueOf(map.get(i).get(j).startTime) > BIG_IDLE) {
-                        htmlContent += "<td title=\"idle time" + "\" class = \"not\" colspan=\"10\"> <-IDLE " + map.get(i).get(j).startTime + "-> </td>\n";
-                        listScale.add("10");
-                        rowLength += 10;
-                    } else {
-                        htmlContent += "<td title=\"idle time" + "\" class = \"not\" colspan=\"" + map.get(i).get(j).startTime + "\"></td>\n";
-                        listScale.add(map.get(i).get(j).startTime);
-                        rowLength += Integer.valueOf(map.get(i).get(j).startTime);
-                    }
-
-                    if (Integer.valueOf(map.get(i).get(j).startTime) > Integer.valueOf(listScaleTime.lastElement())) {
-                        listScaleTime.add(map.get(i).get(j).startTime);
-                    }
-                    if (Integer.valueOf(map.get(i).get(j).endTime) > Integer.valueOf(listScaleTime.lastElement())) {
-                        listScaleTime.add(map.get(i).get(j).endTime);
-                    }
-                } else if ((j != 0 && (Integer.valueOf(map.get(i).get(j).startTime) > Integer.valueOf(map.get(i).get(j - 1).endTime)))) {
-                    int sub = Integer.valueOf(map.get(i).get(j).startTime) - Integer.valueOf(map.get(i).get(j - 1).endTime);
-                    if (sub > BIG_IDLE) {
-                        htmlContent += "<td title=\"idle time" + "\" class = \"not\" colspan=\"10\"> <-IDLE " + String.valueOf(sub) + "-> </td>\n";
-                        listScale.add("10");
-                        rowLength += 10;
-                    } else if (sub > 0) {
-                        htmlContent += "<td title=\"idle time" + "\" class = \"not\" colspan=\"" + String.valueOf(sub) + "\"></td>\n";
-                        listScale.add(String.valueOf(sub));
-                        rowLength += sub;
-                    }
-
-                }
-                int sub1 = Integer.valueOf(map.get(i).get(j).endTime) - Integer.valueOf(map.get(i).get(j).startTime);
-                if (sub1 > BIG_IDLE) {
-                    htmlContent += "<td title=\"" + map.get(i).get(j).command + "\" class = \"" + (map.get(i).get(j).command.contains("Idle") ? "not" : taskColors.get(map.get(i).get(j).taskName)) + "\" colspan=\"10\">" + map.get(i).get(j).command.substring(0, 1) + "</td>\n";
-                    listScale.add("10");
-                    rowLength += 10;
-                } else if (sub1 > 0) {
-                    htmlContent += "<td title=\"" + map.get(i).get(j).command + "\" class = \"" + (map.get(i).get(j).command.contains("Idle") ? "not" : taskColors.get(map.get(i).get(j).taskName)) + "\" colspan=\"" + String.valueOf(sub1) + "\">" + map.get(i).get(j).command.substring(0, 1) + "</td>\n";
-                    listScale.add(String.valueOf(sub1));
-                    rowLength += sub1;
-                }
-
-                if (Integer.valueOf(map.get(i).get(j).startTime) > Integer.valueOf(listScaleTime.lastElement())) {
-                    listScaleTime.add(map.get(i).get(j).startTime);
-                }
-                if (Integer.valueOf(map.get(i).get(j).endTime) > Integer.valueOf(listScaleTime.lastElement())) {
-                    listScaleTime.add(map.get(i).get(j).endTime);
-                }
-            }
-            htmlContent += "</tr>\n<tr>";
-            for (int k = 0; k < rowLength + 3; k++) {
-                if( k == 1) {
-                    htmlContent += "<th class=\"notfirst\">";
-                } else {
-                    htmlContent += "<th></th>";
-                }
-            }
-            htmlContent += "</tr>\n<tr><td width=\"170px\" style=\"max-width: unset;min-width: 170px;border-style: none none none none;\"></td>\n" +
-                    "<td class=\"notfirst\"></td>\n<td class=\"notlast\"></td>";
-            for (int l = 0; l < listScale.size(); l++) {
-                if (l + 1 >= listScale.size()) {
-                    htmlContent += "<td title=\"" + listScaleTime.get(l) + "\" class = \"sc\" colspan=\"" + "5" + "\">" + listScaleTime.get(l) + "</td>\n";
-                } else {
-                    htmlContent += "<td title=\"" + listScaleTime.get(l) + "\" class = \"sc\" colspan=\"" + listScale.get(l + 1) + "\">" + listScaleTime.get(l) + "</td>\n";
-                }
-            }
-            if( count >= map.size()){
-                htmlContent += "</tr>\n<tr><th>HW</th><th class=\"notfirst\"></th></tr>\n<div class = \"clear\"></div>\n";
-            } else {
-                htmlContent += "</tr>\n<tr><th></th><th class=\"notfirst\"></th></tr>\n<div class = \"clear\"></div>\n";
-            }
 
+        return tmap.getBusIDs();
+    }
 
+    public String[] makeMemIDs() {
+        if (tmap == null) {
+            return null;
         }
-        htmlContent += "</table>\n<table>\n<tr><td width=\"170px\" style=\"max-width: unset;min-width: 170px;border-style: none none none none;\"></td>\n" +
-                "<td class=\"notlast\"></td>\n";
-        for (String colors : taskColors.keySet()) {
-            htmlContent += "<td  class = \"" + taskColors.get(colors) + "\" style=\"max-width: unset;min-width: 170px;\">" + colors + "</td>";
-            htmlContent += "<td class=\"space\"></td>";
+
+        return tmap.getMemIDs();
+    }
+
+    public String[] makeTasksIDs() {
+        if (tmap == null) {
+            return null;
         }
 
-        htmlContent += "</tr>\n</table>\n</body>\n" + "</html>";
-//        System.out.println(htmlContent);
-        pm.setNote("Task finished");
-        pm.close();
-        return htmlContent;
+        return tmap.getTasksIDs();
     }
 
-    private void initActions() {
-        actions = new InteractiveSimulationActions[InteractiveSimulationActions.NB_ACTION];
-        for (int i = 0; i < InteractiveSimulationActions.NB_ACTION; i++) {
-            actions[i] = new InteractiveSimulationActions(i);
-            actions[i].addActionListener(this);
+    public String[] makeChanIDs() {
+        if (tmap == null) {
+            return null;
         }
+
+        return tmap.getChanIDs();
     }
 
+
     public void close() {
+        try
+        {
+            Files.deleteIfExists(Paths.get(filePath));
+        }
+        catch(NoSuchFileException e)
+        {
+            System.out.println("No such file/directory exists");
+        }
+        catch(DirectoryNotEmptyException e)
+        {
+            System.out.println("Directory is not empty.");
+        }
+        catch(IOException e)
+        {
+            System.out.println("Invalid permissions.");
+        }
+
+        System.out.println("Deletion successful.");
         dispose();
         setVisible(false);
     }
@@ -415,6 +279,7 @@ public class JFrameTMLSimulationPanelTimeline extends JFrame implements ActionLi
         }
         try {
             FileOutputStream fos = new FileOutputStream(file);
+            htmlPaneContent = sdpanel.getText();
             fos.write(htmlPaneContent.getBytes());
             fos.close();
             JOptionPane.showMessageDialog(getContentPane(), "The capture was correctly performed and saved in " + file.getAbsolutePath(), "Screen capture ok", JOptionPane.INFORMATION_MESSAGE);
@@ -424,16 +289,21 @@ public class JFrameTMLSimulationPanelTimeline extends JFrame implements ActionLi
             return;
         }
     }
-    private void updateButtonState() {
-        if (indexTrans == 0)
-            buttonPrev.setEnabled(false);
-        else
-            buttonPrev.setEnabled(true);
-
-        if (indexTrans >= maxIndexTrans)
-            buttonNext.setEnabled(false);
-        else
-            buttonNext.setEnabled(true);
+    public void setParam(String param) {
+        paramMainCommand.setText(param);
+    }
+    public void setContentPaneEnable(boolean x) {
+        commandTab.setEnabled(x);
+    }
+    public void setPaneContent(String filePath) {
+        try {
+            File file = new File(filePath);
+            Document doc = sdpanel.getDocument();
+            doc.putProperty(Document.StreamDescriptionProperty, null);
+            sdpanel.setPage(file.toURI().toURL());
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
     }
     public void actionPerformed(ActionEvent evt) {
         String command = evt.getActionCommand();
@@ -443,37 +313,5 @@ public class JFrameTMLSimulationPanelTimeline extends JFrame implements ActionLi
         } else if (command.equals(actions[InteractiveSimulationActions.ACT_SAVE_TIMELINE_HTML].getActionCommand())) {
             saveHTML();
         }
-        else if (command.equals(actions[InteractiveSimulationActions.ACT_SHOW_NEXT_TRANS_TIMELINE].getActionCommand())) {
-            Thread t = new Thread(new Runnable() {
-                @Override
-                public void run() {
-                    buttonPrev.setEnabled(false);
-                    buttonNext.setEnabled(false);
-                    if (indexTrans < maxIndexTrans) {
-                        indexTrans ++;
-                        htmlPaneContent = generateHtmlContent(indexTrans);
-                        sdpanel.setText(htmlPaneContent);
-                    }
-                    updateButtonState();
-                }
-            });
-            t.start();
-        }
-        else if (command.equals(actions[InteractiveSimulationActions.ACT_SHOW_PREV_TRANS_TIMELINE].getActionCommand())) {
-            Thread t = new Thread(new Runnable() {
-                @Override
-                public void run() {
-                    buttonPrev.setEnabled(false);
-                    buttonNext.setEnabled(false);
-                    if (indexTrans > 0) {
-                        indexTrans --;
-                        htmlPaneContent = generateHtmlContent(indexTrans);
-                        sdpanel.setText(htmlPaneContent);
-                    }
-                    updateButtonState();
-                }
-            });
-            t.start();
-        }
     }
 }
diff --git a/ttool/src/test/java/tmltranslator/TimelineDiagramTest.java b/ttool/src/test/java/tmltranslator/TimelineDiagramTest.java
index b0a211d175be8dc9ed64f4c2db6ab8f0e217f0eb..eca1a7602ced50541ae3eca57e351a7ef8ebf386 100644
--- a/ttool/src/test/java/tmltranslator/TimelineDiagramTest.java
+++ b/ttool/src/test/java/tmltranslator/TimelineDiagramTest.java
@@ -157,99 +157,36 @@ public class TimelineDiagramTest extends AbstractUITest {
                 return;
             }
             System.out.println("SUCCESS: executing: " + "make -C " + SIM_DIR);
-            // Starts simulation
-            Runtime.getRuntime().exec("./" + SIM_DIR + "run.x" + " -server");
-            Thread.sleep(1000);
-            // Connects to the simulator, incase of using terminal: "./run.x -server" to start server and "nc localhost 3490" to connect to server
-            rc = new RemoteConnection("localhost");
+            // Run the simulator
+            String graphPath = SIM_DIR + "testgraph_" + s + ".html";
             try {
-                rc.connect();
-                isReady = true;
-            } catch (RemoteConnectionException rce) {
-                System.out.println("Could not connect to server.");
-            }
 
-            toServer(" 1 0", rc);
-            Thread.sleep(5);
-            toServer("22 100", rc);
-            Thread.sleep(5);
-            while (running) {
-                String demo = null;
-                try {
-                    demo = rc.readOneLine();
-                } catch (RemoteConnectionException e) {
-                    e.printStackTrace();
-                }
-                if (demo.contains("transnb nb=")) {
-                    running = false;
-                }
-                int index0 = demo.indexOf("<transinfo");
+                String[] params = new String[3];
 
-                if ((index0 > -1)) {
-                    analyzeServerAnswer(demo, index0);
-                } else {
-                    continue;
-                }
-            }
+                params[0] = "./" + SIM_DIR + "run.x";
+                params[1] = "-cmd";
+                params[2] = "1 6 100; 7 4 " + graphPath + " ApplicationSimple__Src,ApplicationSimple__T1,ApplicationSimple__T2";
+                proc = Runtime.getRuntime().exec(params);
+                //proc = Runtime.getRuntime().exec("./" + SIM_DIR + "run.x -explo -gname testgraph_" + s);
+                proc_in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
 
-            System.out.println("Transaction list size: " + trans.size());
+                monitorError(proc);
 
-            JFrameTMLSimulationPanelTimeline tmlSimPanelTimeline = new JFrameTMLSimulationPanelTimeline(new Frame(), mainGUI, trans,
-                    "Show Trace - Timeline");
-//            System.out.println(tmlSimPanelTimeline.generateHtmlContent(0));
+                while ((str = proc_in.readLine()) != null) {
+                    // TraceManager.addDev( "Sending " + str + " from " + port + " to client..." );
+                    System.out.println("executing: " + str);
+                }
+            } catch (Exception e) {
+                // Probably make is not installed
+                System.out.println("FAILED: executing simulation");
+                return;
+            }
             File file = new File(EXPECTED_FILE_GENERATED_TIMELINE);
             String content = FileUtils.readFileToString(file, StandardCharsets.UTF_8);
-            assertTrue(content.equals(tmlSimPanelTimeline.generateHtmlContent(0)));
-
-        }
-    }
-    private synchronized void toServer(String s, RemoteConnection rc) throws RemoteConnectionException {
-        while(!isReady) {
-            TraceManager.addDev("Server not ready");
-            try {
-                rc.send("13");
-                wait(250);
-            } catch (InterruptedException ie) {
-
-            }
-        }
-        rc.send(s);
-    }
-
-    private void  analyzeServerAnswer(String s, int index0) {
-        String val = s.substring(index0+10).trim();
-        Pattern p = Pattern.compile("\"([^\"]*)\"");
-        Matcher m = p.matcher(val);
-        ArrayList<String> splited = new ArrayList<>();
-        while (m.find()) {
-            splited.add(m.group(1));
-        }
-        writeTransValue(splited);
-    }
+            File file1 = new File(graphPath);
+            String content1 = FileUtils.readFileToString(file1, StandardCharsets.UTF_8);
+            assertTrue(content.equals(content1));
 
-    private void writeTransValue(ArrayList<String> val) {
-        if(trans == null) trans = new Vector<SimulationTransaction>();
-        SimulationTransaction st = new SimulationTransaction();
-        st.uniqueID = Long.valueOf(val.get(0));
-        st.nodeType = val.get(1);
-        st.deviceName = val.get(2);
-        st.coreNumber = val.get(3);
-        int index = val.get(4).indexOf(": ");
-        if (index == -1){
-            st.taskName = "Unknown";
-            st.command = val.get(4);
-        } else {
-            st.taskName = val.get(4).substring(0, index).trim();
-            st.command = val.get(4).substring(index+1, val.get(4).length()).trim();
         }
-        st.startTime = val.get(5);
-        st.endTime = val.get(6);
-        st.length = val.get(7);
-        st.virtualLength = val.get(8);
-        st.id = val.get(9);
-        st.runnableTime = val.get(10);
-        st.channelName = (val.size() > 11) ? val.get(11) : "Unknown";
-
-        trans.add(st);
     }
 }
diff --git a/ttool/src/test/resources/tmltranslator/expected/expected_get_generated_timeline.txt b/ttool/src/test/resources/tmltranslator/expected/expected_get_generated_timeline.txt
index 86a041f7ca1feaa584452a465af8d6158885449e..e86804c16769ab855bc43369acc326706f72f81c 100644
--- a/ttool/src/test/resources/tmltranslator/expected/expected_get_generated_timeline.txt
+++ b/ttool/src/test/resources/tmltranslator/expected/expected_get_generated_timeline.txt
@@ -1,221 +1,139 @@
-<!DOCTYPE html>
-<html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
 <style>
 table{
- 	border-collapse: collapse;
- 	empty-cells: show;
- 	margin: 0.4cm;
+     border-collapse: collapse;
+     empty-cells: show;
+     margin: 0.4cm;
  }
  td{
- 	padding: 10px 5px;
- 	border: 1px solid black;
- 	max-width: 5px;
+     padding: 10px 5px;
+     border: 1px solid black;
+     max-width: 5px;
  }
  th{
- 	padding: 5px;
+     padding: 5px;
  }
  .sc{
- 	border-style: none;
- 	padding: 0px;
- 	font-size: small;
+     border-style: none;
+     padding: 0px;
+     font-size: small;
      transform: rotate(45deg);
      transform-origin: left top;
  }
  .sc1{
- 	border-style: none;
- 	padding: 0px;
- 	font-size: small;
- 	color: red;
+     border-style: none;
+     padding: 0px;
+     font-size: small;
+     color: red;
      transform: rotate(45deg);
      transform-origin: left top;
  }
  h2 {
- 	border-bottom: 1px solid #666;
+     border-bottom: 1px solid #666;
  }
  h2 span {
- 	position: relative;
- 	left: -0.3em;
- 	bottom: -0.6em;
- 	padding: 1px 0.5em;
- 	border-style: solid;
- 	border-width: 1px 1px 1px 0.8em;
- 	border-color: #666 #666 #666 #008;
- 	background-color: #ddd;
+     position: relative;
+     left: -0.3em;
+     bottom: -0.6em;
+     padding: 1px 0.5em;
+     border-style: solid;
+     border-width: 1px 1px 1px 0.8em;
+     border-color: #666 #666 #666 #008;
+     background-color: #ddd;
  }
  .space{border-style: none;}
  .not{background-color: white; text-align: center}
-.notfirst{
- 	background-color: white;
- 	border-width: 2px;
- 	border-color: red;
- 	border-style: none solid none none;
+ .notfirst{
+     background-color: white;
+     border-width: 2px;
+     border-color: red;
+     border-style: none solid none none;
  }
  .notmid {
- 	background-color: white;
- 	text-align: right;
- 	border-style: solid none none none;
+     background-color: white;
+     text-align: right;
+     border-style: solid none none none;
  }
  .notlast {
- 	background-color: white;
- 	width: 5px;
- 	border-style: none none none none;
+     background-color: white;
+     width: 5px;
+     border-style: none none none none;
  }
  .t0{background-color: yellow;}
- 
  .t1{background-color: purple;}
- 
  .t2{background-color: red;}
- 
  .t3{background-color: silver;}
- 
  .t4{background-color: teal;}
- 
  .t5{background-color: aqua;}
- 
  .t6{background-color: olive;}
- 
  .t7{background-color: navy;}
-
  .t8{background-color: maroon;}
- 
  .t9{background-color: lime;}
- 
  .t10{background-color: green;}
- 
  .t11{background-color: gray;}
-
  .t12{background-color: fuchsia;}
- 
  .t13{background-color: blue;}
- 
  .t14{background-color: LightGoldenRodYellow;}
- 
  .wrapper {
- 	width: 256px;
- 	height: 256px;
+     width: 256px;
+     height: 256px;
  }
- 
  .clear {
- 	clear:both
- }
-</style>
+     clear:both
+ }</style>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>Scheduling</title>
 </head>
 <body>
 <table style="float: left;position: relative;"><tr><td width="170px" style="max-width: unset;min-width: 170px;border-style: none none none none;"></td>
 <td class="notfirst"></td>
-<td style="border-style: solid none none none; border-width: 2px;border-color: red;text-align: right" colspan="84"><b>Time</b></td>
-</tr>
-<tr><th></th><th class="notfirst"></th></tr>
-<div class = "clear"></div><tr><td width="170px" style="max-width: unset;min-width: 170px;background-color: aqua;">Bus0_0</td>
-<td class="notfirst"></td>
-<td class="notlast"></td>
-<td title="idle time" class = "not" colspan="5"></td>
-<td title="Write 20,Application__chToT1" class = "t0" colspan="5">W</td>
-<td title="idle time" class = "not" colspan="30"></td>
-<td title="Write 20,Application__chToT2" class = "t1" colspan="2">W</td>
-<td title="idle time" class = "not" colspan="8"></td>
-<td title="Write 20,Application__chToT2" class = "t1" colspan="2">W</td>
-<td title="idle time" class = "not" colspan="4"></td>
-<td title="Write 20,Application__chToT2" class = "t1" colspan="1">W</td>
-</tr>
-<tr><th></th><th class="notfirst"><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th></tr>
-<tr><td width="170px" style="max-width: unset;min-width: 170px;border-style: none none none none;"></td>
-<td class="notfirst"></td>
-<td class="notlast"></td><td title="0" class = "sc" colspan="5">0</td>
-<td title="5" class = "sc" colspan="5">5</td>
-<td title="10" class = "sc" colspan="30">10</td>
-<td title="40" class = "sc" colspan="2">40</td>
-<td title="42" class = "sc" colspan="8">42</td>
-<td title="50" class = "sc" colspan="2">50</td>
-<td title="52" class = "sc" colspan="4">52</td>
-<td title="56" class = "sc" colspan="1">56</td>
-<td title="57" class = "sc" colspan="5">57</td>
+<td style="border-style: solid none none none; border-width: 2px;border-color: red;text-align: right"colspan="1000"><b>Time</b></td>
 </tr>
 <tr><th></th><th class="notfirst"></th></tr>
 <div class = "clear"></div>
-<tr><td width="170px" style="max-width: unset;min-width: 170px;background-color: aqua;">SRC2_2_core_0</td>
+<tr><td width="170px" style="max-width: unset;min-width: 170px;background-color: aqua;">FPGA1_1_core_0</td>
 <td class="notfirst"></td>
 <td class="notlast"></td>
-<td title="idle time" class = "not" colspan="4"></td>
-<td title="Wait Application__startEvt__Application__startEvt params:" class = "t0" colspan="1">W</td>
-<td title="idle time" class = "not" colspan="5"></td>
-<td title="Read 20,Application__chToT1" class = "t1" colspan="20">R</td>
-<td title="idle time" class = "not" colspan="10"></td>
-<td title="Write 20,Application__chToT2" class = "t1" colspan="2">W</td>
-<td title="idle time" class = "not" colspan="8"></td>
-<td title="Write 20,Application__chToT2" class = "t1" colspan="2">W</td>
-<td title="idle time" class = "not" colspan="4"></td>
-<td title="Read 20,Application__chToT2" class = "t2" colspan="4">R</td>
-<td title="idle time" class = "not" colspan="4"></td>
-<td title="Execi 20" class = "t2" colspan="20">E</td>
+<td title="idle time" class="not"></td>
+<td title="ApplicationSimple__T1: Wait ApplicationSimple__evtToT1__ApplicationSimple__evtToT1 params: t:1 l:1 (vl:1) params:(100(size)) Ch: ApplicationSimple__evtToT1__ApplicationSimple__evtToT1" class="t0"></td>
+<td title="idle time" class="not" colspan="4"></td>
+<td title="ApplicationSimple__T1: Read 400,ApplicationSimple__chToT1 t:6 l:400 (vl:400) params: Ch: ApplicationSimple__chToT1" class="t0" colspan="10"> R</td>
 </tr>
-<tr><th></th><th class="notfirst"><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th></tr>
+<tr><th></th><th class="notfirst"><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th></tr>
 <tr><td width="170px" style="max-width: unset;min-width: 170px;border-style: none none none none;"></td>
 <td class="notfirst"></td>
-<td class="notlast"></td><td title="0" class = "sc" colspan="4">0</td>
-<td title="4" class = "sc" colspan="1">4</td>
-<td title="5" class = "sc" colspan="5">5</td>
-<td title="10" class = "sc" colspan="20">10</td>
-<td title="30" class = "sc" colspan="10">30</td>
-<td title="40" class = "sc" colspan="2">40</td>
-<td title="42" class = "sc" colspan="8">42</td>
-<td title="50" class = "sc" colspan="2">50</td>
-<td title="52" class = "sc" colspan="4">52</td>
-<td title="56" class = "sc" colspan="4">56</td>
-<td title="60" class = "sc" colspan="4">60</td>
-<td title="64" class = "sc" colspan="20">64</td>
-<td title="84" class = "sc" colspan="5">84</td>
-</tr>
-<tr><th></th><th class="notfirst"></th></tr>
+<td class="notlast"></td>
+<td title="0" class="sc"></td><td title="1" class="sc"></td><td title="2" class="sc" colspan="4">2</td><td title="6" class="sc" colspan="10">6</td><td title="406" class="sc" colspan="5">406</td></tr>
+
 <div class = "clear"></div>
-<tr><td width="170px" style="max-width: unset;min-width: 170px;background-color: aqua;">SRC2_2_core_1</td>
+<tr><td width="170px" style="max-width: unset;min-width: 170px;background-color: aqua;">Src_1_core_0</td>
 <td class="notfirst"></td>
 <td class="notlast"></td>
-<td title="idle time" class = "not" colspan="5"></td>
-<td title="Write 20,Application__chToT1" class = "t0" colspan="5">W</td>
-<td title="idle time" class = "not" colspan="20"></td>
-<td title="Execi 10" class = "t1" colspan="10">E</td>
-<td title="idle time" class = "not" colspan="2"></td>
-<td title="Read 20,Application__chToT2" class = "t2" colspan="8">R</td>
-<td title="idle time" class = "not" colspan="2"></td>
-<td title="Read 20,Application__chToT2" class = "t2" colspan="4">R</td>
-<td title="Write 20,Application__chToT2" class = "t1" colspan="1">W</td>
-<td title="idle time" class = "not" colspan="3"></td>
-<td title="Read 20,Application__chToT2" class = "t2" colspan="4">R</td>
+<td title="ApplicationSimple__Src: Send ApplicationSimple__evtToT1__ApplicationSimple__evtToT1(evtFB) len:2 content:0 params: t:0 l:1 (vl:1) params:(100(size)) Ch: ApplicationSimple__evtToT1__ApplicationSimple__evtToT1" class="t1"></td>
+<td title="ApplicationSimple__Src: Write 400,ApplicationSimple__chToT1 t:1 l:5 (vl:400) params: Ch: ApplicationSimple__chToT1" class="t1" colspan="5"> W</td>
 </tr>
-<tr><th></th><th class="notfirst"><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th></th></tr>
+<tr><th></th><th class="notfirst"><th></th><th></th><th></th><th></th><th></th><th></th></tr>
 <tr><td width="170px" style="max-width: unset;min-width: 170px;border-style: none none none none;"></td>
 <td class="notfirst"></td>
-<td class="notlast"></td><td title="0" class = "sc" colspan="5">0</td>
-<td title="5" class = "sc" colspan="5">5</td>
-<td title="10" class = "sc" colspan="20">10</td>
-<td title="30" class = "sc" colspan="10">30</td>
-<td title="40" class = "sc" colspan="2">40</td>
-<td title="42" class = "sc" colspan="8">42</td>
-<td title="50" class = "sc" colspan="2">50</td>
-<td title="52" class = "sc" colspan="4">52</td>
-<td title="56" class = "sc" colspan="1">56</td>
-<td title="57" class = "sc" colspan="3">57</td>
-<td title="60" class = "sc" colspan="4">60</td>
-<td title="64" class = "sc" colspan="5">64</td>
-</tr>
-<tr><th></th><th class="notfirst"></th></tr>
+<td class="notlast"></td>
+<td title="0" class="sc"></td><td title="1" class="sc" colspan="5">1</td><td title="6" class="sc" colspan="5">6</td></tr>
+
 <div class = "clear"></div>
-<tr><td width="170px" style="max-width: unset;min-width: 170px;background-color: aqua;">SRC1_1_core_0</td>
+<tr><td width="170px" style="max-width: unset;min-width: 170px;background-color: aqua;">Bus0_0</td>
 <td class="notfirst"></td>
 <td class="notlast"></td>
-<td title="idle time" class = "not" colspan="2"></td>
-<td title="IdleDL in Application__Start len:1 progress:0 ID:36" class = "not" colspan="1">I</td>
-<td title="Send Application__startEvt__Application__startEvt(evtFB) len:8 content:0 params:" class = "t3" colspan="1">S</td>
+<td title="idle time" class="not"></td>
+<td title="ApplicationSimple__Src: Write 400,ApplicationSimple__chToT1 t:1 l:5 (vl:400) params: Ch: ApplicationSimple__chToT1" class="t1" colspan="5"> W</td>
 </tr>
-<tr><th></th><th class="notfirst"><th></th><th></th><th></th><th></th><th></th></tr>
+<tr><th></th><th class="notfirst"><th></th><th></th><th></th><th></th><th></th><th></th></tr>
 <tr><td width="170px" style="max-width: unset;min-width: 170px;border-style: none none none none;"></td>
 <td class="notfirst"></td>
-<td class="notlast"></td><td title="0" class = "sc" colspan="2">0</td>
-<td title="2" class = "sc" colspan="1">2</td>
-<td title="3" class = "sc" colspan="1">3</td>
-<td title="4" class = "sc" colspan="5">4</td>
+<td class="notlast"></td>
+<td title="0" class="sc"></td><td title="1" class="sc" colspan="5">1</td><td title="6" class="sc" colspan="5">6</td></tr>
+<div class = "clear"></div>
 </tr>
 <tr><th>HW</th><th class="notfirst"></th></tr>
 <div class = "clear"></div>
@@ -223,7 +141,8 @@ table{
 <table>
 <tr><td width="170px" style="max-width: unset;min-width: 170px;border-style: none none none none;"></td>
 <td class="notlast"></td>
-<td  class = "t3" style="max-width: unset;min-width: 170px;">Application__Start</td><td class="space"></td><td  class = "t0" style="max-width: unset;min-width: 170px;">Application__Src</td><td class="space"></td><td  class = "t1" style="max-width: unset;min-width: 170px;">Application__T1</td><td class="space"></td><td  class = "t2" style="max-width: unset;min-width: 170px;">Application__T2</td><td class="space"></td></tr>
+<td class="notlast"></td>
+<td class="t0"></td><td style="max-width: unset;min-width: 170px;">ApplicationSimple__T1</td><td class="space"></td><td class="t1"></td><td style="max-width: unset;min-width: 170px;">ApplicationSimple__Src</td><td class="space"></td></tr>
 </table>
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/ttool/src/test/resources/tmltranslator/simulator/timelineDiagram.xml b/ttool/src/test/resources/tmltranslator/simulator/timelineDiagram.xml
index 121355b93ec02f4a535f3499433b6123e9231540..c7b850be49e07c1b61ce11f2a715c6a6fd5ef124 100644
--- a/ttool/src/test/resources/tmltranslator/simulator/timelineDiagram.xml
+++ b/ttool/src/test/resources/tmltranslator/simulator/timelineDiagram.xml
@@ -1,129 +1,124 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<TURTLEGMODELING version="1.0beta" ANIMATE_INTERACTIVE_SIMULATION="false" ACTIVATE_PENALTIES="false" UPDATE_INFORMATION_DIPLO_SIM="false" ANIMATE_WITH_INFO_DIPLO_SIM="false" OPEN_DIAG_DIPLO_SIM="false" LAST_SELECTED_MAIN_TAB="1" LAST_SELECTED_SUB_TAB="0">
+<TURTLEGMODELING version="1.0beta" ANIMATE_INTERACTIVE_SIMULATION="true" ACTIVATE_PENALTIES="false" UPDATE_INFORMATION_DIPLO_SIM="false" ANIMATE_WITH_INFO_DIPLO_SIM="true" OPEN_DIAG_DIPLO_SIM="false" LAST_SELECTED_MAIN_TAB="1" LAST_SELECTED_SUB_TAB="0">
 
-<Modeling type="TML Component Design" nameTab="Application" tabs="TML Component Task Diagram$Start$Src$T1$T2" >
+<Modeling type="TML Component Design" nameTab="ApplicationSimple" tabs="TML Component Task Diagram$Src$T1$T2" >
 <TMLComponentTaskDiagramPanel name="TML Component Task Diagram" minX="10" maxX="2500" minY="10" maxY="1500" channels="true" events="true" requests="true" zoom="1.0" >
-<CONNECTOR type="126" id="1" >
-<cdparam x="210" y="483" />
+<CONNECTOR type="126" id="566" >
+<cdparam x="335" y="300" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="210" y="483" id="4" />
-<P2  x="209" y="312" id="34" />
+<P1  x="335" y="300" id="572" />
+<P2  x="414" y="300" id="585" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="126" id="2" >
+<CONNECTOR type="126" id="567" >
 <cdparam x="335" y="236" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="322" y="224" id="32" />
-<P2  x="427" y="223" id="47" />
+<P1  x="335" y="237" id="570" />
+<P2  x="414" y="236" id="583" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="126" id="3" >
+<CONNECTOR type="126" id="568" >
+<cdparam x="590" y="305" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="590" y="305" id="589" />
+<P2  x="670" y="302" id="602" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="569" >
 <cdparam x="590" y="241" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="577" y="228" id="45" />
-<P2  x="683" y="225" id="58" />
+<P1  x="590" y="241" id="587" />
+<P2  x="670" y="238" id="600" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<COMPONENT type="1202" id="14" >
-<cdparam x="124" y="496" />
+<COMPONENT type="1202" id="582" >
+<cdparam x="122" y="175" />
 <sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="Primitive component" value="Start" />
-<TGConnectingPoint num="0" id="6" />
-<TGConnectingPoint num="1" id="7" />
-<TGConnectingPoint num="2" id="8" />
-<TGConnectingPoint num="3" id="9" />
-<TGConnectingPoint num="4" id="10" />
-<TGConnectingPoint num="5" id="11" />
-<TGConnectingPoint num="6" id="12" />
-<TGConnectingPoint num="7" id="13" />
+<infoparam name="Primitive component" value="Src" />
+<TGConnectingPoint num="0" id="574" />
+<TGConnectingPoint num="1" id="575" />
+<TGConnectingPoint num="2" id="576" />
+<TGConnectingPoint num="3" id="577" />
+<TGConnectingPoint num="4" id="578" />
+<TGConnectingPoint num="5" id="579" />
+<TGConnectingPoint num="6" id="580" />
+<TGConnectingPoint num="7" id="581" />
 <extraparam>
-<Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="ns" Operation="" />
-<Attribute access="2" id="x" value="" type="0" typeOther="" />
+<Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="" Operation="" />
+<Attribute access="2" id="size" value="100" type="0" typeOther="" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="1203" id="5" >
-<father id="14" num="0" />
-<cdparam x="197" y="483" />
+<SUBCOMPONENT type="1203" id="571" >
+<father id="582" num="0" />
+<cdparam x="309" y="224" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
-<infoparam name="Primitive port" value="Event startEvt" />
-<TGConnectingPoint num="0" id="4" />
+<infoparam name="Primitive port" value="Channel chToT1" />
+<TGConnectingPoint num="0" id="570" />
 <extraparam>
-<Prop commName="startEvt" commType="1" origin="true" finite="true" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="0" />
-<Type type="1" typeOther="" />
+<Prop commName="chToT1" commType="0" origin="true" finite="false" blocking="true" maxSamples="500" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-
-<COMPONENT type="308" id="31" >
-<cdparam x="116" y="69" />
-<sizeparam width="284" height="45" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="573" >
+<father id="582" num="1" />
+<cdparam x="309" y="287" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="Pragma" value="
-PERIOD 10ms
-" />
-<TGConnectingPoint num="0" id="15" />
-<TGConnectingPoint num="1" id="16" />
-<TGConnectingPoint num="2" id="17" />
-<TGConnectingPoint num="3" id="18" />
-<TGConnectingPoint num="4" id="19" />
-<TGConnectingPoint num="5" id="20" />
-<TGConnectingPoint num="6" id="21" />
-<TGConnectingPoint num="7" id="22" />
-<TGConnectingPoint num="8" id="23" />
-<TGConnectingPoint num="9" id="24" />
-<TGConnectingPoint num="10" id="25" />
-<TGConnectingPoint num="11" id="26" />
-<TGConnectingPoint num="12" id="27" />
-<TGConnectingPoint num="13" id="28" />
-<TGConnectingPoint num="14" id="29" />
-<TGConnectingPoint num="15" id="30" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
+<infoparam name="Primitive port" value="Event evtToT1" />
+<TGConnectingPoint num="0" id="572" />
 <extraparam>
-<Line value="" />
-<Line value="PERIOD 10ms" />
+<Prop commName="evtToT1" commType="1" origin="true" finite="true" blocking="true" maxSamples="2" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="0" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
 </extraparam>
-</COMPONENT>
+</SUBCOMPONENT>
 
-<COMPONENT type="1202" id="44" >
-<cdparam x="122" y="175" />
-<sizeparam width="200" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1202" id="599" >
+<cdparam x="427" y="177" />
+<sizeparam width="150" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="Primitive component" value="Src" />
-<TGConnectingPoint num="0" id="36" />
-<TGConnectingPoint num="1" id="37" />
-<TGConnectingPoint num="2" id="38" />
-<TGConnectingPoint num="3" id="39" />
-<TGConnectingPoint num="4" id="40" />
-<TGConnectingPoint num="5" id="41" />
-<TGConnectingPoint num="6" id="42" />
-<TGConnectingPoint num="7" id="43" />
+<infoparam name="Primitive component" value="T1" />
+<TGConnectingPoint num="0" id="591" />
+<TGConnectingPoint num="1" id="592" />
+<TGConnectingPoint num="2" id="593" />
+<TGConnectingPoint num="3" id="594" />
+<TGConnectingPoint num="4" id="595" />
+<TGConnectingPoint num="5" id="596" />
+<TGConnectingPoint num="6" id="597" />
+<TGConnectingPoint num="7" id="598" />
 <extraparam>
-<Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="ns" Operation="" />
-<Attribute access="2" id="x" value="" type="0" typeOther="" />
+<Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="" Operation="" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="1203" id="33" >
-<father id="44" num="0" />
-<cdparam x="309" y="224" />
+<SUBCOMPONENT type="1203" id="584" >
+<father id="599" num="0" />
+<cdparam x="414" y="223" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
+<cdrectangleparam minX="-13" maxX="137" minY="-13" maxY="137" />
 <infoparam name="Primitive port" value="Channel chToT1" />
-<TGConnectingPoint num="0" id="32" />
+<TGConnectingPoint num="0" id="583" />
 <extraparam>
-<Prop commName="chToT1" commType="0" origin="true" finite="false" blocking="true" maxSamples="500" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="0" />
+<Prop commName="chToT1" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -131,16 +126,16 @@ PERIOD 10ms
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="35" >
-<father id="44" num="1" />
-<cdparam x="196" y="312" />
+<SUBCOMPONENT type="1203" id="586" >
+<father id="599" num="1" />
+<cdparam x="414" y="287" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="137" />
-<infoparam name="Primitive port" value="Event startEvt" />
-<TGConnectingPoint num="0" id="34" />
+<cdrectangleparam minX="-13" maxX="137" minY="-13" maxY="137" />
+<infoparam name="Primitive port" value="Event evtToT1" />
+<TGConnectingPoint num="0" id="585" />
 <extraparam>
-<Prop commName="startEvt" commType="1" origin="false" finite="true" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="0" />
+<Prop commName="evtToT1" commType="1" origin="false" finite="true" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -148,33 +143,14 @@ PERIOD 10ms
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-
-<COMPONENT type="1202" id="57" >
-<cdparam x="427" y="177" />
-<sizeparam width="150" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="Primitive component" value="T1" />
-<TGConnectingPoint num="0" id="49" />
-<TGConnectingPoint num="1" id="50" />
-<TGConnectingPoint num="2" id="51" />
-<TGConnectingPoint num="3" id="52" />
-<TGConnectingPoint num="4" id="53" />
-<TGConnectingPoint num="5" id="54" />
-<TGConnectingPoint num="6" id="55" />
-<TGConnectingPoint num="7" id="56" />
-<extraparam>
-<Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="" Operation="" />
-</extraparam>
-</COMPONENT>
-<SUBCOMPONENT type="1203" id="46" >
-<father id="57" num="0" />
+<SUBCOMPONENT type="1203" id="588" >
+<father id="599" num="2" />
 <cdparam x="564" y="228" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="137" minY="-13" maxY="137" />
 <infoparam name="Primitive port" value="Channel chToT2" />
-<TGConnectingPoint num="0" id="45" />
+<TGConnectingPoint num="0" id="587" />
 <extraparam>
 <Prop commName="chToT2" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="0" />
 <Type type="0" typeOther="" />
@@ -184,17 +160,17 @@ PERIOD 10ms
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="48" >
-<father id="57" num="1" />
-<cdparam x="414" y="223" />
+<SUBCOMPONENT type="1203" id="590" >
+<father id="599" num="3" />
+<cdparam x="564" y="292" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="137" minY="-13" maxY="137" />
-<infoparam name="Primitive port" value="Channel chToT1" />
-<TGConnectingPoint num="0" id="47" />
+<infoparam name="Primitive port" value="Event evtToT2" />
+<TGConnectingPoint num="0" id="589" />
 <extraparam>
-<Prop commName="chToT1" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="0" />
-<Type type="0" typeOther="" />
+<Prop commName="evtToT2" commType="1" origin="true" finite="true" blocking="true" maxSamples="2" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -202,32 +178,33 @@ PERIOD 10ms
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="1202" id="68" >
+<COMPONENT type="1202" id="612" >
 <cdparam x="683" y="179" />
-<sizeparam width="185" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="150" height="150" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="Primitive component" value="T2" />
-<TGConnectingPoint num="0" id="60" />
-<TGConnectingPoint num="1" id="61" />
-<TGConnectingPoint num="2" id="62" />
-<TGConnectingPoint num="3" id="63" />
-<TGConnectingPoint num="4" id="64" />
-<TGConnectingPoint num="5" id="65" />
-<TGConnectingPoint num="6" id="66" />
-<TGConnectingPoint num="7" id="67" />
+<TGConnectingPoint num="0" id="604" />
+<TGConnectingPoint num="1" id="605" />
+<TGConnectingPoint num="2" id="606" />
+<TGConnectingPoint num="3" id="607" />
+<TGConnectingPoint num="4" id="608" />
+<TGConnectingPoint num="5" id="609" />
+<TGConnectingPoint num="6" id="610" />
+<TGConnectingPoint num="7" id="611" />
 <extraparam>
 <Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="" Operation="" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="1203" id="59" >
-<father id="68" num="0" />
+<SUBCOMPONENT type="1203" id="601" >
+<father id="612" num="0" />
 <cdparam x="670" y="225" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="172" minY="-13" maxY="137" />
+<cdrectangleparam minX="-13" maxX="137" minY="-13" maxY="137" />
 <infoparam name="Primitive port" value="Channel chToT2" />
-<TGConnectingPoint num="0" id="58" />
+<TGConnectingPoint num="0" id="600" />
 <extraparam>
 <Prop commName="chToT2" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="0" />
 <Type type="0" typeOther="" />
@@ -237,343 +214,346 @@ PERIOD 10ms
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="603" >
+<father id="612" num="1" />
+<cdparam x="670" y="289" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="137" minY="-13" maxY="137" />
+<infoparam name="Primitive port" value="Event evtToT2" />
+<TGConnectingPoint num="0" id="602" />
+<extraparam>
+<Prop commName="evtToT2" commType="1" origin="false" finite="true" blocking="true" maxSamples="2" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="0" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
 
 
 </TMLComponentTaskDiagramPanel>
 
-<TMLActivityDiagramPanel name="Start" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
-<COMPONENT type="1026" id="72" >
-<cdparam x="427" y="99" />
-<sizeparam width="10" height="30" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<TMLActivityDiagramPanel name="Src" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<COMPONENT type="1008" id="615" >
+<cdparam x="286" y="192" />
+<sizeparam width="92" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="delay" value="null" />
-<TGConnectingPoint num="0" id="70" />
-<TGConnectingPoint num="1" id="71" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="69" >
-<father id="72" num="0" />
-<cdparam x="442" y="119" />
-<sizeparam width="36" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="10 ns" />
+<infoparam name="send event" value="evtToT1(size)" />
+<TGConnectingPoint num="0" id="613" />
+<TGConnectingPoint num="1" id="614" />
 <extraparam>
-<TimeDelay minDelay="10" maxDelay="nope" hasMaxDelay="false" isActiveDelay="false" unit="ns" />
+<Data eventName="evtToT1" nbOfParams="5" />
+<Param index="0" value="size" />
 </extraparam>
-</SUBCOMPONENT>
+</COMPONENT>
 
-<COMPONENT type="1001" id="74" >
-<cdparam x="420" y="243" />
+<COMPONENT type="1001" id="617" >
+<cdparam x="322" y="286" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="73" />
+<TGConnectingPoint num="0" id="616" />
 </COMPONENT>
 
-<COMPONENT type="1008" id="77" >
-<cdparam x="387" y="169" />
-<sizeparam width="95" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1006" id="620" >
+<cdparam x="288" y="245" />
+<sizeparam width="88" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="send event" value="startEvt(x)" />
-<TGConnectingPoint num="0" id="75" />
-<TGConnectingPoint num="1" id="76" />
+<infoparam name="write channel" value="chToT1(size)" />
+<TGConnectingPoint num="0" id="618" />
+<TGConnectingPoint num="1" id="619" />
 <extraparam>
-<Data eventName="startEvt" nbOfParams="5" />
-<Param index="0" value="x" />
+<Data channelName="chToT1" nbOfSamples="size" secPattern="" isAttacker="No" isEncForm="Yes" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="79" >
-<cdparam x="400" y="50" />
+<COMPONENT type="1000" id="622" >
+<cdparam x="325" y="145" />
 <sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="78" />
+<TGConnectingPoint num="0" id="621" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="80" >
-<cdparam x="432" y="134" />
+<CONNECTOR type="115" id="623" >
+<cdparam x="330" y="217" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="432" y="134" id="71" />
-<P2  x="434" y="164" id="75" />
+<P1  x="332" y="217" id="614" />
+<P2  x="332" y="240" id="618" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="81" >
-<cdparam x="439" y="161" />
+<CONNECTOR type="115" id="624" >
+<cdparam x="332" y="160" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="434" y="194" id="76" />
-<P2  x="430" y="238" id="73" />
+<P1  x="332" y="165" id="621" />
+<P2  x="332" y="187" id="613" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="82" >
-<cdparam x="407" y="70" />
+<CONNECTOR type="115" id="625" >
+<cdparam x="332" y="223" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="70" id="78" />
-<P2  x="432" y="94" id="70" />
+<P1  x="332" y="270" id="619" />
+<P2  x="332" y="281" id="616" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
-<TMLActivityDiagramPanel name="Src" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
-<COMPONENT type="1010" id="85" >
-<cdparam x="403" y="169" />
-<sizeparam width="99" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<enabled value="true" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="wait event" value="startEvt(x) " />
-<TGConnectingPoint num="0" id="83" />
-<TGConnectingPoint num="1" id="84" />
-<extraparam>
-<Data eventName="startEvt" nbOfParams="5" />
-<Param index="0" value="x" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1001" id="87" >
-<cdparam x="450" y="297" />
+<TMLActivityDiagramPanel name="T1" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
+<COMPONENT type="1001" id="627" >
+<cdparam x="412" y="368" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="86" />
+<TGConnectingPoint num="0" id="626" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="90" >
-<cdparam x="405" y="222" />
-<sizeparam width="101" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1006" id="630" >
+<cdparam x="378" y="323" />
+<sizeparam width="88" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="write channel" value="chToT1(5)" />
-<TGConnectingPoint num="0" id="88" />
-<TGConnectingPoint num="1" id="89" />
+<infoparam name="write channel" value="chToT2(size)" />
+<TGConnectingPoint num="0" id="628" />
+<TGConnectingPoint num="1" id="629" />
 <extraparam>
-<Data channelName="chToT1" nbOfSamples="5" secPattern="" isAttacker="No" isEncForm="Yes" />
+<Data channelName="chToT2" nbOfSamples="size" secPattern="" isAttacker="No" isEncForm="Yes" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="92" >
-<cdparam x="442" y="117" />
-<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="91" />
-</COMPONENT>
-
-<CONNECTOR type="115" id="93" >
-<cdparam x="452" y="194" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="452" y="194" id="84" />
-<P2  x="455" y="217" id="88" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="94" >
-<cdparam x="460" y="171" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="449" y="137" id="91" />
-<P2  x="452" y="164" id="83" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="95" >
-<cdparam x="460" y="234" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="455" y="247" id="89" />
-<P2  x="460" y="292" id="86" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-
-</TMLActivityDiagramPanel>
-
-<TMLActivityDiagramPanel name="T1" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
-<COMPONENT type="1006" id="98" >
-<cdparam x="372" y="303" />
-<sizeparam width="101" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="633" >
+<cdparam x="376" y="268" />
+<sizeparam width="92" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="write channel" value="chToT2(5)" />
-<TGConnectingPoint num="0" id="96" />
-<TGConnectingPoint num="1" id="97" />
+<infoparam name="send event" value="evtToT2(size)" />
+<TGConnectingPoint num="0" id="631" />
+<TGConnectingPoint num="1" id="632" />
 <extraparam>
-<Data channelName="chToT2" nbOfSamples="5" secPattern="" isAttacker="No" isEncForm="Yes" />
+<Data eventName="evtToT2" nbOfParams="5" />
+<Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="100" >
-<cdparam x="412" y="368" />
-<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="99" />
-</COMPONENT>
-
-<COMPONENT type="1013" id="104" >
+<COMPONENT type="1013" id="637" >
 <cdparam x="417" y="216" />
 <sizeparam width="10" height="30" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="102" />
-<TGConnectingPoint num="1" id="103" />
+<TGConnectingPoint num="0" id="635" />
+<TGConnectingPoint num="1" id="636" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="101" >
-<father id="104" num="0" />
+<SUBCOMPONENT type="-1" id="634" >
+<father id="637" num="0" />
 <cdparam x="432" y="236" />
-<sizeparam width="16" height="15" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="23" height="15" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="10" />
+<infoparam name="value of the delay" value="size" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1009" id="107" >
-<cdparam x="370" y="162" />
-<sizeparam width="105" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1009" id="640" >
+<cdparam x="376" y="162" />
+<sizeparam width="92" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="read channel" value="chToT1(size) " />
+<TGConnectingPoint num="0" id="638" />
+<TGConnectingPoint num="1" id="639" />
+<extraparam>
+<Data channelName="chToT1" nbOfSamples="size" secPattern="" isAttacker="No" isEncForm="Yes" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1010" id="643" >
+<cdparam x="374" y="116" />
+<sizeparam width="96" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="read channel" value="chToT1(5) " />
-<TGConnectingPoint num="0" id="105" />
-<TGConnectingPoint num="1" id="106" />
+<infoparam name="wait event" value="evtToT1(size) " />
+<TGConnectingPoint num="0" id="641" />
+<TGConnectingPoint num="1" id="642" />
 <extraparam>
-<Data channelName="chToT1" nbOfSamples="5" secPattern="" isAttacker="No" isEncForm="Yes" />
+<Data eventName="evtToT1" nbOfParams="5" />
+<Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="109" >
+<COMPONENT type="1000" id="645" >
 <cdparam x="416" y="76" />
 <sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="108" />
+<TGConnectingPoint num="0" id="644" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="110" >
-<cdparam x="432" y="325" />
+<CONNECTOR type="115" id="646" >
+<cdparam x="414" y="91" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="423" y="96" id="644" />
+<P2  x="422" y="111" id="641" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="647" >
+<cdparam x="422" y="141" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="422" y="328" id="97" />
-<P2  x="422" y="363" id="99" />
+<P1  x="422" y="141" id="642" />
+<P2  x="422" y="157" id="638" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="111" >
+<CONNECTOR type="115" id="648" >
+<cdparam x="432" y="199" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="422" y="187" id="639" />
+<P2  x="422" y="211" id="635" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="649" >
 <cdparam x="422" y="251" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="422" y="251" id="103" />
-<P2  x="422" y="298" id="96" />
+<P1  x="422" y="251" id="636" />
+<P2  x="422" y="263" id="631" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="112" >
-<cdparam x="423" y="91" />
+<CONNECTOR type="115" id="650" >
+<cdparam x="426" y="293" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="423" y="96" id="108" />
-<P2  x="422" y="157" id="105" />
+<P1  x="422" y="293" id="632" />
+<P2  x="422" y="318" id="628" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="113" >
-<cdparam x="432" y="199" />
+<CONNECTOR type="115" id="651" >
+<cdparam x="435" y="348" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="422" y="187" id="106" />
-<P2  x="422" y="211" id="102" />
+<P1  x="422" y="348" id="629" />
+<P2  x="422" y="363" id="626" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
 <TMLActivityDiagramPanel name="T2" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
-<COMPONENT type="1013" id="117" >
-<cdparam x="348" y="280" />
+<COMPONENT type="1001" id="653" >
+<cdparam x="412" y="443" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="652" />
+</COMPONENT>
+
+<COMPONENT type="1013" id="657" >
+<cdparam x="417" y="216" />
 <sizeparam width="10" height="30" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="115" />
-<TGConnectingPoint num="1" id="116" />
+<TGConnectingPoint num="0" id="655" />
+<TGConnectingPoint num="1" id="656" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="114" >
-<father id="117" num="0" />
-<cdparam x="363" y="300" />
-<sizeparam width="16" height="15" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="654" >
+<father id="657" num="0" />
+<cdparam x="432" y="236" />
+<sizeparam width="23" height="15" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="20" />
+<infoparam name="value of the delay" value="size" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1000" id="119" >
-<cdparam x="396" y="55" />
-<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1009" id="660" >
+<cdparam x="376" y="162" />
+<sizeparam width="92" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
+<enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="118" />
+<infoparam name="read channel" value="chToT2(size) " />
+<TGConnectingPoint num="0" id="658" />
+<TGConnectingPoint num="1" id="659" />
+<extraparam>
+<Data channelName="chToT2" nbOfSamples="size" secPattern="" isAttacker="No" isEncForm="Yes" />
+</extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="121" >
-<cdparam x="343" y="507" />
-<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1010" id="663" >
+<cdparam x="374" y="116" />
+<sizeparam width="96" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
+<enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="120" />
+<infoparam name="wait event" value="evtToT2(size) " />
+<TGConnectingPoint num="0" id="661" />
+<TGConnectingPoint num="1" id="662" />
+<extraparam>
+<Data eventName="evtToT2" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
 </COMPONENT>
 
-<COMPONENT type="1009" id="124" >
-<cdparam x="301" y="226" />
-<sizeparam width="105" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1000" id="665" >
+<cdparam x="416" y="76" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="read channel" value="chToT2(5) " />
-<TGConnectingPoint num="0" id="122" />
-<TGConnectingPoint num="1" id="123" />
-<extraparam>
-<Data channelName="chToT2" nbOfSamples="5" secPattern="" isAttacker="No" isEncForm="Yes" />
-</extraparam>
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="664" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="125" >
-<cdparam x="403" y="75" />
+<CONNECTOR type="115" id="666" >
+<cdparam x="422" y="251" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="422" y="251" id="656" />
+<P2  x="422" y="438" id="652" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="667" >
+<cdparam x="414" y="91" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="403" y="75" id="118" />
-<P2  x="353" y="221" id="122" />
+<P1  x="423" y="96" id="664" />
+<P2  x="422" y="111" id="661" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="126" >
-<cdparam x="353" y="315" />
+<CONNECTOR type="115" id="668" >
+<cdparam x="422" y="141" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="353" y="315" id="116" />
-<P2  x="353" y="502" id="120" />
+<P1  x="422" y="141" id="662" />
+<P2  x="422" y="157" id="658" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="127" >
-<cdparam x="363" y="263" />
+<CONNECTOR type="115" id="669" >
+<cdparam x="432" y="199" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="353" y="251" id="123" />
-<P2  x="353" y="275" id="115" />
+<P1  x="422" y="187" id="659" />
+<P2  x="422" y="211" id="655" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
@@ -586,256 +566,237 @@ PERIOD 10ms
 
 <Modeling type="TML Architecture" nameTab="ArchitectureSimple" >
 <TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="2500" minY="10" maxY="1500" attributes="0" masterClockFrequency="200" zoom="1.0" >
-<COMPONENT type="1105" id="152" >
+<COMPONENT type="1105" id="694" >
 <cdparam x="958" y="266" />
 <sizeparam width="200" height="200" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="Memory0" value="name" />
-<TGConnectingPoint num="0" id="128" />
-<TGConnectingPoint num="1" id="129" />
-<TGConnectingPoint num="2" id="130" />
-<TGConnectingPoint num="3" id="131" />
-<TGConnectingPoint num="4" id="132" />
-<TGConnectingPoint num="5" id="133" />
-<TGConnectingPoint num="6" id="134" />
-<TGConnectingPoint num="7" id="135" />
-<TGConnectingPoint num="8" id="136" />
-<TGConnectingPoint num="9" id="137" />
-<TGConnectingPoint num="10" id="138" />
-<TGConnectingPoint num="11" id="139" />
-<TGConnectingPoint num="12" id="140" />
-<TGConnectingPoint num="13" id="141" />
-<TGConnectingPoint num="14" id="142" />
-<TGConnectingPoint num="15" id="143" />
-<TGConnectingPoint num="16" id="144" />
-<TGConnectingPoint num="17" id="145" />
-<TGConnectingPoint num="18" id="146" />
-<TGConnectingPoint num="19" id="147" />
-<TGConnectingPoint num="20" id="148" />
-<TGConnectingPoint num="21" id="149" />
-<TGConnectingPoint num="22" id="150" />
-<TGConnectingPoint num="23" id="151" />
+<TGConnectingPoint num="0" id="670" />
+<TGConnectingPoint num="1" id="671" />
+<TGConnectingPoint num="2" id="672" />
+<TGConnectingPoint num="3" id="673" />
+<TGConnectingPoint num="4" id="674" />
+<TGConnectingPoint num="5" id="675" />
+<TGConnectingPoint num="6" id="676" />
+<TGConnectingPoint num="7" id="677" />
+<TGConnectingPoint num="8" id="678" />
+<TGConnectingPoint num="9" id="679" />
+<TGConnectingPoint num="10" id="680" />
+<TGConnectingPoint num="11" id="681" />
+<TGConnectingPoint num="12" id="682" />
+<TGConnectingPoint num="13" id="683" />
+<TGConnectingPoint num="14" id="684" />
+<TGConnectingPoint num="15" id="685" />
+<TGConnectingPoint num="16" id="686" />
+<TGConnectingPoint num="17" id="687" />
+<TGConnectingPoint num="18" id="688" />
+<TGConnectingPoint num="19" id="689" />
+<TGConnectingPoint num="20" id="690" />
+<TGConnectingPoint num="21" id="691" />
+<TGConnectingPoint num="22" id="692" />
+<TGConnectingPoint num="23" id="693" />
 <extraparam>
 <info stereotype="MEMORY" nodeName="Memory0" />
 <attributes byteDataSize="4"  memorySize="1024"  clockRatio="1"  bufferType="0" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1102" id="177" >
+<COMPONENT type="1102" id="719" >
 <cdparam x="503" y="320" />
 <sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="Bus0" value="name" />
-<TGConnectingPoint num="0" id="153" />
-<TGConnectingPoint num="1" id="154" />
-<TGConnectingPoint num="2" id="155" />
-<TGConnectingPoint num="3" id="156" />
-<TGConnectingPoint num="4" id="157" />
-<TGConnectingPoint num="5" id="158" />
-<TGConnectingPoint num="6" id="159" />
-<TGConnectingPoint num="7" id="160" />
-<TGConnectingPoint num="8" id="161" />
-<TGConnectingPoint num="9" id="162" />
-<TGConnectingPoint num="10" id="163" />
-<TGConnectingPoint num="11" id="164" />
-<TGConnectingPoint num="12" id="165" />
-<TGConnectingPoint num="13" id="166" />
-<TGConnectingPoint num="14" id="167" />
-<TGConnectingPoint num="15" id="168" />
-<TGConnectingPoint num="16" id="169" />
-<TGConnectingPoint num="17" id="170" />
-<TGConnectingPoint num="18" id="171" />
-<TGConnectingPoint num="19" id="172" />
-<TGConnectingPoint num="20" id="173" />
-<TGConnectingPoint num="21" id="174" />
-<TGConnectingPoint num="22" id="175" />
-<TGConnectingPoint num="23" id="176" />
+<TGConnectingPoint num="0" id="695" />
+<TGConnectingPoint num="1" id="696" />
+<TGConnectingPoint num="2" id="697" />
+<TGConnectingPoint num="3" id="698" />
+<TGConnectingPoint num="4" id="699" />
+<TGConnectingPoint num="5" id="700" />
+<TGConnectingPoint num="6" id="701" />
+<TGConnectingPoint num="7" id="702" />
+<TGConnectingPoint num="8" id="703" />
+<TGConnectingPoint num="9" id="704" />
+<TGConnectingPoint num="10" id="705" />
+<TGConnectingPoint num="11" id="706" />
+<TGConnectingPoint num="12" id="707" />
+<TGConnectingPoint num="13" id="708" />
+<TGConnectingPoint num="14" id="709" />
+<TGConnectingPoint num="15" id="710" />
+<TGConnectingPoint num="16" id="711" />
+<TGConnectingPoint num="17" id="712" />
+<TGConnectingPoint num="18" id="713" />
+<TGConnectingPoint num="19" id="714" />
+<TGConnectingPoint num="20" id="715" />
+<TGConnectingPoint num="21" id="716" />
+<TGConnectingPoint num="22" id="717" />
+<TGConnectingPoint num="23" id="718" />
 <extraparam>
 <info stereotype="BUS-RR" nodeName="Bus0" />
 <attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="null" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1100" id="229" >
+<COMPONENT type="1100" id="762" >
 <cdparam x="498" y="47" />
 <sizeparam width="250" height="200" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="SRC2" value="name" />
-<TGConnectingPoint num="0" id="205" />
-<TGConnectingPoint num="1" id="206" />
-<TGConnectingPoint num="2" id="207" />
-<TGConnectingPoint num="3" id="208" />
-<TGConnectingPoint num="4" id="209" />
-<TGConnectingPoint num="5" id="210" />
-<TGConnectingPoint num="6" id="211" />
-<TGConnectingPoint num="7" id="212" />
-<TGConnectingPoint num="8" id="213" />
-<TGConnectingPoint num="9" id="214" />
-<TGConnectingPoint num="10" id="215" />
-<TGConnectingPoint num="11" id="216" />
-<TGConnectingPoint num="12" id="217" />
-<TGConnectingPoint num="13" id="218" />
-<TGConnectingPoint num="14" id="219" />
-<TGConnectingPoint num="15" id="220" />
-<TGConnectingPoint num="16" id="221" />
-<TGConnectingPoint num="17" id="222" />
-<TGConnectingPoint num="18" id="223" />
-<TGConnectingPoint num="19" id="224" />
-<TGConnectingPoint num="20" id="225" />
-<TGConnectingPoint num="21" id="226" />
-<TGConnectingPoint num="22" id="227" />
-<TGConnectingPoint num="23" id="228" />
+<infoparam name="FPGA1" value="name" />
+<TGConnectingPoint num="0" id="738" />
+<TGConnectingPoint num="1" id="739" />
+<TGConnectingPoint num="2" id="740" />
+<TGConnectingPoint num="3" id="741" />
+<TGConnectingPoint num="4" id="742" />
+<TGConnectingPoint num="5" id="743" />
+<TGConnectingPoint num="6" id="744" />
+<TGConnectingPoint num="7" id="745" />
+<TGConnectingPoint num="8" id="746" />
+<TGConnectingPoint num="9" id="747" />
+<TGConnectingPoint num="10" id="748" />
+<TGConnectingPoint num="11" id="749" />
+<TGConnectingPoint num="12" id="750" />
+<TGConnectingPoint num="13" id="751" />
+<TGConnectingPoint num="14" id="752" />
+<TGConnectingPoint num="15" id="753" />
+<TGConnectingPoint num="16" id="754" />
+<TGConnectingPoint num="17" id="755" />
+<TGConnectingPoint num="18" id="756" />
+<TGConnectingPoint num="19" id="757" />
+<TGConnectingPoint num="20" id="758" />
+<TGConnectingPoint num="21" id="759" />
+<TGConnectingPoint num="22" id="760" />
+<TGConnectingPoint num="23" id="761" />
 <extraparam>
-<info stereotype="CPURR" nodeName="SRC2" />
-<attributes nbOfCores="2" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="1" operation="" MECType="0" encryption="0"/>
+<info stereotype="CPURR" nodeName="FPGA1" />
+<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="1" operation="" MECType="0" encryption="0"/>
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="1101" id="186" >
-<father id="229" num="0" />
-<cdparam x="503" y="93" />
-<sizeparam width="132" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="118" minY="0" maxY="160" />
-<infoparam name="TGComponent" value="Application::Src" />
-<TGConnectingPoint num="0" id="178" />
-<TGConnectingPoint num="1" id="179" />
-<TGConnectingPoint num="2" id="180" />
-<TGConnectingPoint num="3" id="181" />
-<TGConnectingPoint num="4" id="182" />
-<TGConnectingPoint num="5" id="183" />
-<TGConnectingPoint num="6" id="184" />
-<TGConnectingPoint num="7" id="185" />
-<extraparam>
-<info value="Application::Src" taskName="Src" referenceTaskName="Application" priority="0" operationMEC="Src" fatherComponentMECType="0" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="195" >
-<father id="229" num="1" />
-<cdparam x="518" y="154" />
-<sizeparam width="127" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="123" minY="0" maxY="160" />
-<infoparam name="TGComponent" value="Application::T1" />
-<TGConnectingPoint num="0" id="187" />
-<TGConnectingPoint num="1" id="188" />
-<TGConnectingPoint num="2" id="189" />
-<TGConnectingPoint num="3" id="190" />
-<TGConnectingPoint num="4" id="191" />
-<TGConnectingPoint num="5" id="192" />
-<TGConnectingPoint num="6" id="193" />
-<TGConnectingPoint num="7" id="194" />
+<SUBCOMPONENT type="1101" id="728" >
+<father id="762" num="0" />
+<cdparam x="539" y="82" />
+<sizeparam width="168" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="82" minY="0" maxY="160" />
+<infoparam name="TGComponent" value="ApplicationSimple::T1" />
+<TGConnectingPoint num="0" id="720" />
+<TGConnectingPoint num="1" id="721" />
+<TGConnectingPoint num="2" id="722" />
+<TGConnectingPoint num="3" id="723" />
+<TGConnectingPoint num="4" id="724" />
+<TGConnectingPoint num="5" id="725" />
+<TGConnectingPoint num="6" id="726" />
+<TGConnectingPoint num="7" id="727" />
 <extraparam>
-<info value="Application::T1" taskName="T1" referenceTaskName="Application" priority="0" operationMEC="T1" fatherComponentMECType="0" />
+<info value="ApplicationSimple::T1" taskName="T1" referenceTaskName="ApplicationSimple" priority="0" operationMEC="T1" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="204" >
-<father id="229" num="2" />
-<cdparam x="518" y="207" />
-<sizeparam width="127" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="123" minY="0" maxY="160" />
-<infoparam name="TGComponent" value="Application::T2" />
-<TGConnectingPoint num="0" id="196" />
-<TGConnectingPoint num="1" id="197" />
-<TGConnectingPoint num="2" id="198" />
-<TGConnectingPoint num="3" id="199" />
-<TGConnectingPoint num="4" id="200" />
-<TGConnectingPoint num="5" id="201" />
-<TGConnectingPoint num="6" id="202" />
-<TGConnectingPoint num="7" id="203" />
+<SUBCOMPONENT type="1101" id="737" >
+<father id="762" num="1" />
+<cdparam x="550" y="132" />
+<sizeparam width="168" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="82" minY="0" maxY="160" />
+<infoparam name="TGComponent" value="ApplicationSimple::T2" />
+<TGConnectingPoint num="0" id="729" />
+<TGConnectingPoint num="1" id="730" />
+<TGConnectingPoint num="2" id="731" />
+<TGConnectingPoint num="3" id="732" />
+<TGConnectingPoint num="4" id="733" />
+<TGConnectingPoint num="5" id="734" />
+<TGConnectingPoint num="6" id="735" />
+<TGConnectingPoint num="7" id="736" />
 <extraparam>
-<info value="Application::T2" taskName="T2" referenceTaskName="Application" priority="0" operationMEC="T2" fatherComponentMECType="0" />
+<info value="ApplicationSimple::T2" taskName="T2" referenceTaskName="ApplicationSimple" priority="0" operationMEC="T2" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="1100" id="263" >
+<COMPONENT type="1100" id="796" >
 <cdparam x="77" y="230" />
 <sizeparam width="250" height="200" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="SRC1" value="name" />
-<TGConnectingPoint num="0" id="239" />
-<TGConnectingPoint num="1" id="240" />
-<TGConnectingPoint num="2" id="241" />
-<TGConnectingPoint num="3" id="242" />
-<TGConnectingPoint num="4" id="243" />
-<TGConnectingPoint num="5" id="244" />
-<TGConnectingPoint num="6" id="245" />
-<TGConnectingPoint num="7" id="246" />
-<TGConnectingPoint num="8" id="247" />
-<TGConnectingPoint num="9" id="248" />
-<TGConnectingPoint num="10" id="249" />
-<TGConnectingPoint num="11" id="250" />
-<TGConnectingPoint num="12" id="251" />
-<TGConnectingPoint num="13" id="252" />
-<TGConnectingPoint num="14" id="253" />
-<TGConnectingPoint num="15" id="254" />
-<TGConnectingPoint num="16" id="255" />
-<TGConnectingPoint num="17" id="256" />
-<TGConnectingPoint num="18" id="257" />
-<TGConnectingPoint num="19" id="258" />
-<TGConnectingPoint num="20" id="259" />
-<TGConnectingPoint num="21" id="260" />
-<TGConnectingPoint num="22" id="261" />
-<TGConnectingPoint num="23" id="262" />
+<infoparam name="Src" value="name" />
+<TGConnectingPoint num="0" id="772" />
+<TGConnectingPoint num="1" id="773" />
+<TGConnectingPoint num="2" id="774" />
+<TGConnectingPoint num="3" id="775" />
+<TGConnectingPoint num="4" id="776" />
+<TGConnectingPoint num="5" id="777" />
+<TGConnectingPoint num="6" id="778" />
+<TGConnectingPoint num="7" id="779" />
+<TGConnectingPoint num="8" id="780" />
+<TGConnectingPoint num="9" id="781" />
+<TGConnectingPoint num="10" id="782" />
+<TGConnectingPoint num="11" id="783" />
+<TGConnectingPoint num="12" id="784" />
+<TGConnectingPoint num="13" id="785" />
+<TGConnectingPoint num="14" id="786" />
+<TGConnectingPoint num="15" id="787" />
+<TGConnectingPoint num="16" id="788" />
+<TGConnectingPoint num="17" id="789" />
+<TGConnectingPoint num="18" id="790" />
+<TGConnectingPoint num="19" id="791" />
+<TGConnectingPoint num="20" id="792" />
+<TGConnectingPoint num="21" id="793" />
+<TGConnectingPoint num="22" id="794" />
+<TGConnectingPoint num="23" id="795" />
 <extraparam>
-<info stereotype="CPURR" nodeName="SRC1" />
+<info stereotype="CPURR" nodeName="Src" />
 <attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="1" operation="" MECType="0" encryption="0"/>
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="1101" id="238" >
-<father id="263" num="0" />
-<cdparam x="81" y="274" />
-<sizeparam width="143" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="107" minY="0" maxY="160" />
-<infoparam name="TGComponent" value="Application::Start" />
-<TGConnectingPoint num="0" id="230" />
-<TGConnectingPoint num="1" id="231" />
-<TGConnectingPoint num="2" id="232" />
-<TGConnectingPoint num="3" id="233" />
-<TGConnectingPoint num="4" id="234" />
-<TGConnectingPoint num="5" id="235" />
-<TGConnectingPoint num="6" id="236" />
-<TGConnectingPoint num="7" id="237" />
+<SUBCOMPONENT type="1101" id="771" >
+<father id="796" num="0" />
+<cdparam x="139" y="297" />
+<sizeparam width="173" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="77" minY="0" maxY="160" />
+<infoparam name="TGComponent" value="ApplicationSimple::Src" />
+<TGConnectingPoint num="0" id="763" />
+<TGConnectingPoint num="1" id="764" />
+<TGConnectingPoint num="2" id="765" />
+<TGConnectingPoint num="3" id="766" />
+<TGConnectingPoint num="4" id="767" />
+<TGConnectingPoint num="5" id="768" />
+<TGConnectingPoint num="6" id="769" />
+<TGConnectingPoint num="7" id="770" />
 <extraparam>
-<info value="Application::Start" taskName="Start" referenceTaskName="Application" priority="0" operationMEC="Start" fatherComponentMECType="0" />
+<info value="ApplicationSimple::Src" taskName="Src" referenceTaskName="ApplicationSimple" priority="0" operationMEC="Src" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="125" id="264" >
+<CONNECTOR type="125" id="797" >
 <cdparam x="1017" y="421" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
-<P1  x="958" y="366" id="131" />
-<P2  x="753" y="345" id="157" />
+<P1  x="958" y="366" id="673" />
+<P2  x="753" y="345" id="699" />
 <AutomaticDrawing  data="true" />
 <extraparam>
 <info priority="0" />
 <spy value="false" />
 </extraparam>
 </CONNECTOR>
-<CONNECTOR type="125" id="265" >
+<CONNECTOR type="125" id="798" >
 <cdparam x="710" y="256" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
-<P1  x="623" y="247" id="211" />
-<P2  x="628" y="320" id="154" />
+<P1  x="623" y="247" id="744" />
+<P2  x="628" y="320" id="696" />
 <AutomaticDrawing  data="true" />
 <extraparam>
 <info priority="0" />
 <spy value="false" />
 </extraparam>
 </CONNECTOR>
-<CONNECTOR type="125" id="266" >
+<CONNECTOR type="125" id="799" >
 <cdparam x="327" y="330" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
-<P1  x="327" y="330" id="243" />
-<P2  x="503" y="332" id="163" />
+<P1  x="327" y="330" id="776" />
+<P2  x="503" y="332" id="705" />
 <AutomaticDrawing  data="true" />
 <extraparam>
 <info priority="0" />