diff --git a/simulators/c++2/src_simulator/app/TMLTask.h b/simulators/c++2/src_simulator/app/TMLTask.h index 50b69ab00464f35956a77adde9da910024626273..8c8e40a1ac3cd192b62ac30dacf5449c68314250 100755 --- a/simulators/c++2/src_simulator/app/TMLTask.h +++ b/simulators/c++2/src_simulator/app/TMLTask.h @@ -240,6 +240,8 @@ public: unsigned int getNextCellIndex() const {return _nextCellIndex;} void schedule2HTML(std::ofstream& myfile) const; bool getIsDaemon() {return _isDaemon;}; + bool getIsFirstTranExecuted() {return _isFirstTranExecuted;}; + inline void setIsFirstTranExecuted(bool x) {_isFirstTranExecuted = x;}; protected: ///ID of the task ID _ID; @@ -264,6 +266,7 @@ protected: ///Number of cores assigned to the task unsigned int _noOfFPGAs; bool _isDaemon; + bool _isFirstTranExecuted; unsigned int _nextCellIndex; #ifdef ADD_COMMENTS diff --git a/simulators/c++2/src_simulator/arch/CPU.cpp b/simulators/c++2/src_simulator/arch/CPU.cpp index c950f9eee66994ac9544b5ddae4843a69e2812b5..5ccd63358397c212849afb006fe0f2c77bfcd9c0 100644 --- a/simulators/c++2/src_simulator/arch/CPU.cpp +++ b/simulators/c++2/src_simulator/arch/CPU.cpp @@ -208,8 +208,8 @@ std::map<TMLTask*, std::string> CPU::HWTIMELINE2HTML(std::ostringstream& myfile, bool isBlankTooBig = false; std::ostringstream tempString; int tempBlanks; - if(endTimeOfCore >= 250 && aBlanks > 10) { - int newBlanks = 10; + if(endTimeOfCore >= MIN_RESIZE_THRESHOLD && aBlanks > MIN_RESIZE_TRANS) { + int newBlanks = MIN_RESIZE_TRANS; tempBlanks = aBlanks; tempReduce += aBlanks - newBlanks; aBlanks = newBlanks; @@ -248,9 +248,9 @@ std::map<TMLTask*, std::string> CPU::HWTIMELINE2HTML(std::ostringstream& myfile, unsigned int aLength = aCurrTrans->getPenalties(); if ( aLength != 0 ) { listScaleTime.push_back(listScaleTime.back()+aLength); - if (endTimeOfCore >= 250 && aLength > 10){ - tempReduce += aLength - 10; - aLength = 10; + if (endTimeOfCore >= MIN_RESIZE_THRESHOLD && aLength > MIN_RESIZE_TRANS){ + tempReduce += aLength - MIN_RESIZE_TRANS; + aLength = MIN_RESIZE_TRANS; } listScale.push_back(aLength); std::ostringstream title; @@ -267,9 +267,9 @@ std::map<TMLTask*, std::string> CPU::HWTIMELINE2HTML(std::ostringstream& myfile, 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; + if (endTimeOfCore >= MIN_RESIZE_THRESHOLD && aLength > MIN_RESIZE_TRANS){ + tempReduce += aLength - MIN_RESIZE_TRANS; + aLength = MIN_RESIZE_TRANS; } std::string aCurrFullTransName = aCurrTrans->toString(); unsigned int indexTrans1 = aCurrFullTransName.find("len:"); diff --git a/simulators/c++2/src_simulator/arch/FPGA.cpp b/simulators/c++2/src_simulator/arch/FPGA.cpp index f96123047409cbcbe537b5dc1ec868817d84d52b..dad3ee232a5a04558b7c30c4f214631e65bc1148 100644 --- a/simulators/c++2/src_simulator/arch/FPGA.cpp +++ b/simulators/c++2/src_simulator/arch/FPGA.cpp @@ -241,9 +241,12 @@ std::cout<<"fpga addTransaction"<<std::endl; //std::cout<<"end schedule is ~~~~~~~"<<_endSchedule<<std::endl; if(_endSchedule == 0 && (!(_nextTransaction->getCommand()->getTask()->getIsDaemon()==true && _nextTransaction->getCommand()->getTask()->getNextTransaction(0)==0))) _maxEndTime=max(_maxEndTime,_nextTransaction->getEndTime()); - if(_reconfigNumber>0) - _nextTransaction->setStartTime(_maxEndTime+_reconfigNumber*_reconfigTime); -// _endSchedule=_maxEndTime+_reconfigNumber*_reconfigTime; + if(_reconfigNumber>0) { + if(!_nextTransaction->getCommand()->getTask()->getIsFirstTranExecuted()) { + _nextTransaction->setStartTime(_maxEndTime + _reconfigNumber * _reconfigTime); + _nextTransaction->getCommand()->getTask()->setIsFirstTranExecuted(true); + } + } else{ _endSchedule=0; @@ -376,7 +379,11 @@ void FPGA::reset(){ _lastTransaction=0; _masterNextTransaction=0; _busyCycles=0; + _maxEndTime = 0; maxScale = 0; + for(TaskList::const_iterator i = _taskList.begin(); i!= _taskList.end(); ++i){ + (*i)->setIsFirstTranExecuted(false); + } } void FPGA::schedule2TXT(std::ofstream& myfile) const{ @@ -609,7 +616,7 @@ std::map<TMLTask*, std::string> FPGA::HWTIMELINE2HTML(std::ostringstream& myfile } else { if(_startFlagHTML == true){ myfile << "<tr><td title = \"Average load: " << std::setprecision(2) << averageLoad(_htmlCurrTask) << "; Utilization: " << (static_cast<float>(_busyCycles)/static_cast<float>(_simulatedTime)) << "\" width=\"170px\" style=\"max-width: unset;min-width: 170px;background-color: aqua;\">" << _name << "</td><td class=\"notfirst\"></td><td class=\"notlast\"></td>"; - } else { + } else if (_htmlCurrTask->getEndLastTransaction() > 0) { myfile << "<tr><td title = \"Average load: " << std::setprecision(2) << averageLoad(_htmlCurrTask) << "; Utilization: " << (static_cast<float>(_busyCycles)/static_cast<float>(_simulatedTime)) << "\" width=\"170px\" style=\"max-width: unset;min-width: 170px;border-style: none none none none;\"></td><td class=\"notfirst\"></td><td class=\"notlast\"></td>"; } TMLTime aCurrTime = 0; @@ -637,8 +644,8 @@ std::map<TMLTask*, std::string> FPGA::HWTIMELINE2HTML(std::ostringstream& myfile bool isBlankTooBig = false; std::ostringstream tempString; int tempBlanks; - if(_htmlCurrTask->getEndLastTransaction() >= 250 && aBlanks >10) { - int newBlanks = 10; + if(_htmlCurrTask->getEndLastTransaction() >= MIN_RESIZE_THRESHOLD && aBlanks > MIN_RESIZE_TRANS) { + int newBlanks = MIN_RESIZE_TRANS; tempBlanks = aBlanks; tempReduce += aBlanks - newBlanks; aBlanks = newBlanks; @@ -676,9 +683,9 @@ std::map<TMLTask*, std::string> FPGA::HWTIMELINE2HTML(std::ostringstream& myfile 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; + if(_htmlCurrTask->getEndLastTransaction() >= MIN_RESIZE_THRESHOLD && aLength > MIN_RESIZE_TRANS){ + tempReduce += aLength - MIN_RESIZE_TRANS; + aLength = MIN_RESIZE_TRANS; } std::string aCurrFullTransName = aCurrTrans->toString(); unsigned int indexTrans1 = aCurrFullTransName.find("len:"); diff --git a/simulators/c++2/src_simulator/arch/ReconfigScheduler.cpp b/simulators/c++2/src_simulator/arch/ReconfigScheduler.cpp index bfb367b63e8c9c86455c326cd1cee90061a6e567..5861234a6cbfd2f9c4c9742741eec75fa65b9a44 100644 --- a/simulators/c++2/src_simulator/arch/ReconfigScheduler.cpp +++ b/simulators/c++2/src_simulator/arch/ReconfigScheduler.cpp @@ -45,8 +45,7 @@ ReconfigScheduler::ReconfigScheduler(const std::string& iName, Priority iPrio, c ReconfigScheduler::ReconfigScheduler(const std::string& iName, Priority iPrio, WorkloadSource** aSourceArray, unsigned int iNbOfSources, const std::string iTaskOrder): WorkloadSource(iPrio, aSourceArray, iNbOfSources), _name(iName), _taskOrder(iTaskOrder), _nextTransaction(0), _lastSource(0), _tempWorkloadList(0), _indexMark(0), _reconfigNumber(0) { } -Priority previousRank = 0; -Priority currentRank = 0; + TMLTime ReconfigScheduler::schedule(TMLTime iEndSchedule){ std::cout<<"reconfig scheduler"<<std::endl; TaskList::iterator i; @@ -100,9 +99,9 @@ TMLTime ReconfigScheduler::schedule(TMLTime iEndSchedule){ } } - _workloadList.sort(sortByPriority);//very importance +// _workloadList.sort(sortByPriority); Priority aHighestPrioPast=-1; - for(WorkloadList::iterator i=_workloadList.begin(); i != _workloadList.end(); ++i){ + for(WorkloadList::iterator i = _workloadList.begin(); i != _workloadList.end(); ++i){ #ifdef DEBUG_FPGA std::cout<<"schedule for"<<std::endl; #endif @@ -111,7 +110,6 @@ TMLTime ReconfigScheduler::schedule(TMLTime iEndSchedule){ if(aTempTrans==0) std::cout<< (*i)->toString() + "temp trans is 0"<<std::endl; else { std::cout<<(*i)->toString() + "temp trans is "<<aTempTrans->toShortString()<<std::endl; - currentRank = (*i)->getPriority(); } #ifdef DEBUG_FPGA if(aTempTrans==0) std::cout<<"temp trans is 0"<<std::endl; @@ -120,48 +118,32 @@ TMLTime ReconfigScheduler::schedule(TMLTime iEndSchedule){ if (aTempTrans!=0 && aTempTrans->getVirtualLength()!=0){ aRunnableTime=aTempTrans->getRunnableTime(); - if (aRunnableTime<=iEndSchedule){ - //Past - if ((*i)->getPriority()<aHighestPrioPast || ((*i)->getPriority()==aHighestPrioPast && aRunnableTime<aLowestRunnableTimePast)){ - aHighestPrioPast=(*i)->getPriority(); - aLowestRunnableTimePast=aRunnableTime; - aMarkerPast=aTempTrans; - aSourcePast=*i; - } - }else{ - //Future - if(aRunnableTime<aTransTimeFuture){ - aTransTimeFuture=aRunnableTime; - aMarkerFuture=aTempTrans; - aSourceFuture=*i; - } - } + //Past + if ((*i)->getPriority() < aHighestPrioPast || ((*i)->getPriority() == aHighestPrioPast && aRunnableTime < aLowestRunnableTimePast)) { + aHighestPrioPast = (*i)->getPriority(); + aLowestRunnableTimePast = aRunnableTime; + aMarkerPast = aTempTrans; + aSourcePast = *i; + } + #ifdef DEBUG_FPGA std::cout<<"erase"<<std::endl; #endif - break; } - } if (aMarkerPast==0){ - _nextTransaction=aMarkerFuture; - _lastSource=aSourceFuture; //NEW - }else{ - _nextTransaction=aMarkerPast; - _lastSource=aSourcePast; //NEW - } - if (currentRank != previousRank){ - ++_reconfigNumber; + _nextTransaction=(aSourceFuture==0)? 0 : aSourceFuture->getNextTransaction(iEndSchedule);; + _lastSource=aSourceFuture; //NEW + } else{ + _nextTransaction=aSourcePast->getNextTransaction(iEndSchedule);; + _lastSource=aSourcePast; //NEW + _reconfigNumber = aSourcePast->getPriority(); } - previousRank = currentRank; #ifdef DEBUG_FPGA std::cout<<"end order scheduler"<<std::endl; #endif return _reconfigNumber; - - - } ReconfigScheduler::~ReconfigScheduler(){ @@ -173,4 +155,5 @@ ReconfigScheduler::~ReconfigScheduler(){ void ReconfigScheduler::reset(){ WorkloadSource::reset(); _nextTransaction=0; + _reconfigNumber = 0; } diff --git a/simulators/c++2/src_simulator/arch/SchedulableDevice.cpp b/simulators/c++2/src_simulator/arch/SchedulableDevice.cpp index 632a8264c7162687e222178314d02cf6ebee76bf..3590da0455d8e087a3940be83902c78ad639a4b4 100644 --- a/simulators/c++2/src_simulator/arch/SchedulableDevice.cpp +++ b/simulators/c++2/src_simulator/arch/SchedulableDevice.cpp @@ -333,8 +333,8 @@ std::map<TMLTask*, std::string> SchedulableDevice::HWTIMELINE2HTML(std::ostrings bool isBlankTooBig = false; std::ostringstream tempString; int tempBlanks; - if((checkLastTime)->getEndTime() >= 250 && aBlanks > 10) { - int newBlanks = 10; + if((checkLastTime)->getEndTime() >= MIN_RESIZE_THRESHOLD && aBlanks > MIN_RESIZE_TRANS) { + int newBlanks = MIN_RESIZE_TRANS; tempBlanks = aBlanks; tempReduce += aBlanks - newBlanks; aBlanks = newBlanks; @@ -375,9 +375,9 @@ std::map<TMLTask*, std::string> SchedulableDevice::HWTIMELINE2HTML(std::ostrings if ( aLength != 0 ) { std::ostringstream title; listScaleTime.push_back(listScaleTime.back()+aLength); - if(checkLastTime->getEndTime() >= 250 && aLength >10){ - tempReduce += aLength - 10; - aLength = 10; + if(checkLastTime->getEndTime() >= MIN_RESIZE_THRESHOLD && aLength > MIN_RESIZE_TRANS){ + tempReduce += aLength - MIN_RESIZE_TRANS; + aLength = MIN_RESIZE_TRANS; } listScale.push_back(aLength); title << "idle:" << aCurrTrans->getIdlePenalty() << " switching penalty:" << aCurrTrans->getTaskSwitchingPenalty(); @@ -394,9 +394,9 @@ std::map<TMLTask*, std::string> SchedulableDevice::HWTIMELINE2HTML(std::ostrings 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; + if(checkLastTime->getEndTime() >= MIN_RESIZE_THRESHOLD && aLength > MIN_RESIZE_TRANS){ + tempReduce += aLength - MIN_RESIZE_TRANS; + aLength = MIN_RESIZE_TRANS; } std::string aCurrFullTransName = aCurrTrans->toString(); unsigned int indexTrans1 = aCurrFullTransName.find("len:"); diff --git a/simulators/c++2/src_simulator/definitions.h b/simulators/c++2/src_simulator/definitions.h index db56053b3fa2e5567856b07b60eac988d3efb35f..66d990191c452a3b2f6e797d5bb87a013ee2d8b4 100644 --- a/simulators/c++2/src_simulator/definitions.h +++ b/simulators/c++2/src_simulator/definitions.h @@ -288,6 +288,8 @@ using std::max; #define NB_HTML_COLORS 15 #define SHOW_PIE_CHART "ShowPie" #define BUFFER_SIZE 2000 //maximum length of a command sent to server +#define MIN_RESIZE_THRESHOLD 250 //if task has more than MIN_RESIZE_THRESHOLD cycles then reduce the length of blanks and transactions +#define MIN_RESIZE_TRANS 10 // if trans or blank size > MIN_RESIZE_TRANS then reduce to 50 #define SCHED_HTML_JS_FUNCTION "= function() {\n \ var r = Math.floor(Math.random() * 255);\n \ diff --git a/ttool/src/test/java/tmltranslator/DiplodocusDelayTest.java b/ttool/src/test/java/tmltranslator/DiplodocusDelayTest.java index b36615ee1179db415610e82b4356f9cbce76546c..e2cd943089b4ba71383b6d8405610567870fc154 100644 --- a/ttool/src/test/java/tmltranslator/DiplodocusDelayTest.java +++ b/ttool/src/test/java/tmltranslator/DiplodocusDelayTest.java @@ -62,8 +62,8 @@ public class DiplodocusDelayTest extends AbstractUITest { final String [] MODELS_FPGA_RECONFIG = {"fpga_reconfig1", "fpga_reconfig2", "fpga_reconfig3", "fpga_reconfig4", "fpga_reconfig5"}; final int [] NB_Of_FPGA_STATES = {20, 20, 20, 20, 20}; final int [] NB_Of_FPGA_TRANSTIONS = {19, 19, 19, 19, 19}; - final int [] MIN_FPGA_CYCLES = {143, 102, 107, 87, 102}; - final int [] MAX_FPGA_CYCLES = {143, 102, 107, 87, 102}; + final int [] MIN_FPGA_CYCLES = {90, 83, 77, 70, 75}; + final int [] MAX_FPGA_CYCLES = {90, 83, 77, 70, 75}; private String SIM_DIR; diff --git a/ttool/src/test/java/tmltranslator/HTMLParseTest.java b/ttool/src/test/java/tmltranslator/HTMLParseTest.java index 67475ef21c1f3fe7c502a32cd8f4d37fe2c12e04..256f3233bb8f98fc5e152bd2bb442b2e4e2cd11b 100644 --- a/ttool/src/test/java/tmltranslator/HTMLParseTest.java +++ b/ttool/src/test/java/tmltranslator/HTMLParseTest.java @@ -31,7 +31,7 @@ import static org.junit.Assert.assertTrue; public class HTMLParseTest extends AbstractUITest { final String DIR_GEN = "test_diplo_simulator/"; final String [] MODELS_PARSE_HTML = {"parseFPGA_HTML", "parseCPU1_HTML","parseCPU2_HTML"}; - final String [] PARSE_FPGA = {"<- idle 195 ->","<- idle 358 ->", "<- idle 204 ->", "<- idle 351 ->", "<- idle 85 ->"}; + final String [] PARSE_FPGA = {"<- idle 471 ->","", "", "", ""}; final String [] PARSE_SINGLE_CORE = {"<- idle 366 ->", "<- idle 401 ->", "<- idle 401 ->", "<- idle 401 ->", "<- idle 401 ->"}; final String [] PARSE_MULTI_CORE = { "", "", "<- idle 374 ->", "<- idle 401 ->", "<- idle 401 ->"}; final static String EXPECTED_FILE_GET_ALL_TRANS = getBaseResourcesDir() + "tmltranslator/expected/expected_get_all_transactions.txt"; diff --git a/ttool/src/test/java/tmltranslator/RemoveAllTransactionsTests.java b/ttool/src/test/java/tmltranslator/RemoveAllTransactionsTests.java index 402dcff46463c68e61b9e7634401a71e2389e5ab..e29a6acd1d7ff9fc9a7fe88e06e1a8472e29c5db 100644 --- a/ttool/src/test/java/tmltranslator/RemoveAllTransactionsTests.java +++ b/ttool/src/test/java/tmltranslator/RemoveAllTransactionsTests.java @@ -28,8 +28,8 @@ public class RemoveAllTransactionsTests extends AbstractUITest { final String DIR_GEN = "test_diplo_simulator/"; final String [] MODELS_PARSE_HTML = {"parseFPGA_HTML"}; final static String EXPECTED_FILE_REMOVE_ALL_TRANS = getBaseResourcesDir() + "tmltranslator/expected/expected_remove_all_trans.txt"; - final int [] FULL_DATA_TRANSACTION = {21, 20, 1179, 1179}; - final int [] REMOVE_DATA_TRANSACTION = {8, 7, 1179, 1179}; + final int [] FULL_DATA_TRANSACTION = {20, 19, 476, 476}; + final int [] REMOVE_DATA_TRANSACTION = {8, 7, 476, 476}; private String SIM_DIR; @BeforeClass public static void setUpBeforeClass() throws Exception { diff --git a/ttool/src/test/resources/tmltranslator/expected/expected_get_all_transactions.txt b/ttool/src/test/resources/tmltranslator/expected/expected_get_all_transactions.txt index 82a913b3603b3233588c0d5c4e2e0fe3b2df590d..4be21e6d39253242445c349fe8766962131774fa 100644 --- a/ttool/src/test/resources/tmltranslator/expected/expected_get_all_transactions.txt +++ b/ttool/src/test/resources/tmltranslator/expected/expected_get_all_transactions.txt @@ -1,10 +1,10 @@ -Info transaction: " deviceid="0" devicename="FPGA0" command="Application__Task2: IdleDL in Application__Task2 len:1 progress:0 ID:30" +Info transaction: " deviceid="0" devicename="FPGA0" command="Application__Task2: IdleDL in Application__Task2 len:1 progress:0 ID:24" Info transaction: " deviceid="0" devicename="FPGA0" command="Application__Task2: Execi 5" -Info transaction: " deviceid="0" devicename="FPGA0" command="Application__Task2: IdleDL in Application__Task2 len:1 progress:0 ID:30" +Info transaction: " deviceid="0" devicename="FPGA0" command="Application__Task2: IdleDL in Application__Task2 len:1 progress:0 ID:24" Info transaction: " deviceid="0" devicename="FPGA0" command="Application__Task2: Execi 5" -Info transaction: " deviceid="0" devicename="FPGA0" command="Application__Task2: IdleDL in Application__Task2 len:1 progress:0 ID:30" +Info transaction: " deviceid="0" devicename="FPGA0" command="Application__Task2: IdleDL in Application__Task2 len:1 progress:0 ID:24" Info transaction: " deviceid="0" devicename="FPGA0" command="Application__Task2: Execi 5" -Info transaction: " deviceid="0" devicename="FPGA0" command="Application__Task2: IdleDL in Application__Task2 len:1 progress:0 ID:30" -Info transaction: " deviceid="0" devicename="FPGA0" command="Application__Task2: Execi 5" -Info transaction: " deviceid="0" devicename="FPGA0" command="Application__Task2: IdleDL in Application__Task2 len:1 progress:0 ID:30" +Info transaction: " deviceid="0" devicename="FPGA0" command="Application__Task2: IdleDL in Application__Task2 len:1 progress:0 ID:24" Info transaction: " deviceid="0" devicename="FPGA0" command="Application__Task2: Execi 5" +Info transaction: " deviceid="0" devicename="FPGA0" command="Application__Task2: IdleDL in Application__Task2 len:1 progress:0 ID:24" +Info transaction: " deviceid="0" devicename="FPGA0" command="Application__Task2: Execi 5" \ No newline at end of file diff --git a/ttool/src/test/resources/tmltranslator/expected/expected_remove_all_trans.txt b/ttool/src/test/resources/tmltranslator/expected/expected_remove_all_trans.txt index b90eda308c92b57b77546e0ddf02ee55275259f5..258ac81a3cb3c9fd776d3af129b340da4f46376c 100644 --- a/ttool/src/test/resources/tmltranslator/expected/expected_remove_all_trans.txt +++ b/ttool/src/test/resources/tmltranslator/expected/expected_remove_all_trans.txt @@ -1,4 +1,3 @@ ========= Scheduling for device: FPGA0 ========= -Application__Task3: Write 20,Application__ch t:355 l:2 (vl:8) params: Ch: Application__ch -========= Scheduling for device: Bus0_0 ========= -Application__Task3: Write 20,Application__ch t:355 l:2 (vl:8) params: Ch: Application__ch +Application__Task4: Read 20,Application__ch t:299 l:8 (vl:8) params: Ch: Application__ch +========= Scheduling for device: Bus0_0 ========= \ No newline at end of file diff --git a/ttool/src/test/resources/tmltranslator/simulator/parseFPGA_HTML.xml b/ttool/src/test/resources/tmltranslator/simulator/parseFPGA_HTML.xml index 5f548cb914cb5d68f415d33f9d4e9c88157805a1..fad425ebd048e73a562d8e501405e3673f70f065 100644 --- a/ttool/src/test/resources/tmltranslator/simulator/parseFPGA_HTML.xml +++ b/ttool/src/test/resources/tmltranslator/simulator/parseFPGA_HTML.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> -<TURTLEGMODELING version="1.0beta" ANIMATE_INTERACTIVE_SIMULATION="true" ACTIVATE_PENALTIES="false" UPDATE_INFORMATION_DIPLO_SIM="true" ANIMATE_WITH_INFO_DIPLO_SIM="true" 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$Task1$Task2$Task3$Task4$Task5" > <TMLComponentTaskDiagramPanel name="TML Component Task Diagram" minX="10" maxX="2500" minY="10" maxY="1500" channels="true" events="true" requests="true" zoom="1.0" > @@ -27,7 +27,7 @@ <TGConnectingPoint num="6" id="8" /> <TGConnectingPoint num="7" id="9" /> <extraparam> -<Data isAttacker="No" daemon="false" Operation="" /> +<Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="" Operation="" /> </extraparam> </COMPONENT> @@ -46,7 +46,7 @@ <TGConnectingPoint num="6" id="19" /> <TGConnectingPoint num="7" id="20" /> <extraparam> -<Data isAttacker="No" daemon="false" Operation="" /> +<Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="" Operation="" /> </extraparam> </COMPONENT> <SUBCOMPONENT type="1203" id="12" > @@ -58,7 +58,7 @@ <infoparam name="Primitive port" value="Channel ch" /> <TGConnectingPoint num="0" id="11" /> <extraparam> -<Prop commName="ch" 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="-1" /> +<Prop commName="ch" 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="1" checkStrongAuthStatus="1" vc="-1" /> <Type type="0" typeOther="" /> <Type type="0" typeOther="" /> <Type type="0" typeOther="" /> @@ -82,7 +82,7 @@ <TGConnectingPoint num="6" id="30" /> <TGConnectingPoint num="7" id="31" /> <extraparam> -<Data isAttacker="No" daemon="false" Operation="" /> +<Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="" Operation="" /> </extraparam> </COMPONENT> <SUBCOMPONENT type="1203" id="23" > @@ -94,7 +94,7 @@ <infoparam name="Primitive port" value="Channel ch" /> <TGConnectingPoint num="0" id="22" /> <extraparam> -<Prop commName="ch" 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="-1" /> +<Prop commName="ch" 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="1" checkStrongAuthStatus="1" vc="-1" /> <Type type="0" typeOther="" /> <Type type="0" typeOther="" /> <Type type="0" typeOther="" /> @@ -118,7 +118,7 @@ <TGConnectingPoint num="6" id="39" /> <TGConnectingPoint num="7" id="40" /> <extraparam> -<Data isAttacker="No" daemon="false" Operation="" /> +<Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="" Operation="" /> </extraparam> </COMPONENT> @@ -137,7 +137,7 @@ <TGConnectingPoint num="6" id="48" /> <TGConnectingPoint num="7" id="49" /> <extraparam> -<Data isAttacker="No" daemon="false" Operation="" /> +<Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="" Operation="" /> </extraparam> </COMPONENT> @@ -525,16 +525,16 @@ <TGConnectingPoint num="23" id="180" /> <extraparam> <info stereotype="FPGA" nodeName="FPGA0" /> -<attributes capacity="100" byteDataSize="4" mappingPenalty="0" reconfigurationTime="50" goIdleTime="10" maxConsecutiveIdleCycles="10" execiTime="1" execcTime="1" clockRatio="1" operation ="" scheduling ="Task1,Task2;Task4;Task3;Task5" /> +<attributes capacity="100" byteDataSize="4" mappingPenalty="0" reconfigurationTime="50" goIdleTime="10" maxConsecutiveIdleCycles="10" execiTime="1" execcTime="1" clockRatio="1" operation ="" scheduling ="Task1; Task2;Task3 Task4;Task5" /> </extraparam> </COMPONENT> <SUBCOMPONENT type="1101" id="120" > <father id="181" num="0" /> -<cdparam x="329" y="277" /> -<sizeparam width="149" height="39" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="116" y="276" /> +<sizeparam width="149" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="213" minY="0" maxY="216" /> -<infoparam name="TGComponent" value="Application::Task5" /> +<cdrectangleparam minX="0" maxX="213" minY="0" maxY="215" /> +<infoparam name="TGComponent" value="Application::Task4" /> <TGConnectingPoint num="0" id="112" /> <TGConnectingPoint num="1" id="113" /> <TGConnectingPoint num="2" id="114" /> @@ -544,16 +544,16 @@ <TGConnectingPoint num="6" id="118" /> <TGConnectingPoint num="7" id="119" /> <extraparam> -<info value="Application::Task5" taskName="Task5" referenceTaskName="Application" priority="0" operationMEC="Task5" fatherComponentMECType="0" /> +<info value="Application::Task4" taskName="Task4" referenceTaskName="Application" priority="0" operationMEC="Task4" fatherComponentMECType="0" /> </extraparam> </SUBCOMPONENT> <SUBCOMPONENT type="1101" id="129" > <father id="181" num="1" /> -<cdparam x="329" y="120" /> +<cdparam x="219" y="189" /> <sizeparam width="149" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="0" maxX="213" minY="0" maxY="215" /> -<infoparam name="TGComponent" value="Application::Task2" /> +<infoparam name="TGComponent" value="Application::Task3" /> <TGConnectingPoint num="0" id="121" /> <TGConnectingPoint num="1" id="122" /> <TGConnectingPoint num="2" id="123" /> @@ -563,7 +563,7 @@ <TGConnectingPoint num="6" id="127" /> <TGConnectingPoint num="7" id="128" /> <extraparam> -<info value="Application::Task2" taskName="Task2" referenceTaskName="Application" priority="0" operationMEC="Task2" fatherComponentMECType="0" /> +<info value="Application::Task3" taskName="Task3" referenceTaskName="Application" priority="0" operationMEC="Task3" fatherComponentMECType="0" /> </extraparam> </SUBCOMPONENT> <SUBCOMPONENT type="1101" id="138" > @@ -587,11 +587,11 @@ </SUBCOMPONENT> <SUBCOMPONENT type="1101" id="147" > <father id="181" num="3" /> -<cdparam x="219" y="189" /> +<cdparam x="329" y="120" /> <sizeparam width="149" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="0" maxX="213" minY="0" maxY="215" /> -<infoparam name="TGComponent" value="Application::Task3" /> +<infoparam name="TGComponent" value="Application::Task2" /> <TGConnectingPoint num="0" id="139" /> <TGConnectingPoint num="1" id="140" /> <TGConnectingPoint num="2" id="141" /> @@ -601,16 +601,16 @@ <TGConnectingPoint num="6" id="145" /> <TGConnectingPoint num="7" id="146" /> <extraparam> -<info value="Application::Task3" taskName="Task3" referenceTaskName="Application" priority="0" operationMEC="Task3" fatherComponentMECType="0" /> +<info value="Application::Task2" taskName="Task2" referenceTaskName="Application" priority="0" operationMEC="Task2" fatherComponentMECType="0" /> </extraparam> </SUBCOMPONENT> <SUBCOMPONENT type="1101" id="156" > <father id="181" num="4" /> -<cdparam x="116" y="276" /> -<sizeparam width="149" height="40" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="329" y="277" /> +<sizeparam width="149" height="39" minWidth="100" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="213" minY="0" maxY="215" /> -<infoparam name="TGComponent" value="Application::Task4" /> +<cdrectangleparam minX="0" maxX="213" minY="0" maxY="216" /> +<infoparam name="TGComponent" value="Application::Task5" /> <TGConnectingPoint num="0" id="148" /> <TGConnectingPoint num="1" id="149" /> <TGConnectingPoint num="2" id="150" /> @@ -620,7 +620,7 @@ <TGConnectingPoint num="6" id="154" /> <TGConnectingPoint num="7" id="155" /> <extraparam> -<info value="Application::Task4" taskName="Task4" referenceTaskName="Application" priority="0" operationMEC="Task4" fatherComponentMECType="0" /> +<info value="Application::Task5" taskName="Task5" referenceTaskName="Application" priority="0" operationMEC="Task5" fatherComponentMECType="0" /> </extraparam> </SUBCOMPONENT>