From 5d44159e65e19a212050e9c4f71a1d84267a0e9b Mon Sep 17 00:00:00 2001
From: apvrille <ludovic.apvrille@eurecom.fr>
Date: Mon, 3 Jun 2019 17:04:56 +0200
Subject: [PATCH] Simulation of tonetwork: ok

---
 .../c++2/src_simulator/app/TMLChannel.cpp     |  2 +-
 simulators/c++2/src_simulator/app/TMLTask.cpp |  2 +-
 .../src_simulator/app/TMLWriteCommand.cpp     |  8 +--
 .../c++2/src_simulator/app/TMLbrbwChannel.cpp |  8 +--
 simulators/c++2/src_simulator/arch/Bus.cpp    | 18 +++---
 simulators/c++2/src_simulator/arch/CPU.cpp    |  6 +-
 .../c++2/src_simulator/arch/MultiCoreCPU.cpp  |  8 +--
 .../src_simulator/arch/SchedulableDevice.cpp  |  8 +--
 .../c++2/src_simulator/arch/SingleCoreCPU.cpp | 52 ++++++++---------
 .../c++2/src_simulator/arch/WorkloadSource.h  |  2 +-
 .../c++2/src_simulator/sim/Simulator.cpp      | 20 ++++---
 .../tonetwork/TaskMUXAppDispatch.java         | 57 ++++++++-----------
 12 files changed, 93 insertions(+), 98 deletions(-)

diff --git a/simulators/c++2/src_simulator/app/TMLChannel.cpp b/simulators/c++2/src_simulator/app/TMLChannel.cpp
index 0f2bb5bafd..f014e8ad81 100755
--- a/simulators/c++2/src_simulator/app/TMLChannel.cpp
+++ b/simulators/c++2/src_simulator/app/TMLChannel.cpp
@@ -67,7 +67,7 @@ BusMaster* TMLChannel::getNextMaster(TMLTransaction* iTrans){
 }
 
 BusMaster* TMLChannel::getFirstMaster(TMLTransaction* iTrans){
-  std::cout<<"get First master"<<std::endl;
+  //std::cout<<"get First master"<<std::endl;
   //if (iTrans->getCommand()->getTask()==_writeTask){
   //std::cout << "fima 1\n";
   if (_masters==0 || _slaves==0 || _numberOfHops==0 ) {return 0;}
diff --git a/simulators/c++2/src_simulator/app/TMLTask.cpp b/simulators/c++2/src_simulator/app/TMLTask.cpp
index 4df24602a0..44e942fdc4 100755
--- a/simulators/c++2/src_simulator/app/TMLTask.cpp
+++ b/simulators/c++2/src_simulator/app/TMLTask.cpp
@@ -362,7 +362,7 @@ unsigned int TMLTask::getState() const{
 }
 
 TMLTransaction* TMLTask::getNextTransaction(TMLTime iEndSchedule) const{
-  std::cout<<"TMLTask get next trans"<<std::endl;
+  //std::cout<<"TMLTask get next trans"<<std::endl;
 	return (_currCommand==0)?0:_currCommand->getCurrTransaction();
 	//return (_currCommand==0 || _isScheduled)?0:_currCommand->getCurrTransaction();
 }
diff --git a/simulators/c++2/src_simulator/app/TMLWriteCommand.cpp b/simulators/c++2/src_simulator/app/TMLWriteCommand.cpp
index 8f8a4c9a6b..7001e2e016 100755
--- a/simulators/c++2/src_simulator/app/TMLWriteCommand.cpp
+++ b/simulators/c++2/src_simulator/app/TMLWriteCommand.cpp
@@ -50,13 +50,13 @@ TMLWriteCommand::TMLWriteCommand(ID iID, TMLTask* iTask, LengthFuncPointer iLeng
 }
 
 void TMLWriteCommand::execute(){
-	std::cout << "in write " << _channel << "\n";
-        std::cout << "Length of write:" << _length << std::endl;
+  //std::cout << "in write " << _channel << "\n";
+  //std::cout << "Length of write:" << _length << std::endl;
 	_channel->write();
 	//std::cout << "channel not zero\n";
-	std::cout << _currTransaction->getVirtualLength() << " samples written\n";
+	//std::cout << _currTransaction->getVirtualLength() << " samples written\n";
 	_progress+=_currTransaction->getVirtualLength();
-	 std::cout << "WriteCommand progress: " << _progress << std::endl << std::endl;
+	//std::cout << "WriteCommand progress: " << _progress << std::endl << std::endl;
 	//_task->setEndLastTransaction(_currTransaction->getEndTime());
 	_task->addTransaction(_currTransaction);
 	//std::cout << "Trans written: " << _currTransaction->toString() << "\n";
diff --git a/simulators/c++2/src_simulator/app/TMLbrbwChannel.cpp b/simulators/c++2/src_simulator/app/TMLbrbwChannel.cpp
index 16017733dc..2b6d569544 100755
--- a/simulators/c++2/src_simulator/app/TMLbrbwChannel.cpp
+++ b/simulators/c++2/src_simulator/app/TMLbrbwChannel.cpp
@@ -61,7 +61,7 @@ void TMLbrbwChannel::testRead(TMLTransaction* iTrans){
 }
 
 void TMLbrbwChannel::write(){
-std::cout<<"write!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<std::endl;
+  //std::cout<<"write!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<std::endl;
 #ifdef LOSS_ENABLED
   if (_maxNbOfLosses > _nbOfLosses){
     TMLLength aLostBytes = _writeTrans->getVirtualLength() * _lossRate + _lossRemainder;
@@ -70,12 +70,12 @@ std::cout<<"write!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<std::endl;
     //aLostBytes /= 100;
     aLostBytes = min(aLostBytes/100, _maxNbOfLosses - _nbOfLosses);
     _content += _writeTrans->getVirtualLength() - aLostBytes;
-    std::cout << "Bytes to write: " << _writeTrans->getVirtualLength()-aLostBytes << "\n";
-    std::cout << "Bytes lost: " << aLostBytes << "\n";
+    //std::cout << "Bytes to write: " << _writeTrans->getVirtualLength()-aLostBytes << "\n";
+    //std::cout << "Bytes lost: " << aLostBytes << "\n";
     _nbOfLosses +=  aLostBytes;
   } else {
 #endif
-    std::cout << "write all  " << _writeTrans->getVirtualLength() << "\n";
+    //std::cout << "write all  " << _writeTrans->getVirtualLength() << "\n";
     _content+=_writeTrans->getVirtualLength();
 #ifdef LOSS_ENABLED
   }
diff --git a/simulators/c++2/src_simulator/arch/Bus.cpp b/simulators/c++2/src_simulator/arch/Bus.cpp
index ecafa4852a..4f5e782a26 100644
--- a/simulators/c++2/src_simulator/arch/Bus.cpp
+++ b/simulators/c++2/src_simulator/arch/Bus.cpp
@@ -91,7 +91,7 @@ void Bus::schedule(){
 
 //Adds the transaction determined by the scheduling algorithm to the internal list of scheduled transactions
 bool Bus::addTransaction(TMLTransaction* iTransToBeAdded){
-	std::cout << "Bus add trans ####" << _nextTransaction << "\n";
+  //std::cout << "Bus add trans ####" << _nextTransaction << "\n";
 	_endSchedule = _nextTransaction->getEndTime();
 	//std::cout << "set end time to " << _endSchedule << "\n";
 	//_transactList.push_back(_nextTransaction);
@@ -107,7 +107,7 @@ bool Bus::addTransaction(TMLTransaction* iTransToBeAdded){
 #endif
 	_nextTransaction = 0;
 	_schedulingNeeded=true;
-	std::cout << "End Bus add trans\n";
+	//std::cout << "End Bus add trans\n";
 	return true;
 }
 
@@ -257,14 +257,14 @@ void Bus::latencies2XML(std::ostringstream& glob, unsigned int id1, unsigned int
 
 //Returns the next signal change (for vcd output)
 void Bus::getNextSignalChange(bool iInit, SignalChangeData* oSigData){
-	std::cout<<"bus getnext"<<std::endl;
+  //std::cout<<"bus getnext"<<std::endl;
 	//std::ostringstream outp;
 	//std::cout << _transactList.size() << " elements in List of " << _name << std::endl;
 	if (iInit){
 		 _posTrasactListVCD=_transactList.begin();
 		_previousTransEndTime=0;
 		 _vcdOutputState=INIT_BUS;
-		std::cout<<"bus init"<<std::endl;
+		 //std::cout<<"bus init"<<std::endl;
 	}
 	if (_posTrasactListVCD == _transactList.end()){
 		//outp << VCD_PREFIX << vcdValConvert(END_IDLE_BUS) << "bus" << _ID;
@@ -272,13 +272,13 @@ void Bus::getNextSignalChange(bool iInit, SignalChangeData* oSigData){
 		//oNoMoreTrans=true;
 		//return _previousTransEndTime;
 		new (oSigData) SignalChangeData(END_IDLE_BUS, _previousTransEndTime, this);
-		std::cout<<"bus end "<<std::endl;
+		//std::cout<<"bus end "<<std::endl;
 	}else{
 		TMLTransaction* aCurrTrans=*_posTrasactListVCD;
 		//oNoMoreTrans=false;
 		switch (_vcdOutputState){
 			case END_READ_BUS:
-			std::cout<<"BUS END_READ_BUS"<<std::endl;
+			  //std::cout<<"BUS END_READ_BUS"<<std::endl;
 				do{
 					_previousTransEndTime=(*_posTrasactListVCD)->getEndTime();
 					_posTrasactListVCD++;
@@ -297,7 +297,7 @@ void Bus::getNextSignalChange(bool iInit, SignalChangeData* oSigData){
 				//return _previousTransEndTime;
 			break;
 			case END_WRITE_BUS:
-			std::cout<<"BUS END_WRTIE_BUS"<<std::endl;
+			  //std::cout<<"BUS END_WRTIE_BUS"<<std::endl;
 				do{
 					_previousTransEndTime=(*_posTrasactListVCD)->getEndTime();
 					_posTrasactListVCD++;
@@ -316,7 +316,7 @@ void Bus::getNextSignalChange(bool iInit, SignalChangeData* oSigData){
 				//return _previousTransEndTime;
 			break;
 			case INIT_BUS:
-			std::cout<<"BUS INIT_BUS"<<std::endl;
+			  //std::cout<<"BUS INIT_BUS"<<std::endl;
 				if (aCurrTrans->getStartTimeOperation()!=0){
 					_vcdOutputState=END_IDLE_BUS;
 					//outp << VCD_PREFIX << vcdValConvert(END_IDLE_BUS) << "bus" << _ID;
@@ -326,7 +326,7 @@ void Bus::getNextSignalChange(bool iInit, SignalChangeData* oSigData){
 					return;
 				}
 			case END_IDLE_BUS:
-			std::cout<<"BUS END_IDLE_BUS"<<std::endl;
+			  //std::cout<<"BUS END_IDLE_BUS"<<std::endl;
 				if (aCurrTrans->getCommand()->getTask()==aCurrTrans->getChannel()->getBlockedReadTask()){
 					_vcdOutputState=END_READ_BUS;
 					new (oSigData) SignalChangeData(END_READ_BUS, aCurrTrans->getStartTimeOperation(), this);
diff --git a/simulators/c++2/src_simulator/arch/CPU.cpp b/simulators/c++2/src_simulator/arch/CPU.cpp
index 7eb14f6474..980964ea42 100644
--- a/simulators/c++2/src_simulator/arch/CPU.cpp
+++ b/simulators/c++2/src_simulator/arch/CPU.cpp
@@ -51,7 +51,7 @@ double CPU::averageLoad (unsigned int n) const{
       _maxEndTime=max(_maxEndTime,_endTime);
     }
   }
-  std::cout<<"max end time is "<<_maxEndTime<<std::endl;
+  //std::cout<<"max end time is "<<_maxEndTime<<std::endl;
   for( TransactionList::const_iterator i = _transactList.begin(); i != _transactList.end(); ++i ) {
     if( (*i)->getTransactCoreNumber() == n ){
       _averageLoad += (*i)->getEndTime() - (*i)->getStartTime();
@@ -124,8 +124,8 @@ void CPU::schedule2HTML(std::ofstream& myfile) const {
     TMLTime aCurrTime = 0;
 
     for( TransactionList::const_iterator i = _transactList.begin(); i != _transactList.end(); ++i ) {
-      std::cout<<"get transaction core number is: "<<(*i)->getTransactCoreNumber()<<std::endl;
-      std::cout<<"time : "<<_cycleTime<<std::endl;
+      //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;
diff --git a/simulators/c++2/src_simulator/arch/MultiCoreCPU.cpp b/simulators/c++2/src_simulator/arch/MultiCoreCPU.cpp
index 308aaa8c22..4028e122f6 100644
--- a/simulators/c++2/src_simulator/arch/MultiCoreCPU.cpp
+++ b/simulators/c++2/src_simulator/arch/MultiCoreCPU.cpp
@@ -110,13 +110,13 @@ void MultiCoreCPU::initCore(){
 TMLTime MultiCoreCPU::getMinEndSchedule(){
   TMLTime minTime=multiCore[0];
   for( TMLTime i = 0; i < multiCore.size(); i++){
-    std::cout<<"core number is: "<<i<<" end schedule is "<<multiCore[i]<<std::endl;
+    //std::cout<<"core number is: "<<i<<" end schedule is "<<multiCore[i]<<std::endl;
     if( minTime >= multiCore[i]){
       minTime=multiCore[i];
       coreNumber=i;
       } 
   }
-  std::cout<<"in getMinEndSchedule core number is "<<coreNumber<<std::endl;
+  //std::cout<<"in getMinEndSchedule core number is "<<coreNumber<<std::endl;
   return minTime;
 }
     
@@ -149,12 +149,12 @@ std::cout<<"getNextTransaction"<<_name<<std::endl;
 }
 
 void MultiCoreCPU::calcStartTimeLength(TMLTime iTimeSlice){
-std::cout<<"calcStartTimeLength"<<_name<<std::endl;
+  //std::cout<<"calcStartTimeLength"<<_name<<std::endl;
 #ifdef DEBUG_CPU
   std::cout << "CPU:calcSTL: scheduling decision of CPU " << _name << ": " << _nextTransaction->toString() << std::endl;
 #endif
 #ifdef BUS_ENABLED
-std::cout << "CPU:calcSTL: scheduling decision of CPU " << _name << ": " << _nextTransaction->toString() << std::endl;
+  std::cout << "CPU:calcSTL: scheduling decision of CPU " << _name << ": " << _nextTransaction->toString() << std::endl;
   //std::cout << " " << std::endl;
   TMLChannel* aChannel=_nextTransaction->getCommand()->getChannel(0);
   //std::cout << "after get channel " << std::endl;
diff --git a/simulators/c++2/src_simulator/arch/SchedulableDevice.cpp b/simulators/c++2/src_simulator/arch/SchedulableDevice.cpp
index d528b73267..346ac1b21c 100644
--- a/simulators/c++2/src_simulator/arch/SchedulableDevice.cpp
+++ b/simulators/c++2/src_simulator/arch/SchedulableDevice.cpp
@@ -197,7 +197,7 @@ double SchedulableDevice::averageLoad() const{
       TMLTime _endTime= (*i)->getEndTime();
       _maxEndTime=max(_maxEndTime,_endTime);
   }
-  std::cout<<"max end time is "<<_maxEndTime<<std::endl;
+  //std::cout<<"max end time is "<<_maxEndTime<<std::endl;
   for( TransactionList::const_iterator i = _transactList.begin(); i != _transactList.end(); ++i ) {
      _averageLoad += (*i)->getEndTime() - (*i)->getStartTime();  
   
@@ -264,9 +264,9 @@ void SchedulableDevice::schedule2HTML(std::ofstream& myfile) const {
 		TMLTime aCurrTime = 0;
 
 		for( TransactionList::const_iterator i = _transactList.begin(); i != _transactList.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;
+		  //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;
diff --git a/simulators/c++2/src_simulator/arch/SingleCoreCPU.cpp b/simulators/c++2/src_simulator/arch/SingleCoreCPU.cpp
index 1051283fa3..9eb8cd517e 100644
--- a/simulators/c++2/src_simulator/arch/SingleCoreCPU.cpp
+++ b/simulators/c++2/src_simulator/arch/SingleCoreCPU.cpp
@@ -88,7 +88,7 @@ SingleCoreCPU::~SingleCoreCPU(){
 }
 
 TMLTransaction* SingleCoreCPU::getNextTransaction(){
-std::cout<<"getNextTransaction!!!!!"<<std::endl;
+  //std::cout<<"getNextTransaction!!!!!"<<std::endl;
 #ifdef BUS_ENABLED
   if (_masterNextTransaction==0 || _nextTransaction==0){
     return _nextTransaction;
@@ -120,23 +120,23 @@ void SingleCoreCPU::calcStartTimeLength(TMLTime iTimeSlice){
   std::cout << "CPU:calcSTL: scheduling decision of CPU " << _name << ": " << _nextTransaction->toString() << std::endl;
 #endif
 #ifdef BUS_ENABLED
-  std::cout << "CPU:calcSTL: scheduling decision of CPU " << _name << ": " << _nextTransaction->toString() << std::endl;
-  std::cout << "get channel " << std::endl;
+  //std::cout << "CPU:calcSTL: scheduling decision of CPU " << _name << ": " << _nextTransaction->toString() << std::endl;
+  //std::cout << "get channel " << std::endl;
   TMLChannel* aChannel=_nextTransaction->getCommand()->getChannel(0);
-  std::cout << "after get channel " << std::endl;
+  //std::cout << "after get channel " << std::endl;
   if (aChannel==0) {
     //std::cout << "no channel " << std::endl;
     _masterNextTransaction=0;
   } else {
-    std::cout << "get bus " << std::endl;
+    //std::cout << "get bus " << std::endl;
     _masterNextTransaction= getMasterForBus(aChannel->getFirstMaster(_nextTransaction));
-    std::cout << "after get first bus " << std::endl;
+    //std::cout << "after get first bus " << std::endl;
     if (_masterNextTransaction!=0){
-      std::cout << "before register transaction at bus " << _masterNextTransaction->toString() << std::endl;
+      //std::cout << "before register transaction at bus " << _masterNextTransaction->toString() << std::endl;
       _masterNextTransaction->registerTransaction(_nextTransaction);
-      std::cout << "Transaction registered at bus " << _masterNextTransaction->toString() << std::endl;
+      //std::cout << "Transaction registered at bus " << _masterNextTransaction->toString() << std::endl;
     } else {
-      std::cout << "                          NO MASTER NEXT TRANSACTION " << std::endl;
+      //std::cout << "                          NO MASTER NEXT TRANSACTION " << std::endl;
     }
   }
 #endif
@@ -144,7 +144,7 @@ void SingleCoreCPU::calcStartTimeLength(TMLTime iTimeSlice){
   TMLTime aStartTime = max(_endSchedule,_nextTransaction->getRunnableTime());
   TMLTime aReminder = aStartTime % _timePerCycle;
   if (aReminder!=0) aStartTime+=_timePerCycle - aReminder;
-  std::cout << "CPU: set start time in CPU=" << aStartTime << " Reminder=" << aReminder <<"\n";
+  //std::cout << "CPU: set start time in CPU=" << aStartTime << " Reminder=" << aReminder <<"\n";
 
   _nextTransaction->setStartTime(aStartTime);
 
@@ -174,7 +174,7 @@ void SingleCoreCPU::calcStartTimeLength(TMLTime iTimeSlice){
 }
 
 void SingleCoreCPU::truncateAndAddNextTransAt(TMLTime iTime){ 
-  std::cout<<"cpu truncatenextTransct"<<std::endl;
+  //std::cout<<"cpu truncatenextTransct"<<std::endl;
   //std::cout << "CPU:schedule BEGIN " << _name << "+++++++++++++++++++++++++++++++++\n";
   //return truncateNextTransAt(iTime);
   //not a problem if scheduling does not take place at time when transaction is actually truncated, tested
@@ -234,10 +234,10 @@ TMLTime SingleCoreCPU::truncateNextTransAt(TMLTime iTime){
 }
 
 bool SingleCoreCPU::addTransaction(TMLTransaction* iTransToBeAdded){
-std::cout<<"addTransaction"<<std::endl;
+  //std::cout<<"addTransaction"<<std::endl;
   bool aFinish;
   //TMLTransaction* aTransCopy=0;
-  std::cout << "*************** LOOKING for master of" << _nextTransaction->toString() << std::endl;
+  //std::cout << "*************** LOOKING for master of" << _nextTransaction->toString() << std::endl;
   if (_masterNextTransaction==0){
     aFinish=true;
 #ifdef DEBUG_CPU
@@ -251,31 +251,31 @@ std::cout<<"addTransaction"<<std::endl;
     //std::cout << "*************** LOOKING for master of" << _nextTransaction->toString() << std::endl;
     BusMaster* aFollowingMaster =_nextTransaction->getChannel()->getNextMaster(_nextTransaction);
     if (aFollowingMaster==0){
-      std::cout << "1\n";
+      //std::cout << "1\n";
       aFinish=true;
       //aTransCopy = new TMLTransaction(*_nextTransaction);
       //_nextTransaction = aTransCopy;
       BusMaster* aTempMaster = getMasterForBus(_nextTransaction->getChannel()->getFirstMaster(_nextTransaction));
-      std::cout << "2\n";
+      //std::cout << "2\n";
       Slave* aTempSlave= _nextTransaction->getChannel()->getNextSlave(_nextTransaction);
-      std::cout << "3\n";
+      //std::cout << "3\n";
       aTempMaster->addBusContention(_nextTransaction->getStartTime()-max(_endSchedule,_nextTransaction->getRunnableTime()));
       while (aTempMaster!=0){
-        std::cout << "3a\n";
+        //std::cout << "3a\n";
         aTempMaster->addTransaction(_nextTransaction);
-        std::cout << "3b\n";
+        //std::cout << "3b\n";
         //if (aTempSlave!=0) aTempSlave->addTransaction(_nextTransaction);
         if (aTempSlave!=0) aTempSlave->addTransaction(_nextTransaction);  //NEW
-        std::cout << "4\n";
+        //std::cout << "4\n";
         aTempMaster =_nextTransaction->getChannel()->getNextMaster(_nextTransaction);
-        std::cout << "5\n";
+        //std::cout << "5\n";
         aTempSlave= _nextTransaction->getChannel()->getNextSlave(_nextTransaction);
       }
-      std::cout << "6\n";
+      //std::cout << "6\n";
     } else {
-      std::cout << _name << " bus transaction next round" << std::endl;
+      //std::cout << _name << " bus transaction next round" << std::endl;
       _masterNextTransaction=aFollowingMaster;
-      std::cout << "7\n";
+      //std::cout << "7\n";
       _masterNextTransaction->registerTransaction(_nextTransaction);
       aFinish=false;
     }
@@ -311,7 +311,7 @@ std::cout<<"addTransaction"<<std::endl;
 
 void SingleCoreCPU::schedule(){
   //std::cout <<"Hello\n";
-  std::cout << "CPU:schedule BEGIN " << _name << "+++++++++++++++++++++++++++++++++\n";
+  //std::cout << "CPU:schedule BEGIN " << _name << "+++++++++++++++++++++++++++++++++\n";
   TMLTime aTimeSlice = _scheduler->schedule(_endSchedule);
   //_schedulingNeeded=false;  05/05/11
   //std::cout << "1\n";
@@ -334,7 +334,7 @@ void SingleCoreCPU::schedule(){
   }
   //std::cout << "5\n";
   if (_nextTransaction!=0 && aOldTransaction != _nextTransaction) calcStartTimeLength(aTimeSlice);
-  std::cout << "CPU:schedule END " << _name << "+++++++++++++++++++++++++++++++++\n";
+  //std::cout << "CPU:schedule END " << _name << "+++++++++++++++++++++++++++++++++\n";
 }
 
 //std::string SingleCoreCPU::toString() const{
@@ -542,7 +542,7 @@ void SingleCoreCPU::streamBenchmarks(std::ostream& s) const{
   s << TAG_CPUo << " id=\"" << _ID << "\" name=\"" << _name << "\">" << std::endl;
   if (_simulatedTime!=0) s << TAG_UTILo << (static_cast<float>(_busyCycles)/static_cast<float>(_simulatedTime)) << TAG_UTILc;
   s << TAG_ENERGYo << ( (_simulatedTime/_timePerCycle)*_static_consumPerCycle) + ((_busyCycles/_timePerCycle)*_dynamic_consumPerCycle) << TAG_ENERGYc;
-  std::cout<< "power consumption "<< ((_simulatedTime/_timePerCycle)*_static_consumPerCycle) + ((_busyCycles/_timePerCycle)*_dynamic_consumPerCycle)<< std::endl;
+  //std::cout<< "power consumption "<< ((_simulatedTime/_timePerCycle)*_static_consumPerCycle) + ((_busyCycles/_timePerCycle)*_dynamic_consumPerCycle)<< std::endl;
   for(BusMasterList::const_iterator i=_busMasterList.begin(); i != _busMasterList.end(); ++i) (*i)->streamBenchmarks(s);
 
   s << TAG_CPUc;
diff --git a/simulators/c++2/src_simulator/arch/WorkloadSource.h b/simulators/c++2/src_simulator/arch/WorkloadSource.h
index 9857e43c85..185a914f4d 100644
--- a/simulators/c++2/src_simulator/arch/WorkloadSource.h
+++ b/simulators/c++2/src_simulator/arch/WorkloadSource.h
@@ -64,7 +64,7 @@ public:
 	WorkloadSource(Priority iPriority, WorkloadSource** aSourceArray, unsigned int iNbOfSources): _priority(iPriority), _srcArraySpecified(true){
 		for (unsigned int i=0;i<iNbOfSources;i++){
 			addWorkloadSource(aSourceArray[i]);
-			std::cout << "Workload source added " << aSourceArray[i]->toString() << "\n";
+			//std::cout << "Workload source added " << aSourceArray[i]->toString() << "\n";
 		}
 		delete[] aSourceArray;
 	}
diff --git a/simulators/c++2/src_simulator/sim/Simulator.cpp b/simulators/c++2/src_simulator/sim/Simulator.cpp
index 5bb0872fb0..60931fcaa5 100644
--- a/simulators/c++2/src_simulator/sim/Simulator.cpp
+++ b/simulators/c++2/src_simulator/sim/Simulator.cpp
@@ -443,7 +443,7 @@ std::cout<<"schedule2HTML--------------------------------------*****************
     //for(CPUList::const_iterator i=_simComp->getCPUIterator(false); i != _simComp->getCPUIterator(true); ++i){
     for(CPUList::const_iterator i=_simComp->getCPUList().begin(); i != _simComp->getCPUList().end(); ++i){
       for(unsigned int j = 0; j < (*i)->getAmoutOfCore(); j++) {
-        std::cout<<"core number is "<<(*i)->getAmoutOfCore()<<std::endl;
+        //std::cout<<"core number is "<<(*i)->getAmoutOfCore()<<std::endl;
 	(*i)->schedule2HTML(myfile);
        	(*i)->showPieChart(myfile);
 	(*i)->setCycleTime((*i)->getCycleTime()+1);
@@ -459,8 +459,8 @@ std::cout<<"schedule2HTML--------------------------------------*****************
       (*j)->setStartFlagHTML(true);
       for(TaskList::const_iterator i = (*j)->getTaskList().begin(); i != (*j)->getTaskList().end(); ++i){
       	(*j)->setHtmlCurrTask(*i);
-	std::cout<<"begin fpga html "<<(*j)->toShortString()<<std::endl;
-	std::cout<<"task is !!!!!"<<(*i)->toString()<<std::endl;
+	//std::cout<<"begin fpga html "<<(*j)->toShortString()<<std::endl;
+	//std::cout<<"task is !!!!!"<<(*i)->toString()<<std::endl;
 	(*j)->schedule2HTML(myfile);
 	(*j)->setStartFlagHTML(false);
       }
@@ -675,14 +675,16 @@ bool Simulator::simulate(TMLTransaction*& oLastTrans){
   _simComp->setStopFlag(false,"");
   for(TaskList::const_iterator i=_simComp->getTaskList().begin(); i!=_simComp->getTaskList().end();i++){
     std::cout << "task preparation:" << (*i)->toString() << std::endl;
+    if ((*i)->getCurrCommand()!=0) std::cout<<(*i)->getCurrCommand()->toString() << std::endl;
     if ((*i)->getCurrCommand()!=0) (*i)->getCurrCommand()->prepare(true);
+    std::cout << "task preparation done:" << (*i)->toString() << std::endl;
   }
 #ifdef EBRDD_ENABLED
   for(EBRDDList::const_iterator i=_simComp->getEBRDDIterator(false); i!=_simComp->getEBRDDIterator(true);i++){
     if ((*i)->getCurrCommand()!=0) (*i)->getCurrCommand()->prepare();
   }
 #endif
-  std::cout<<"simulate"<<std::endl;
+  //std::cout<<"simulate"<<std::endl;
   for_each(_simComp->getCPUList().begin(), _simComp->getCPUList().end(),std::mem_fun(&CPU::schedule));
 
   for_each(_simComp->getFPGAList().begin(), _simComp->getFPGAList().end(),std::mem_fun(&FPGA::schedule));
@@ -694,15 +696,15 @@ bool Simulator::simulate(TMLTransaction*& oLastTrans){
 #endif
   while ( transLET!=0 && !_simComp->getStopFlag()){
     
-      std::cout<<"come in cpu"<<std::endl;
+    //std::cout<<"come in cpu"<<std::endl;
 #ifdef DEBUG_KERNEL
       std::cout << "kernel:simulate: scheduling decision: " <<  transLET->toString() << std::endl;
 #endif
 
 	commandLET=transLET->getCommand();
-	std::cout<<"device is "<<deviceLET->getName()<<std::endl;
+	//std::cout<<"device is "<<deviceLET->getName()<<std::endl;
         bool x = deviceLET->addTransaction(0);
-	std::cout<<"in simulator end addTransactin"<<std::endl;
+	//std::cout<<"in simulator end addTransactin"<<std::endl;
 #ifdef DEBUG_KERNEL
       std::cout << "kernel:simulate: AFTER add trans: " << x << std::endl;
 #endif
@@ -720,7 +722,7 @@ bool Simulator::simulate(TMLTransaction*& oLastTrans){
 	  depFPGA=depTask->getFPGA();
 	  
 	  if(depCPU){
-	    std::cout<<"lets start cpu"<<std::endl;
+	    //std::cout<<"lets start cpu"<<std::endl;
 	    if (depCPU!=deviceLET){
 #ifdef DEBUG_KERNEL
 	      std::cout << "kernel:simulate: Tasks running on different CPUs" << std::endl;
@@ -818,7 +820,7 @@ bool Simulator::simulate(TMLTransaction*& oLastTrans){
 #endif
       }
       oLastTrans=transLET;
-      std::cout<<"task is !!!!!"<<oLastTrans->toString()<<std::endl;
+      //std::cout<<"task is !!!!!"<<oLastTrans->toString()<<std::endl;
 	transLET=getTransLowestEndTime(deviceLET);	
     }
 
diff --git a/src/main/java/tmltranslator/tonetwork/TaskMUXAppDispatch.java b/src/main/java/tmltranslator/tonetwork/TaskMUXAppDispatch.java
index 13def8b803..2f719c1acc 100644
--- a/src/main/java/tmltranslator/tonetwork/TaskMUXAppDispatch.java
+++ b/src/main/java/tmltranslator/tonetwork/TaskMUXAppDispatch.java
@@ -42,7 +42,6 @@ package tmltranslator.tonetwork;
 import tmltranslator.*;
 
 import java.util.List;
-import java.util.Vector;
 
 
 /**
@@ -71,7 +70,7 @@ public class TaskMUXAppDispatch extends TMLTask {
         this.outputEvent = outputEvent;
 
 
-        for(TMLEvent evt: inputEvents) {
+        for (TMLEvent evt : inputEvents) {
             evt.setDestinationTask(this);
         }
         outputEvent.setOriginTask(this);
@@ -89,7 +88,7 @@ public class TaskMUXAppDispatch extends TMLTask {
         this.addAttribute(chid);
 
         // Events and channels
-        for(TMLEvent evt: inputEvents) {
+        for (TMLEvent evt : inputEvents) {
             addTMLEvent(evt);
         }
         addTMLEvent(outputEvent);
@@ -99,56 +98,50 @@ public class TaskMUXAppDispatch extends TMLTask {
         TMLStartState start = new TMLStartState("mainStart", referenceObject);
         activity.setFirst(start);
 
+        if (inputEvents.size() == 0) {
+            TMLStopState stopNoEvent = new TMLStopState("StopNoEvent", referenceObject);
+            activity.addLinkElement(start, stopNoEvent);
+            return;
+        }
+
         TMLForLoop loop = new TMLForLoop("mainLoop", referenceObject);
         loop.setInfinite(true);
         activity.addElement(loop);
         start.addNext(loop);
 
 
-        if (inputEvents.size() == 0) {
-            TMLStopState stopNoEvent = new TMLStopState("StopNoEvent", referenceObject);
-            activity.addElement(stopNoEvent);
-            loop.addNext(stopNoEvent);
-            return;
-        }
-
         TMLSelectEvt selectEvt = new TMLSelectEvt("selectEvent", referenceObject);
         activity.addElement(selectEvt);
         loop.addNext(selectEvt);
 
-        if (inputEvents.size() == 0) {
-            activity.addLinkElement(selectEvt, new TMLStopState("StopNoEvent", referenceObject));
-            return ;
-        }
-
 
         // Branch for each app
 
-         for(int i=0; i< inputEvents.size(); i++) {
-             TMLWaitEvent waitEvt = new TMLWaitEvent("PacketEvent" + i, referenceObject);
+        for (int i = 0; i < inputEvents.size(); i++) {
+            TMLWaitEvent waitEvt = new TMLWaitEvent("PacketEvent" + i, referenceObject);
             waitEvt.setEvent(inputEvents.get(i));
             waitEvt.addParam("pktlen");
             waitEvt.addParam("dst");
             waitEvt.addParam("vc");
             waitEvt.addParam("eop");
-             waitEvt.addParam("chid");
+            waitEvt.addParam("chid");
             activity.addElement(waitEvt);
-             selectEvt.addNext(waitEvt);
-
-             TMLSendEvent sendEvt = new TMLSendEvent("SendEvtToNI" + i, referenceObject);
-             sendEvt.setEvent(outputEvent);
-             sendEvt.addParam("pktlen");
-             sendEvt.addParam("dst");
-             sendEvt.addParam("vc");
-             sendEvt.addParam("eop");
-             sendEvt.addParam("chid");
-             activity.addElement(sendEvt);
+            selectEvt.addNext(waitEvt);
+
+            TMLSendEvent sendEvt = new TMLSendEvent("SendEvtToNI" + i, referenceObject);
+            sendEvt.setEvent(outputEvent);
+            sendEvt.addParam("pktlen");
+            sendEvt.addParam("dst");
+            sendEvt.addParam("vc");
+            sendEvt.addParam("eop");
+            sendEvt.addParam("chid");
+            activity.addElement(sendEvt);
             waitEvt.addNext(sendEvt);
 
-             TMLStopState stopL = new TMLStopState("EndOfSelectForApp" + i, referenceObject);
-             activity.addElement(stopL);
-             sendEvt.addNext(stopL);
-         }
+            TMLStopState stopL = new TMLStopState("EndOfSelectForApp" + i, referenceObject);
+            activity.addElement(stopL);
+            sendEvt.addNext(stopL);
+        }
 
 
     }
-- 
GitLab