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