diff --git a/simulators/c++2/src_simulator/arch/Bus.cpp b/simulators/c++2/src_simulator/arch/Bus.cpp index bf77be113fb884c08bc293e089f5fd291659aa0b..cdce8b4a006599a30ec56fc091e56212e5c1c5f8 100644 --- a/simulators/c++2/src_simulator/arch/Bus.cpp +++ b/simulators/c++2/src_simulator/arch/Bus.cpp @@ -117,7 +117,7 @@ void Bus::calcStartTimeLength(TMLTime iTimeSlice) const{ TMLTime tmp2 = static_cast<TMLTime>(_nextTransaction->getPenalties()); TMLTime tmp3 = static_cast<TMLTime>(_nextTransaction->getStartTime()); //std::cout << "BUS ------------- tmp1:" << tmp1 << " tmp2:" << tmp2 << " tmp3:" << tmp3 << "\n"; - if (tmp1 < tmp2) { tmp1 = tmp2;} +// if (tmp1 < tmp2) { tmp1 = tmp2;} //_nextTransaction->setStartTime(max(tmp1+tmp2, tmp3)); diff --git a/simulators/c++2/src_simulator/arch/FPGA.cpp b/simulators/c++2/src_simulator/arch/FPGA.cpp index 5a8b58e349299e1ecad1d78fe130ba1493a739cb..5ea8f21913c4c456b08ca427db29b839ff5bba3b 100644 --- a/simulators/c++2/src_simulator/arch/FPGA.cpp +++ b/simulators/c++2/src_simulator/arch/FPGA.cpp @@ -50,18 +50,20 @@ FPGA::FPGA( ID iID, std::string iName, WorkloadSource* iScheduler, - TMLTime iReconfigTime, + TMLTime iReconfigTime, + TMLTime iTimePerCycle, unsigned int iChangeIdleModeCycles, unsigned int iCyclesBeforeIdle, unsigned int iCyclesPerExeci, unsigned int iCyclesPerExecc ) : SchedulableDevice(iID, iName, iScheduler) ,_reconfigTime(iReconfigTime) + ,_timePerCycle(iTimePerCycle) ,_masterNextTransaction(0) ,_lastTransaction(0) - ,_changeIdleModeCycles(iChangeIdleModeCycles) - ,_cyclesBeforeIdle(iCyclesBeforeIdle) - ,_cyclesPerExeci(iCyclesPerExeci) - ,_cyclesPerExecc(iCyclesPerExecc) + ,_changeIdleModeCycles(iChangeIdleModeCycles * _timePerCycle) + ,_cyclesBeforeIdle(iCyclesBeforeIdle * _timePerCycle) + ,_cyclesPerExeci(iCyclesPerExeci * _timePerCycle) + ,_cyclesPerExecc(iCyclesPerExecc * _timePerCycle) ,_reconfigNumber(0) ,_maxEndTime(0) @@ -152,8 +154,10 @@ void FPGA::calcStartTimeLength(){ #ifdef BUS_ENABLED if (_masterNextTransaction==0){ #endif - _nextTransaction->setLength(max(_nextTransaction->getVirtualLength(),(TMLTime)1)); + _nextTransaction->setLength(max(_nextTransaction->getVirtualLength() * _cyclesPerExeci,(TMLTime)1)); +#ifdef BUS_ENABLED } +#endif } @@ -187,7 +191,7 @@ std::cout<<"fpga truncateNextTransAt"<<std::endl; if (iTime <= _nextTransaction->getStartTime()) return 0; //before: <= TMLTime aNewDuration = iTime - _nextTransaction->getStartTime(); _nextTransaction->setVirtualLength(max((TMLTime)(aNewDuration), (TMLTime)1)); - _nextTransaction->setLength(_nextTransaction->getVirtualLength()); + _nextTransaction->setLength(_nextTransaction->getVirtualLength() * _cyclesPerExeci); } return _nextTransaction->getOverallLength(); } @@ -257,14 +261,16 @@ std::cout<<"fpga addTransaction"<<std::endl; if(!_nextTransaction->getCommand()->getTask()->getIsFirstTranExecuted() && (_tempTranName.find("Read") == std::string::npos && _tempTranName.find("Wait") == std::string::npos && _tempTranName.find("Notified") == std::string::npos)) { unsigned int _tempStartTime = _nextTransaction->getStartTime(); - _nextTransaction->setStartTime(_tempStartTime + _reconfigNumber * _reconfigTime); + _nextTransaction->setStartTime(_tempStartTime + _reconfigNumber * _reconfigTime * _cyclesPerExeci); _maxEndTime=max(_maxEndTime,_nextTransaction->getEndTime()); + _transactListReconfig.push_back(_nextTransaction); } _nextTransaction->getCommand()->getTask()->setIsFirstTranExecuted(true); } else if(_tempReconfigNumber>0) { if(!_nextTransaction->getCommand()->getTask()->getIsFirstTranExecuted()) { - _nextTransaction->setStartTime(_maxEndTime + _tempReconfigNumber * _reconfigTime); + _nextTransaction->setStartTime(_maxEndTime + _tempReconfigNumber * _reconfigTime * _cyclesPerExeci); _nextTransaction->getCommand()->getTask()->setIsFirstTranExecuted(true); + _transactListReconfig.push_back(_nextTransaction); } } else{ @@ -395,6 +401,7 @@ void FPGA::reset(){ SchedulableDevice::reset(); _scheduler->reset(); _transactList.clear(); + if (!_transactListReconfig.empty()) _transactListReconfig.clear(); _nextTransaction=0; _lastTransaction=0; _masterNextTransaction=0; @@ -660,9 +667,17 @@ std::map<TMLTask*, std::string> FPGA::HWTIMELINE2HTML(std::ostringstream& myfile std::cout<<"in!!"<<_htmlCurrTask->toString()<<std::endl; #endif TMLTransaction* aCurrTrans = *i; + bool reconfigCheck = false; + if (!_transactListReconfig.empty()) { + std::vector<TMLTransaction*>::iterator it = std::find (_transactListReconfig.begin(), _transactListReconfig.end(), aCurrTrans); + if (it != _transactListReconfig.end()) { + reconfigCheck = true; + } + } + unsigned int aBlanks = aCurrTrans->getStartTime() - aCurrTime; bool isBlankTooBig = false; - std::ostringstream tempString; + std::ostringstream tempString, tempReconfigIdle; int tempBlanks; if(_htmlCurrTask->getEndLastTransaction() >= MIN_RESIZE_THRESHOLD && aBlanks > MIN_RESIZE_TRANS) { int newBlanks = 0; @@ -679,6 +694,11 @@ std::map<TMLTask*, std::string> FPGA::HWTIMELINE2HTML(std::ostringstream& myfile isBlankTooBig = true; changeCssClass = true; } + if (reconfigCheck) { + tempReconfigIdle << "dynamic reconfiguration"; + } else { + tempReconfigIdle << " "; + } if ( aBlanks >= 0 && (!(aCurrTrans->getCommand()->getActiveDelay()) && aCurrTrans->getCommand()->isDelayTransaction()) ){ listScale.push_back(aBlanks+1); tempString << tempBlanks+1; @@ -686,21 +706,20 @@ std::map<TMLTask*, std::string> FPGA::HWTIMELINE2HTML(std::ostringstream& myfile listScaleTime.push_back(aCurrTrans->getStartTime()+1); } if (isBlankTooBig){ - myfile << "<td colspan=\""<< aBlanks+1 <<"\" title=\"idle time\" class=\"not\">" << "<- idle " + tempString.str() + " ->" << "</td>"; + myfile << "<td colspan=\""<< aBlanks+1 <<"\" title=\"idle time " + tempReconfigIdle.str() + "\" class=\"not\">" << "<- idle " + tempString.str() + " ->" << "</td>"; } else { - myfile << "<td colspan=\""<< aBlanks+1 <<"\" title=\"idle time\" class=\"not\"></td>"; + myfile << "<td colspan=\""<< aBlanks+1 <<"\" title=\"idle time " + tempReconfigIdle.str() + "\" class=\"not\"></td>"; } - } - else if ( aBlanks > 0 ){ + } else if ( aBlanks > 0 ){ listScale.push_back(aBlanks); tempString << tempBlanks; if(aCurrTrans->getStartTime() > listScaleTime.back()){ listScaleTime.push_back(aCurrTrans->getStartTime()); } if (isBlankTooBig){ - myfile << "<td colspan=\""<< aBlanks <<"\" title=\"idle time\" class=\"not\">" << "<- idle " + tempString.str() + " ->" << "</td>"; + myfile << "<td colspan=\""<< aBlanks <<"\" title=\"idle time " + tempReconfigIdle.str() + "\" class=\"not\">" << "<- idle " + tempString.str() + " ->" << "</td>"; } else { - myfile << "<td colspan=\""<< aBlanks <<"\" title=\"idle time\" class=\"not\"></td>"; + myfile << "<td colspan=\""<< aBlanks <<"\" title=\"idle time " + tempReconfigIdle.str() + "\" class=\"not\"></td>"; } } diff --git a/simulators/c++2/src_simulator/arch/FPGA.h b/simulators/c++2/src_simulator/arch/FPGA.h index 602f84305d2827a5f8a891f59a8a53699a64fb17..85874ea8a445a7fe619441e30a0411161bcc8048 100644 --- a/simulators/c++2/src_simulator/arch/FPGA.h +++ b/simulators/c++2/src_simulator/arch/FPGA.h @@ -78,7 +78,7 @@ public: \param iCyclesPerExecc Cycles needed to execute one EXECC unit */ - FPGA(ID iID, std::string iName, WorkloadSource* iScheduler, TMLTime iReconfigTime, unsigned int iChangeIdleModeCycles, unsigned int iCyclesBeforeIdle,unsigned int iCyclesPerExeci, unsigned int iCyclesPerExecc); + FPGA(ID iID, std::string iName, WorkloadSource* iScheduler, TMLTime iReconfigTime, TMLTime iTimePerCycle, unsigned int iChangeIdleModeCycles, unsigned int iCyclesBeforeIdle,unsigned int iCyclesPerExeci, unsigned int iCyclesPerExecc); ///Destructor virtual ~FPGA(); ///Determines the next FPGA transaction to be executed @@ -164,6 +164,7 @@ protected: void calcStartTimeLength(); TMLTime _reconfigTime; + TMLTime _timePerCycle; ///Determines the correct bus master of this CPU connected to the same bus as bus master iDummy @@ -199,6 +200,7 @@ protected: unsigned int _reconfigNumber; unsigned int maxScale; TMLTime _maxEndTime; + TransactionList _transactListReconfig; // contains the first trans of each tasks when fpga scheduling is enable unsigned int nextCellClassIndex; std::map<TMLTask*, std::string> taskCellClasses; ///State variable for the VCD output diff --git a/simulators/c++2/src_simulator/arch/SingleCoreCPU.cpp b/simulators/c++2/src_simulator/arch/SingleCoreCPU.cpp index 09ec16872d71e9b901fe15f8f188a61a26f33ff7..fc80dd3dea97fb22ffc7651604ab0b58ce357322 100644 --- a/simulators/c++2/src_simulator/arch/SingleCoreCPU.cpp +++ b/simulators/c++2/src_simulator/arch/SingleCoreCPU.cpp @@ -172,6 +172,8 @@ void SingleCoreCPU::calcStartTimeLength(TMLTime iTimeSlice){ //std::cout << "starttime=" << _nextTransaction->getStartTime() << "\n"; if ((_nextTransaction->getStartTime()-_endSchedule) >=_timeBeforeIdle){ _nextTransaction->setIdlePenalty(_changeIdleModeTime); + } else { + _nextTransaction->setIdlePenalty(0); } #endif } diff --git a/src/main/java/tmltranslator/tomappingsystemc2/DiploSimulatorCodeGenerator.java b/src/main/java/tmltranslator/tomappingsystemc2/DiploSimulatorCodeGenerator.java index bcb99f76edf187445b1dee08013a58cadb69045d..593cdb0a4a781db880714817434941a8f0046a94 100644 --- a/src/main/java/tmltranslator/tomappingsystemc2/DiploSimulatorCodeGenerator.java +++ b/src/main/java/tmltranslator/tomappingsystemc2/DiploSimulatorCodeGenerator.java @@ -360,7 +360,7 @@ public class DiploSimulatorCodeGenerator implements IDiploSimulatorCodeGenerator declaration += "FPGA* " + hwFpgaInstName + " = new FPGA(" + hwFpgaNode.getID() + ", \"" + namesGen.hwFpgaName(hwFpgaNode) + "\", " + schedulerInstName + ", "; - declaration += hwFpgaNode.reconfigurationTime + ", " + hwFpgaNode.goIdleTime + ", " + hwFpgaNode.maxConsecutiveIdleCycles + ", " + declaration += hwFpgaNode.reconfigurationTime + ", " + hwFpgaNode.clockRatio + ", " + hwFpgaNode.goIdleTime + ", " + hwFpgaNode.maxConsecutiveIdleCycles + ", " + hwFpgaNode.execiTime + ", " + hwFpgaNode.execcTime + ")" + SCCR; // DB: Issue #21 TODO: Should there be a scheduler?? Given the for loop, cores diff --git a/ttool/src/test/java/tmltranslator/FpgaClockDividerTest.java b/ttool/src/test/java/tmltranslator/FpgaClockDividerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..b1fa9178b233d6a576b17f3dd807d7c987ca8d8c --- /dev/null +++ b/ttool/src/test/java/tmltranslator/FpgaClockDividerTest.java @@ -0,0 +1,201 @@ +package tmltranslator; + +import common.ConfigurationTTool; +import common.SpecConfigTTool; +import graph.AUTGraph; +import myutil.FileUtils; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import req.ebrdd.EBRDD; +import tepe.TEPE; +import tmltranslator.tomappingsystemc2.DiploSimulatorFactory; +import tmltranslator.tomappingsystemc2.IDiploSimulatorCodeGenerator; +import tmltranslator.tomappingsystemc2.Penalties; +import ui.AbstractUITest; +import ui.TDiagramPanel; +import ui.TMLArchiPanel; +import ui.tmldd.TMLArchiDiagramPanel; + +import java.io.BufferedReader; +import java.io.File; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.List; + +import static org.junit.Assert.assertTrue; + +public class FpgaClockDividerTest extends AbstractUITest { + + private final String DIR_GEN = "test_diplo_simulator/"; + private final String [] MODELS_FPGA_CLOCK_DIVIDER = {"fpga_clock_divider"}; + private String SIM_DIR; + private final int [] NB_OF_FCD_STATES = {32}; + private final int [] NB_OF_FCD_TRANSTIONS = {31}; + private final int [] MIN_FCD_CYCLES = {220}; + private final int [] MAX_FCD_CYCLES = {220}; + private static String CPP_DIR = "../../../../simulators/c++2/"; + private static String mappingName = "ArchitectureSimple"; + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + RESOURCES_DIR = getBaseResourcesDir() + "/tmltranslator/simulator/"; + } + + public FpgaClockDividerTest() { + super(); + } + + @Before + public void setUp() throws Exception { + SIM_DIR = getBaseResourcesDir() + CPP_DIR; + } + + @Test(timeout = 600000) + public void testMulticoreNotHangingWhenSaveTrace() throws Exception { + for (int i = 0; i < MODELS_FPGA_CLOCK_DIVIDER.length; i++) { + String s = MODELS_FPGA_CLOCK_DIVIDER[i]; + SIM_DIR = DIR_GEN + s + "/"; + System.out.println("executing: checking syntax " + s); + // select architecture tab + mainGUI.openProjectFromFile(new File(RESOURCES_DIR + s + ".xml")); + TMLArchiPanel _tab = findArchiPanel(mappingName); + for (TDiagramPanel tdp : _tab.getPanels()) { + if (tdp instanceof TMLArchiDiagramPanel) { + mainGUI.selectTab(tdp); + break; + } + } + + mainGUI.checkModelingSyntax(true); + TMLMapping tmap = mainGUI.gtm.getTMLMapping(); + TMLSyntaxChecking syntax = new TMLSyntaxChecking(tmap); + syntax.checkSyntax(); + assertTrue(syntax.hasErrors() == 0); + // Generate SystemC code + System.out.println("executing: sim code gen for " + s); + final IDiploSimulatorCodeGenerator tml2systc; + List<EBRDD> al = new ArrayList<EBRDD>(); + List<TEPE> alTepe = new ArrayList<TEPE>(); + tml2systc = DiploSimulatorFactory.INSTANCE.createCodeGenerator(tmap, al, alTepe); + tml2systc.setModelName(s); + String error = tml2systc.generateSystemC(false, true); + assertTrue(error == null); + + File directory = new File(SIM_DIR); + if (!directory.exists()) { + directory.mkdirs(); + } + + // Putting sim files + System.out.println("SIM executing: sim lib code copying for " + s); + ConfigurationTTool.SystemCCodeDirectory = getBaseResourcesDir() + CPP_DIR; + boolean simFiles = SpecConfigTTool.checkAndCreateSystemCDir(SIM_DIR); + + System.out.println("SIM executing: sim lib code copying done with result " + simFiles); + assertTrue(simFiles); + + System.out.println("SIM Saving file in: " + SIM_DIR); + tml2systc.saveFile(SIM_DIR, "appmodel"); + + // Compile it + System.out.println("executing: compile"); + Process proc; + BufferedReader proc_in; + String str; + boolean mustRecompileAll; + Penalties penalty = new Penalties(SIM_DIR + "src_simulator"); + int changed = penalty.handlePenalties(false); + + if (changed == 1) { + mustRecompileAll = true; + } else { + mustRecompileAll = false; + } + + if (mustRecompileAll) { + System.out.println("executing: " + "make -C " + SIM_DIR + " clean"); + try { + proc = Runtime.getRuntime().exec("make -C " + SIM_DIR + " clean"); + proc_in = new BufferedReader(new InputStreamReader(proc.getInputStream())); + 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: " + "make -C " + SIM_DIR + " clean"); + return; + } + } + + System.out.println("executing: " + "make -C " + SIM_DIR); + try { + proc = Runtime.getRuntime().exec("make -C " + SIM_DIR + ""); + proc_in = new BufferedReader(new InputStreamReader(proc.getInputStream())); + + monitorError(proc); + + 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: " + "make -C " + SIM_DIR); + return; + } + + System.out.println("SUCCESS: executing: " + "make -C " + SIM_DIR); + + String graphPath = SIM_DIR + "testgraph_" + s; + try { + + String[] params = new String[3]; + + params[0] = "./" + SIM_DIR + "run.x"; + params[1] = "-cmd"; + params[2] = "1 0; 1 7 100 100 " + graphPath; + proc = Runtime.getRuntime().exec(params); + proc_in = new BufferedReader(new InputStreamReader(proc.getInputStream())); + + monitorError(proc); + + 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 " + e.getCause()); + return; + } + + File graphFile = new File(graphPath + ".aut"); + String graphData = ""; + try { + graphData = FileUtils.loadFileData(graphFile); + } catch (Exception e) { + assertTrue(false); + } + + AUTGraph graph = new AUTGraph(); + graph.buildGraph(graphData); + + // States and transitions + System.out.println("executing: nb states of " + s + " " + graph.getNbOfStates()); + assertTrue(NB_OF_FCD_STATES[i] == graph.getNbOfStates()); + System.out.println("executing: nb transitions of " + s + " " + graph.getNbOfTransitions()); + assertTrue(NB_OF_FCD_TRANSTIONS[i] == graph.getNbOfTransitions()); + + // Min and max cycles + int minValue = graph.getMinValue("allCPUsFPGAsTerminated"); + System.out.println("executing: minvalue of " + s + " " + minValue); + assertTrue(MIN_FCD_CYCLES[i] == minValue); + + int maxValue = graph.getMaxValue("allCPUsFPGAsTerminated"); + System.out.println("executing: maxvalue of " + s + " " + maxValue); + assertTrue(MAX_FCD_CYCLES[i] == maxValue); + } + } +} \ No newline at end of file diff --git a/ttool/src/test/resources/tmltranslator/simulator/fpga_clock_divider.xml b/ttool/src/test/resources/tmltranslator/simulator/fpga_clock_divider.xml new file mode 100644 index 0000000000000000000000000000000000000000..e50167577f421b51af8df61a39613b9009149178 --- /dev/null +++ b/ttool/src/test/resources/tmltranslator/simulator/fpga_clock_divider.xml @@ -0,0 +1,796 @@ +<?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="true" OPEN_DIAG_DIPLO_SIM="false" LAST_SELECTED_MAIN_TAB="1" LAST_SELECTED_SUB_TAB="0"> + +<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="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="322" y="287" id="7" /> +<P2 x="427" y="287" id="20" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="2" > +<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="5" /> +<P2 x="427" y="223" id="18" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="3" > +<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="577" y="292" id="24" /> +<P2 x="683" y="289" id="37" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="126" id="4" > +<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="22" /> +<P2 x="683" y="225" id="35" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<COMPONENT type="1202" id="17" uid="54a56387-8e3f-466e-8313-a55cc1278d79" > +<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="Src" /> +<TGConnectingPoint num="0" id="9" /> +<TGConnectingPoint num="1" id="10" /> +<TGConnectingPoint num="2" id="11" /> +<TGConnectingPoint num="3" id="12" /> +<TGConnectingPoint num="4" id="13" /> +<TGConnectingPoint num="5" id="14" /> +<TGConnectingPoint num="6" id="15" /> +<TGConnectingPoint num="7" id="16" /> +<extraparam> +<Data isAttacker="No" daemon="false" periodic="false" periodValue="" unit="ns" Operation="" /> +<Attribute access="2" id="size" value="10" type="0" typeOther="" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1203" id="6" uid="a7edfb00-dc4e-4ffc-aba6-8dbaed6ff726" > +<father id="17" 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="Channel chToT1" /> +<TGConnectingPoint num="0" id="5" /> +<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" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="8" uid="55c1652d-4d90-44bd-b912-d0506fe1b76a" > +<father id="17" 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="-13" maxX="187" minY="-13" maxY="137" /> +<infoparam name="Primitive port" value="Event evtToT1" /> +<TGConnectingPoint num="0" id="7" /> +<extraparam> +<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> +</SUBCOMPONENT> + +<COMPONENT type="1202" id="34" uid="93c5f100-cb90-4113-b7b5-22e2963e8fd3" > +<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="26" /> +<TGConnectingPoint num="1" id="27" /> +<TGConnectingPoint num="2" id="28" /> +<TGConnectingPoint num="3" id="29" /> +<TGConnectingPoint num="4" id="30" /> +<TGConnectingPoint num="5" id="31" /> +<TGConnectingPoint num="6" id="32" /> +<TGConnectingPoint num="7" id="33" /> +<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="19" uid="05aa10e4-8bc7-4a5a-bcf8-055e3bb92ffb" > +<father id="34" 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="137" minY="-13" maxY="137" /> +<infoparam name="Primitive port" value="Channel chToT1" /> +<TGConnectingPoint num="0" id="18" /> +<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="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="21" uid="599e703e-5d2d-49f6-b901-ada34dc77272" > +<father id="34" 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="137" minY="-13" maxY="137" /> +<infoparam name="Primitive port" value="Event evtToT1" /> +<TGConnectingPoint num="0" id="20" /> +<extraparam> +<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="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="23" uid="4c101eeb-8107-4c17-8f6c-0b2e5e02cad2" > +<father id="34" 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="22" /> +<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="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="25" uid="076950b3-844c-4642-87a8-66efdcfa82ed" > +<father id="34" 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="Event evtToT2" /> +<TGConnectingPoint num="0" id="24" /> +<extraparam> +<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="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1202" id="47" uid="636dd006-0663-4041-a6b9-2cea3ca21892" > +<cdparam x="683" y="179" /> +<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="39" /> +<TGConnectingPoint num="1" id="40" /> +<TGConnectingPoint num="2" id="41" /> +<TGConnectingPoint num="3" id="42" /> +<TGConnectingPoint num="4" id="43" /> +<TGConnectingPoint num="5" id="44" /> +<TGConnectingPoint num="6" id="45" /> +<TGConnectingPoint num="7" id="46" /> +<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="36" uid="2394f5c1-7422-4c84-8b51-d261b3ddad06" > +<father id="47" 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="137" minY="-13" maxY="137" /> +<infoparam name="Primitive port" value="Channel chToT2" /> +<TGConnectingPoint num="0" id="35" /> +<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="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +<Type type="0" typeOther="" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1203" id="38" uid="80da20bf-10f7-4d29-a4a2-3a91060850c5" > +<father id="47" 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="37" /> +<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="Src" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" > +<COMPONENT type="1008" id="50" uid="ced74e11-299a-42ed-8794-4b1d8a9ea49a" > +<cdparam x="276" y="192" /> +<sizeparam width="112" 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="evtToT1(size)" /> +<TGConnectingPoint num="0" id="48" /> +<TGConnectingPoint num="1" id="49" /> +<extraparam> +<Data eventName="evtToT1" nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1001" id="52" uid="996a61b3-8d22-4be8-bf6c-10031923b9a5" > +<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="51" /> +</COMPONENT> + +<COMPONENT type="1006" id="55" uid="b0703f2b-9035-487f-b789-7b55e6fad1c9" > +<cdparam x="278" y="245" /> +<sizeparam width="108" 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(size)" /> +<TGConnectingPoint num="0" id="53" /> +<TGConnectingPoint num="1" id="54" /> +<extraparam> +<Data channelName="chToT1" nbOfSamples="size" secPattern="" isAttacker="No" isEncForm="Yes" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1000" id="57" uid="7c60161f-8c26-4fdf-86e4-dca9c6a25c46" > +<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="56" /> +</COMPONENT> + +<CONNECTOR type="115" id="58" > +<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="332" y="217" id="49" /> +<P2 x="332" y="240" id="53" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="59" > +<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="332" y="165" id="56" /> +<P2 x="332" y="187" id="48" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="60" > +<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="332" y="270" id="54" /> +<P2 x="332" y="281" id="51" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</TMLActivityDiagramPanel> + +<TMLActivityDiagramPanel name="T1" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" > +<COMPONENT type="1026" id="64" uid="dda6f802-2887-401b-80c0-71d8c1360efb" > +<cdparam x="435" y="258" /> +<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="delay" value="null" /> +<TGConnectingPoint num="0" id="62" /> +<TGConnectingPoint num="1" id="63" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="61" uid="b29312ba-2bdc-4d15-b382-3f32e33de0b2" > +<father id="64" num="0" /> +<cdparam x="450" y="278" /> +<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" /> +<extraparam> +<TimeDelay minDelay="10" maxDelay="nope" hasMaxDelay="false" isActiveDelay="false" unit="ns" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1001" id="66" uid="68a349b5-a863-475f-bede-0181a7fdba5b" > +<cdparam x="413" y="405" /> +<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="65" /> +</COMPONENT> + +<COMPONENT type="1006" id="69" uid="6f82076a-f36f-4c8a-87ab-9c90aba68870" > +<cdparam x="369" y="360" /> +<sizeparam width="108" 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(size)" /> +<TGConnectingPoint num="0" id="67" /> +<TGConnectingPoint num="1" id="68" /> +<extraparam> +<Data channelName="chToT2" nbOfSamples="size" secPattern="" isAttacker="No" isEncForm="Yes" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1008" id="72" uid="e18e25fa-0707-403d-bdb5-0333611a770c" > +<cdparam x="367" y="305" /> +<sizeparam width="112" 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="evtToT2(size)" /> +<TGConnectingPoint num="0" id="70" /> +<TGConnectingPoint num="1" id="71" /> +<extraparam> +<Data eventName="evtToT2" nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1013" id="76" uid="c4e6fefa-e88a-411a-a734-6055dd808e9d" > +<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="74" /> +<TGConnectingPoint num="1" id="75" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="73" uid="63b1987b-94b2-4aca-a004-48fcc9ec4573" > +<father id="76" 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="size" /> +</SUBCOMPONENT> + +<COMPONENT type="1009" id="79" uid="555accbc-9632-4936-897d-677fc633f40b" > +<cdparam x="366" y="162" /> +<sizeparam width="112" 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="77" /> +<TGConnectingPoint num="1" id="78" /> +<extraparam> +<Data channelName="chToT1" nbOfSamples="size" secPattern="" isAttacker="No" isEncForm="Yes" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1010" id="82" uid="4d60a7ea-3a49-47ff-987c-48db7dfc40a2" > +<cdparam x="364" y="116" /> +<sizeparam width="116" 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="evtToT1(size) " /> +<TGConnectingPoint num="0" id="80" /> +<TGConnectingPoint num="1" id="81" /> +<extraparam> +<Data eventName="evtToT1" nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1000" id="84" uid="62b2de81-3d66-487b-a160-00d0f995bb74" > +<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="83" /> +</COMPONENT> + +<CONNECTOR type="115" id="85" > +<cdparam x="440" 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="440" y="293" id="63" /> +<P2 x="423" y="300" id="70" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="86" > +<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="83" /> +<P2 x="422" y="111" id="80" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="87" > +<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="141" id="81" /> +<P2 x="422" y="157" id="77" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="88" > +<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="78" /> +<P2 x="422" y="211" id="74" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="89" > +<cdparam x="427" y="330" /> +<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="330" id="71" /> +<P2 x="423" y="355" id="67" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="90" > +<cdparam x="436" y="385" /> +<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="385" id="68" /> +<P2 x="423" y="400" id="65" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="91" > +<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="75" /> +<P2 x="440" y="253" id="62" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</TMLActivityDiagramPanel> + +<TMLActivityDiagramPanel name="T2" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" > +<COMPONENT type="1001" id="93" uid="cc2b8aee-940d-49da-97ab-b25cc72a2d31" > +<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="92" /> +</COMPONENT> + +<COMPONENT type="1013" id="97" uid="ffad4add-973a-4b24-8aa8-8d581881cd40" > +<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="95" /> +<TGConnectingPoint num="1" id="96" /> +</COMPONENT> +<SUBCOMPONENT type="-1" id="94" uid="a4d108ca-9688-4c5c-8399-bb086ec5ae7d" > +<father id="97" 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="size" /> +</SUBCOMPONENT> + +<COMPONENT type="1009" id="100" uid="afa2957a-8992-4dd0-9df7-327cb9ed77d4" > +<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="chToT2(size) " /> +<TGConnectingPoint num="0" id="98" /> +<TGConnectingPoint num="1" id="99" /> +<extraparam> +<Data channelName="chToT2" nbOfSamples="size" secPattern="" isAttacker="No" isEncForm="Yes" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1010" id="103" uid="00b4c2cf-2c86-4835-9961-f3a72bca65da" > +<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="wait event" value="evtToT2(size) " /> +<TGConnectingPoint num="0" id="101" /> +<TGConnectingPoint num="1" id="102" /> +<extraparam> +<Data eventName="evtToT2" nbOfParams="5" /> +<Param index="0" value="size" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1000" id="105" uid="f77f0a02-b19c-47ea-8e5e-339e8c7c3c54" > +<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="104" /> +</COMPONENT> + +<CONNECTOR type="115" id="106" > +<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="96" /> +<P2 x="422" y="438" id="92" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="107" > +<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="104" /> +<P2 x="422" y="111" id="101" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="108" > +<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="141" id="102" /> +<P2 x="422" y="157" id="98" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> +<CONNECTOR type="115" id="109" > +<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="99" /> +<P2 x="422" y="211" id="95" /> +<AutomaticDrawing data="true" /> +</CONNECTOR> + +</TMLActivityDiagramPanel> + +</Modeling> + + + + +<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="1116" id="161" uid="33d6ff5c-6255-4f68-8404-82327ed4bf61" > +<cdparam x="171" y="69" /> +<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="FPGA0" value="name" /> +<TGConnectingPoint num="0" id="137" /> +<TGConnectingPoint num="1" id="138" /> +<TGConnectingPoint num="2" id="139" /> +<TGConnectingPoint num="3" id="140" /> +<TGConnectingPoint num="4" id="141" /> +<TGConnectingPoint num="5" id="142" /> +<TGConnectingPoint num="6" id="143" /> +<TGConnectingPoint num="7" id="144" /> +<TGConnectingPoint num="8" id="145" /> +<TGConnectingPoint num="9" id="146" /> +<TGConnectingPoint num="10" id="147" /> +<TGConnectingPoint num="11" id="148" /> +<TGConnectingPoint num="12" id="149" /> +<TGConnectingPoint num="13" id="150" /> +<TGConnectingPoint num="14" id="151" /> +<TGConnectingPoint num="15" id="152" /> +<TGConnectingPoint num="16" id="153" /> +<TGConnectingPoint num="17" id="154" /> +<TGConnectingPoint num="18" id="155" /> +<TGConnectingPoint num="19" id="156" /> +<TGConnectingPoint num="20" id="157" /> +<TGConnectingPoint num="21" id="158" /> +<TGConnectingPoint num="22" id="159" /> +<TGConnectingPoint num="23" id="160" /> +<extraparam> +<info stereotype="FPGA" nodeName="FPGA0" /> +<attributes capacity="100" byteDataSize="4" mappingPenalty="0" reconfigurationTime="50" goIdleTime="10" maxConsecutiveIdleCycles="10" execiTime="1" execcTime="1" clockRatio="2" operation ="" scheduling ="" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="1101" id="118" uid="f1e00327-76a5-452a-a0b3-aabdca8600f3" > +<father id="161" num="0" /> +<cdparam x="197" y="102" /> +<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="110" /> +<TGConnectingPoint num="1" id="111" /> +<TGConnectingPoint num="2" id="112" /> +<TGConnectingPoint num="3" id="113" /> +<TGConnectingPoint num="4" id="114" /> +<TGConnectingPoint num="5" id="115" /> +<TGConnectingPoint num="6" id="116" /> +<TGConnectingPoint num="7" id="117" /> +<extraparam> +<info value="ApplicationSimple::T1" taskName="T1" referenceTaskName="ApplicationSimple" priority="0" operationMEC="T1" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="127" uid="0c0ac20d-5680-4120-bab4-7045bf0d682e" > +<father id="161" num="1" /> +<cdparam x="203" y="151" /> +<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="119" /> +<TGConnectingPoint num="1" id="120" /> +<TGConnectingPoint num="2" id="121" /> +<TGConnectingPoint num="3" id="122" /> +<TGConnectingPoint num="4" id="123" /> +<TGConnectingPoint num="5" id="124" /> +<TGConnectingPoint num="6" id="125" /> +<TGConnectingPoint num="7" id="126" /> +<extraparam> +<info value="ApplicationSimple::T2" taskName="T2" referenceTaskName="ApplicationSimple" priority="0" operationMEC="T2" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="1101" id="136" uid="6922a54e-36e1-495c-a873-f39717b6a98b" > +<father id="161" num="2" /> +<cdparam x="196" y="218" /> +<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="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" /> +<extraparam> +<info value="ApplicationSimple::Src" taskName="Src" referenceTaskName="ApplicationSimple" priority="0" operationMEC="Src" fatherComponentMECType="0" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="1105" id="186" uid="f8c3b5c1-0646-4f03-8234-1136af466d13" > +<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="162" /> +<TGConnectingPoint num="1" id="163" /> +<TGConnectingPoint num="2" id="164" /> +<TGConnectingPoint num="3" id="165" /> +<TGConnectingPoint num="4" id="166" /> +<TGConnectingPoint num="5" id="167" /> +<TGConnectingPoint num="6" id="168" /> +<TGConnectingPoint num="7" id="169" /> +<TGConnectingPoint num="8" id="170" /> +<TGConnectingPoint num="9" id="171" /> +<TGConnectingPoint num="10" id="172" /> +<TGConnectingPoint num="11" id="173" /> +<TGConnectingPoint num="12" id="174" /> +<TGConnectingPoint num="13" id="175" /> +<TGConnectingPoint num="14" id="176" /> +<TGConnectingPoint num="15" id="177" /> +<TGConnectingPoint num="16" id="178" /> +<TGConnectingPoint num="17" id="179" /> +<TGConnectingPoint num="18" id="180" /> +<TGConnectingPoint num="19" id="181" /> +<TGConnectingPoint num="20" id="182" /> +<TGConnectingPoint num="21" id="183" /> +<TGConnectingPoint num="22" id="184" /> +<TGConnectingPoint num="23" id="185" /> +<extraparam> +<info stereotype="MEMORY" nodeName="Memory0" /> +<attributes byteDataSize="4" memorySize="1024" clockRatio="2" bufferType="0" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="1102" id="211" uid="2ec2a3b3-7027-4e01-a1b9-d61f986b9914" > +<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="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" /> +<TGConnectingPoint num="8" id="195" /> +<TGConnectingPoint num="9" id="196" /> +<TGConnectingPoint num="10" id="197" /> +<TGConnectingPoint num="11" id="198" /> +<TGConnectingPoint num="12" id="199" /> +<TGConnectingPoint num="13" id="200" /> +<TGConnectingPoint num="14" id="201" /> +<TGConnectingPoint num="15" id="202" /> +<TGConnectingPoint num="16" id="203" /> +<TGConnectingPoint num="17" id="204" /> +<TGConnectingPoint num="18" id="205" /> +<TGConnectingPoint num="19" id="206" /> +<TGConnectingPoint num="20" id="207" /> +<TGConnectingPoint num="21" id="208" /> +<TGConnectingPoint num="22" id="209" /> +<TGConnectingPoint num="23" id="210" /> +<extraparam> +<info stereotype="BUS-RR" nodeName="Bus0" /> +<attributes byteDataSize="4" arbitrationPolicy="0" sliceTime="10000" pipelineSize="1" clockRatio="2" privacy="0" referenceAttack="null" /> +</extraparam> +</COMPONENT> + +<CONNECTOR type="125" id="212" > +<cdparam x="421" y="219" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="{info}" /> +<P1 x="421" y="219" id="150" /> +<P2 x="503" y="320" id="187" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> +<CONNECTOR type="125" id="213" > +<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="165" /> +<P2 x="753" y="345" id="191" /> +<AutomaticDrawing data="true" /> +<extraparam> +<info priority="0" /> +<spy value="false" /> +</extraparam> +</CONNECTOR> + +</TMLArchiDiagramPanel> + +</Modeling> + + + + +</TURTLEGMODELING> \ No newline at end of file