From 3633a985f4eeaabe04426fda91eb43caea4ccaba Mon Sep 17 00:00:00 2001 From: Ludovic Apvrille <ludovic.apvrille@telecom-paristech.fr> Date: Thu, 19 May 2016 15:18:19 +0000 Subject: [PATCH] Update on simulator --- simulators/c++2/src_simulator/TMLTransaction.cpp | 4 ++++ simulators/c++2/src_simulator/TMLTransaction.h | 3 +++ simulators/c++2/src_simulator/arch/SingleCoreCPU.cpp | 10 ++++++++++ simulators/c++2/src_simulator/arch/SingleCoreCPU.h | 7 +++++++ simulators/c++2/src_simulator/sim/Simulator.cpp | 6 ++++++ 5 files changed, 30 insertions(+) diff --git a/simulators/c++2/src_simulator/TMLTransaction.cpp b/simulators/c++2/src_simulator/TMLTransaction.cpp index 40c25c5bc5..a0fcf7f9d5 100755 --- a/simulators/c++2/src_simulator/TMLTransaction.cpp +++ b/simulators/c++2/src_simulator/TMLTransaction.cpp @@ -79,3 +79,7 @@ std::string TMLTransaction::toShortString() const{ } +void toXML(std::ostringstream& glob, int deviceID, std::string deviceNAME) const { + +} + diff --git a/simulators/c++2/src_simulator/TMLTransaction.h b/simulators/c++2/src_simulator/TMLTransaction.h index 1c2e52b647..d349ccadd9 100644 --- a/simulators/c++2/src_simulator/TMLTransaction.h +++ b/simulators/c++2/src_simulator/TMLTransaction.h @@ -226,6 +226,9 @@ public: inline static void resetID() {_ID=1;} inline void setStateID(ID iID) {_stateID=iID;} inline ID getStateID() {return _stateID;} + + void toXML(std::ostringstream& glob, int deviceID, std::string deviceNAME) const; + protected: ///Time when the transaction became runnable TMLTime _runnableTime; diff --git a/simulators/c++2/src_simulator/arch/SingleCoreCPU.cpp b/simulators/c++2/src_simulator/arch/SingleCoreCPU.cpp index 8963e0947c..7cdce1382d 100644 --- a/simulators/c++2/src_simulator/arch/SingleCoreCPU.cpp +++ b/simulators/c++2/src_simulator/arch/SingleCoreCPU.cpp @@ -315,6 +315,9 @@ std::string SingleCoreCPU::toShortString() const{ return outp.str(); } + + + void SingleCoreCPU::schedule2HTML(std::ofstream& myfile) const{ TMLTime aCurrTime=0; TMLTransaction* aCurrTrans; @@ -397,6 +400,13 @@ void SingleCoreCPU::schedule2TXT(std::ofstream& myfile) const{ } } + +void allTrans2XML(std::ostringstream& glob) const { + for(TransactionList::const_iterator i=_transactList.begin(); i != _transactList.end(); ++i){ + (*i)->toXML(glob, 0, _name); + } +} + //TMLTime SingleCoreCPU::getNextSignalChange(bool iInit, std::string& oSigChange, bool& oNoMoreTrans){ void SingleCoreCPU::getNextSignalChange(bool iInit, SignalChangeData* oSigData){ //new (oSigData) SignalChangeData(RUNNING, aCurrTrans->getStartTimeOperation(), this); diff --git a/simulators/c++2/src_simulator/arch/SingleCoreCPU.h b/simulators/c++2/src_simulator/arch/SingleCoreCPU.h index ee6c40f303..abdb37bae3 100644 --- a/simulators/c++2/src_simulator/arch/SingleCoreCPU.h +++ b/simulators/c++2/src_simulator/arch/SingleCoreCPU.h @@ -118,6 +118,13 @@ public: std::ostream& writeObject(std::ostream &os); protected: ///Truncates the next transaction at time iTime + + /** + \param glob refers to the output stream + */ + void allTrans2XML(std::ostringstream& glob) const; + + /** \param iTime Indicates at what time the transaction should be truncated */ diff --git a/simulators/c++2/src_simulator/sim/Simulator.cpp b/simulators/c++2/src_simulator/sim/Simulator.cpp index 44112a8858..f7338db591 100644 --- a/simulators/c++2/src_simulator/sim/Simulator.cpp +++ b/simulators/c++2/src_simulator/sim/Simulator.cpp @@ -217,7 +217,13 @@ void Simulator::schedule2TXT(std::string& iTraceFileName) const{ void Simulator::allTrans2XML(std::ostringstream& glob) const{ glob << TAG_TRANSo << "Transaction" << TAG_TRANSc << std::endl; + for(CPUList::const_iterator i=_simComp->getCPUList().begin(); i != _simComp->getCPUList().end(); ++i){ + (*i)->allTrans2XML(myfile); + } + for(BusList::const_iterator j=_simComp->getBusList().begin(); j != _simComp->getBusList().end(); ++j){ + (*j)->allTrans2XML(myfile); + } } -- GitLab