diff --git a/build.txt b/build.txt
index 0dab04bd31fd1359bde688722e21dc63ff497815..b8446a3a6e450fbbdb3bdb29139dc4e1eaffc4cd 100644
--- a/build.txt
+++ b/build.txt
@@ -1 +1 @@
-13042
\ No newline at end of file
+13045
\ No newline at end of file
diff --git a/modeling/DIPLODOCUS/ZigBeeTutorial.xml b/modeling/DIPLODOCUS/ZigBeeTutorial.xml
index 22d4b1e0475f2fed989496da079e3937478c4501..430da1138544b7a59c77b8a646293ea19e2f8c62 100644
--- a/modeling/DIPLODOCUS/ZigBeeTutorial.xml
+++ b/modeling/DIPLODOCUS/ZigBeeTutorial.xml
@@ -29,11 +29,11 @@
 </COMPONENT>
 <SUBCOMPONENT type="6005" id="6" >
 <father id="13" num="0" />
-<cdparam x="605" y="170" />
+<cdparam x="605" y="140" />
 <sizeparam width="10" height="10" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="605" maxX="605" minY="170" maxY="170" />
-<infoparam name="value " value="CP_Memory_Copy" />
+<cdrectangleparam minX="605" maxX="605" minY="140" maxY="140" />
+<infoparam name="value " value="DMA_transfer" />
 </SUBCOMPONENT>
 <SUBCOMPONENT type="6005" id="7" >
 <father id="13" num="1" />
@@ -45,11 +45,11 @@
 </SUBCOMPONENT>
 <SUBCOMPONENT type="6005" id="8" >
 <father id="13" num="2" />
-<cdparam x="605" y="140" />
+<cdparam x="605" y="170" />
 <sizeparam width="10" height="10" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="605" maxX="605" minY="140" maxY="140" />
-<infoparam name="value " value="DMA_transfer" />
+<cdrectangleparam minX="605" maxX="605" minY="170" maxY="170" />
+<infoparam name="value " value="CP_Memory_Copy" />
 </SUBCOMPONENT>
 
 <COMPONENT type="6002" id="23" >
@@ -67,11 +67,11 @@
 </COMPONENT>
 <SUBCOMPONENT type="6005" id="14" >
 <father id="23" num="0" />
-<cdparam x="605" y="370" />
+<cdparam x="605" y="340" />
 <sizeparam width="10" height="10" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="605" maxX="605" minY="370" maxY="370" />
-<infoparam name="value " value="Mapping_2" />
+<cdrectangleparam minX="605" maxX="605" minY="340" maxY="340" />
+<infoparam name="value " value="Mapping_0" />
 </SUBCOMPONENT>
 <SUBCOMPONENT type="6005" id="15" >
 <father id="23" num="1" />
@@ -83,11 +83,11 @@
 </SUBCOMPONENT>
 <SUBCOMPONENT type="6005" id="16" >
 <father id="23" num="2" />
-<cdparam x="605" y="340" />
+<cdparam x="605" y="370" />
 <sizeparam width="10" height="10" minWidth="10" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="605" maxX="605" minY="340" maxY="340" />
-<infoparam name="value " value="Mapping_0" />
+<cdrectangleparam minX="605" maxX="605" minY="370" maxY="370" />
+<infoparam name="value " value="Mapping_2" />
 </SUBCOMPONENT>
 
 <COMPONENT type="6001" id="29" >
@@ -171,7 +171,7 @@
 <cdparam x="1409" y="343" />
 <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="1410" y="393" id="685" />
+<P1  x="1397" y="380" id="772" />
 <P2  x="1446" y="258" id="125" />
 <Point x="1446" y="393" />
 <AutomaticDrawing  data="true" />
@@ -188,16 +188,16 @@
 <cdparam x="1383" y="381" />
 <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="1377" y="393" id="742" />
-<P2  x="1384" y="393" id="690" />
+<P1  x="1364" y="380" id="723" />
+<P2  x="1397" y="406" id="777" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="45" >
 <cdparam x="1507" y="228" />
 <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="1507" y="250" id="596" />
-<P2  x="1522" y="250" id="648" />
+<P1  x="1494" y="263" id="662" />
+<P2  x="1535" y="237" id="608" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="46" >
@@ -205,23 +205,23 @@
 <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="1463" y="250" id="120" />
-<P2  x="1481" y="250" id="591" />
+<P2  x="1494" y="237" id="657" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="47" >
 <cdparam x="1507" y="420" />
 <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="1507" y="410" id="615" />
-<P2  x="1523" y="410" id="665" />
+<P1  x="1494" y="423" id="643" />
+<P2  x="1536" y="397" id="591" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="50" >
 <cdparam x="1409" y="471" />
 <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="1410" y="523" id="704" />
-<P2  x="1481" y="410" id="610" />
+<P1  x="1397" y="510" id="753" />
+<P2  x="1494" y="397" id="638" />
 <Point x="1432" y="523" />
 <Point x="1432" y="410" />
 <AutomaticDrawing  data="true" />
@@ -246,24 +246,24 @@
 <cdparam x="1379" y="511" />
 <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="1375" y="523" id="757" />
-<P2  x="1384" y="523" id="709" />
+<P1  x="1362" y="510" id="708" />
+<P2  x="1397" y="536" id="758" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="52" >
 <cdparam x="1507" y="344" />
 <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="1507" y="354" id="634" />
-<P2  x="1523" y="354" id="661" />
+<P1  x="1494" y="367" id="624" />
+<P2  x="1536" y="341" id="595" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="55" >
 <cdparam x="1413" y="226" />
 <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="1413" y="262" id="800" />
-<P2  x="1481" y="354" id="629" />
+<P1  x="1400" y="249" id="887" />
+<P2  x="1494" y="341" id="619" />
 <Point x="1430" y="262" />
 <Point x="1430" y="354" />
 <AutomaticDrawing  data="true" />
@@ -288,15 +288,15 @@
 <cdparam x="1388" y="262" />
 <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="1378" y="262" id="872" />
-<P2  x="1387" y="262" id="805" />
+<P1  x="1365" y="249" id="823" />
+<P2  x="1400" y="275" id="892" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="58" >
 <cdparam x="1413" y="97" />
 <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="1413" y="124" id="887" />
+<P1  x="1400" y="111" id="800" />
 <P2  x="1446" y="241" id="123" />
 <Point x="1446" y="124" />
 <AutomaticDrawing  data="true" />
@@ -313,16 +313,16 @@
 <cdparam x="1384" y="124" />
 <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="1377" y="124" id="857" />
-<P2  x="1387" y="124" id="892" />
+<P1  x="1364" y="111" id="838" />
+<P2  x="1400" y="137" id="805" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="60" >
 <cdparam x="1208" y="347" />
 <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="1199" y="388" id="777" />
-<P2  x="1207" y="388" id="744" />
+<P1  x="1186" y="401" id="690" />
+<P2  x="1220" y="375" id="721" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="62" >
@@ -330,7 +330,7 @@
 <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="1133" y="251" id="141" />
-<P2  x="1173" y="388" id="772" />
+<P2  x="1186" y="375" id="685" />
 <Point x="1133" y="388" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="61" >
@@ -346,7 +346,7 @@
 <cdparam x="1105" y="254" />
 <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="1059" y="243" id="563" />
+<P1  x="1046" y="230" id="455" />
 <P2  x="1117" y="243" id="136" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
@@ -354,16 +354,16 @@
 <cdparam x="1068" y="239" />
 <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="1023" y="243" id="495" />
-<P2  x="1033" y="243" id="568" />
+<P1  x="1010" y="230" id="531" />
+<P2  x="1046" y="256" id="460" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="67" >
 <cdparam x="1105" y="374" />
 <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="1059" y="376" id="455" />
-<P2  x="1173" y="262" id="838" />
+<P1  x="1046" y="363" id="563" />
+<P2  x="1186" y="249" id="849" />
 <Point x="1103" y="376" />
 <Point x="1103" y="262" />
 <AutomaticDrawing  data="true" />
@@ -388,24 +388,24 @@
 <cdparam x="1065" y="372" />
 <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="1021" y="376" id="510" />
-<P2  x="1033" y="376" id="460" />
+<P1  x="1008" y="363" id="516" />
+<P2  x="1046" y="389" id="568" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="69" >
 <cdparam x="1208" y="499" />
 <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="1199" y="500" id="728" />
-<P2  x="1211" y="500" id="759" />
+<P1  x="1186" y="513" id="739" />
+<P2  x="1224" y="487" id="706" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="72" >
 <cdparam x="1105" y="408" />
 <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="1059" y="408" id="474" />
-<P2  x="1173" y="500" id="723" />
+<P1  x="1046" y="395" id="544" />
+<P2  x="1186" y="487" id="734" />
 <Point x="1101" y="408" />
 <Point x="1101" y="500" />
 <AutomaticDrawing  data="true" />
@@ -430,160 +430,160 @@
 <cdparam x="1065" y="404" />
 <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="1021" y="408" id="514" />
-<P2  x="1033" y="408" id="479" />
+<P1  x="1008" y="395" id="512" />
+<P2  x="1046" y="421" id="549" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="74" >
 <cdparam x="907" y="352" />
 <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="851" y="387" id="549" />
-<P2  x="861" y="387" id="508" />
+<P1  x="838" y="400" id="479" />
+<P2  x="874" y="374" id="518" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="75" >
 <cdparam x="867" y="334" />
 <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="812" y="387" id="427" />
-<P2  x="825" y="387" id="544" />
+<P1  x="799" y="374" id="340" />
+<P2  x="838" y="374" id="474" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="76" >
 <cdparam x="840" y="380" />
 <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="769" y="387" id="393" />
-<P2  x="786" y="387" id="432" />
+<P1  x="756" y="374" id="382" />
+<P2  x="799" y="400" id="345" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="77" >
 <cdparam x="915" y="228" />
 <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="851" y="261" id="530" />
-<P2  x="863" y="261" id="493" />
+<P1  x="838" y="274" id="498" />
+<P2  x="876" y="248" id="533" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="78" >
 <cdparam x="867" y="229" />
 <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="812" y="261" id="408" />
-<P2  x="825" y="261" id="525" />
+<P1  x="799" y="248" id="359" />
+<P2  x="838" y="248" id="493" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="79" >
 <cdparam x="829" y="257" />
 <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="767" y="261" id="378" />
-<P2  x="786" y="261" id="413" />
+<P1  x="754" y="248" id="397" />
+<P2  x="799" y="274" id="364" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="80" >
 <cdparam x="669" y="349" />
 <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="568" y="386" id="345" />
-<P2  x="584" y="386" id="395" />
+<P1  x="555" y="399" id="432" />
+<P2  x="597" y="373" id="380" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="81" >
 <cdparam x="586" y="350" />
 <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="529" y="386" id="225" />
-<P2  x="542" y="386" id="340" />
+<P1  x="516" y="373" id="312" />
+<P2  x="555" y="373" id="427" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="82" >
 <cdparam x="550" y="379" />
 <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="483" y="386" id="278" />
-<P2  x="503" y="386" id="230" />
+<P1  x="470" y="373" id="267" />
+<P2  x="516" y="399" id="317" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="83" >
 <cdparam x="687" y="234" />
 <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="568" y="269" id="364" />
-<P2  x="585" y="269" id="380" />
+<P1  x="555" y="282" id="413" />
+<P2  x="598" y="256" id="395" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="84" >
 <cdparam x="586" y="233" />
 <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="529" y="269" id="244" />
-<P2  x="542" y="269" id="359" />
+<P1  x="516" y="256" id="293" />
+<P2  x="555" y="256" id="408" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="85" >
 <cdparam x="549" y="263" />
 <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="486" y="269" id="263" />
-<P2  x="503" y="269" id="249" />
+<P1  x="473" y="256" id="282" />
+<P2  x="516" y="282" id="298" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="86" >
 <cdparam x="364" y="356" />
 <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="288" y="381" id="317" />
-<P2  x="303" y="381" id="280" />
+<P1  x="275" y="394" id="230" />
+<P2  x="316" y="368" id="265" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="87" >
 <cdparam x="321" y="350" />
 <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="244" y="381" id="197" />
-<P2  x="262" y="381" id="312" />
+<P1  x="231" y="368" id="152" />
+<P2  x="275" y="368" id="225" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="88" >
 <cdparam x="200" y="373" />
 <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="200" y="381" id="184" />
-<P2  x="218" y="381" id="202" />
+<P1  x="187" y="368" id="173" />
+<P2  x="231" y="394" id="157" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="89" >
 <cdparam x="356" y="223" />
 <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="288" y="258" id="298" />
-<P2  x="304" y="258" id="265" />
+<P1  x="275" y="271" id="249" />
+<P2  x="317" y="245" id="280" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="90" >
 <cdparam x="314" y="221" />
 <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="244" y="258" id="152" />
-<P2  x="262" y="258" id="293" />
+<P1  x="231" y="245" id="197" />
+<P2  x="275" y="245" id="244" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="91" >
 <cdparam x="175" y="251" />
 <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="167" y="258" id="171" />
-<P2  x="218" y="258" id="157" />
+<P1  x="154" y="245" id="186" />
+<P2  x="231" y="271" id="202" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="92" >
 <cdparam x="1792" y="148" />
 <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="1199" y="262" id="843" />
-<P2  x="1209" y="262" id="874" />
+<P1  x="1186" y="275" id="854" />
+<P2  x="1222" y="249" id="821" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="94" >
@@ -591,7 +591,7 @@
 <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="1133" y="234" id="139" />
-<P2  x="1173" y="123" id="819" />
+<P2  x="1186" y="110" id="868" />
 <Point x="1133" y="123" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="93" >
@@ -607,69 +607,69 @@
 <cdparam x="1792" y="8" />
 <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="1199" y="123" id="824" />
-<P2  x="1207" y="123" id="859" />
+<P1  x="1186" y="136" id="873" />
+<P2  x="1220" y="110" id="836" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="96" >
 <cdparam x="280" y="67" />
 <sizeparam width="10" height="10" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="1657" y="318" id="663" />
-<P2  x="1562" y="304" id="650" />
+<P1  x="1657" y="318" id="593" />
+<P2  x="1562" y="278" id="606" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="97" >
 <cdparam x="390" y="97" />
 <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="1333" y="181" id="876" />
-<P2  x="1257" y="171" id="861" />
+<P1  x="1333" y="181" id="819" />
+<P2  x="1257" y="145" id="834" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="98" >
 <cdparam x="390" y="507" />
 <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="1335" y="458" id="761" />
-<P2  x="1249" y="450" id="746" />
+<P1  x="1335" y="458" id="704" />
+<P2  x="1249" y="424" id="719" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="99" >
 <cdparam x="1161" y="396" />
 <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="989" y="321" id="512" />
-<P2  x="912" y="311" id="497" />
+<P1  x="989" y="321" id="514" />
+<P2  x="912" y="285" id="529" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="100" >
 <cdparam x="1160" y="500" />
 <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="729" y="327" id="397" />
-<P2  x="639" y="312" id="382" />
+<P1  x="729" y="327" id="378" />
+<P2  x="639" y="286" id="393" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="101" >
 <cdparam x="755" y="498" />
 <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="442" y="319" id="282" />
-<P2  x="350" y="303" id="267" />
+<P1  x="442" y="319" id="263" />
+<P2  x="350" y="277" id="278" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="102" >
 <cdparam x="217" y="495" />
 <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="108" y="320" id="186" />
-<P2  x="53" y="302" id="173" />
+<P1  x="108" y="320" id="171" />
+<P2  x="53" y="276" id="184" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <COMPONENT type="301" id="119" >
 <cdparam x="18" y="45" />
-<sizeparam width="237" height="51" minWidth="60" minHeight="23" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="224" height="51" minWidth="60" minHeight="23" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="1702" minY="0" maxY="563" />
 <infoparam name="UML Note" value="In this model THE PARAMETER SIZE
@@ -767,7 +767,7 @@ processing tasks
 </COMPONENT>
 <SUBCOMPONENT type="1201" id="170" >
 <father id="224" num="0" />
-<cdparam x="218" y="245" />
+<cdparam x="218" y="368" />
 <sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="218" minY="-13" maxY="241" />
@@ -793,11 +793,11 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1202" id="183" >
 <father id="224" num="1" />
-<cdparam x="18" y="208" />
-<sizeparam width="136" height="81" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="2" y="333" />
+<sizeparam width="185" height="74" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="95" minY="0" maxY="173" />
-<infoparam name="Primitive component" value="X_Source" />
+<cdrectangleparam minX="0" maxX="46" minY="0" maxY="180" />
+<infoparam name="Primitive component" value="F_Source" />
 <TGConnectingPoint num="0" id="175" />
 <TGConnectingPoint num="1" id="176" />
 <TGConnectingPoint num="2" id="177" />
@@ -808,20 +808,20 @@ processing tasks
 <TGConnectingPoint num="7" id="182" />
 <extraparam>
 <Data isAttacker="No" Operation="" />
-<Attribute access="2" id="size" value="" type="0" typeOther="" />
+<Attribute access="2" id="size" value="127" type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="172" >
 <father id="183" num="0" />
-<cdparam x="141" y="245" />
+<cdparam x="95" y="320" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="123" minY="-13" maxY="68" />
-<infoparam name="Primitive port" value="Channel Source_ch_out" />
+<cdrectangleparam minX="-13" maxX="172" minY="-13" maxY="61" />
+<infoparam name="Primitive port" value="Request source_req" />
 <TGConnectingPoint num="0" id="171" />
 <extraparam>
-<Prop commName="Source_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="true" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="Source_evt_out" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
-<Type type="0" typeOther="" />
+<Prop commName="source_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -830,14 +830,14 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="174" >
 <father id="183" num="1" />
-<cdparam x="40" y="276" />
+<cdparam x="174" y="368" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="123" minY="-13" maxY="68" />
-<infoparam name="Primitive port" value="Request source_req" />
+<cdrectangleparam minX="-13" maxX="172" minY="-13" maxY="61" />
+<infoparam name="Primitive port" value="Event Source_evt_out" />
 <TGConnectingPoint num="0" id="173" />
 <extraparam>
-<Prop commName="source_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="Source_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -847,11 +847,11 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1202" id="196" >
 <father id="224" num="2" />
-<cdparam x="2" y="333" />
-<sizeparam width="185" height="74" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="18" y="208" />
+<sizeparam width="136" height="81" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="46" minY="0" maxY="180" />
-<infoparam name="Primitive component" value="F_Source" />
+<cdrectangleparam minX="0" maxX="95" minY="0" maxY="173" />
+<infoparam name="Primitive component" value="X_Source" />
 <TGConnectingPoint num="0" id="188" />
 <TGConnectingPoint num="1" id="189" />
 <TGConnectingPoint num="2" id="190" />
@@ -862,19 +862,19 @@ processing tasks
 <TGConnectingPoint num="7" id="195" />
 <extraparam>
 <Data isAttacker="No" Operation="" />
-<Attribute access="2" id="size" value="127" type="0" typeOther="" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="185" >
 <father id="196" num="0" />
-<cdparam x="174" y="368" />
+<cdparam x="40" y="276" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="172" minY="-13" maxY="61" />
-<infoparam name="Primitive port" value="Event Source_evt_out" />
+<cdrectangleparam minX="-13" maxX="123" minY="-13" maxY="68" />
+<infoparam name="Primitive port" value="Request source_req" />
 <TGConnectingPoint num="0" id="184" />
 <extraparam>
-<Prop commName="Source_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="source_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -884,15 +884,15 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="187" >
 <father id="196" num="1" />
-<cdparam x="95" y="320" />
+<cdparam x="141" y="245" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="172" minY="-13" maxY="61" />
-<infoparam name="Primitive port" value="Request source_req" />
+<cdrectangleparam minX="-13" maxX="123" minY="-13" maxY="68" />
+<infoparam name="Primitive port" value="Channel Source_ch_out" />
 <TGConnectingPoint num="0" id="186" />
 <extraparam>
-<Prop commName="source_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
-<Type type="1" typeOther="" />
+<Prop commName="Source_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="true" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="Source_evt_out" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -901,7 +901,7 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="215" >
 <father id="224" num="3" />
-<cdparam x="218" y="368" />
+<cdparam x="218" y="245" />
 <sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="218" minY="-13" maxY="241" />
@@ -946,7 +946,7 @@ processing tasks
 </COMPONENT>
 <SUBCOMPONENT type="1201" id="243" >
 <father id="339" num="0" />
-<cdparam x="503" y="373" />
+<cdparam x="262" y="368" />
 <sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="228" minY="-13" maxY="246" />
@@ -972,7 +972,7 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="262" >
 <father id="339" num="1" />
-<cdparam x="503" y="256" />
+<cdparam x="262" y="245" />
 <sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="228" minY="-13" maxY="246" />
@@ -998,11 +998,11 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1202" id="277" >
 <father id="339" num="2" />
-<cdparam x="317" y="208" />
-<sizeparam width="156" height="82" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="316" y="332" />
+<sizeparam width="154" height="81" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="85" minY="0" maxY="177" />
-<infoparam name="Primitive component" value="X_Symbol2ChipSeq" />
+<cdrectangleparam minX="0" maxX="87" minY="0" maxY="178" />
+<infoparam name="Primitive component" value="F_Symbol2ChipSeq" />
 <TGConnectingPoint num="0" id="269" />
 <TGConnectingPoint num="1" id="270" />
 <TGConnectingPoint num="2" id="271" />
@@ -1018,15 +1018,15 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="264" >
 <father id="277" num="0" />
-<cdparam x="460" y="256" />
+<cdparam x="429" y="319" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="143" minY="-13" maxY="69" />
-<infoparam name="Primitive port" value="Channel symbol2ChipSeq_ch_out" />
+<cdrectangleparam minX="-13" maxX="141" minY="-13" maxY="68" />
+<infoparam name="Primitive port" value="Request bit2chip_req" />
 <TGConnectingPoint num="0" id="263" />
 <extraparam>
-<Prop commName="symbol2ChipSeq_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="bit2chip_evt_out" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
-<Type type="0" typeOther="" />
+<Prop commName="bit2chip_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1035,15 +1035,15 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="266" >
 <father id="277" num="1" />
-<cdparam x="304" y="245" />
+<cdparam x="303" y="368" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="143" minY="-13" maxY="69" />
-<infoparam name="Primitive port" value="Channel symbol2ChipSeq_ch_in" />
+<cdrectangleparam minX="-13" maxX="141" minY="-13" maxY="68" />
+<infoparam name="Primitive port" value="Event bit2symbol_evt_in" />
 <TGConnectingPoint num="0" id="265" />
 <extraparam>
-<Prop commName="symbol2ChipSeq_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="bit2chip_evt_in" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
-<Type type="0" typeOther="" />
+<Prop commName="bit2symbol_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1052,14 +1052,14 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="268" >
 <father id="277" num="2" />
-<cdparam x="337" y="277" />
+<cdparam x="457" y="373" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="143" minY="-13" maxY="69" />
-<infoparam name="Primitive port" value="Request bit2chip_req" />
+<cdrectangleparam minX="-13" maxX="141" minY="-13" maxY="68" />
+<infoparam name="Primitive port" value="Event bit2symbol_evt_out" />
 <TGConnectingPoint num="0" id="267" />
 <extraparam>
-<Prop commName="bit2chip_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="bit2symbol_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1069,11 +1069,11 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1202" id="292" >
 <father id="339" num="3" />
-<cdparam x="316" y="332" />
-<sizeparam width="154" height="81" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="317" y="208" />
+<sizeparam width="156" height="82" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="87" minY="0" maxY="178" />
-<infoparam name="Primitive component" value="F_Symbol2ChipSeq" />
+<cdrectangleparam minX="0" maxX="85" minY="0" maxY="177" />
+<infoparam name="Primitive component" value="X_Symbol2ChipSeq" />
 <TGConnectingPoint num="0" id="284" />
 <TGConnectingPoint num="1" id="285" />
 <TGConnectingPoint num="2" id="286" />
@@ -1089,14 +1089,14 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="279" >
 <father id="292" num="0" />
-<cdparam x="457" y="373" />
+<cdparam x="337" y="277" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="141" minY="-13" maxY="68" />
-<infoparam name="Primitive port" value="Event bit2symbol_evt_out" />
+<cdrectangleparam minX="-13" maxX="143" minY="-13" maxY="69" />
+<infoparam name="Primitive port" value="Request bit2chip_req" />
 <TGConnectingPoint num="0" id="278" />
 <extraparam>
-<Prop commName="bit2symbol_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="bit2chip_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1106,15 +1106,15 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="281" >
 <father id="292" num="1" />
-<cdparam x="303" y="368" />
+<cdparam x="304" y="245" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="141" minY="-13" maxY="68" />
-<infoparam name="Primitive port" value="Event bit2symbol_evt_in" />
+<cdrectangleparam minX="-13" maxX="143" minY="-13" maxY="69" />
+<infoparam name="Primitive port" value="Channel symbol2ChipSeq_ch_in" />
 <TGConnectingPoint num="0" id="280" />
 <extraparam>
-<Prop commName="bit2symbol_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
-<Type type="1" typeOther="" />
+<Prop commName="symbol2ChipSeq_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="bit2chip_evt_in" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1123,15 +1123,15 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="283" >
 <father id="292" num="2" />
-<cdparam x="429" y="319" />
+<cdparam x="460" y="256" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="141" minY="-13" maxY="68" />
-<infoparam name="Primitive port" value="Request bit2chip_req" />
+<cdrectangleparam minX="-13" maxX="143" minY="-13" maxY="69" />
+<infoparam name="Primitive port" value="Channel symbol2ChipSeq_ch_out" />
 <TGConnectingPoint num="0" id="282" />
 <extraparam>
-<Prop commName="bit2chip_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
-<Type type="1" typeOther="" />
+<Prop commName="symbol2ChipSeq_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="bit2chip_evt_out" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1140,7 +1140,7 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="311" >
 <father id="339" num="4" />
-<cdparam x="262" y="245" />
+<cdparam x="503" y="256" />
 <sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="228" minY="-13" maxY="246" />
@@ -1166,7 +1166,7 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="330" >
 <father id="339" num="5" />
-<cdparam x="262" y="368" />
+<cdparam x="503" y="373" />
 <sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="228" minY="-13" maxY="246" />
@@ -1211,7 +1211,7 @@ processing tasks
 </COMPONENT>
 <SUBCOMPONENT type="1201" id="358" >
 <father id="454" num="0" />
-<cdparam x="542" y="373" />
+<cdparam x="786" y="374" />
 <sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="231" minY="-13" maxY="249" />
@@ -1237,7 +1237,7 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="377" >
 <father id="454" num="1" />
-<cdparam x="542" y="256" />
+<cdparam x="786" y="248" />
 <sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="231" minY="-13" maxY="249" />
@@ -1263,11 +1263,11 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1202" id="392" >
 <father id="454" num="2" />
-<cdparam x="598" y="214" />
-<sizeparam width="156" height="85" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="597" y="340" />
+<sizeparam width="159" height="73" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="88" minY="0" maxY="177" />
-<infoparam name="Primitive component" value="X_Chip2Octet" />
+<cdrectangleparam minX="0" maxX="85" minY="0" maxY="189" />
+<infoparam name="Primitive component" value="F_Chip2Octet" />
 <TGConnectingPoint num="0" id="384" />
 <TGConnectingPoint num="1" id="385" />
 <TGConnectingPoint num="2" id="386" />
@@ -1283,15 +1283,15 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="379" >
 <father id="392" num="0" />
-<cdparam x="741" y="248" />
+<cdparam x="716" y="327" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="143" minY="-13" maxY="72" />
-<infoparam name="Primitive port" value="Channel chip2octet_ch_out" />
+<cdrectangleparam minX="-13" maxX="146" minY="-13" maxY="60" />
+<infoparam name="Primitive port" value="Request chip2octet_req" />
 <TGConnectingPoint num="0" id="378" />
 <extraparam>
-<Prop commName="chip2octet_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="chip2octet_evt_out" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
-<Type type="0" typeOther="" />
+<Prop commName="chip2octet_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1300,15 +1300,15 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="381" >
 <father id="392" num="1" />
-<cdparam x="585" y="256" />
+<cdparam x="584" y="373" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="143" minY="-13" maxY="72" />
-<infoparam name="Primitive port" value="Channel chip2octet_ch_in" />
+<cdrectangleparam minX="-13" maxX="146" minY="-13" maxY="60" />
+<infoparam name="Primitive port" value="Event chip2octet_evt_in" />
 <TGConnectingPoint num="0" id="380" />
 <extraparam>
-<Prop commName="chip2octet_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="chip2octet_evt_in" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
-<Type type="0" typeOther="" />
+<Prop commName="chip2octet_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1317,14 +1317,14 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="383" >
 <father id="392" num="2" />
-<cdparam x="626" y="286" />
+<cdparam x="743" y="374" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="143" minY="-13" maxY="72" />
-<infoparam name="Primitive port" value="Request chip2octet_req" />
+<cdrectangleparam minX="-13" maxX="146" minY="-13" maxY="60" />
+<infoparam name="Primitive port" value="Event chip2octet_evt_out" />
 <TGConnectingPoint num="0" id="382" />
 <extraparam>
-<Prop commName="chip2octet_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="chip2octet_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1334,11 +1334,11 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1202" id="407" >
 <father id="454" num="3" />
-<cdparam x="597" y="340" />
-<sizeparam width="159" height="73" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="598" y="214" />
+<sizeparam width="156" height="85" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="85" minY="0" maxY="189" />
-<infoparam name="Primitive component" value="F_Chip2Octet" />
+<cdrectangleparam minX="0" maxX="88" minY="0" maxY="177" />
+<infoparam name="Primitive component" value="X_Chip2Octet" />
 <TGConnectingPoint num="0" id="399" />
 <TGConnectingPoint num="1" id="400" />
 <TGConnectingPoint num="2" id="401" />
@@ -1354,14 +1354,14 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="394" >
 <father id="407" num="0" />
-<cdparam x="743" y="374" />
+<cdparam x="626" y="286" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="146" minY="-13" maxY="60" />
-<infoparam name="Primitive port" value="Event chip2octet_evt_out" />
+<cdrectangleparam minX="-13" maxX="143" minY="-13" maxY="72" />
+<infoparam name="Primitive port" value="Request chip2octet_req" />
 <TGConnectingPoint num="0" id="393" />
 <extraparam>
-<Prop commName="chip2octet_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="chip2octet_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1371,15 +1371,15 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="396" >
 <father id="407" num="1" />
-<cdparam x="584" y="373" />
+<cdparam x="585" y="256" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="146" minY="-13" maxY="60" />
-<infoparam name="Primitive port" value="Event chip2octet_evt_in" />
+<cdrectangleparam minX="-13" maxX="143" minY="-13" maxY="72" />
+<infoparam name="Primitive port" value="Channel chip2octet_ch_in" />
 <TGConnectingPoint num="0" id="395" />
 <extraparam>
-<Prop commName="chip2octet_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
-<Type type="1" typeOther="" />
+<Prop commName="chip2octet_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="chip2octet_evt_in" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1388,15 +1388,15 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="398" >
 <father id="407" num="2" />
-<cdparam x="716" y="327" />
+<cdparam x="741" y="248" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="146" minY="-13" maxY="60" />
-<infoparam name="Primitive port" value="Request chip2octet_req" />
+<cdrectangleparam minX="-13" maxX="143" minY="-13" maxY="72" />
+<infoparam name="Primitive port" value="Channel chip2octet_ch_out" />
 <TGConnectingPoint num="0" id="397" />
 <extraparam>
-<Prop commName="chip2octet_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
-<Type type="1" typeOther="" />
+<Prop commName="chip2octet_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="chip2octet_evt_out" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1405,7 +1405,7 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="426" >
 <father id="454" num="4" />
-<cdparam x="786" y="248" />
+<cdparam x="542" y="256" />
 <sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="231" minY="-13" maxY="249" />
@@ -1431,7 +1431,7 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="445" >
 <father id="454" num="5" />
-<cdparam x="786" y="374" />
+<cdparam x="542" y="373" />
 <sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="231" minY="-13" maxY="249" />
@@ -1476,7 +1476,7 @@ processing tasks
 </COMPONENT>
 <SUBCOMPONENT type="1201" id="473" >
 <father id="590" num="0" />
-<cdparam x="1033" y="363" />
+<cdparam x="1033" y="230" />
 <sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="268" />
@@ -1502,7 +1502,7 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="492" >
 <father id="590" num="1" />
-<cdparam x="1033" y="395" />
+<cdparam x="825" y="374" />
 <sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="268" />
@@ -1526,70 +1526,96 @@ processing tasks
 <TGConnectingPoint num="16" id="490" />
 <TGConnectingPoint num="17" id="491" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="507" >
+<SUBCOMPONENT type="1201" id="511" >
 <father id="590" num="2" />
-<cdparam x="876" y="202" />
-<sizeparam width="134" height="96" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="825" y="248" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="74" minY="0" maxY="185" />
-<infoparam name="Primitive component" value="X_CWL" />
-<TGConnectingPoint num="0" id="499" />
-<TGConnectingPoint num="1" id="500" />
-<TGConnectingPoint num="2" id="501" />
-<TGConnectingPoint num="3" id="502" />
-<TGConnectingPoint num="4" id="503" />
-<TGConnectingPoint num="5" id="504" />
-<TGConnectingPoint num="6" id="505" />
-<TGConnectingPoint num="7" id="506" />
-<extraparam>
-<Data isAttacker="No" Operation="" />
+<cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="268" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="493" />
+<TGConnectingPoint num="1" id="494" />
+<TGConnectingPoint num="2" id="495" />
+<TGConnectingPoint num="3" id="496" />
+<TGConnectingPoint num="4" id="497" />
+<TGConnectingPoint num="5" id="498" />
+<TGConnectingPoint num="6" id="499" />
+<TGConnectingPoint num="7" id="500" />
+<TGConnectingPoint num="8" id="501" />
+<TGConnectingPoint num="9" id="502" />
+<TGConnectingPoint num="10" id="503" />
+<TGConnectingPoint num="11" id="504" />
+<TGConnectingPoint num="12" id="505" />
+<TGConnectingPoint num="13" id="506" />
+<TGConnectingPoint num="14" id="507" />
+<TGConnectingPoint num="15" id="508" />
+<TGConnectingPoint num="16" id="509" />
+<TGConnectingPoint num="17" id="510" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="528" >
+<father id="590" num="3" />
+<cdparam x="874" y="334" />
+<sizeparam width="134" height="92" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="74" minY="0" maxY="189" />
+<infoparam name="Primitive component" value="F_CWL" />
+<TGConnectingPoint num="0" id="520" />
+<TGConnectingPoint num="1" id="521" />
+<TGConnectingPoint num="2" id="522" />
+<TGConnectingPoint num="3" id="523" />
+<TGConnectingPoint num="4" id="524" />
+<TGConnectingPoint num="5" id="525" />
+<TGConnectingPoint num="6" id="526" />
+<TGConnectingPoint num="7" id="527" />
+<extraparam>
+<Data isAttacker="No" Operation="" />
 <Attribute access="2" id="size" value="" type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="494" >
-<father id="507" num="0" />
-<cdparam x="863" y="248" />
+<SUBCOMPONENT type="1203" id="513" >
+<father id="528" num="0" />
+<cdparam x="995" y="395" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="83" />
-<infoparam name="Primitive port" value="Channel cwl_ch_in" />
-<TGConnectingPoint num="0" id="493" />
+<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="79" />
+<infoparam name="Primitive port" value="Event cwl_evt_out_1" />
+<TGConnectingPoint num="0" id="512" />
 <extraparam>
-<Prop commName="cwl_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="cwl_evt_in" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
-<Type type="0" typeOther="" />
+<Prop commName="cwl_evt_out_1" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<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="496" >
-<father id="507" num="1" />
-<cdparam x="997" y="230" />
+<SUBCOMPONENT type="1203" id="515" >
+<father id="528" num="1" />
+<cdparam x="976" y="321" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="83" />
-<infoparam name="Primitive port" value="Channel cwl_ch_out" />
-<TGConnectingPoint num="0" id="495" />
+<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="79" />
+<infoparam name="Primitive port" value="Request cwl_req" />
+<TGConnectingPoint num="0" id="514" />
 <extraparam>
-<Prop commName="cwl_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="cwl_evt_out" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
-<Type type="0" typeOther="" />
+<Prop commName="cwl_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<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="498" >
-<father id="507" num="2" />
-<cdparam x="899" y="285" />
+<SUBCOMPONENT type="1203" id="517" >
+<father id="528" num="2" />
+<cdparam x="995" y="363" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="83" />
-<infoparam name="Primitive port" value="Request cwl_req" />
-<TGConnectingPoint num="0" id="497" />
+<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="79" />
+<infoparam name="Primitive port" value="Event cwl_evt_out" />
+<TGConnectingPoint num="0" id="516" />
 <extraparam>
-<Prop commName="cwl_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="cwl_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1597,34 +1623,14 @@ processing tasks
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="524" >
-<father id="590" num="3" />
-<cdparam x="874" y="334" />
-<sizeparam width="134" height="92" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="74" minY="0" maxY="189" />
-<infoparam name="Primitive component" value="F_CWL" />
-<TGConnectingPoint num="0" id="516" />
-<TGConnectingPoint num="1" id="517" />
-<TGConnectingPoint num="2" id="518" />
-<TGConnectingPoint num="3" id="519" />
-<TGConnectingPoint num="4" id="520" />
-<TGConnectingPoint num="5" id="521" />
-<TGConnectingPoint num="6" id="522" />
-<TGConnectingPoint num="7" id="523" />
-<extraparam>
-<Data isAttacker="No" Operation="" />
-<Attribute access="2" id="size" value="" type="0" typeOther="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="509" >
-<father id="524" num="0" />
+<SUBCOMPONENT type="1203" id="519" >
+<father id="528" num="3" />
 <cdparam x="861" y="374" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="79" />
 <infoparam name="Primitive port" value="Event cwl_evt_in" />
-<TGConnectingPoint num="0" id="508" />
+<TGConnectingPoint num="0" id="518" />
 <extraparam>
 <Prop commName="cwl_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="1" typeOther="" />
@@ -1634,16 +1640,36 @@ processing tasks
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="511" >
-<father id="524" num="1" />
-<cdparam x="995" y="363" />
+<SUBCOMPONENT type="1202" id="543" >
+<father id="590" num="4" />
+<cdparam x="876" y="202" />
+<sizeparam width="134" height="96" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="74" minY="0" maxY="185" />
+<infoparam name="Primitive component" value="X_CWL" />
+<TGConnectingPoint num="0" id="535" />
+<TGConnectingPoint num="1" id="536" />
+<TGConnectingPoint num="2" id="537" />
+<TGConnectingPoint num="3" id="538" />
+<TGConnectingPoint num="4" id="539" />
+<TGConnectingPoint num="5" id="540" />
+<TGConnectingPoint num="6" id="541" />
+<TGConnectingPoint num="7" id="542" />
+<extraparam>
+<Data isAttacker="No" Operation="" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="530" >
+<father id="543" num="0" />
+<cdparam x="899" y="285" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="79" />
-<infoparam name="Primitive port" value="Event cwl_evt_out" />
-<TGConnectingPoint num="0" id="510" />
+<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="83" />
+<infoparam name="Primitive port" value="Request cwl_req" />
+<TGConnectingPoint num="0" id="529" />
 <extraparam>
-<Prop commName="cwl_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="cwl_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1651,69 +1677,43 @@ processing tasks
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="513" >
-<father id="524" num="2" />
-<cdparam x="976" y="321" />
+<SUBCOMPONENT type="1203" id="532" >
+<father id="543" num="1" />
+<cdparam x="997" y="230" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="79" />
-<infoparam name="Primitive port" value="Request cwl_req" />
-<TGConnectingPoint num="0" id="512" />
+<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="83" />
+<infoparam name="Primitive port" value="Channel cwl_ch_out" />
+<TGConnectingPoint num="0" id="531" />
 <extraparam>
-<Prop commName="cwl_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
-<Type type="1" typeOther="" />
+<Prop commName="cwl_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="cwl_evt_out" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<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="515" >
-<father id="524" num="3" />
-<cdparam x="995" y="395" />
+<SUBCOMPONENT type="1203" id="534" >
+<father id="543" num="2" />
+<cdparam x="863" y="248" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="79" />
-<infoparam name="Primitive port" value="Event cwl_evt_out_1" />
-<TGConnectingPoint num="0" id="514" />
+<cdrectangleparam minX="-13" maxX="121" minY="-13" maxY="83" />
+<infoparam name="Primitive port" value="Channel cwl_ch_in" />
+<TGConnectingPoint num="0" id="533" />
 <extraparam>
-<Prop commName="cwl_evt_out_1" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
-<Type type="1" typeOther="" />
+<Prop commName="cwl_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="cwl_evt_in" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1201" id="543" >
-<father id="590" num="4" />
-<cdparam x="825" y="248" />
-<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="268" />
-<infoparam name="Composite port" value="" />
-<TGConnectingPoint num="0" id="525" />
-<TGConnectingPoint num="1" id="526" />
-<TGConnectingPoint num="2" id="527" />
-<TGConnectingPoint num="3" id="528" />
-<TGConnectingPoint num="4" id="529" />
-<TGConnectingPoint num="5" id="530" />
-<TGConnectingPoint num="6" id="531" />
-<TGConnectingPoint num="7" id="532" />
-<TGConnectingPoint num="8" id="533" />
-<TGConnectingPoint num="9" id="534" />
-<TGConnectingPoint num="10" id="535" />
-<TGConnectingPoint num="11" id="536" />
-<TGConnectingPoint num="12" id="537" />
-<TGConnectingPoint num="13" id="538" />
-<TGConnectingPoint num="14" id="539" />
-<TGConnectingPoint num="15" id="540" />
-<TGConnectingPoint num="16" id="541" />
-<TGConnectingPoint num="17" id="542" />
-</SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="562" >
 <father id="590" num="5" />
-<cdparam x="825" y="374" />
+<cdparam x="1033" y="395" />
 <sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="268" />
@@ -1739,7 +1739,7 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="581" >
 <father id="590" num="6" />
-<cdparam x="1033" y="230" />
+<cdparam x="1033" y="363" />
 <sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="268" />
@@ -1782,131 +1782,54 @@ processing tasks
 <info hiddeni="false" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="1201" id="609" >
+<SUBCOMPONENT type="1202" id="605" >
 <father id="684" num="0" />
-<cdparam x="1481" y="237" />
-<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="269" />
-<infoparam name="Composite port" value="" />
-<TGConnectingPoint num="0" id="591" />
-<TGConnectingPoint num="1" id="592" />
-<TGConnectingPoint num="2" id="593" />
-<TGConnectingPoint num="3" id="594" />
-<TGConnectingPoint num="4" id="595" />
-<TGConnectingPoint num="5" id="596" />
-<TGConnectingPoint num="6" id="597" />
-<TGConnectingPoint num="7" id="598" />
-<TGConnectingPoint num="8" id="599" />
-<TGConnectingPoint num="9" id="600" />
-<TGConnectingPoint num="10" id="601" />
-<TGConnectingPoint num="11" id="602" />
-<TGConnectingPoint num="12" id="603" />
-<TGConnectingPoint num="13" id="604" />
-<TGConnectingPoint num="14" id="605" />
-<TGConnectingPoint num="15" id="606" />
-<TGConnectingPoint num="16" id="607" />
-<TGConnectingPoint num="17" id="608" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1201" id="628" >
-<father id="684" num="1" />
-<cdparam x="1481" y="397" />
-<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="269" />
-<infoparam name="Composite port" value="" />
-<TGConnectingPoint num="0" id="610" />
-<TGConnectingPoint num="1" id="611" />
-<TGConnectingPoint num="2" id="612" />
-<TGConnectingPoint num="3" id="613" />
-<TGConnectingPoint num="4" id="614" />
-<TGConnectingPoint num="5" id="615" />
-<TGConnectingPoint num="6" id="616" />
-<TGConnectingPoint num="7" id="617" />
-<TGConnectingPoint num="8" id="618" />
-<TGConnectingPoint num="9" id="619" />
-<TGConnectingPoint num="10" id="620" />
-<TGConnectingPoint num="11" id="621" />
-<TGConnectingPoint num="12" id="622" />
-<TGConnectingPoint num="13" id="623" />
-<TGConnectingPoint num="14" id="624" />
-<TGConnectingPoint num="15" id="625" />
-<TGConnectingPoint num="16" id="626" />
-<TGConnectingPoint num="17" id="627" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1201" id="647" >
-<father id="684" num="2" />
-<cdparam x="1481" y="341" />
-<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="269" />
-<infoparam name="Composite port" value="" />
-<TGConnectingPoint num="0" id="629" />
-<TGConnectingPoint num="1" id="630" />
-<TGConnectingPoint num="2" id="631" />
-<TGConnectingPoint num="3" id="632" />
-<TGConnectingPoint num="4" id="633" />
-<TGConnectingPoint num="5" id="634" />
-<TGConnectingPoint num="6" id="635" />
-<TGConnectingPoint num="7" id="636" />
-<TGConnectingPoint num="8" id="637" />
-<TGConnectingPoint num="9" id="638" />
-<TGConnectingPoint num="10" id="639" />
-<TGConnectingPoint num="11" id="640" />
-<TGConnectingPoint num="12" id="641" />
-<TGConnectingPoint num="13" id="642" />
-<TGConnectingPoint num="14" id="643" />
-<TGConnectingPoint num="15" id="644" />
-<TGConnectingPoint num="16" id="645" />
-<TGConnectingPoint num="17" id="646" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="660" >
-<father id="684" num="3" />
-<cdparam x="1535" y="205" />
-<sizeparam width="148" height="86" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1536" y="331" />
+<sizeparam width="153" height="94" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="60" minY="0" maxY="196" />
-<infoparam name="Primitive component" value="X_Sink" />
-<TGConnectingPoint num="0" id="652" />
-<TGConnectingPoint num="1" id="653" />
-<TGConnectingPoint num="2" id="654" />
-<TGConnectingPoint num="3" id="655" />
-<TGConnectingPoint num="4" id="656" />
-<TGConnectingPoint num="5" id="657" />
-<TGConnectingPoint num="6" id="658" />
-<TGConnectingPoint num="7" id="659" />
+<cdrectangleparam minX="0" maxX="55" minY="0" maxY="188" />
+<infoparam name="Primitive component" value="F_Sink" />
+<TGConnectingPoint num="0" id="597" />
+<TGConnectingPoint num="1" id="598" />
+<TGConnectingPoint num="2" id="599" />
+<TGConnectingPoint num="3" id="600" />
+<TGConnectingPoint num="4" id="601" />
+<TGConnectingPoint num="5" id="602" />
+<TGConnectingPoint num="6" id="603" />
+<TGConnectingPoint num="7" id="604" />
 <extraparam>
 <Data isAttacker="No" Operation="" />
 <Attribute access="2" id="size" value="" type="0" typeOther="" />
+<Attribute access="2" id="size_1" value="" type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="649" >
-<father id="660" num="0" />
-<cdparam x="1522" y="237" />
+<SUBCOMPONENT type="1203" id="592" >
+<father id="605" num="0" />
+<cdparam x="1523" y="397" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="135" minY="-13" maxY="73" />
-<infoparam name="Primitive port" value="Channel sink_ch_in" />
-<TGConnectingPoint num="0" id="648" />
+<cdrectangleparam minX="-13" maxX="140" minY="-13" maxY="81" />
+<infoparam name="Primitive port" value="Event sink_evt_in_1" />
+<TGConnectingPoint num="0" id="591" />
 <extraparam>
-<Prop commName="sink_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="true" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="sink_evt_in" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
-<Type type="0" typeOther="" />
+<Prop commName="sink_evt_in_1" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<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="651" >
-<father id="660" num="1" />
-<cdparam x="1549" y="278" />
+<SUBCOMPONENT type="1203" id="594" >
+<father id="605" num="1" />
+<cdparam x="1644" y="318" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="135" minY="-13" maxY="73" />
+<cdrectangleparam minX="-13" maxX="140" minY="-13" maxY="81" />
 <infoparam name="Primitive port" value="Request sink_req" />
-<TGConnectingPoint num="0" id="650" />
+<TGConnectingPoint num="0" id="593" />
 <extraparam>
-<Prop commName="sink_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="sink_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1914,35 +1837,14 @@ processing tasks
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="675" >
-<father id="684" num="4" />
-<cdparam x="1536" y="331" />
-<sizeparam width="153" height="94" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="55" minY="0" maxY="188" />
-<infoparam name="Primitive component" value="F_Sink" />
-<TGConnectingPoint num="0" id="667" />
-<TGConnectingPoint num="1" id="668" />
-<TGConnectingPoint num="2" id="669" />
-<TGConnectingPoint num="3" id="670" />
-<TGConnectingPoint num="4" id="671" />
-<TGConnectingPoint num="5" id="672" />
-<TGConnectingPoint num="6" id="673" />
-<TGConnectingPoint num="7" id="674" />
-<extraparam>
-<Data isAttacker="No" Operation="" />
-<Attribute access="2" id="size" value="" type="0" typeOther="" />
-<Attribute access="2" id="size_1" value="" type="0" typeOther="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="662" >
-<father id="675" num="0" />
+<SUBCOMPONENT type="1203" id="596" >
+<father id="605" num="2" />
 <cdparam x="1523" y="341" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="140" minY="-13" maxY="81" />
 <infoparam name="Primitive port" value="Event sink_evt_in" />
-<TGConnectingPoint num="0" id="661" />
+<TGConnectingPoint num="0" id="595" />
 <extraparam>
 <Prop commName="sink_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="1" typeOther="" />
@@ -1952,16 +1854,36 @@ processing tasks
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="664" >
-<father id="675" num="1" />
-<cdparam x="1644" y="318" />
+<SUBCOMPONENT type="1202" id="618" >
+<father id="684" num="1" />
+<cdparam x="1535" y="205" />
+<sizeparam width="148" height="86" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="60" minY="0" maxY="196" />
+<infoparam name="Primitive component" value="X_Sink" />
+<TGConnectingPoint num="0" id="610" />
+<TGConnectingPoint num="1" id="611" />
+<TGConnectingPoint num="2" id="612" />
+<TGConnectingPoint num="3" id="613" />
+<TGConnectingPoint num="4" id="614" />
+<TGConnectingPoint num="5" id="615" />
+<TGConnectingPoint num="6" id="616" />
+<TGConnectingPoint num="7" id="617" />
+<extraparam>
+<Data isAttacker="No" Operation="" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="607" >
+<father id="618" num="0" />
+<cdparam x="1549" y="278" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="140" minY="-13" maxY="81" />
+<cdrectangleparam minX="-13" maxX="135" minY="-13" maxY="73" />
 <infoparam name="Primitive port" value="Request sink_req" />
-<TGConnectingPoint num="0" id="663" />
+<TGConnectingPoint num="0" id="606" />
 <extraparam>
-<Prop commName="sink_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="sink_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1969,23 +1891,101 @@ processing tasks
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="666" >
-<father id="675" num="2" />
-<cdparam x="1523" y="397" />
+<SUBCOMPONENT type="1203" id="609" >
+<father id="618" num="1" />
+<cdparam x="1522" y="237" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="140" minY="-13" maxY="81" />
-<infoparam name="Primitive port" value="Event sink_evt_in_1" />
-<TGConnectingPoint num="0" id="665" />
+<cdrectangleparam minX="-13" maxX="135" minY="-13" maxY="73" />
+<infoparam name="Primitive port" value="Channel sink_ch_in" />
+<TGConnectingPoint num="0" id="608" />
 <extraparam>
-<Prop commName="sink_evt_in_1" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
-<Type type="1" typeOther="" />
+<Prop commName="sink_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="true" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="sink_evt_in" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="637" >
+<father id="684" num="2" />
+<cdparam x="1481" y="341" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="269" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="619" />
+<TGConnectingPoint num="1" id="620" />
+<TGConnectingPoint num="2" id="621" />
+<TGConnectingPoint num="3" id="622" />
+<TGConnectingPoint num="4" id="623" />
+<TGConnectingPoint num="5" id="624" />
+<TGConnectingPoint num="6" id="625" />
+<TGConnectingPoint num="7" id="626" />
+<TGConnectingPoint num="8" id="627" />
+<TGConnectingPoint num="9" id="628" />
+<TGConnectingPoint num="10" id="629" />
+<TGConnectingPoint num="11" id="630" />
+<TGConnectingPoint num="12" id="631" />
+<TGConnectingPoint num="13" id="632" />
+<TGConnectingPoint num="14" id="633" />
+<TGConnectingPoint num="15" id="634" />
+<TGConnectingPoint num="16" id="635" />
+<TGConnectingPoint num="17" id="636" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="656" >
+<father id="684" num="3" />
+<cdparam x="1481" y="397" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="269" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="638" />
+<TGConnectingPoint num="1" id="639" />
+<TGConnectingPoint num="2" id="640" />
+<TGConnectingPoint num="3" id="641" />
+<TGConnectingPoint num="4" id="642" />
+<TGConnectingPoint num="5" id="643" />
+<TGConnectingPoint num="6" id="644" />
+<TGConnectingPoint num="7" id="645" />
+<TGConnectingPoint num="8" id="646" />
+<TGConnectingPoint num="9" id="647" />
+<TGConnectingPoint num="10" id="648" />
+<TGConnectingPoint num="11" id="649" />
+<TGConnectingPoint num="12" id="650" />
+<TGConnectingPoint num="13" id="651" />
+<TGConnectingPoint num="14" id="652" />
+<TGConnectingPoint num="15" id="653" />
+<TGConnectingPoint num="16" id="654" />
+<TGConnectingPoint num="17" id="655" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="675" >
+<father id="684" num="4" />
+<cdparam x="1481" y="237" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="195" minY="-13" maxY="269" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="657" />
+<TGConnectingPoint num="1" id="658" />
+<TGConnectingPoint num="2" id="659" />
+<TGConnectingPoint num="3" id="660" />
+<TGConnectingPoint num="4" id="661" />
+<TGConnectingPoint num="5" id="662" />
+<TGConnectingPoint num="6" id="663" />
+<TGConnectingPoint num="7" id="664" />
+<TGConnectingPoint num="8" id="665" />
+<TGConnectingPoint num="9" id="666" />
+<TGConnectingPoint num="10" id="667" />
+<TGConnectingPoint num="11" id="668" />
+<TGConnectingPoint num="12" id="669" />
+<TGConnectingPoint num="13" id="670" />
+<TGConnectingPoint num="14" id="671" />
+<TGConnectingPoint num="15" id="672" />
+<TGConnectingPoint num="16" id="673" />
+<TGConnectingPoint num="17" id="674" />
+</SUBCOMPONENT>
 
 <COMPONENT type="1200" id="799" >
 <cdparam x="1186" y="309" />
@@ -2007,7 +2007,7 @@ processing tasks
 </COMPONENT>
 <SUBCOMPONENT type="1201" id="703" >
 <father id="799" num="0" />
-<cdparam x="1384" y="380" />
+<cdparam x="1173" y="375" />
 <sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="198" minY="-13" maxY="241" />
@@ -2031,122 +2031,70 @@ processing tasks
 <TGConnectingPoint num="16" id="701" />
 <TGConnectingPoint num="17" id="702" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1201" id="722" >
+<SUBCOMPONENT type="1202" id="718" >
 <father id="799" num="1" />
-<cdparam x="1384" y="510" />
-<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-13" maxX="198" minY="-13" maxY="241" />
-<infoparam name="Composite port" value="" />
-<TGConnectingPoint num="0" id="704" />
-<TGConnectingPoint num="1" id="705" />
-<TGConnectingPoint num="2" id="706" />
-<TGConnectingPoint num="3" id="707" />
-<TGConnectingPoint num="4" id="708" />
-<TGConnectingPoint num="5" id="709" />
-<TGConnectingPoint num="6" id="710" />
-<TGConnectingPoint num="7" id="711" />
-<TGConnectingPoint num="8" id="712" />
-<TGConnectingPoint num="9" id="713" />
-<TGConnectingPoint num="10" id="714" />
-<TGConnectingPoint num="11" id="715" />
-<TGConnectingPoint num="12" id="716" />
-<TGConnectingPoint num="13" id="717" />
-<TGConnectingPoint num="14" id="718" />
-<TGConnectingPoint num="15" id="719" />
-<TGConnectingPoint num="16" id="720" />
-<TGConnectingPoint num="17" id="721" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1201" id="741" >
-<father id="799" num="2" />
-<cdparam x="1173" y="487" />
-<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-13" maxX="198" minY="-13" maxY="241" />
-<infoparam name="Composite port" value="" />
-<TGConnectingPoint num="0" id="723" />
-<TGConnectingPoint num="1" id="724" />
-<TGConnectingPoint num="2" id="725" />
-<TGConnectingPoint num="3" id="726" />
-<TGConnectingPoint num="4" id="727" />
-<TGConnectingPoint num="5" id="728" />
-<TGConnectingPoint num="6" id="729" />
-<TGConnectingPoint num="7" id="730" />
-<TGConnectingPoint num="8" id="731" />
-<TGConnectingPoint num="9" id="732" />
-<TGConnectingPoint num="10" id="733" />
-<TGConnectingPoint num="11" id="734" />
-<TGConnectingPoint num="12" id="735" />
-<TGConnectingPoint num="13" id="736" />
-<TGConnectingPoint num="14" id="737" />
-<TGConnectingPoint num="15" id="738" />
-<TGConnectingPoint num="16" id="739" />
-<TGConnectingPoint num="17" id="740" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="756" >
-<father id="799" num="3" />
-<cdparam x="1220" y="353" />
-<sizeparam width="144" height="84" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1224" y="471" />
+<sizeparam width="138" height="82" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="67" minY="0" maxY="170" />
-<infoparam name="Primitive component" value="X_CWP_Q" />
-<TGConnectingPoint num="0" id="748" />
-<TGConnectingPoint num="1" id="749" />
-<TGConnectingPoint num="2" id="750" />
-<TGConnectingPoint num="3" id="751" />
-<TGConnectingPoint num="4" id="752" />
-<TGConnectingPoint num="5" id="753" />
-<TGConnectingPoint num="6" id="754" />
-<TGConnectingPoint num="7" id="755" />
+<cdrectangleparam minX="0" maxX="73" minY="0" maxY="172" />
+<infoparam name="Primitive component" value="F_CWP_Q" />
+<TGConnectingPoint num="0" id="710" />
+<TGConnectingPoint num="1" id="711" />
+<TGConnectingPoint num="2" id="712" />
+<TGConnectingPoint num="3" id="713" />
+<TGConnectingPoint num="4" id="714" />
+<TGConnectingPoint num="5" id="715" />
+<TGConnectingPoint num="6" id="716" />
+<TGConnectingPoint num="7" id="717" />
 <extraparam>
 <Data isAttacker="No" Operation="" />
 <Attribute access="2" id="size" value="" type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="743" >
-<father id="756" num="0" />
-<cdparam x="1351" y="380" />
+<SUBCOMPONENT type="1203" id="705" >
+<father id="718" num="0" />
+<cdparam x="1322" y="458" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="131" minY="-13" maxY="71" />
-<infoparam name="Primitive port" value="Channel cwpQ_ch_out" />
-<TGConnectingPoint num="0" id="742" />
+<cdrectangleparam minX="-13" maxX="125" minY="-13" maxY="69" />
+<infoparam name="Primitive port" value="Request cwpQ_req" />
+<TGConnectingPoint num="0" id="704" />
 <extraparam>
-<Prop commName="cwpQ_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
-<Type type="0" typeOther="" />
+<Prop commName="cwpQ_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<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="745" >
-<father id="756" num="1" />
-<cdparam x="1207" y="375" />
+<SUBCOMPONENT type="1203" id="707" >
+<father id="718" num="1" />
+<cdparam x="1211" y="487" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="131" minY="-13" maxY="71" />
-<infoparam name="Primitive port" value="Channel cwpQ_ch_in" />
-<TGConnectingPoint num="0" id="744" />
+<cdrectangleparam minX="-13" maxX="125" minY="-13" maxY="69" />
+<infoparam name="Primitive port" value="Event cwpQ_evt_in" />
+<TGConnectingPoint num="0" id="706" />
 <extraparam>
-<Prop commName="cwpQ_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
-<Type type="0" typeOther="" />
+<Prop commName="cwpQ_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<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="747" >
-<father id="756" num="2" />
-<cdparam x="1236" y="424" />
+<SUBCOMPONENT type="1203" id="709" >
+<father id="718" num="2" />
+<cdparam x="1349" y="510" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="131" minY="-13" maxY="71" />
-<infoparam name="Primitive port" value="Request cwpQ_req" />
-<TGConnectingPoint num="0" id="746" />
+<cdrectangleparam minX="-13" maxX="125" minY="-13" maxY="69" />
+<infoparam name="Primitive port" value="Event cwpQ_evt_out" />
+<TGConnectingPoint num="0" id="708" />
 <extraparam>
-<Prop commName="cwpQ_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="cwpQ_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -2154,36 +2102,36 @@ processing tasks
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="771" >
-<father id="799" num="4" />
-<cdparam x="1224" y="471" />
-<sizeparam width="138" height="82" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1202" id="733" >
+<father id="799" num="2" />
+<cdparam x="1220" y="353" />
+<sizeparam width="144" height="84" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="73" minY="0" maxY="172" />
-<infoparam name="Primitive component" value="F_CWP_Q" />
-<TGConnectingPoint num="0" id="763" />
-<TGConnectingPoint num="1" id="764" />
-<TGConnectingPoint num="2" id="765" />
-<TGConnectingPoint num="3" id="766" />
-<TGConnectingPoint num="4" id="767" />
-<TGConnectingPoint num="5" id="768" />
-<TGConnectingPoint num="6" id="769" />
-<TGConnectingPoint num="7" id="770" />
+<cdrectangleparam minX="0" maxX="67" minY="0" maxY="170" />
+<infoparam name="Primitive component" value="X_CWP_Q" />
+<TGConnectingPoint num="0" id="725" />
+<TGConnectingPoint num="1" id="726" />
+<TGConnectingPoint num="2" id="727" />
+<TGConnectingPoint num="3" id="728" />
+<TGConnectingPoint num="4" id="729" />
+<TGConnectingPoint num="5" id="730" />
+<TGConnectingPoint num="6" id="731" />
+<TGConnectingPoint num="7" id="732" />
 <extraparam>
 <Data isAttacker="No" Operation="" />
 <Attribute access="2" id="size" value="" type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="758" >
-<father id="771" num="0" />
-<cdparam x="1349" y="510" />
+<SUBCOMPONENT type="1203" id="720" >
+<father id="733" num="0" />
+<cdparam x="1236" y="424" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="125" minY="-13" maxY="69" />
-<infoparam name="Primitive port" value="Event cwpQ_evt_out" />
-<TGConnectingPoint num="0" id="757" />
+<cdrectangleparam minX="-13" maxX="131" minY="-13" maxY="71" />
+<infoparam name="Primitive port" value="Request cwpQ_req" />
+<TGConnectingPoint num="0" id="719" />
 <extraparam>
-<Prop commName="cwpQ_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="cwpQ_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -2191,43 +2139,95 @@ processing tasks
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="760" >
-<father id="771" num="1" />
-<cdparam x="1211" y="487" />
+<SUBCOMPONENT type="1203" id="722" >
+<father id="733" num="1" />
+<cdparam x="1207" y="375" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="125" minY="-13" maxY="69" />
-<infoparam name="Primitive port" value="Event cwpQ_evt_in" />
-<TGConnectingPoint num="0" id="759" />
+<cdrectangleparam minX="-13" maxX="131" minY="-13" maxY="71" />
+<infoparam name="Primitive port" value="Channel cwpQ_ch_in" />
+<TGConnectingPoint num="0" id="721" />
 <extraparam>
-<Prop commName="cwpQ_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
-<Type type="1" typeOther="" />
+<Prop commName="cwpQ_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<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="762" >
-<father id="771" num="2" />
-<cdparam x="1322" y="458" />
+<SUBCOMPONENT type="1203" id="724" >
+<father id="733" num="2" />
+<cdparam x="1351" y="380" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="125" minY="-13" maxY="69" />
-<infoparam name="Primitive port" value="Request cwpQ_req" />
-<TGConnectingPoint num="0" id="761" />
+<cdrectangleparam minX="-13" maxX="131" minY="-13" maxY="71" />
+<infoparam name="Primitive port" value="Channel cwpQ_ch_out" />
+<TGConnectingPoint num="0" id="723" />
 <extraparam>
-<Prop commName="cwpQ_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
-<Type type="1" typeOther="" />
+<Prop commName="cwpQ_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="752" >
+<father id="799" num="3" />
+<cdparam x="1173" y="487" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="198" minY="-13" maxY="241" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="734" />
+<TGConnectingPoint num="1" id="735" />
+<TGConnectingPoint num="2" id="736" />
+<TGConnectingPoint num="3" id="737" />
+<TGConnectingPoint num="4" id="738" />
+<TGConnectingPoint num="5" id="739" />
+<TGConnectingPoint num="6" id="740" />
+<TGConnectingPoint num="7" id="741" />
+<TGConnectingPoint num="8" id="742" />
+<TGConnectingPoint num="9" id="743" />
+<TGConnectingPoint num="10" id="744" />
+<TGConnectingPoint num="11" id="745" />
+<TGConnectingPoint num="12" id="746" />
+<TGConnectingPoint num="13" id="747" />
+<TGConnectingPoint num="14" id="748" />
+<TGConnectingPoint num="15" id="749" />
+<TGConnectingPoint num="16" id="750" />
+<TGConnectingPoint num="17" id="751" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="771" >
+<father id="799" num="4" />
+<cdparam x="1384" y="510" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="198" minY="-13" maxY="241" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="753" />
+<TGConnectingPoint num="1" id="754" />
+<TGConnectingPoint num="2" id="755" />
+<TGConnectingPoint num="3" id="756" />
+<TGConnectingPoint num="4" id="757" />
+<TGConnectingPoint num="5" id="758" />
+<TGConnectingPoint num="6" id="759" />
+<TGConnectingPoint num="7" id="760" />
+<TGConnectingPoint num="8" id="761" />
+<TGConnectingPoint num="9" id="762" />
+<TGConnectingPoint num="10" id="763" />
+<TGConnectingPoint num="11" id="764" />
+<TGConnectingPoint num="12" id="765" />
+<TGConnectingPoint num="13" id="766" />
+<TGConnectingPoint num="14" id="767" />
+<TGConnectingPoint num="15" id="768" />
+<TGConnectingPoint num="16" id="769" />
+<TGConnectingPoint num="17" id="770" />
+</SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="790" >
 <father id="799" num="5" />
-<cdparam x="1173" y="375" />
+<cdparam x="1384" y="380" />
 <sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="198" minY="-13" maxY="241" />
@@ -2272,7 +2272,7 @@ processing tasks
 </COMPONENT>
 <SUBCOMPONENT type="1201" id="818" >
 <father id="914" num="0" />
-<cdparam x="1387" y="249" />
+<cdparam x="1387" y="111" />
 <sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="201" minY="-13" maxY="267" />
@@ -2296,122 +2296,70 @@ processing tasks
 <TGConnectingPoint num="16" id="816" />
 <TGConnectingPoint num="17" id="817" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1201" id="837" >
+<SUBCOMPONENT type="1202" id="833" >
 <father id="914" num="1" />
-<cdparam x="1173" y="110" />
-<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-13" maxX="201" minY="-13" maxY="267" />
-<infoparam name="Composite port" value="" />
-<TGConnectingPoint num="0" id="819" />
-<TGConnectingPoint num="1" id="820" />
-<TGConnectingPoint num="2" id="821" />
-<TGConnectingPoint num="3" id="822" />
-<TGConnectingPoint num="4" id="823" />
-<TGConnectingPoint num="5" id="824" />
-<TGConnectingPoint num="6" id="825" />
-<TGConnectingPoint num="7" id="826" />
-<TGConnectingPoint num="8" id="827" />
-<TGConnectingPoint num="9" id="828" />
-<TGConnectingPoint num="10" id="829" />
-<TGConnectingPoint num="11" id="830" />
-<TGConnectingPoint num="12" id="831" />
-<TGConnectingPoint num="13" id="832" />
-<TGConnectingPoint num="14" id="833" />
-<TGConnectingPoint num="15" id="834" />
-<TGConnectingPoint num="16" id="835" />
-<TGConnectingPoint num="17" id="836" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1201" id="856" >
-<father id="914" num="2" />
-<cdparam x="1173" y="249" />
-<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-13" maxX="201" minY="-13" maxY="267" />
-<infoparam name="Composite port" value="" />
-<TGConnectingPoint num="0" id="838" />
-<TGConnectingPoint num="1" id="839" />
-<TGConnectingPoint num="2" id="840" />
-<TGConnectingPoint num="3" id="841" />
-<TGConnectingPoint num="4" id="842" />
-<TGConnectingPoint num="5" id="843" />
-<TGConnectingPoint num="6" id="844" />
-<TGConnectingPoint num="7" id="845" />
-<TGConnectingPoint num="8" id="846" />
-<TGConnectingPoint num="9" id="847" />
-<TGConnectingPoint num="10" id="848" />
-<TGConnectingPoint num="11" id="849" />
-<TGConnectingPoint num="12" id="850" />
-<TGConnectingPoint num="13" id="851" />
-<TGConnectingPoint num="14" id="852" />
-<TGConnectingPoint num="15" id="853" />
-<TGConnectingPoint num="16" id="854" />
-<TGConnectingPoint num="17" id="855" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="871" >
-<father id="914" num="3" />
-<cdparam x="1220" y="62" />
-<sizeparam width="144" height="96" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1222" y="194" />
+<sizeparam width="143" height="86" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="70" minY="0" maxY="184" />
-<infoparam name="Primitive component" value="X_CWP_I" />
-<TGConnectingPoint num="0" id="863" />
-<TGConnectingPoint num="1" id="864" />
-<TGConnectingPoint num="2" id="865" />
-<TGConnectingPoint num="3" id="866" />
-<TGConnectingPoint num="4" id="867" />
-<TGConnectingPoint num="5" id="868" />
-<TGConnectingPoint num="6" id="869" />
-<TGConnectingPoint num="7" id="870" />
+<cdrectangleparam minX="0" maxX="71" minY="0" maxY="194" />
+<infoparam name="Primitive component" value="F_CWP_I" />
+<TGConnectingPoint num="0" id="825" />
+<TGConnectingPoint num="1" id="826" />
+<TGConnectingPoint num="2" id="827" />
+<TGConnectingPoint num="3" id="828" />
+<TGConnectingPoint num="4" id="829" />
+<TGConnectingPoint num="5" id="830" />
+<TGConnectingPoint num="6" id="831" />
+<TGConnectingPoint num="7" id="832" />
 <extraparam>
 <Data isAttacker="No" Operation="" />
 <Attribute access="2" id="size" value="" type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="858" >
-<father id="871" num="0" />
-<cdparam x="1351" y="111" />
+<SUBCOMPONENT type="1203" id="820" >
+<father id="833" num="0" />
+<cdparam x="1320" y="181" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="131" minY="-13" maxY="83" />
-<infoparam name="Primitive port" value="Channel cwpI_ch_out" />
-<TGConnectingPoint num="0" id="857" />
+<cdrectangleparam minX="-13" maxX="130" minY="-13" maxY="73" />
+<infoparam name="Primitive port" value="Request cwpI_req" />
+<TGConnectingPoint num="0" id="819" />
 <extraparam>
-<Prop commName="cwpI_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
-<Type type="0" typeOther="" />
+<Prop commName="cwpI_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<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="860" >
-<father id="871" num="1" />
-<cdparam x="1207" y="110" />
+<SUBCOMPONENT type="1203" id="822" >
+<father id="833" num="1" />
+<cdparam x="1209" y="249" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="131" minY="-13" maxY="83" />
-<infoparam name="Primitive port" value="Channel cwpI_ch_in" />
-<TGConnectingPoint num="0" id="859" />
+<cdrectangleparam minX="-13" maxX="130" minY="-13" maxY="73" />
+<infoparam name="Primitive port" value="Event cwpI_evt_in" />
+<TGConnectingPoint num="0" id="821" />
 <extraparam>
-<Prop commName="cwpI_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
-<Type type="0" typeOther="" />
+<Prop commName="cwpI_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<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="862" >
-<father id="871" num="2" />
-<cdparam x="1244" y="145" />
+<SUBCOMPONENT type="1203" id="824" >
+<father id="833" num="2" />
+<cdparam x="1352" y="249" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="131" minY="-13" maxY="83" />
-<infoparam name="Primitive port" value="Request cwpI_req" />
-<TGConnectingPoint num="0" id="861" />
+<cdrectangleparam minX="-13" maxX="130" minY="-13" maxY="73" />
+<infoparam name="Primitive port" value="Event cwpI_evt_out" />
+<TGConnectingPoint num="0" id="823" />
 <extraparam>
-<Prop commName="cwpI_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="cwpI_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -2419,36 +2367,36 @@ processing tasks
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="886" >
-<father id="914" num="4" />
-<cdparam x="1222" y="194" />
-<sizeparam width="143" height="86" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1202" id="848" >
+<father id="914" num="2" />
+<cdparam x="1220" y="62" />
+<sizeparam width="144" height="96" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="71" minY="0" maxY="194" />
-<infoparam name="Primitive component" value="F_CWP_I" />
-<TGConnectingPoint num="0" id="878" />
-<TGConnectingPoint num="1" id="879" />
-<TGConnectingPoint num="2" id="880" />
-<TGConnectingPoint num="3" id="881" />
-<TGConnectingPoint num="4" id="882" />
-<TGConnectingPoint num="5" id="883" />
-<TGConnectingPoint num="6" id="884" />
-<TGConnectingPoint num="7" id="885" />
+<cdrectangleparam minX="0" maxX="70" minY="0" maxY="184" />
+<infoparam name="Primitive component" value="X_CWP_I" />
+<TGConnectingPoint num="0" id="840" />
+<TGConnectingPoint num="1" id="841" />
+<TGConnectingPoint num="2" id="842" />
+<TGConnectingPoint num="3" id="843" />
+<TGConnectingPoint num="4" id="844" />
+<TGConnectingPoint num="5" id="845" />
+<TGConnectingPoint num="6" id="846" />
+<TGConnectingPoint num="7" id="847" />
 <extraparam>
 <Data isAttacker="No" Operation="" />
 <Attribute access="2" id="size" value="" type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="873" >
-<father id="886" num="0" />
-<cdparam x="1352" y="249" />
+<SUBCOMPONENT type="1203" id="835" >
+<father id="848" num="0" />
+<cdparam x="1244" y="145" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="130" minY="-13" maxY="73" />
-<infoparam name="Primitive port" value="Event cwpI_evt_out" />
-<TGConnectingPoint num="0" id="872" />
+<cdrectangleparam minX="-13" maxX="131" minY="-13" maxY="83" />
+<infoparam name="Primitive port" value="Request cwpI_req" />
+<TGConnectingPoint num="0" id="834" />
 <extraparam>
-<Prop commName="cwpI_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Prop commName="cwpI_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -2456,43 +2404,95 @@ processing tasks
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="875" >
-<father id="886" num="1" />
-<cdparam x="1209" y="249" />
+<SUBCOMPONENT type="1203" id="837" >
+<father id="848" num="1" />
+<cdparam x="1207" y="110" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="130" minY="-13" maxY="73" />
-<infoparam name="Primitive port" value="Event cwpI_evt_in" />
-<TGConnectingPoint num="0" id="874" />
+<cdrectangleparam minX="-13" maxX="131" minY="-13" maxY="83" />
+<infoparam name="Primitive port" value="Channel cwpI_ch_in" />
+<TGConnectingPoint num="0" id="836" />
 <extraparam>
-<Prop commName="cwpI_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
-<Type type="1" typeOther="" />
+<Prop commName="cwpI_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<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="877" >
-<father id="886" num="2" />
-<cdparam x="1320" y="181" />
+<SUBCOMPONENT type="1203" id="839" >
+<father id="848" num="2" />
+<cdparam x="1351" y="111" />
 <sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="130" minY="-13" maxY="73" />
-<infoparam name="Primitive port" value="Request cwpI_req" />
-<TGConnectingPoint num="0" id="876" />
+<cdrectangleparam minX="-13" maxX="131" minY="-13" maxY="83" />
+<infoparam name="Primitive port" value="Channel cwpI_ch_out" />
+<TGConnectingPoint num="0" id="838" />
 <extraparam>
-<Prop commName="cwpI_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
-<Type type="1" typeOther="" />
+<Prop commName="cwpI_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" vc="-1" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="867" >
+<father id="914" num="3" />
+<cdparam x="1173" y="249" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="201" minY="-13" maxY="267" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="849" />
+<TGConnectingPoint num="1" id="850" />
+<TGConnectingPoint num="2" id="851" />
+<TGConnectingPoint num="3" id="852" />
+<TGConnectingPoint num="4" id="853" />
+<TGConnectingPoint num="5" id="854" />
+<TGConnectingPoint num="6" id="855" />
+<TGConnectingPoint num="7" id="856" />
+<TGConnectingPoint num="8" id="857" />
+<TGConnectingPoint num="9" id="858" />
+<TGConnectingPoint num="10" id="859" />
+<TGConnectingPoint num="11" id="860" />
+<TGConnectingPoint num="12" id="861" />
+<TGConnectingPoint num="13" id="862" />
+<TGConnectingPoint num="14" id="863" />
+<TGConnectingPoint num="15" id="864" />
+<TGConnectingPoint num="16" id="865" />
+<TGConnectingPoint num="17" id="866" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="886" >
+<father id="914" num="4" />
+<cdparam x="1173" y="110" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="201" minY="-13" maxY="267" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="868" />
+<TGConnectingPoint num="1" id="869" />
+<TGConnectingPoint num="2" id="870" />
+<TGConnectingPoint num="3" id="871" />
+<TGConnectingPoint num="4" id="872" />
+<TGConnectingPoint num="5" id="873" />
+<TGConnectingPoint num="6" id="874" />
+<TGConnectingPoint num="7" id="875" />
+<TGConnectingPoint num="8" id="876" />
+<TGConnectingPoint num="9" id="877" />
+<TGConnectingPoint num="10" id="878" />
+<TGConnectingPoint num="11" id="879" />
+<TGConnectingPoint num="12" id="880" />
+<TGConnectingPoint num="13" id="881" />
+<TGConnectingPoint num="14" id="882" />
+<TGConnectingPoint num="15" id="883" />
+<TGConnectingPoint num="16" id="884" />
+<TGConnectingPoint num="17" id="885" />
+</SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="905" >
 <father id="914" num="5" />
-<cdparam x="1387" y="111" />
+<cdparam x="1387" y="249" />
 <sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="201" minY="-13" maxY="267" />
@@ -3837,8 +3837,8 @@ processing tasks
 
 <TMLActivityDiagramPanel name="F_CWP_I" minX="10" maxX="1400" minY="10" maxY="900" >
 <COMPONENT type="1010" id="1147" >
-<cdparam x="321" y="132" />
-<sizeparam width="116" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="324" y="132" />
+<sizeparam width="110" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
@@ -3861,8 +3861,8 @@ processing tasks
 </COMPONENT>
 
 <COMPONENT type="1008" id="1152" >
-<cdparam x="318" y="278" />
-<sizeparam width="122" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="322" y="278" />
+<sizeparam width="114" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
@@ -3876,8 +3876,8 @@ processing tasks
 </COMPONENT>
 
 <COMPONENT type="1007" id="1155" >
-<cdparam x="331" y="204" />
-<sizeparam width="97" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="333" y="204" />
+<sizeparam width="93" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
@@ -6405,8 +6405,8 @@ POLLING
 <cdparam x="375" y="115" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="192000" y="58880" id="2508" />
-<P2  x="192000" y="83456" id="2492" />
+<P1  x="393216000" y="120586240" id="2508" />
+<P2  x="393216000" y="170917888" id="2492" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
@@ -7064,8 +7064,8 @@ POLLING
 <cdparam x="294" y="79" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="150528" y="40448" id="2878" />
-<P2  x="150528" y="65024" id="2862" />
+<P1  x="308281344" y="82837504" id="2878" />
+<P2  x="308281344" y="133169152" id="2862" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
@@ -10882,9 +10882,9 @@ sequence diagram.
 <SUBCOMPONENT type="1101" id="5084" >
 <father id="5109" num="0" />
 <cdparam x="109" y="301" />
-<sizeparam width="146" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="141" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="106" minY="0" maxY="141" />
+<cdrectangleparam minX="0" maxX="111" minY="0" maxY="141" />
 <infoparam name="TGComponent" value="Zigbee_TX::X_Sink" />
 <TGConnectingPoint num="0" id="5076" />
 <TGConnectingPoint num="1" id="5077" />
@@ -11008,11 +11008,11 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1101" id="5168" >
 <father id="5256" num="0" />
-<cdparam x="1465" y="339" />
-<sizeparam width="164" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1686" y="522" />
+<sizeparam width="150" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_Source" />
+<cdrectangleparam minX="0" maxX="267" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_I" />
 <TGConnectingPoint num="0" id="5160" />
 <TGConnectingPoint num="1" id="5161" />
 <TGConnectingPoint num="2" id="5162" />
@@ -11022,16 +11022,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5166" />
 <TGConnectingPoint num="7" id="5167" />
 <extraparam>
-<info value="Zigbee_TX::F_Source" taskName="F_Source" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_Source" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_CWP_I" taskName="F_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_CWP_I" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="5177" >
 <father id="5256" num="1" />
-<cdparam x="1466" y="395" />
-<sizeparam width="164" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1685" y="459" />
+<sizeparam width="156" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::X_Source" />
+<cdrectangleparam minX="0" maxX="261" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_Q" />
 <TGConnectingPoint num="0" id="5169" />
 <TGConnectingPoint num="1" id="5170" />
 <TGConnectingPoint num="2" id="5171" />
@@ -11041,16 +11041,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5175" />
 <TGConnectingPoint num="7" id="5176" />
 <extraparam>
-<info value="Zigbee_TX::X_Source" taskName="X_Source" referenceTaskName="Zigbee_TX" priority="0" operationMEC="X_Source" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_CWP_Q" taskName="F_CWP_Q" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_CWP_Q" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="5186" >
 <father id="5256" num="2" />
-<cdparam x="1466" y="456" />
-<sizeparam width="223" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1691" y="345" />
+<sizeparam width="140" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="194" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_Symbol2ChipSeq" />
+<cdrectangleparam minX="0" maxX="277" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWL" />
 <TGConnectingPoint num="0" id="5178" />
 <TGConnectingPoint num="1" id="5179" />
 <TGConnectingPoint num="2" id="5180" />
@@ -11060,16 +11060,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5184" />
 <TGConnectingPoint num="7" id="5185" />
 <extraparam>
-<info value="Zigbee_TX::F_Symbol2ChipSeq" taskName="F_Symbol2ChipSeq" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_Symbol2ChipSeq" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_CWL" taskName="F_CWL" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_CWL" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="5195" >
 <father id="5256" num="3" />
-<cdparam x="1466" y="518" />
-<sizeparam width="189" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1688" y="405" />
+<sizeparam width="139" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="228" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::X_Chip2Octet" />
+<cdrectangleparam minX="0" maxX="278" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Sink" />
 <TGConnectingPoint num="0" id="5187" />
 <TGConnectingPoint num="1" id="5188" />
 <TGConnectingPoint num="2" id="5189" />
@@ -11079,16 +11079,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5193" />
 <TGConnectingPoint num="7" id="5194" />
 <extraparam>
-<info value="Zigbee_TX::X_Chip2Octet" taskName="X_Chip2Octet" referenceTaskName="Zigbee_TX" priority="0" operationMEC="X_Chip2Octet" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_Sink" taskName="F_Sink" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_Sink" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="5204" >
 <father id="5256" num="4" />
-<cdparam x="1688" y="405" />
-<sizeparam width="146" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1466" y="518" />
+<sizeparam width="182" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="271" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_Sink" />
+<cdrectangleparam minX="0" maxX="235" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_Chip2Octet" />
 <TGConnectingPoint num="0" id="5196" />
 <TGConnectingPoint num="1" id="5197" />
 <TGConnectingPoint num="2" id="5198" />
@@ -11098,16 +11098,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5202" />
 <TGConnectingPoint num="7" id="5203" />
 <extraparam>
-<info value="Zigbee_TX::F_Sink" taskName="F_Sink" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_Sink" fatherComponentMECType="0" />
+<info value="Zigbee_TX::X_Chip2Octet" taskName="X_Chip2Octet" referenceTaskName="Zigbee_TX" priority="0" operationMEC="X_Chip2Octet" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="5213" >
 <father id="5256" num="5" />
-<cdparam x="1691" y="345" />
-<sizeparam width="145" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1466" y="456" />
+<sizeparam width="212" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="272" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_CWL" />
+<cdrectangleparam minX="0" maxX="205" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Symbol2ChipSeq" />
 <TGConnectingPoint num="0" id="5205" />
 <TGConnectingPoint num="1" id="5206" />
 <TGConnectingPoint num="2" id="5207" />
@@ -11117,16 +11117,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5211" />
 <TGConnectingPoint num="7" id="5212" />
 <extraparam>
-<info value="Zigbee_TX::F_CWL" taskName="F_CWL" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_CWL" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_Symbol2ChipSeq" taskName="F_Symbol2ChipSeq" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_Symbol2ChipSeq" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="5222" >
 <father id="5256" num="6" />
-<cdparam x="1685" y="459" />
-<sizeparam width="162" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1466" y="395" />
+<sizeparam width="156" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="255" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_Q" />
+<cdrectangleparam minX="0" maxX="261" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_Source" />
 <TGConnectingPoint num="0" id="5214" />
 <TGConnectingPoint num="1" id="5215" />
 <TGConnectingPoint num="2" id="5216" />
@@ -11136,16 +11136,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5220" />
 <TGConnectingPoint num="7" id="5221" />
 <extraparam>
-<info value="Zigbee_TX::F_CWP_Q" taskName="F_CWP_Q" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_CWP_Q" fatherComponentMECType="0" />
+<info value="Zigbee_TX::X_Source" taskName="X_Source" referenceTaskName="Zigbee_TX" priority="0" operationMEC="X_Source" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="5231" >
 <father id="5256" num="7" />
-<cdparam x="1686" y="522" />
-<sizeparam width="156" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1465" y="339" />
+<sizeparam width="154" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="261" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_I" />
+<cdrectangleparam minX="0" maxX="263" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Source" />
 <TGConnectingPoint num="0" id="5223" />
 <TGConnectingPoint num="1" id="5224" />
 <TGConnectingPoint num="2" id="5225" />
@@ -11155,7 +11155,7 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5229" />
 <TGConnectingPoint num="7" id="5230" />
 <extraparam>
-<info value="Zigbee_TX::F_CWP_I" taskName="F_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_CWP_I" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_Source" taskName="F_Source" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_Source" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 
@@ -11377,9 +11377,9 @@ sequence diagram.
 <SUBCOMPONENT type="1101" id="5390" >
 <father id="5415" num="0" />
 <cdparam x="105" y="993" />
-<sizeparam width="189" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="180" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="45" minY="0" maxY="100" />
+<cdrectangleparam minX="0" maxX="54" minY="0" maxY="100" />
 <infoparam name="TGComponent" value="Zigbee_TX::F_Chip2Octet" />
 <TGConnectingPoint num="0" id="5382" />
 <TGConnectingPoint num="1" id="5383" />
@@ -11575,11 +11575,11 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1101" id="5524" >
 <father id="5567" num="0" />
-<cdparam x="732" y="283" />
-<sizeparam width="156" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="700" y="233" />
+<sizeparam width="142" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="82" minY="0" maxY="145" />
-<infoparam name="TGComponent" value="Zigbee_TX::X_CWP_I" />
+<cdrectangleparam minX="0" maxX="96" minY="0" maxY="145" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_CWL" />
 <TGConnectingPoint num="0" id="5516" />
 <TGConnectingPoint num="1" id="5517" />
 <TGConnectingPoint num="2" id="5518" />
@@ -11589,15 +11589,15 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5522" />
 <TGConnectingPoint num="7" id="5523" />
 <extraparam>
-<info value="Zigbee_TX::X_CWP_I" taskName="X_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operationMEC="CWP" fatherComponentMECType="1" />
+<info value="Zigbee_TX::X_CWL" taskName="X_CWL" referenceTaskName="Zigbee_TX" priority="0" operationMEC="CWL" fatherComponentMECType="1" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="5533" >
 <father id="5567" num="1" />
 <cdparam x="701" y="329" />
-<sizeparam width="162" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="158" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="76" minY="0" maxY="145" />
+<cdrectangleparam minX="0" maxX="80" minY="0" maxY="145" />
 <infoparam name="TGComponent" value="Zigbee_TX::X_CWP_Q" />
 <TGConnectingPoint num="0" id="5525" />
 <TGConnectingPoint num="1" id="5526" />
@@ -11613,11 +11613,11 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="5542" >
 <father id="5567" num="2" />
-<cdparam x="700" y="233" />
-<sizeparam width="145" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="732" y="283" />
+<sizeparam width="152" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="93" minY="0" maxY="145" />
-<infoparam name="TGComponent" value="Zigbee_TX::X_CWL" />
+<cdrectangleparam minX="0" maxX="86" minY="0" maxY="145" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_CWP_I" />
 <TGConnectingPoint num="0" id="5534" />
 <TGConnectingPoint num="1" id="5535" />
 <TGConnectingPoint num="2" id="5536" />
@@ -11627,7 +11627,7 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5540" />
 <TGConnectingPoint num="7" id="5541" />
 <extraparam>
-<info value="Zigbee_TX::X_CWL" taskName="X_CWL" referenceTaskName="Zigbee_TX" priority="0" operationMEC="CWL" fatherComponentMECType="1" />
+<info value="Zigbee_TX::X_CWP_I" taskName="X_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operationMEC="CWP" fatherComponentMECType="1" />
 </extraparam>
 </SUBCOMPONENT>
 
@@ -11849,9 +11849,9 @@ sequence diagram.
 <SUBCOMPONENT type="1101" id="5701" >
 <father id="5726" num="0" />
 <cdparam x="743" y="1030" />
-<sizeparam width="223" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="214" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="21" minY="0" maxY="118" />
+<cdrectangleparam minX="0" maxX="30" minY="0" maxY="118" />
 <infoparam name="TGComponent" value="Zigbee_TX::X_Symbol2ChipSeq" />
 <TGConnectingPoint num="0" id="5693" />
 <TGConnectingPoint num="1" id="5694" />
@@ -11933,9 +11933,9 @@ sequence diagram.
 <SUBCOMPONENT type="1110" id="5760" >
 <father id="5769" num="0" />
 <cdparam x="295" y="1302" />
-<sizeparam width="212" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="199" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="207" minY="0" maxY="45" />
+<cdrectangleparam minX="0" maxX="220" minY="0" maxY="45" />
 <infoparam name="TGComponent" value="Zigbee_TX::chip2octet_ch_in" />
 <TGConnectingPoint num="0" id="5752" />
 <TGConnectingPoint num="1" id="5753" />
@@ -11981,9 +11981,9 @@ sequence diagram.
 <SUBCOMPONENT type="1110" id="5778" >
 <father id="5787" num="0" />
 <cdparam x="327" y="1437" />
-<sizeparam width="164" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="157" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="241" minY="0" maxY="48" />
+<cdrectangleparam minX="0" maxX="248" minY="0" maxY="48" />
 <infoparam name="TGComponent" value="Zigbee_TX::cwl_ch_in" />
 <TGConnectingPoint num="0" id="5770" />
 <TGConnectingPoint num="1" id="5771" />
@@ -12038,9 +12038,9 @@ sequence diagram.
 <SUBCOMPONENT type="1110" id="5796" >
 <father id="5805" num="0" />
 <cdparam x="700" y="1290" />
-<sizeparam width="170" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="162" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="125" minY="0" maxY="105" />
+<cdrectangleparam minX="0" maxX="133" minY="0" maxY="105" />
 <infoparam name="TGComponent" value="Zigbee_TX::sink_ch_in" />
 <TGConnectingPoint num="0" id="5788" />
 <TGConnectingPoint num="1" id="5789" />
@@ -12083,9 +12083,9 @@ sequence diagram.
 <SUBCOMPONENT type="1110" id="5814" >
 <father id="5823" num="0" />
 <cdparam x="157" y="1179" />
-<sizeparam width="247" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="235" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="174" minY="0" maxY="45" />
+<cdrectangleparam minX="0" maxX="186" minY="0" maxY="45" />
 <infoparam name="TGComponent" value="Zigbee_TX::symbol2ChipSeq_ch_in" />
 <TGConnectingPoint num="0" id="5806" />
 <TGConnectingPoint num="1" id="5807" />
@@ -12592,9 +12592,9 @@ sequence diagram.
 <SUBCOMPONENT type="1101" id="5935" >
 <father id="5960" num="0" />
 <cdparam x="48" y="315" />
-<sizeparam width="146" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="141" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="106" minY="0" maxY="141" />
+<cdrectangleparam minX="0" maxX="111" minY="0" maxY="141" />
 <infoparam name="TGComponent" value="Zigbee_TX::X_Sink" />
 <TGConnectingPoint num="0" id="5927" />
 <TGConnectingPoint num="1" id="5928" />
@@ -12718,11 +12718,11 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1101" id="6019" >
 <father id="6107" num="0" />
-<cdparam x="1686" y="522" />
-<sizeparam width="156" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1465" y="339" />
+<sizeparam width="154" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="261" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_I" />
+<cdrectangleparam minX="0" maxX="263" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Source" />
 <TGConnectingPoint num="0" id="6011" />
 <TGConnectingPoint num="1" id="6012" />
 <TGConnectingPoint num="2" id="6013" />
@@ -12732,16 +12732,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="6017" />
 <TGConnectingPoint num="7" id="6018" />
 <extraparam>
-<info value="Zigbee_TX::F_CWP_I" taskName="F_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_CWP_I" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_Source" taskName="F_Source" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_Source" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="6028" >
 <father id="6107" num="1" />
-<cdparam x="1696" y="456" />
-<sizeparam width="162" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1466" y="395" />
+<sizeparam width="156" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="255" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_Q" />
+<cdrectangleparam minX="0" maxX="261" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_Source" />
 <TGConnectingPoint num="0" id="6020" />
 <TGConnectingPoint num="1" id="6021" />
 <TGConnectingPoint num="2" id="6022" />
@@ -12751,16 +12751,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="6026" />
 <TGConnectingPoint num="7" id="6027" />
 <extraparam>
-<info value="Zigbee_TX::F_CWP_Q" taskName="F_CWP_Q" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_CWP_Q" fatherComponentMECType="0" />
+<info value="Zigbee_TX::X_Source" taskName="X_Source" referenceTaskName="Zigbee_TX" priority="0" operationMEC="X_Source" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="6037" >
 <father id="6107" num="2" />
-<cdparam x="1691" y="345" />
-<sizeparam width="145" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1466" y="456" />
+<sizeparam width="212" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="272" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_CWL" />
+<cdrectangleparam minX="0" maxX="205" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Symbol2ChipSeq" />
 <TGConnectingPoint num="0" id="6029" />
 <TGConnectingPoint num="1" id="6030" />
 <TGConnectingPoint num="2" id="6031" />
@@ -12770,16 +12770,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="6035" />
 <TGConnectingPoint num="7" id="6036" />
 <extraparam>
-<info value="Zigbee_TX::F_CWL" taskName="F_CWL" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_CWL" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_Symbol2ChipSeq" taskName="F_Symbol2ChipSeq" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_Symbol2ChipSeq" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="6046" >
 <father id="6107" num="3" />
-<cdparam x="1688" y="405" />
-<sizeparam width="146" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1466" y="518" />
+<sizeparam width="180" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="271" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_Sink" />
+<cdrectangleparam minX="0" maxX="237" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Chip2Octet" />
 <TGConnectingPoint num="0" id="6038" />
 <TGConnectingPoint num="1" id="6039" />
 <TGConnectingPoint num="2" id="6040" />
@@ -12789,16 +12789,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="6044" />
 <TGConnectingPoint num="7" id="6045" />
 <extraparam>
-<info value="Zigbee_TX::F_Sink" taskName="F_Sink" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_Sink" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_Chip2Octet" taskName="F_Chip2Octet" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_Chip2Octet" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="6055" >
 <father id="6107" num="4" />
-<cdparam x="1466" y="518" />
-<sizeparam width="189" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1688" y="405" />
+<sizeparam width="139" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="228" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_Chip2Octet" />
+<cdrectangleparam minX="0" maxX="278" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Sink" />
 <TGConnectingPoint num="0" id="6047" />
 <TGConnectingPoint num="1" id="6048" />
 <TGConnectingPoint num="2" id="6049" />
@@ -12808,16 +12808,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="6053" />
 <TGConnectingPoint num="7" id="6054" />
 <extraparam>
-<info value="Zigbee_TX::F_Chip2Octet" taskName="F_Chip2Octet" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_Chip2Octet" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_Sink" taskName="F_Sink" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_Sink" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="6064" >
 <father id="6107" num="5" />
-<cdparam x="1466" y="456" />
-<sizeparam width="223" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1691" y="345" />
+<sizeparam width="140" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="194" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_Symbol2ChipSeq" />
+<cdrectangleparam minX="0" maxX="277" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWL" />
 <TGConnectingPoint num="0" id="6056" />
 <TGConnectingPoint num="1" id="6057" />
 <TGConnectingPoint num="2" id="6058" />
@@ -12827,16 +12827,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="6062" />
 <TGConnectingPoint num="7" id="6063" />
 <extraparam>
-<info value="Zigbee_TX::F_Symbol2ChipSeq" taskName="F_Symbol2ChipSeq" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_Symbol2ChipSeq" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_CWL" taskName="F_CWL" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_CWL" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="6073" >
 <father id="6107" num="6" />
-<cdparam x="1466" y="395" />
-<sizeparam width="164" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1696" y="456" />
+<sizeparam width="156" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::X_Source" />
+<cdrectangleparam minX="0" maxX="261" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_Q" />
 <TGConnectingPoint num="0" id="6065" />
 <TGConnectingPoint num="1" id="6066" />
 <TGConnectingPoint num="2" id="6067" />
@@ -12846,16 +12846,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="6071" />
 <TGConnectingPoint num="7" id="6072" />
 <extraparam>
-<info value="Zigbee_TX::X_Source" taskName="X_Source" referenceTaskName="Zigbee_TX" priority="0" operationMEC="X_Source" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_CWP_Q" taskName="F_CWP_Q" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_CWP_Q" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="6082" >
 <father id="6107" num="7" />
-<cdparam x="1465" y="339" />
-<sizeparam width="164" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1686" y="522" />
+<sizeparam width="150" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_Source" />
+<cdrectangleparam minX="0" maxX="267" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_I" />
 <TGConnectingPoint num="0" id="6074" />
 <TGConnectingPoint num="1" id="6075" />
 <TGConnectingPoint num="2" id="6076" />
@@ -12865,7 +12865,7 @@ sequence diagram.
 <TGConnectingPoint num="6" id="6080" />
 <TGConnectingPoint num="7" id="6081" />
 <extraparam>
-<info value="Zigbee_TX::F_Source" taskName="F_Source" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_Source" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_CWP_I" taskName="F_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_CWP_I" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 
@@ -13087,9 +13087,9 @@ sequence diagram.
 <SUBCOMPONENT type="1101" id="6241" >
 <father id="6266" num="0" />
 <cdparam x="105" y="993" />
-<sizeparam width="189" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="182" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="45" minY="0" maxY="100" />
+<cdrectangleparam minX="0" maxX="52" minY="0" maxY="100" />
 <infoparam name="TGComponent" value="Zigbee_TX::X_Chip2Octet" />
 <TGConnectingPoint num="0" id="6233" />
 <TGConnectingPoint num="1" id="6234" />
@@ -13285,11 +13285,11 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1101" id="6375" >
 <father id="6418" num="0" />
-<cdparam x="639" y="239" />
-<sizeparam width="145" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="671" y="289" />
+<sizeparam width="152" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="93" minY="0" maxY="145" />
-<infoparam name="TGComponent" value="Zigbee_TX::X_CWL" />
+<cdrectangleparam minX="0" maxX="86" minY="0" maxY="145" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_CWP_I" />
 <TGConnectingPoint num="0" id="6367" />
 <TGConnectingPoint num="1" id="6368" />
 <TGConnectingPoint num="2" id="6369" />
@@ -13299,15 +13299,15 @@ sequence diagram.
 <TGConnectingPoint num="6" id="6373" />
 <TGConnectingPoint num="7" id="6374" />
 <extraparam>
-<info value="Zigbee_TX::X_CWL" taskName="X_CWL" referenceTaskName="Zigbee_TX" priority="0" operationMEC="CWL" fatherComponentMECType="1" />
+<info value="Zigbee_TX::X_CWP_I" taskName="X_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operationMEC="CWP" fatherComponentMECType="1" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="6384" >
 <father id="6418" num="1" />
 <cdparam x="640" y="335" />
-<sizeparam width="162" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="158" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="76" minY="0" maxY="145" />
+<cdrectangleparam minX="0" maxX="80" minY="0" maxY="145" />
 <infoparam name="TGComponent" value="Zigbee_TX::X_CWP_Q" />
 <TGConnectingPoint num="0" id="6376" />
 <TGConnectingPoint num="1" id="6377" />
@@ -13323,11 +13323,11 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="6393" >
 <father id="6418" num="2" />
-<cdparam x="671" y="289" />
-<sizeparam width="156" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="639" y="239" />
+<sizeparam width="142" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="82" minY="0" maxY="145" />
-<infoparam name="TGComponent" value="Zigbee_TX::X_CWP_I" />
+<cdrectangleparam minX="0" maxX="96" minY="0" maxY="145" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_CWL" />
 <TGConnectingPoint num="0" id="6385" />
 <TGConnectingPoint num="1" id="6386" />
 <TGConnectingPoint num="2" id="6387" />
@@ -13337,7 +13337,7 @@ sequence diagram.
 <TGConnectingPoint num="6" id="6391" />
 <TGConnectingPoint num="7" id="6392" />
 <extraparam>
-<info value="Zigbee_TX::X_CWP_I" taskName="X_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operationMEC="CWP" fatherComponentMECType="1" />
+<info value="Zigbee_TX::X_CWL" taskName="X_CWL" referenceTaskName="Zigbee_TX" priority="0" operationMEC="CWL" fatherComponentMECType="1" />
 </extraparam>
 </SUBCOMPONENT>
 
@@ -13559,9 +13559,9 @@ sequence diagram.
 <SUBCOMPONENT type="1101" id="6552" >
 <father id="6577" num="0" />
 <cdparam x="749" y="1029" />
-<sizeparam width="223" height="45" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="214" height="45" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="14" minY="0" maxY="119" />
+<cdrectangleparam minX="0" maxX="23" minY="0" maxY="114" />
 <infoparam name="TGComponent" value="Zigbee_TX::X_Symbol2ChipSeq" />
 <TGConnectingPoint num="0" id="6544" />
 <TGConnectingPoint num="1" id="6545" />
@@ -13645,9 +13645,9 @@ sequence diagram.
 <SUBCOMPONENT type="1110" id="6611" >
 <father id="6620" num="0" />
 <cdparam x="292" y="1303" />
-<sizeparam width="212" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="199" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="207" minY="0" maxY="45" />
+<cdrectangleparam minX="0" maxX="220" minY="0" maxY="45" />
 <infoparam name="TGComponent" value="Zigbee_TX::chip2octet_ch_in" />
 <TGConnectingPoint num="0" id="6603" />
 <TGConnectingPoint num="1" id="6604" />
@@ -13692,9 +13692,9 @@ sequence diagram.
 <SUBCOMPONENT type="1110" id="6629" >
 <father id="6638" num="0" />
 <cdparam x="327" y="1437" />
-<sizeparam width="164" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="157" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="241" minY="0" maxY="48" />
+<cdrectangleparam minX="0" maxX="248" minY="0" maxY="48" />
 <infoparam name="TGComponent" value="Zigbee_TX::cwl_ch_in" />
 <TGConnectingPoint num="0" id="6621" />
 <TGConnectingPoint num="1" id="6622" />
@@ -13747,9 +13747,9 @@ sequence diagram.
 <SUBCOMPONENT type="1110" id="6647" >
 <father id="6656" num="0" />
 <cdparam x="701" y="1315" />
-<sizeparam width="170" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="162" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="125" minY="0" maxY="105" />
+<cdrectangleparam minX="0" maxX="133" minY="0" maxY="105" />
 <infoparam name="TGComponent" value="Zigbee_TX::sink_ch_in" />
 <TGConnectingPoint num="0" id="6639" />
 <TGConnectingPoint num="1" id="6640" />
@@ -13792,9 +13792,9 @@ sequence diagram.
 <SUBCOMPONENT type="1110" id="6665" >
 <father id="6674" num="0" />
 <cdparam x="280" y="1181" />
-<sizeparam width="247" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="235" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="174" minY="0" maxY="45" />
+<cdrectangleparam minX="0" maxX="186" minY="0" maxY="45" />
 <infoparam name="TGComponent" value="Zigbee_TX::symbol2ChipSeq_ch_in" />
 <TGConnectingPoint num="0" id="6657" />
 <TGConnectingPoint num="1" id="6658" />
@@ -14301,9 +14301,9 @@ sequence diagram.
 <SUBCOMPONENT type="1101" id="6786" >
 <father id="6811" num="0" />
 <cdparam x="48" y="315" />
-<sizeparam width="146" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="141" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="106" minY="0" maxY="141" />
+<cdrectangleparam minX="0" maxX="111" minY="0" maxY="141" />
 <infoparam name="TGComponent" value="Zigbee_TX::X_Sink" />
 <TGConnectingPoint num="0" id="6778" />
 <TGConnectingPoint num="1" id="6779" />
@@ -14427,11 +14427,11 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1101" id="6870" >
 <father id="6958" num="0" />
-<cdparam x="1465" y="339" />
-<sizeparam width="164" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1686" y="522" />
+<sizeparam width="150" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_Source" />
+<cdrectangleparam minX="0" maxX="267" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_I" />
 <TGConnectingPoint num="0" id="6862" />
 <TGConnectingPoint num="1" id="6863" />
 <TGConnectingPoint num="2" id="6864" />
@@ -14441,16 +14441,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="6868" />
 <TGConnectingPoint num="7" id="6869" />
 <extraparam>
-<info value="Zigbee_TX::F_Source" taskName="F_Source" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_Source" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_CWP_I" taskName="F_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_CWP_I" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="6879" >
 <father id="6958" num="1" />
-<cdparam x="1466" y="395" />
-<sizeparam width="164" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1685" y="459" />
+<sizeparam width="156" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::X_Source" />
+<cdrectangleparam minX="0" maxX="261" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_Q" />
 <TGConnectingPoint num="0" id="6871" />
 <TGConnectingPoint num="1" id="6872" />
 <TGConnectingPoint num="2" id="6873" />
@@ -14460,16 +14460,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="6877" />
 <TGConnectingPoint num="7" id="6878" />
 <extraparam>
-<info value="Zigbee_TX::X_Source" taskName="X_Source" referenceTaskName="Zigbee_TX" priority="0" operationMEC="X_Source" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_CWP_Q" taskName="F_CWP_Q" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_CWP_Q" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="6888" >
 <father id="6958" num="2" />
-<cdparam x="1466" y="456" />
-<sizeparam width="223" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1691" y="345" />
+<sizeparam width="140" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="194" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_Symbol2ChipSeq" />
+<cdrectangleparam minX="0" maxX="277" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWL" />
 <TGConnectingPoint num="0" id="6880" />
 <TGConnectingPoint num="1" id="6881" />
 <TGConnectingPoint num="2" id="6882" />
@@ -14479,16 +14479,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="6886" />
 <TGConnectingPoint num="7" id="6887" />
 <extraparam>
-<info value="Zigbee_TX::F_Symbol2ChipSeq" taskName="F_Symbol2ChipSeq" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_Symbol2ChipSeq" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_CWL" taskName="F_CWL" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_CWL" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="6897" >
 <father id="6958" num="3" />
-<cdparam x="1466" y="518" />
-<sizeparam width="189" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1688" y="405" />
+<sizeparam width="139" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="228" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_Chip2Octet" />
+<cdrectangleparam minX="0" maxX="278" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Sink" />
 <TGConnectingPoint num="0" id="6889" />
 <TGConnectingPoint num="1" id="6890" />
 <TGConnectingPoint num="2" id="6891" />
@@ -14498,16 +14498,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="6895" />
 <TGConnectingPoint num="7" id="6896" />
 <extraparam>
-<info value="Zigbee_TX::F_Chip2Octet" taskName="F_Chip2Octet" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_Chip2Octet" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_Sink" taskName="F_Sink" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_Sink" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="6906" >
 <father id="6958" num="4" />
-<cdparam x="1688" y="405" />
-<sizeparam width="146" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1466" y="518" />
+<sizeparam width="180" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="271" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_Sink" />
+<cdrectangleparam minX="0" maxX="237" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Chip2Octet" />
 <TGConnectingPoint num="0" id="6898" />
 <TGConnectingPoint num="1" id="6899" />
 <TGConnectingPoint num="2" id="6900" />
@@ -14517,16 +14517,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="6904" />
 <TGConnectingPoint num="7" id="6905" />
 <extraparam>
-<info value="Zigbee_TX::F_Sink" taskName="F_Sink" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_Sink" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_Chip2Octet" taskName="F_Chip2Octet" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_Chip2Octet" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="6915" >
 <father id="6958" num="5" />
-<cdparam x="1691" y="345" />
-<sizeparam width="145" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1466" y="456" />
+<sizeparam width="212" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="272" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_CWL" />
+<cdrectangleparam minX="0" maxX="205" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Symbol2ChipSeq" />
 <TGConnectingPoint num="0" id="6907" />
 <TGConnectingPoint num="1" id="6908" />
 <TGConnectingPoint num="2" id="6909" />
@@ -14536,16 +14536,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="6913" />
 <TGConnectingPoint num="7" id="6914" />
 <extraparam>
-<info value="Zigbee_TX::F_CWL" taskName="F_CWL" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_CWL" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_Symbol2ChipSeq" taskName="F_Symbol2ChipSeq" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_Symbol2ChipSeq" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="6924" >
 <father id="6958" num="6" />
-<cdparam x="1685" y="459" />
-<sizeparam width="162" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1466" y="395" />
+<sizeparam width="156" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="255" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_Q" />
+<cdrectangleparam minX="0" maxX="261" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_Source" />
 <TGConnectingPoint num="0" id="6916" />
 <TGConnectingPoint num="1" id="6917" />
 <TGConnectingPoint num="2" id="6918" />
@@ -14555,16 +14555,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="6922" />
 <TGConnectingPoint num="7" id="6923" />
 <extraparam>
-<info value="Zigbee_TX::F_CWP_Q" taskName="F_CWP_Q" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_CWP_Q" fatherComponentMECType="0" />
+<info value="Zigbee_TX::X_Source" taskName="X_Source" referenceTaskName="Zigbee_TX" priority="0" operationMEC="X_Source" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="6933" >
 <father id="6958" num="7" />
-<cdparam x="1686" y="522" />
-<sizeparam width="156" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1465" y="339" />
+<sizeparam width="154" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="261" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_I" />
+<cdrectangleparam minX="0" maxX="263" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Source" />
 <TGConnectingPoint num="0" id="6925" />
 <TGConnectingPoint num="1" id="6926" />
 <TGConnectingPoint num="2" id="6927" />
@@ -14574,7 +14574,7 @@ sequence diagram.
 <TGConnectingPoint num="6" id="6931" />
 <TGConnectingPoint num="7" id="6932" />
 <extraparam>
-<info value="Zigbee_TX::F_CWP_I" taskName="F_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_CWP_I" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_Source" taskName="F_Source" referenceTaskName="Zigbee_TX" priority="0" operationMEC="F_Source" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 
@@ -14796,9 +14796,9 @@ sequence diagram.
 <SUBCOMPONENT type="1101" id="7092" >
 <father id="7117" num="0" />
 <cdparam x="105" y="993" />
-<sizeparam width="189" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="182" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="45" minY="0" maxY="100" />
+<cdrectangleparam minX="0" maxX="52" minY="0" maxY="100" />
 <infoparam name="TGComponent" value="Zigbee_TX::X_Chip2Octet" />
 <TGConnectingPoint num="0" id="7084" />
 <TGConnectingPoint num="1" id="7085" />
@@ -14994,11 +14994,11 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1101" id="7226" >
 <father id="7269" num="0" />
-<cdparam x="671" y="289" />
-<sizeparam width="156" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="639" y="239" />
+<sizeparam width="142" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="82" minY="0" maxY="145" />
-<infoparam name="TGComponent" value="Zigbee_TX::X_CWP_I" />
+<cdrectangleparam minX="0" maxX="96" minY="0" maxY="145" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_CWL" />
 <TGConnectingPoint num="0" id="7218" />
 <TGConnectingPoint num="1" id="7219" />
 <TGConnectingPoint num="2" id="7220" />
@@ -15008,15 +15008,15 @@ sequence diagram.
 <TGConnectingPoint num="6" id="7224" />
 <TGConnectingPoint num="7" id="7225" />
 <extraparam>
-<info value="Zigbee_TX::X_CWP_I" taskName="X_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operationMEC="CWP" fatherComponentMECType="1" />
+<info value="Zigbee_TX::X_CWL" taskName="X_CWL" referenceTaskName="Zigbee_TX" priority="0" operationMEC="CWL" fatherComponentMECType="1" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="7235" >
 <father id="7269" num="1" />
 <cdparam x="640" y="335" />
-<sizeparam width="162" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="158" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="76" minY="0" maxY="145" />
+<cdrectangleparam minX="0" maxX="80" minY="0" maxY="145" />
 <infoparam name="TGComponent" value="Zigbee_TX::X_CWP_Q" />
 <TGConnectingPoint num="0" id="7227" />
 <TGConnectingPoint num="1" id="7228" />
@@ -15032,11 +15032,11 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="7244" >
 <father id="7269" num="2" />
-<cdparam x="639" y="239" />
-<sizeparam width="145" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="671" y="289" />
+<sizeparam width="152" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="93" minY="0" maxY="145" />
-<infoparam name="TGComponent" value="Zigbee_TX::X_CWL" />
+<cdrectangleparam minX="0" maxX="86" minY="0" maxY="145" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_CWP_I" />
 <TGConnectingPoint num="0" id="7236" />
 <TGConnectingPoint num="1" id="7237" />
 <TGConnectingPoint num="2" id="7238" />
@@ -15046,7 +15046,7 @@ sequence diagram.
 <TGConnectingPoint num="6" id="7242" />
 <TGConnectingPoint num="7" id="7243" />
 <extraparam>
-<info value="Zigbee_TX::X_CWL" taskName="X_CWL" referenceTaskName="Zigbee_TX" priority="0" operationMEC="CWL" fatherComponentMECType="1" />
+<info value="Zigbee_TX::X_CWP_I" taskName="X_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operationMEC="CWP" fatherComponentMECType="1" />
 </extraparam>
 </SUBCOMPONENT>
 
@@ -15267,10 +15267,10 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1101" id="7403" >
 <father id="7428" num="0" />
-<cdparam x="755" y="1028" />
-<sizeparam width="223" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="759" y="1028" />
+<sizeparam width="214" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="-4" minY="0" maxY="118" />
+<cdrectangleparam minX="0" maxX="5" minY="0" maxY="118" />
 <infoparam name="TGComponent" value="Zigbee_TX::X_Symbol2ChipSeq" />
 <TGConnectingPoint num="0" id="7395" />
 <TGConnectingPoint num="1" id="7396" />
@@ -15354,9 +15354,9 @@ sequence diagram.
 <SUBCOMPONENT type="1110" id="7462" >
 <father id="7471" num="0" />
 <cdparam x="292" y="1303" />
-<sizeparam width="212" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="199" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="207" minY="0" maxY="45" />
+<cdrectangleparam minX="0" maxX="220" minY="0" maxY="45" />
 <infoparam name="TGComponent" value="Zigbee_TX::chip2octet_ch_in" />
 <TGConnectingPoint num="0" id="7454" />
 <TGConnectingPoint num="1" id="7455" />
@@ -15401,9 +15401,9 @@ sequence diagram.
 <SUBCOMPONENT type="1110" id="7480" >
 <father id="7489" num="0" />
 <cdparam x="327" y="1437" />
-<sizeparam width="164" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="157" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="241" minY="0" maxY="48" />
+<cdrectangleparam minX="0" maxX="248" minY="0" maxY="48" />
 <infoparam name="TGComponent" value="Zigbee_TX::cwl_ch_in" />
 <TGConnectingPoint num="0" id="7472" />
 <TGConnectingPoint num="1" id="7473" />
@@ -15456,9 +15456,9 @@ sequence diagram.
 <SUBCOMPONENT type="1110" id="7498" >
 <father id="7507" num="0" />
 <cdparam x="701" y="1315" />
-<sizeparam width="170" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="162" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="125" minY="0" maxY="105" />
+<cdrectangleparam minX="0" maxX="133" minY="0" maxY="105" />
 <infoparam name="TGComponent" value="Zigbee_TX::sink_ch_in" />
 <TGConnectingPoint num="0" id="7490" />
 <TGConnectingPoint num="1" id="7491" />
@@ -15504,9 +15504,9 @@ sequence diagram.
 <SUBCOMPONENT type="1110" id="7516" >
 <father id="7525" num="0" />
 <cdparam x="280" y="1181" />
-<sizeparam width="247" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="235" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="174" minY="0" maxY="45" />
+<cdrectangleparam minX="0" maxX="186" minY="0" maxY="45" />
 <infoparam name="TGComponent" value="Zigbee_TX::symbol2ChipSeq_ch_in" />
 <TGConnectingPoint num="0" id="7508" />
 <TGConnectingPoint num="1" id="7509" />
diff --git a/modeling/LIP6/miniAsynchronousDeploy.xml b/modeling/LIP6/miniAsynchronousDeploy.xml
index a6d177210da1da6a5a0caea5d0f01da5a68967ce..c7078b5a0d14eccaa6568c8daf14ac8025544d92 100644
--- a/modeling/LIP6/miniAsynchronousDeploy.xml
+++ b/modeling/LIP6/miniAsynchronousDeploy.xml
@@ -1,13 +1,13 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml version="1.0" encoding="UTF-8"?>
 
-<TURTLEGMODELING version="0.98-beta4">
+<TURTLEGMODELING version="1.0beta">
 
-<Modeling type="AVATAR Design" nameTab="AVATAR Design" >
-<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" >
+<Modeling type="AVATAR Design" nameTab="AVATAR Design" tabs="Block Diagram$Block1$Block0" >
+<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" zoom="1.0" >
 <MainCode value="void __user_init() {"/>
 <MainCode value="}"/>
 <Optimized value="true" />
-<Validated value="Block1;Block0;" />
+<Validated value="" />
 <Ignored value="" />
 
 <CONNECTOR type="5002" id="2" >
@@ -55,8 +55,9 @@
 <TGConnectingPoint num="22" id="25" />
 <TGConnectingPoint num="23" id="26" />
 <extraparam>
+<blockType data="block" color="-4072719" />
 <CryptoBlock value="false" />
-<Signal value="in val()" />
+<Signal value="in val()" attached="true" />
 </extraparam>
 </COMPONENT>
 
@@ -91,8 +92,9 @@
 <TGConnectingPoint num="22" id="50" />
 <TGConnectingPoint num="23" id="51" />
 <extraparam>
+<blockType data="block" color="-4072719" />
 <CryptoBlock value="false" />
-<Signal value="out val()" />
+<Signal value="out val()" attached="true" />
 </extraparam>
 </COMPONENT>
 
@@ -111,8 +113,9 @@
 </CONNECTOR><SUBCOMPONENT type="-1" id="57" >
 <father id="59" num="0" />
 <cdparam x="407" y="110" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
+<enabled value="true" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <TGConnectingPoint num="0" id="53" />
@@ -120,11 +123,12 @@
 <TGConnectingPoint num="2" id="55" />
 <TGConnectingPoint num="3" id="56" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
 </extraparam>
 </SUBCOMPONENT>
 
@@ -139,8 +143,9 @@
 </CONNECTOR><SUBCOMPONENT type="-1" id="64" >
 <father id="66" num="0" />
 <cdparam x="473" y="162" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
+<enabled value="true" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <TGConnectingPoint num="0" id="60" />
@@ -148,11 +153,12 @@
 <TGConnectingPoint num="2" id="62" />
 <TGConnectingPoint num="3" id="63" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
 </extraparam>
 </SUBCOMPONENT>
 
@@ -167,8 +173,9 @@
 </CONNECTOR><SUBCOMPONENT type="-1" id="71" >
 <father id="73" num="0" />
 <cdparam x="470" y="230" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
+<enabled value="true" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <TGConnectingPoint num="0" id="67" />
@@ -176,18 +183,20 @@
 <TGConnectingPoint num="2" id="69" />
 <TGConnectingPoint num="3" id="70" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
 </extraparam>
 </SUBCOMPONENT>
 
 <COMPONENT type="5104" id="84" >
 <cdparam x="448" y="165" />
-<sizeparam width="45" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="45" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
+<enabled value="true" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="Receive signal" value="val()" />
 <TGConnectingPoint num="0" id="74" />
@@ -204,7 +213,7 @@
 
 <COMPONENT type="5101" id="86" >
 <cdparam x="450" y="224" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
@@ -215,6 +224,7 @@
 <cdparam x="398" y="72" />
 <sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
+<enabled value="true" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="state0" />
 <TGConnectingPoint num="0" id="87" />
@@ -263,7 +273,7 @@
 
 <COMPONENT type="5100" id="129" >
 <cdparam x="400" y="50" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
@@ -285,8 +295,9 @@
 </CONNECTOR><SUBCOMPONENT type="-1" id="134" >
 <father id="136" num="0" />
 <cdparam x="486" y="194" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
+<enabled value="true" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <TGConnectingPoint num="0" id="130" />
@@ -294,11 +305,12 @@
 <TGConnectingPoint num="2" id="132" />
 <TGConnectingPoint num="3" id="133" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
 </extraparam>
 </SUBCOMPONENT>
 
@@ -313,8 +325,9 @@
 </CONNECTOR><SUBCOMPONENT type="-1" id="141" >
 <father id="143" num="0" />
 <cdparam x="407" y="110" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
+<enabled value="true" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <TGConnectingPoint num="0" id="137" />
@@ -322,11 +335,12 @@
 <TGConnectingPoint num="2" id="139" />
 <TGConnectingPoint num="3" id="140" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
 </extraparam>
 </SUBCOMPONENT>
 
@@ -341,8 +355,9 @@
 </CONNECTOR><SUBCOMPONENT type="-1" id="148" >
 <father id="150" num="0" />
 <cdparam x="485" y="155" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="10" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
+<enabled value="true" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <TGConnectingPoint num="0" id="144" />
@@ -350,18 +365,20 @@
 <TGConnectingPoint num="2" id="146" />
 <TGConnectingPoint num="3" id="147" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
+<guard value="[ ]" enabled="true"/>
+<afterMin value="" enabled="true"/>
+<afterMax value="" enabled="true"/>
+<computeMin value="" enabled="true"/>
+<computeMax value="" enabled="true"/>
+<probability value="" enabled="true"/>
 </extraparam>
 </SUBCOMPONENT>
 
 <COMPONENT type="5103" id="161" >
 <cdparam x="467" y="129" />
-<sizeparam width="38" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="38" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
+<enabled value="true" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="Send signal" value="val()" />
 <TGConnectingPoint num="0" id="151" />
@@ -378,7 +395,7 @@
 
 <COMPONENT type="5101" id="163" >
 <cdparam x="480" y="206" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
@@ -389,6 +406,7 @@
 <cdparam x="410" y="65" />
 <sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
+<enabled value="true" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="state0" />
 <TGConnectingPoint num="0" id="164" />
@@ -437,7 +455,7 @@
 
 <COMPONENT type="5100" id="206" >
 <cdparam x="400" y="50" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
@@ -522,15 +540,15 @@
 <TGConnectingPoint num="23" id="264" />
 <extraparam>
 <info stereotype="RAM" nodeName="Memory0" />
-<attributes byteDataSize="1048576"  index="0" />
+<attributes byteDataSize="1048576"  index="0"  processCode="" />
 </extraparam>
 </COMPONENT>
 <SUBCOMPONENT type="5362" id="240" >
 <father id="265" num="0" />
 <cdparam x="288" y="436" />
-<sizeparam width="122" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="117" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="78" minY="0" maxY="160" />
+<cdrectangleparam minX="0" maxX="83" minY="0" maxY="160" />
 <infoparam name="TGComponent" value="Block0/out val" />
 <TGConnectingPoint num="0" id="232" />
 <TGConnectingPoint num="1" id="233" />
@@ -619,9 +637,9 @@
 <SUBCOMPONENT type="5352" id="299" >
 <father id="324" num="0" />
 <cdparam x="604" y="119" />
-<sizeparam width="175" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="172" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="75" minY="0" maxY="160" />
+<cdrectangleparam minX="0" maxX="78" minY="0" maxY="160" />
 <infoparam name="TGComponent" value="AVATAR Design::Block1" />
 <TGConnectingPoint num="0" id="291" />
 <TGConnectingPoint num="1" id="292" />
@@ -674,9 +692,9 @@
 <SUBCOMPONENT type="5352" id="333" >
 <father id="358" num="0" />
 <cdparam x="172" y="134" />
-<sizeparam width="176" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="172" height="40" minWidth="75" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="74" minY="0" maxY="160" />
+<cdrectangleparam minX="0" maxX="78" minY="0" maxY="160" />
 <infoparam name="TGComponent" value="AVATAR Design::Block0" />
 <TGConnectingPoint num="0" id="325" />
 <TGConnectingPoint num="1" id="326" />
diff --git a/simulators/c++2/src_simulator/app/TMLTask.cpp b/simulators/c++2/src_simulator/app/TMLTask.cpp
index d85534b7c96cd7c548fe8da309fd1e918e1e0a66..4df24602a0f495474707dfdaf820d651f6f31b93 100755
--- a/simulators/c++2/src_simulator/app/TMLTask.cpp
+++ b/simulators/c++2/src_simulator/app/TMLTask.cpp
@@ -48,7 +48,7 @@ Ludovic Apvrille, Renaud Pacalet
 
 unsigned int TMLTask::_instanceCount=1;
 
-TMLTask::TMLTask(ID iID, Priority iPriority, std::string iName, CPU** iCPU, unsigned int iNoOfCPUs): WorkloadSource(iPriority), _ID(iID), _name(iName), _endLastTransaction(0), _currCommand(0), _firstCommand(0), _currentCPU(0), _cpus(iCPU), _noOfCPUs(iNoOfCPUs), _comment(0), _busyCycles(0), _CPUContentionDelay(0), _noCPUTransactions(0), _justStarted(true), _myInstance(_instanceCount), /*_isScheduled(false),*/ _stateHash(0, 30) , _liveVarList(0), _hashInvalidated(true){
+TMLTask::TMLTask(ID iID, Priority iPriority, std::string iName, CPU** iCPU, unsigned int iNoOfCPUs): WorkloadSource(iPriority), _ID(iID), _name(iName), _endLastTransaction(0), _currCommand(0), _firstCommand(0), _currentCPU(0), _cpus(iCPU), _noOfCPUs(iNoOfCPUs), _nextCellIndex(0), _comment(0), _busyCycles(0), _CPUContentionDelay(0), _noCPUTransactions(0), _justStarted(true), _myInstance(_instanceCount), /*_isScheduled(false),*/ _stateHash(0, 30) , _liveVarList(0), _hashInvalidated(true){
 	for (unsigned int i=0; i< _noOfCPUs; i++)
 		_cpus[i]->registerTask(this);
 #ifdef ADD_COMMENTS
@@ -59,7 +59,7 @@ TMLTask::TMLTask(ID iID, Priority iPriority, std::string iName, CPU** iCPU, unsi
 	if (_noOfCPUs==1) _currentCPU = _cpus[0];
 }
 
-TMLTask::TMLTask(ID iID, Priority iPriority, std::string iName, FPGA** iFPGA, unsigned int iNoOfFPGAs): WorkloadSource(iPriority), _ID(iID), _name(iName), _endLastTransaction(0), _currCommand(0), _firstCommand(0), _currentFPGA(0), _fpgas(iFPGA), _noOfFPGAs(iNoOfFPGAs), _comment(0), _busyCycles(0), _FPGAContentionDelay(0), _noFPGATransactions(0), _justStarted(true), _myInstance(_instanceCount), 
+TMLTask::TMLTask(ID iID, Priority iPriority, std::string iName, FPGA** iFPGA, unsigned int iNoOfFPGAs): WorkloadSource(iPriority), _ID(iID), _name(iName), _endLastTransaction(0), _currCommand(0), _firstCommand(0), _currentFPGA(0), _fpgas(iFPGA), _noOfFPGAs(iNoOfFPGAs), _nextCellIndex(0),_comment(0), _busyCycles(0), _FPGAContentionDelay(0), _noFPGATransactions(0), _justStarted(true), _myInstance(_instanceCount), 
  _stateHash(0, 30) , _liveVarList(0), _hashInvalidated(true){
 	for (unsigned int i=0; i< _noOfFPGAs; i++)
 		_fpgas[i]->registerTask(this);
@@ -143,6 +143,19 @@ void TMLTask::getNextSignalChange(bool iInit, SignalChangeData* oSigData){
 		TMLTransaction* aCurrTrans=*_posTrasactListVCD;
 		//oNoMoreTrans=false;
 		switch (_vcdOutputState){
+		  	case START_TRANS:
+				//outp << VCD_PREFIX << vcdValConvert(RUNNING) << "ta" << _ID;
+				//oSigChange=outp.str();
+				do{
+					_previousTransEndTime=(*_posTrasactListVCD)->getEndTime();
+					_posTrasactListVCD++;
+				}while (_posTrasactListVCD != _transactList.end() && (*_posTrasactListVCD)->getStartTimeOperation()==_previousTransEndTime);
+				_vcdOutputState=END_TRANS;
+				//return aCurrTrans->getStartTimeOperation();
+				if( aCurrTrans->getStartTimeOperation() ){
+				  new (oSigData) SignalChangeData(RUNNING, aCurrTrans->getStartTimeOperation(), this);
+				  break;
+				}
 			case END_TRANS:
 				if (aCurrTrans->getRunnableTime()==_previousTransEndTime){
 					//outp << VCD_PREFIX << vcdValConvert(RUNNABLE) << "ta" << _ID;
@@ -168,22 +181,13 @@ void TMLTask::getNextSignalChange(bool iInit, SignalChangeData* oSigData){
 				//return aCurrTrans->getRunnableTime();
 				new (oSigData) SignalChangeData(RUNNABLE, aCurrTrans->getRunnableTime(), this);
 			break;
-			case START_TRANS:
-				//outp << VCD_PREFIX << vcdValConvert(RUNNING) << "ta" << _ID;
-				//oSigChange=outp.str();
-				do{
-					_previousTransEndTime=(*_posTrasactListVCD)->getEndTime();
-					_posTrasactListVCD++;
-				}while (_posTrasactListVCD != _transactList.end() && (*_posTrasactListVCD)->getStartTimeOperation()==_previousTransEndTime);
-				_vcdOutputState=END_TRANS;
-				//return aCurrTrans->getStartTimeOperation();
-				new (oSigData) SignalChangeData(RUNNING, aCurrTrans->getStartTimeOperation(), this);
-			break;
+		
 		}
 	}
 	//return 0;
 }
 
+
 std::ostream& TMLTask::writeObject(std::ostream& s){
 	ID aCurrCmd;
 	WRITE_STREAM(s,_endLastTransaction);
diff --git a/simulators/c++2/src_simulator/app/TMLTask.h b/simulators/c++2/src_simulator/app/TMLTask.h
index cb68f1756f6326b9ff4dd0b9b0c35a48d658e7b3..e4d1be08722df48e383f2b6261a3b9f1cc50b3f1 100755
--- a/simulators/c++2/src_simulator/app/TMLTask.h
+++ b/simulators/c++2/src_simulator/app/TMLTask.h
@@ -232,6 +232,8 @@ public:
 	void schedule2TXT(std::ostream& myfile) const;
 	int hasRunnableTrans(CPU* iCPU);
 	int hasRunnableTrans(FPGA* iFPGA);
+	void setNextCellIndex(unsigned int n) {_nextCellIndex=n;}
+	unsigned int getNextCellIndex() const {return _nextCellIndex;}
 protected:
 	///ID of the task
 	ID _ID;
@@ -255,6 +257,7 @@ protected:
 	FPGA** _fpgas;
 	///Number of cores assigned to the task
 	unsigned int _noOfFPGAs;
+	unsigned int _nextCellIndex;
 #ifdef ADD_COMMENTS
 	///Comment list
 	CommentList _commentList;
diff --git a/simulators/c++2/src_simulator/arch/CPU.cpp b/simulators/c++2/src_simulator/arch/CPU.cpp
index b9b01711a3476827671b5c24bfdf60702ee57aa9..7eb14f6474a3de5ef686b9c814ad4caaf953ad75 100644
--- a/simulators/c++2/src_simulator/arch/CPU.cpp
+++ b/simulators/c++2/src_simulator/arch/CPU.cpp
@@ -105,7 +105,7 @@ void CPU::drawPieChart(std::ofstream& myfile) const {
 }
 
 void CPU::showPieChart(std::ofstream& myfile) const{
-  myfile << SCHED_HTML_JS_DIV_ID << _ID << "_" << this->_cycleTime << SCHED_HTML_JS_DIV_END << "<br>";
+  myfile << SCHED_HTML_JS_DIV_ID << _ID << "_" << this->_cycleTime << SCHED_HTML_JS_DIV_ID_END << std::endl;
 }
   
    
diff --git a/simulators/c++2/src_simulator/arch/FPGA.cpp b/simulators/c++2/src_simulator/arch/FPGA.cpp
index c374185c70cddfdbf9172e170ab835283fdd6222..69f2fb247692a3956f9977e934f5fef23fdf40b8 100644
--- a/simulators/c++2/src_simulator/arch/FPGA.cpp
+++ b/simulators/c++2/src_simulator/arch/FPGA.cpp
@@ -61,7 +61,8 @@ FPGA::FPGA(    ID iID,
 					      ,_cyclesBeforeIdle(iCyclesBeforeIdle)
 					      ,_cyclesPerExeci(iCyclesPerExeci)
 					      ,_cyclesPerExecc(iCyclesPerExecc)
-					      ,_transNumber(0)
+					      ,_taskNumber(0)
+					      ,_currTaskNumber(0)
 					     
 {}
 
@@ -276,72 +277,70 @@ void FPGA::schedule(){
 }
 
 void FPGA::getNextSignalChange(bool iInit, SignalChangeData* oSigData){
-  if (iInit){
-   
-    _posTrasactListVCD=_transactList.begin();
-    std::cout<<"init "<<(*_posTrasactListVCD)->toShortString()<<std::endl;
-    _previousTransEndTime=0;
-    _vcdOutputState = END_IDLE_FPGA;
-    if (_posTrasactListVCD != _transactList.end() && (*_posTrasactListVCD)->getStartTime()!=0){
-      new (oSigData) SignalChangeData(END_IDLE_FPGA, 0, this);
-      return;
-    }
-  }
-
-  if (_posTrasactListVCD == _transactList.end()){
-    std::cout<<"end trans"<<std::endl;
-    new (oSigData) SignalChangeData(END_IDLE_FPGA, _previousTransEndTime, this);
-  }
-  else{
-    TMLTransaction* aCurrTrans=*_posTrasactListVCD;
-    std::cout<<"current trans is "<<aCurrTrans->toShortString()<<std::endl;
-    switch (_vcdOutputState){
-    case END_TASK_FPGA:
-      std::cout<<"END_TASK_FPGA"<<std::endl;
-      do{
-        _previousTransEndTime=(*_posTrasactListVCD)->getEndTime();
-        _posTrasactListVCD++;
-      }while (_posTrasactListVCD != _transactList.end() && (*_posTrasactListVCD)->getStartTimeOperation()==_previousTransEndTime);
-      if (_posTrasactListVCD != _transactList.end() && (*_posTrasactListVCD)->getStartTime()==_previousTransEndTime){
-        //outp << VCD_PREFIX << vcdValConvert(END_PENALTY_FPGA) << "FPGA" << _ID;
-        _vcdOutputState=END_PENALTY_FPGA;
-	std::cout<<"why???"<<std::endl;
-        new (oSigData) SignalChangeData(END_PENALTY_FPGA, _previousTransEndTime, this);
-      }else{
-        //outp << VCD_PREFIX << vcdValConvert(END_IDLE_FPGA) << "FPGA" << _ID;
-        _vcdOutputState=END_IDLE_FPGA;
-        //if (_posTrasactListVCD == _transactList.end()) oNoMoreTrans=true;
-        new (oSigData) SignalChangeData(END_IDLE_FPGA, _previousTransEndTime, this);
+  std::cout<<"getNextSignalChangemulticore!!!---------"<<std::endl;
+  for( TransactionList::iterator i = _transactList.begin(); i != _transactList.end(); ++i ) {
+    
+    // std::cout<<"transaction core number is "<<  (*i)->getTransFpgaNumber()<<std::endl;
+    // std::cout<<"cpu core number "<< oSigData->_transNumberVcd<<std::endl;
+    if((*i)-> getCommand()->getTask() == oSigData->_taskFPGA){
+      
+      std::cout<<"bingo!!"<<(*i)->toShortString()<<std::endl;
+
+      if (iInit){
+	_posTrasactListVCD= i;
+	_previousTransEndTime=0;
+	std::cout<<"init start time "<<(*_posTrasactListVCD)->getStartTime()<<std::endl;
+	if (_posTrasactListVCD != _transactList.end() && (*_posTrasactListVCD)->getStartTime()!=0){
+	  std::cout<<"next idle"<<std::endl;
+	  new (oSigData) SignalChangeData(END_IDLE_TRANS, 0, this);
+	  (*i)->setTransVcdOutPutState(END_IDLE_TRANS);
+	  return;
+	}
       }
-      //oSigChange=outp.str();
-      //return _previousTransEndTime;
-      break;
-    case END_PENALTY_FPGA:
-      std::cout<<"END_PENALTY_FPGA"<<std::endl;
-      //outp << VCD_PREFIX << vcdValConvert(END_TASK_FPGA) << "FPGA" << _ID;
-      //oSigChange=outp.str();
-      _vcdOutputState=END_TASK_FPGA;
-      //return aCurrTrans->getStartTimeOperation();
-      new (oSigData) SignalChangeData(END_TASK_FPGA, aCurrTrans->getStartTimeOperation(), this);
-      break;
-    case END_IDLE_FPGA:
-      std::cout<<"END_IDLE_FPGA"<<std::endl;
-      if (aCurrTrans->getPenalties()==0){
-        //outp << VCD_PREFIX << vcdValConvert(END_TASK_FPGA) << "FPGA" << _ID;
-        _vcdOutputState=END_TASK_FPGA;
-        new (oSigData) SignalChangeData(END_TASK_FPGA, aCurrTrans->getStartTime(), this);
+      if ((*i)->getEndState() == true){
+        std::cout<<"end trans"<<(*i)->getEndTime()<<std::endl;
+	new (oSigData) SignalChangeData(END_IDLE_TRANS, (*i)->getEndTime(), this);
+        break;
       }else{
-        //outp << VCD_PREFIX << vcdValConvert(END_PENALTY_FPGA) << "FPGA" << _ID;
-        _vcdOutputState=END_PENALTY_FPGA;
-        new (oSigData) SignalChangeData(END_PENALTY_FPGA, aCurrTrans->getStartTime(), this);
+	_posTrasactListVCD = i;
+	TMLTransaction* aCurrTrans=*_posTrasactListVCD;
+       switch (aCurrTrans->getTransVcdOutPutState()){
+	case END_TASK_TRANS: 
+          
+	  std::cout<<"END_TASK_FPGA"<<std::endl;
+	  do{
+	    _previousTransEndTime=(*_posTrasactListVCD)->getEndTime();
+	    _posTrasactListVCD++;	  
+	    while(_posTrasactListVCD != _transactList.end()){
+	      if((*_posTrasactListVCD)->getCommand()->getTask() == oSigData->_taskFPGA)
+		  break;
+		else
+		  _posTrasactListVCD++;
+	      }
+	  }while (_posTrasactListVCD != _transactList.end() && (*_posTrasactListVCD)->getStartTimeOperation()==_previousTransEndTime);
+	 
+	  aCurrTrans->setTransVcdOutPutState(END_IDLE_TRANS);
+	  std::cout<<"what is previous time "<<_previousTransEndTime<<std::endl;
+	  std::cout<<"and this??"<<oSigData->_time<<std::endl;
+	  new (oSigData) SignalChangeData(END_IDLE_TRANS, _previousTransEndTime, this); 
+	  if (_posTrasactListVCD == _transactList.end()) {aCurrTrans->setEndState(true);std::cout<<"hahaha"<<std::endl;}
+	  
+          _transactList.erase(i);
+	  break;
+	case END_IDLE_TRANS:
+	  std::cout<<"END_IDLE_FPGA"<<std::endl;
+	  
+	  aCurrTrans->setTransVcdOutPutState(END_TASK_TRANS);
+	  new (oSigData) SignalChangeData(END_TASK_TRANS, aCurrTrans->getStartTime(), this);
+	
+	  break;
+       }
       }
-      //oSigChange=outp.str();
-      //return aCurrTrans->getStartTime();
       break;
     }
-  
+   
   }
-  //return 0;
+   
 }
 
 
@@ -403,8 +402,97 @@ void FPGA::latencies2XML(std::ostringstream& glob, unsigned int id1, unsigned in
   return;
 }
 
-void FPGA::schedule2HTML(std::ofstream& myfile) const {  
-  myfile << "<h2><span>Scheduling for device: "<< _name << "</span></h2>" << std::endl;
+
+double FPGA::averageLoad (TMLTask* currTask) const{
+  double _averageLoad=0;
+  TMLTime _maxEndTime=0;
+  for( TransactionList::const_iterator i = _transactList.begin(); i != _transactList.end(); ++i ) {
+    if( (*i)-> getCommand()->getTask() == currTask ){
+      TMLTime _endTime= (*i)->getEndTime();
+      _maxEndTime=max(_maxEndTime,_endTime);
+    }
+  }
+  for( TransactionList::const_iterator i = _transactList.begin(); i != _transactList.end(); ++i ) {
+     if( (*i)-> getCommand()->getTask() == currTask ){
+      _averageLoad += (*i)->getEndTime() - (*i)->getStartTime();
+    }
+  }
+  if(_maxEndTime == 0)
+    return 0;
+  else {
+    _averageLoad = (double)_averageLoad/_maxEndTime;
+    return _averageLoad;
+  }
+  /*if( _maxEndTime == 0 ) 
+    myfile << "average load is 0" << "<br>";
+  else
+  myfile<<" average load is "<<(double)_averageLoad/_maxEndTime<<"<br>";*/
+ 
+}
+
+
+void FPGA::drawPieChart(std::ofstream& myfile) const {
+  std::cout<<"fpga draw pie chart"<<std::endl;
+   TMLTime _maxEndTime=0;
+   
+   for( TransactionList::const_iterator i = _transactList.begin(); i != _transactList.end(); ++i ) {
+     if( (*i)-> getCommand()->getTask() ==  _htmlCurrTask ){
+       TMLTime _endTime= (*i)->getEndTime();
+       _maxEndTime=max(_maxEndTime,_endTime);
+     }
+   }
+   std::cout<<"max end time is "<<_maxEndTime<<std::endl;
+   std::map <TMLTask*, double > transPercentage;
+ 
+   for( TransactionList::const_iterator i = _transactList.begin(); i!= _transactList.end(); ++i){
+     if( (*i)-> getCommand()->getTask() ==  _htmlCurrTask ){
+       transPercentage[(*i)-> getCommand()->getTask()]+=(double)((*i)->getEndTime()-(*i)->getStartTime())/_maxEndTime;      
+     }
+   }
+  
+   std::map <TMLTask*, double>::iterator iter = transPercentage.begin();
+   myfile << "     var chart" << _ID << "_" <<  _htmlCurrTask->toShortString() << "= new CanvasJS.Chart(\"chartContainer" << _ID << "_" <<   _htmlCurrTask->toShortString() <<"\"," << std::endl;
+   myfile <<  SCHED_HTML_JS_CONTENT2 << "Average load is " << averageLoad( _htmlCurrTask) <<  SCHED_HTML_JS_CONTENT3 << std::endl;
+   double idle=1;
+   while( iter != transPercentage.end()){
+     myfile << "                { y:" << (iter->second)*100 << ", indexLabel: \"" << iter->first->toString() << "\" }," << std::endl;
+     idle-=iter->second;
+     ++iter;  
+   }
+   myfile << "                { y:" << idle*100 << ", indexLabel: \"idle time\"" << " }" << std::endl;
+   myfile << std::endl;
+   myfile << SCHED_HTML_PIE_END;
+   myfile << "chart" << _ID << "_" <<   _htmlCurrTask->toShortString() << ".render();" << std::endl;
+   
+  
+}
+
+
+void FPGA::showPieChart(std::ofstream& myfile) const{
+  if(_taskNumber==1)
+    myfile << SCHED_HTML_JS_DIV_ID << _ID << "_" << _htmlCurrTask->toShortString() << SCHED_HTML_JS_DIV_ID_END <<std::endl;
+  else
+    myfile << SCHED_HTML_JS_DIV_ID << _ID << "_" << _htmlCurrTask->toShortString() << SCHED_HTML_JS_DIV_ID_END_FPGA <<std::endl;
+}
+
+std::string FPGA::determineHTMLCellClass(unsigned int &nextColor ) {
+	std::map<TMLTask*, std::string>::const_iterator it = taskCellClasses.find( _htmlCurrTask );
+
+	if ( it == taskCellClasses.end() ) {
+		unsigned int aColor = nextColor % NB_HTML_COLORS;
+		std::ostringstream cellClass;
+		cellClass << "t" << aColor;
+		taskCellClasses[  _htmlCurrTask ] = cellClass.str();
+		nextColor++;
+	}
+
+	return taskCellClasses[  _htmlCurrTask ];
+}
+
+void FPGA::schedule2HTML(std::ofstream& myfile)  {    
+  if(_startFlagHTML == true){
+    myfile << "<h2><span>Scheduling for device: "<< _name << "</span></h2>" << std::endl;
+  }
 
   if ( _transactList.size() == 0 ) {
     myfile << "<h4>Device never activated</h4>" << std::endl;
@@ -412,14 +500,16 @@ void FPGA::schedule2HTML(std::ofstream& myfile) const {
    else {
     myfile << "<table>" << std::endl << "<tr>";
 
-    std::map<TMLTask*, std::string> taskCellClasses;
-    unsigned int nextCellClassIndex = 0;
     TMLTime aCurrTime = 0;
-
+    unsigned int taskOccurTime = 0;
     for( TransactionList::const_iterator i = _transactList.begin(); i != _transactList.end(); ++i ) {
       std::cout <<  (*i)-> getCommand()->getTask()->toString() <<std::endl;
       std::cout<< _htmlCurrTask->toString()<<std::endl;
       if( (*i)-> getCommand()->getTask() == _htmlCurrTask ){
+	if(taskOccurTime==0){
+	  _currTaskNumber++;
+	  taskOccurTime++;
+	}
 	std::cout<<"in!!"<<_htmlCurrTask->toString()<<std::endl;
 	TMLTransaction* aCurrTrans = *i;
 	unsigned int aBlanks = aCurrTrans->getStartTime() - aCurrTime;
@@ -434,7 +524,7 @@ void FPGA::schedule2HTML(std::ofstream& myfile) const {
 	// Issue #4
 	TMLTask* task = aCurrTrans->getCommand()->getTask();
 	std::cout<<"what is this task?"<<task->toString()<<std::endl;
-	const std::string cellClass = determineHTMLCellClass( taskCellClasses, task, nextCellClassIndex );
+	const std::string cellClass = determineHTMLCellClass(  nextCellClassIndex );
 
 	writeHTMLColumn( myfile, aLength, cellClass, aCurrTrans->toShortString() );
 
@@ -458,49 +548,22 @@ void FPGA::schedule2HTML(std::ofstream& myfile) const {
       //myfile << "<td colspan=\"5\" class=\"sc\">" << aLength << "</td>";
     }
 
-    myfile << "</tr>" << std::endl << "</table>" << std::endl << "<table>" << std::endl << "<tr>";
-
-    for( std::map<TMLTask*, std::string>::iterator taskColIt = taskCellClasses.begin(); taskColIt != taskCellClasses.end(); ++taskColIt ) {
-      TMLTask* task = (*taskColIt).first;
-      // Unset the default td max-width of 5px. For some reason setting the max-with on a specific t style does not work
-      myfile << "<td class=\"" << taskCellClasses[ task ] << "\"></td><td style=\"max-width: unset;\">" << task->toString() << "</td><td class=\"space\"></td>";
-    }
-
-    myfile << "</tr>" << std::endl;
-
-#ifdef ADD_COMMENTS
-    bool aMoreComments = true, aInit = true;
-    Comment* aComment;
-
-    while ( aMoreComments ) {
-      aMoreComments = false;
-      myfile << "<tr>";
-
+    myfile << "</tr>" << std::endl << "</table>" << std::endl;
+    std::cout<<"_taskNumer is ------------------------------------"<<_taskNumber<<std::endl;
+    std::cout<<"curr task number is ------------------------"<<_currTaskNumber<<std::endl;
+    if(_currTaskNumber == _taskNumber){
+      std::cout<<" i am showing the name of tasks!!!----------------------------------------------------------------------------------!"<<std::endl;
+      myfile  << "<table>" << std::endl << "<tr>" << std::endl;
       for( std::map<TMLTask*, std::string>::iterator taskColIt = taskCellClasses.begin(); taskColIt != taskCellClasses.end(); ++taskColIt ) {
-	//for(TaskList::const_iterator j=_taskList.begin(); j != _taskList.end(); ++j){
 	TMLTask* task = (*taskColIt).first;
-	std::string aCommentString = task->getNextComment( aInit, aComment );
-
-	if ( aComment == 0 ) {
-	  myfile << "<td></td><td></td><td class=\"space\"></td>";
-	}
-	else {
-	  replaceAll(aCommentString,"<","&lt;");
-	  replaceAll(aCommentString,">","&gt;");
-	  aMoreComments = true;
-	  myfile << "<td style=\"max-width: unset;\">" << aComment->_time << "</td><td><pre>" << aCommentString << "</pre></td><td class=\"space\"></td>";
-	}
+	// Unset the default td max-width of 5px. For some reason setting the max-with on a specific t style does not work
+	myfile << "<td class=\"" << taskCellClasses[ task ] << "\"></td><td style=\"max-width: unset;\">" << task->toString() << "</td><td class=\"space\"></td>";
       }
-
-      aInit = false;
       myfile << "</tr>" << std::endl;
+      myfile << "</table>" << std::endl;
     }
-#endif
-    myfile << "</table>" << std::endl;
+
+   
    }
   std::cout<<"end in!!!"<<std::endl;
 }
-
-
-
-
diff --git a/simulators/c++2/src_simulator/arch/FPGA.h b/simulators/c++2/src_simulator/arch/FPGA.h
index d776d513ac1a0e78e9e2a44c82ac85058258888c..71cf7c29bea69f37fa9539e1bd6bf1c563b26b4b 100644
--- a/simulators/c++2/src_simulator/arch/FPGA.h
+++ b/simulators/c++2/src_simulator/arch/FPGA.h
@@ -125,13 +125,21 @@ public:
     	*/
 	virtual void registerTask(TMLTask* iTask){
 		_taskList.push_back(iTask);
+		_taskNumber++;
 		if (_scheduler!=0) _scheduler->addWorkloadSource(iTask);
 	}
-	inline void setTransNumber(unsigned int num) { _transNumber=num;}
-	inline unsigned int getTransNumber() { return _transNumber;}
-	void schedule2HTML(std::ofstream& myfile) const;
+	///inline void setTransNumber(unsigned int num) { _transNumber=num;}
+	///inline unsigned int getTransNumber() { return _transNumber;}
+	inline void setCurrTaskNumber(unsigned int num) { _currTaskNumber=num;}
+	void schedule2HTML(std::ofstream& myfile) ;
 	inline const TaskList& getTaskList() const{return _taskList;}
 	inline void setHtmlCurrTask(TMLTask *t) { _htmlCurrTask=t;}
+	inline void setStartFlagHTML(bool s) {_startFlagHTML=s;}
+	inline void setEndFlagHTML(bool s) {_endFlagHTML=s;}
+	double averageLoad (TMLTask* currTask) const;
+	void drawPieChart(std::ofstream& myfile) const;
+	void showPieChart(std::ofstream& myfile) const;
+	std::string determineHTMLCellClass(unsigned int &nextColor );
 protected:
 	///List of all tasks running on the FPGA
 	TaskList _taskList;
@@ -177,8 +185,14 @@ protected:
 	TMLTime _timeBeforeIdle;
 	///Time needed to switch into idle mode
 	TMLTime _changeIdleModeTime;
-	unsigned int _transNumber;
- 		
+	bool _startFlagHTML;
+	bool _endFlagHTML;
+	//number of tasks executed on FPGA
+	unsigned int _taskNumber;
+	//current number of tasks executed on FPGA
+	unsigned int _currTaskNumber;
+	unsigned int nextCellClassIndex;
+ 	std::map<TMLTask*, std::string> taskCellClasses;	
 	///State variable for the VCD output
 	vcdFPGAVisState _vcdOutputState;
 };
diff --git a/simulators/c++2/src_simulator/arch/OrderScheduler.h b/simulators/c++2/src_simulator/arch/OrderScheduler.h
index 6c0888f3802f60d8d0913d0b84d65260a34b3f76..6a29a73bc690513890e82d8c9008db8be48daadc 100644
--- a/simulators/c++2/src_simulator/arch/OrderScheduler.h
+++ b/simulators/c++2/src_simulator/arch/OrderScheduler.h
@@ -37,8 +37,8 @@ Ludovic Apvrille, Renaud Pacalet
  * knowledge of the CeCILL license and that you accept its terms.
  *
  */
-#ifndef PrioSchedulerH
-#define PrioSchedulerH
+#ifndef OrderSchedulerH
+#define OrderSchedulerH
 #include <WorkloadSource.h>
 
 class TMLTransaction;
diff --git a/simulators/c++2/src_simulator/arch/SchedulableDevice.cpp b/simulators/c++2/src_simulator/arch/SchedulableDevice.cpp
index ff092d7af8c4c4af7f769a2846de6aa538fc7b62..d528b73267a381e33a9940b623bef4e6dd2938a9 100644
--- a/simulators/c++2/src_simulator/arch/SchedulableDevice.cpp
+++ b/simulators/c++2/src_simulator/arch/SchedulableDevice.cpp
@@ -220,11 +220,14 @@ void SchedulableDevice::drawPieChart(std::ofstream& myfile) const {
     _maxEndTime=max(_maxEndTime,_endTime);
   }
   std::map <TMLTask*, double > transPercentage;
+  
+
   for( TransactionList::const_iterator i = _transactList.begin(); i!= _transactList.end(); ++i){
       
     transPercentage[(*i)-> getCommand()->getTask()]+=(double)((*i)->getEndTime()-(*i)->getStartTime())/_maxEndTime;      
       
   }
+ 
   std::map <TMLTask*, double>::iterator iter = transPercentage.begin();
   myfile << "     var chart" << _ID << "= new CanvasJS.Chart(\"chartContainer" << _ID <<"\"," << std::endl;
   myfile <<  SCHED_HTML_JS_CONTENT2 << "Average load is " << averageLoad() <<  SCHED_HTML_JS_CONTENT3 << std::endl;
@@ -243,7 +246,7 @@ void SchedulableDevice::drawPieChart(std::ofstream& myfile) const {
 
 
 void SchedulableDevice::showPieChart(std::ofstream& myfile) const{
-  myfile << SCHED_HTML_JS_DIV_ID << _ID << SCHED_HTML_JS_DIV_END << "<br>";
+  myfile << SCHED_HTML_JS_DIV_ID << _ID << SCHED_HTML_JS_DIV_ID_END << "<br>";
 }
   
 
@@ -309,7 +312,6 @@ void SchedulableDevice::schedule2HTML(std::ofstream& myfile) const {
 		}
 
 		myfile << "</tr>" << std::endl << "</table>" << std::endl << "<table>" << std::endl << "<tr>";
-
 		for( std::map<TMLTask*, std::string>::iterator taskColIt = taskCellClasses.begin(); taskColIt != taskCellClasses.end(); ++taskColIt ) {
 			TMLTask* task = (*taskColIt).first;
 			// Unset the default td max-width of 5px. For some reason setting the max-with on a specific t style does not work
diff --git a/simulators/c++2/src_simulator/arch/SingleCoreCPU.cpp b/simulators/c++2/src_simulator/arch/SingleCoreCPU.cpp
index f0ada248717b0bb94dbcba478a723acb7f38cadb..1051283fa3ff1b8a1d477aa5b49225452dc60e8f 100644
--- a/simulators/c++2/src_simulator/arch/SingleCoreCPU.cpp
+++ b/simulators/c++2/src_simulator/arch/SingleCoreCPU.cpp
@@ -461,10 +461,9 @@ void SingleCoreCPU::latencies2XML(std::ostringstream& glob, unsigned int id1, un
 }
 
 void SingleCoreCPU::getNextSignalChange(bool iInit, SignalChangeData* oSigData){
-  if (iInit){
-   
+  if (iInit){ 
     _posTrasactListVCD=_transactList.begin();
-    std::cout<<"init "<<(*_posTrasactListVCD)->toShortString()<<std::endl;
+    // std::cout<<"init "<<(*_posTrasactListVCD)->toShortString()<<std::endl;
     _previousTransEndTime=0;
     _vcdOutputState = END_IDLE_CPU;
     if (_posTrasactListVCD != _transactList.end() && (*_posTrasactListVCD)->getStartTime()!=0){
diff --git a/simulators/c++2/src_simulator/definitions.h b/simulators/c++2/src_simulator/definitions.h
index d25b592841298dfcc5475067c80b6d6a1f9367aa..c4e8899ce21b0001a1df4933f33d37861649c69c 100644
--- a/simulators/c++2/src_simulator/definitions.h
+++ b/simulators/c++2/src_simulator/definitions.h
@@ -260,8 +260,12 @@ using std::max;
 #define SCHED_HTML_JS_TYPE "<script type=\"text/javascript\">\n"
 #define SCHED_HTML_END_JS "</script>\n"
 #define SCHED_HTML_JS_LINK "<script type=\"text/javascript\" src=\"https://canvasjs.com/assets/script/canvasjs.min.js\">"
+#define SCHED_HTML_JS_DIV_BEGIN "<div>"
+#define SCHED_HTML_JS_DIV_END "</div>"
 #define SCHED_HTML_JS_DIV_ID "<div id=\"chartContainer"
-#define SCHED_HTML_JS_DIV_END "\" style=\"height: 300px; width: 0%;\"></div>\n"
+#define SCHED_HTML_JS_DIV_ID_END "\" style=\"height: 300px; width: 300px;\"></div>\n"
+#define SCHED_HTML_JS_DIV_ID_END_FPGA "\" style=\"height: 300px; width: 300px;float:left;margin-right:40px;\"></div>\n"
+#define SCHED_HTML_JS_CLEAR "<div class = \"clear\"></div>"
 #define NB_HTML_COLORS 15
 #define SCHED_HTML_JS_CONTENT1 "window.onload = function () {\n"
 #define SCHED_HTML_JS_CONTENT2 "{\n \
@@ -526,9 +530,11 @@ h2 span {\n \
 .t14last {\n \
 	background-color: LightGoldenRodYellow;\n \
 	border-style: solid solid solid none;\n \
+}\n \
+.clear {\n \
+	clear:both\n \
 }"
 
-
 #define SCHED_HTML_SCRIPT_CONTENT
 
 
@@ -728,7 +734,7 @@ public:
 	SignalChangeData(unsigned int iSigChange, TMLTime iTime, TraceableDevice* iDevice):_sigChange(iSigChange),_time(iTime),_device(iDevice){
 		//std::cout << _sigChange << " " << _time << " " << _device << " " << " constructor***\n";
 	}
-	SignalChangeData():_sigChange(0),_time(0),_device(0),_coreNumberVcd(0){
+	SignalChangeData():_sigChange(0),_time(0),_device(0),_coreNumberVcd(0),_taskFPGA(0){
 	}
 	///String representation of the signal change in VCD format
 	//std::string _sigChange;
@@ -739,6 +745,7 @@ public:
 	TraceableDevice* _device;
         ///for cpu,the correspond core number
         unsigned int _coreNumberVcd;
+	TMLTask* _taskFPGA;
 };
 
 ///Function object for the comparison of the runnable time of two transaction
diff --git a/simulators/c++2/src_simulator/sim/Simulator.cpp b/simulators/c++2/src_simulator/sim/Simulator.cpp
index 3d9ce1aaf66e86512e9568ebdc242ae956c57116..c9cfadf7977e8fea96e2c527ca1e957149b679fa 100644
--- a/simulators/c++2/src_simulator/sim/Simulator.cpp
+++ b/simulators/c++2/src_simulator/sim/Simulator.cpp
@@ -413,8 +413,10 @@ std::cout<<"schedule2HTML--------------------------------------*****************
     myfile << SCHED_HTML_END_HEAD; // </head>\n
     myfile << SCHED_HTML_BEG_BODY; // <body>\n
     
-    myfile<<"model name: "<< _simComp->getModelName(); //name of model
-    myfile << " date: " << asctime(aTimeinfo)<<std::endl; //date and time
+    myfile << "<ul>\n";
+    myfile << "<li>Model name: "<< _simComp->getModelName() << "</li><br>\n"; //name of model
+    myfile << "<li> Date: " << asctime(aTimeinfo) << "</li>\n"; //date and time
+    myfile << "</ul>\n";
     
     myfile << SCHED_HTML_JS_TYPE;
     myfile << SCHED_HTML_JS_CONTENT1;
@@ -422,7 +424,10 @@ std::cout<<"schedule2HTML--------------------------------------*****************
       (*i)->drawPieChart(myfile);
     }
     for(FPGAList::const_iterator i=_simComp->getFPGAList().begin(); i != _simComp->getFPGAList().end(); ++i){
-      (*i)->drawPieChart(myfile);
+      for(TaskList::const_iterator j = (*i)->getTaskList().begin(); j != (*i)->getTaskList().end(); ++j){
+      	(*i)->setHtmlCurrTask(*j);
+	(*i)->drawPieChart(myfile);
+      }
     }
     for(BusList::const_iterator j=_simComp->getBusList().begin(); j != _simComp->getBusList().end(); ++j){
       (*j)->drawPieChart(myfile);
@@ -451,13 +456,21 @@ std::cout<<"schedule2HTML--------------------------------------*****************
     
     
     for(FPGAList::const_iterator j=_simComp->getFPGAList().begin(); j != _simComp->getFPGAList().end(); ++j){     
+      (*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;
 	(*j)->schedule2HTML(myfile);
-	std::cout<<"end fpga html "<<(*j)->toShortString()<<std::endl;
+	(*j)->setStartFlagHTML(false);
       }
-      (*j)->showPieChart(myfile);
+      myfile << SCHED_HTML_JS_DIV_BEGIN << std::endl;
+      for(TaskList::const_iterator i = (*j)->getTaskList().begin(); i != (*j)->getTaskList().end(); ++i){
+	(*j)->setHtmlCurrTask(*i);
+	(*j)->showPieChart(myfile);
+      }
+      myfile << SCHED_HTML_JS_DIV_END <<std::endl;
+      myfile << SCHED_HTML_JS_CLEAR <<std::endl;
     }
     
     for(BusList::const_iterator j=_simComp->getBusList().begin(); j != _simComp->getBusList().end(); ++j){
@@ -514,18 +527,29 @@ void Simulator::schedule2VCD(std::string& iTraceFileName) const{
       //std::cout << "in 1st loop " << a << std::endl;
       //std::cout << "device: " << (*i)->toString() << std::endl;
       //myfile << "$var integer 3 " << (*i)->toShortString() << " " << (*i)->toString() << " $end\n";
-      
       if ((*i)->toShortString().substr(0,3) == "cpu"){
 	for(unsigned int j = 0; j < (dynamic_cast<CPU*>(*i))->getAmoutOfCore(); j++) {
-	  myfile << "$var wire 1 " << (*i)->toShortString() << "_core" << j << " " << (*i)->toString() <<"_Core"<<j<< " $end\n";
+	  myfile << "$var wire 1 " << (*i)->toShortString() << "_core" << j << " " << (*i)->toString() << "_Core" << j << " $end\n";
 	  aTopElement = new SignalChangeData();
 	  aTopElement->_coreNumberVcd=j;
 	  (*i)->getNextSignalChange(true, aTopElement);
 	  aQueue.push(aTopElement);
-
 	  // (dynamic_cast<CPU*>(*i))->setCycleTime( (dynamic_cast<CPU*>(*i))->getCycleTime()+1);
-	}	 
+	}
       }
+       else if((*i)->toShortString().substr(0,4) == "fpga"){
+	 std::cout<<"444"<<std::endl;
+	 for(TaskList::const_iterator j = _simComp->getTaskList().begin(); j != _simComp->getTaskList().end(); j++){
+	   aTopElement = new SignalChangeData();
+	   aTopElement->_taskFPGA=(*j);
+	   (*i)->getNextSignalChange(true, aTopElement);
+	   if(aTopElement->_device){
+	     std::cout<<"name of fpga is : "<< (*i)->toShortString() << "_" << (*j)->toString() << std::endl;
+	     myfile << "$var wire 1 " << (*i)->toShortString() << "_" << (*j)->toString() << " " << (*i)->toString() << "_" << (*j)->toString() << " $end\n";
+	     aQueue.push(aTopElement);
+	   }
+	 }	 
+       }
       else{
 	if(((*i)->toShortString().substr(0,2) == "ta"))
 	  myfile << "$var wire 2 " << (*i)->toShortString() << " " << (*i)->toString() << " $end\n";
@@ -549,6 +573,8 @@ void Simulator::schedule2VCD(std::string& iTraceFileName) const{
       aTopElement=aQueue.top();
       if( aTopElement->_device->toShortString().substr(0,3) == "cpu")
         std::cout<<"the member of queue is "<<aTopElement->_device->toShortString()<< "_core" << aTopElement->_coreNumberVcd<<std::endl;
+      else if( aTopElement->_device->toShortString().substr(0,4) == "fpga")
+        std::cout<<"the member of queue is "<<aTopElement->_device->toShortString()<< "_" << aTopElement->_taskFPGA->toString()<<std::endl;
       else 
         std::cout<<"the member of queue is "<<aTopElement->_device->toShortString() <<std::endl;
 
@@ -569,10 +595,15 @@ void Simulator::schedule2VCD(std::string& iTraceFileName) const{
 	aNextClockEvent+=CLOCK_INC;
       }
       //myfile << aTopElement->_sigChange << "\n";
-      if( aTopElement->_device->toShortString().substr(0,3) == "cpu")
+      if( aTopElement->_device->toShortString().substr(0,3) == "cpu" )
 	myfile << vcdValConvert(aTopElement->_sigChange) << aTopElement->_device->toShortString() << "_core" << aTopElement->_coreNumberVcd << "\n"; 
-      else if(aTopElement->_device->toShortString().substr(0,2) == "ta")
+      
+      else if( aTopElement->_device->toShortString().substr(0,4) == "fpga")
+	myfile << vcdValConvert(aTopElement->_sigChange) << aTopElement->_device->toShortString() << "_" << aTopElement->_taskFPGA->toString() << "\n";
+      
+      else if( aTopElement->_device->toShortString().substr(0,2) == "ta" )
 	myfile <<"b"<< vcdTaskValConvert(aTopElement->_sigChange) <<" "<< aTopElement->_device->toShortString() << "\n";
+      
       else myfile << vcdValConvert(aTopElement->_sigChange) << aTopElement->_device->toShortString() << "\n";
       aQueue.pop();
       TMLTime aTime = aTopElement->_time;
@@ -605,7 +636,12 @@ void Simulator::schedule2VCD(std::string& iTraceFileName) const{
 	for (unsigned int j = 0; j < (dynamic_cast<CPU*>(*i))->getAmoutOfCore();j++){
 	  myfile << "0" << (*i)->toShortString() << "\n";
 	}
-      }	  
+      }	
+       else if((*i)->toShortString().substr(0,4) == "FPGA"){
+	for(TaskList::const_iterator j=_simComp->getTaskList().begin(); j!=_simComp->getTaskList().end();j++){
+	   myfile << "0" << (*i)->toShortString() << "\n";
+	}
+       }
       //myfile << VCD_PREFIX << "100 " << (*i)->toShortString() << "\n";
       else  myfile << "0" << (*i)->toShortString() << "\n";
       //std::cout << "Utilization of component " << (*i)->toString() << ": " << ((float)(*i)->getBusyCycles()) / ((float)aCurrTime) << std::endl;
diff --git a/src/main/java/help/HelpEntry.java b/src/main/java/help/HelpEntry.java
index 59f7fe3a2560de7b30f596012f87e12db15d21b1..49c76f622e3f02fd90902a4d1867c5e00fd24353 100644
--- a/src/main/java/help/HelpEntry.java
+++ b/src/main/java/help/HelpEntry.java
@@ -288,6 +288,10 @@ public class HelpEntry implements GenericTree {
         }
     }
 
+    public boolean hasMasterKeyword(String word) {
+        return masterKeyword.compareTo(word) == 0;
+    }
+
     public int hasSimilarWords(String[] words) {
         int result = 0;
         for(String s:words) {
diff --git a/src/main/java/help/HelpManager.java b/src/main/java/help/HelpManager.java
index 1f673562b04f76e857521d782548ba7e3001168b..d1456e1cd9920d224566196bca2e2dffa6cc9a66 100644
--- a/src/main/java/help/HelpManager.java
+++ b/src/main/java/help/HelpManager.java
@@ -263,6 +263,16 @@ public class HelpManager extends HelpEntry {
         return result;
     }
 
+    public HelpEntry getEntryWithMasterKeyword(String word) {
+
+        for(HelpEntry he: allEntries) {
+            boolean b = he.hasMasterKeyword(word);
+            if (b)
+                return he;
+        }
+        return null;
+    }
+
     public HelpEntry getHelpEntryWithHTMLFile(String pathToHTMLFile) {
         for(HelpEntry he: allEntries) {
             if (he.pathToHTMLFile.compareTo(pathToHTMLFile) == 0) {
diff --git a/src/main/java/tmltranslator/EmptyTMLTask.java b/src/main/java/tmltranslator/EmptyTMLTask.java
new file mode 100644
index 0000000000000000000000000000000000000000..16808b450bdd467b5185db02435464fd792babe7
--- /dev/null
+++ b/src/main/java/tmltranslator/EmptyTMLTask.java
@@ -0,0 +1,78 @@
+/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+ * 
+ * ludovic.apvrille AT enst.fr
+ * 
+ * This software is a computer program whose purpose is to allow the
+ * edition of TURTLE analysis, design and deployment diagrams, to
+ * allow the generation of RT-LOTOS or Java code from this diagram,
+ * and at last to allow the analysis of formal validation traces
+ * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
+ * from INRIA Rhone-Alpes.
+ * 
+ * This software is governed by the CeCILL  license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ * 
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ * 
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ * 
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ */
+
+
+package tmltranslator;
+
+import tmltranslator.*;
+
+import java.util.Vector;
+
+
+/**
+ * Class EmptyTMLTask
+ * Creation: 21/05/2019
+ *
+ * @author Ludovic Apvrille
+ * @version 1.0 21/05/2019
+ */
+public class EmptyTMLTask extends TMLTask {
+
+    public EmptyTMLTask(String name, Object referenceToClass, Object referenceToActivityDiagram) {
+        super(name, referenceToClass, referenceToActivityDiagram);
+    }
+
+    public void generate() {
+
+
+        // Attributes
+
+
+        // Events
+
+        // Activity Diagram
+        TMLStartState start = new TMLStartState("mainStart", referenceObject);
+        activity.setFirst(start);
+
+
+        TMLStopState stopMain = new TMLStopState("mainStop", referenceObject);
+        addElement(start, stopMain);
+
+    }
+
+}
diff --git a/src/main/java/tmltranslator/TMLActivity.java b/src/main/java/tmltranslator/TMLActivity.java
index 96ecf5557397dac1e945cf753f2562b3106acf94..03594e919a5a9ddb4f88ac548bfaf0e4f3a57b95 100755
--- a/src/main/java/tmltranslator/TMLActivity.java
+++ b/src/main/java/tmltranslator/TMLActivity.java
@@ -663,7 +663,7 @@ public class TMLActivity extends TMLElement {
                         return -1;
                     }
                     // Get the value exec value
-                    String value = ((TMLExecI) (currentElement)).getAction().trim();
+                    String value = ((TMLExecIInterval) (currentElement)).getMaxDelay().trim();
                     int index = value.indexOf(" ");
                     if (index != -1) {
                         value = value.substring(index+1, value.length());
diff --git a/src/main/java/tmltranslator/TMLForLoop.java b/src/main/java/tmltranslator/TMLForLoop.java
index ad71352cd795118c15875b237dafae3dfa850920..523e0396ff8fc58c4768a7fcdc48a0d32fb2e722 100755
--- a/src/main/java/tmltranslator/TMLForLoop.java
+++ b/src/main/java/tmltranslator/TMLForLoop.java
@@ -53,7 +53,7 @@ public class TMLForLoop extends TMLActivityElement {
     //next #0 -> inside the loop
     //next #1 -> after the loop
     
-    private String init, condition, increment;
+    private String init = "", condition="", increment="";
 
     private boolean isInfinite;
     
@@ -78,7 +78,7 @@ public class TMLForLoop extends TMLActivityElement {
     }
 
     public String customExtraToXML() {
-	return " init=\"" + Conversion.transformToXMLString(init) + "\" condition=\"" + Conversion.transformToXMLString(condition) + "\" increment=\"" + Conversion.transformToXMLString(increment) + "\" isInfinite=\"" + isInfinite + "\" ";
+	    return " init=\"" + Conversion.transformToXMLString(init) + "\" condition=\"" + Conversion.transformToXMLString(condition) + "\" increment=\"" + Conversion.transformToXMLString(increment) + "\" isInfinite=\"" + isInfinite + "\" ";
     }
     
  
diff --git a/src/main/java/tmltranslator/TMLNotifiedEvent.java b/src/main/java/tmltranslator/TMLNotifiedEvent.java
index 7f8f3b8f91bc68fb70c0bbc688f759ba6b717b88..db4e5bc3931270c8d0ec644a3a3bb542d79241d2 100755
--- a/src/main/java/tmltranslator/TMLNotifiedEvent.java
+++ b/src/main/java/tmltranslator/TMLNotifiedEvent.java
@@ -59,6 +59,6 @@ public class TMLNotifiedEvent extends TMLActivityElementEvent {
     }
 
     public String customExtraToXML() {
-	return " event=\"" + event.getName() +  "\" params=\"" + getAllParams() + "\" variable=\"" + variable + "\" ";
+	    return " event=\"" + event.getName() +  "\" params=\"" + getAllParams() + "\" variable=\"" + variable + "\" ";
     }
 }
diff --git a/src/main/java/tmltranslator/TMLSyntaxChecking.java b/src/main/java/tmltranslator/TMLSyntaxChecking.java
index 67535404a2e6d961e1f0cf48483e01afb88a9a6e..6d01fbb7b1dd4c49455234dcd870fd126bbb91f2 100755
--- a/src/main/java/tmltranslator/TMLSyntaxChecking.java
+++ b/src/main/java/tmltranslator/TMLSyntaxChecking.java
@@ -45,6 +45,7 @@ import compiler.tmlparser.TMLExprParser;
 import compiler.tmlparser.TokenMgrError;
 import myutil.Conversion;
 import myutil.TraceManager;
+import tmltranslator.tomappingsystemc2.DiploSimulatorCodeGenerator;
 
 import java.io.StringReader;
 import java.util.ArrayList;
@@ -80,6 +81,7 @@ public class TMLSyntaxChecking {
     private final String TOO_MANY_MEMORIES = "Channel is mapped on more than one memory";
     private final String INVALID_CHANNEL_PATH = "Channel path is invalid";
     private final String INVALID_BUS_PATH = "Bus path is invalid for channel"; // Should be a warning only
+    private final String INVALID_ROUTING = "No possible routing for channel"; // Should be a warning only
 
     private final String DUPLICATE_PATH_TO_BUS = "Path to bus is duplicated"; // Should be a warning only
     private final String ONLY_ONE_NOC = "Only one NoC can be used"; // Should be a warning only
@@ -136,6 +138,7 @@ public class TMLSyntaxChecking {
             checkPathValidity();
             checkNonDuplicatePathToBuses();
             checkOneNOC();
+            checkRouting();
 
             // Check that if their is a memory for a channel, the memory is connected to the path
         }
@@ -824,6 +827,18 @@ public class TMLSyntaxChecking {
 
     }
 
+    private void checkRouting() {
+        DiploSimulatorCodeGenerator gen = new DiploSimulatorCodeGenerator(mapping);
+        for(TMLChannel ch: mapping.getTMLModeling().getChannels()) {
+            String s = gen.determineRouting(mapping.getHwNodeOf(ch.getOriginTask()),
+                    mapping.getHwNodeOf(ch.getDestinationTask()), ch);
+            if (s == null) {
+                addError(ch.getOriginTask(), null, INVALID_ROUTING + ": " + ch.getName() + " between " + ch.getOriginTask().getName() + " and " +
+                        ch.getDestinationTask().getName(), TMLError.ERROR_STRUCTURE);
+            }
+        }
+    }
+
 
 
 }
diff --git a/src/main/java/tmltranslator/TMLTextSpecification.java b/src/main/java/tmltranslator/TMLTextSpecification.java
index 83e1d101cc0f6c5b502af49614daa8a572b5721e..6e9763115e3d2928605ed791e045534618cb6ec8 100755
--- a/src/main/java/tmltranslator/TMLTextSpecification.java
+++ b/src/main/java/tmltranslator/TMLTextSpecification.java
@@ -294,6 +294,14 @@ public class TMLTextSpecification<E> {
             if (!evt.isInfinite()) {
                 sb += SP + evt.getMaxSize();
             }
+
+            TraceManager.addDev("Handing Event:" + evt.getName());
+            if (evt.getOriginTask() == null) {
+                TraceManager.addDev("Missing origin Task in " + evt.getName());
+            }
+            if (evt.getDestinationTask() == null) {
+                TraceManager.addDev("Missing destination Task in " + evt.getName());
+            }
             sb += SP + evt.getOriginTask().getName() + SP + evt.getDestinationTask().getName();
 
             sb += CR;
@@ -423,10 +431,15 @@ public class TMLTextSpecification<E> {
 
         } else if (elt instanceof TMLForLoop) {
             tmlfl = (TMLForLoop) elt;
-            code = "FOR(" + tmlfl.getInit() + SC + SP;
-            code += tmlfl.getCondition() + SC + SP;
-            code += tmlfl.getIncrement() + ")" + CR;
+            if (tmlfl.isInfinite()) {
+                code = "FOR( " + SC + " " + SC + " )" + CR;
+            } else {
+                code = "FOR(" + tmlfl.getInit() + SC + SP;
+                code += tmlfl.getCondition() + SC + SP;
+                code += tmlfl.getIncrement() + ")" + CR;
+            }
             code += makeBehavior(task, elt.getNextElement(0));
+
             return code + "ENDFOR" + CR + makeBehavior(task, elt.getNextElement(1));
 
         } else if (elt instanceof TMLRandom) {
@@ -447,6 +460,7 @@ public class TMLTextSpecification<E> {
             for (int k = 0; k < tmlch.getNbOfChannels(); k++) {
                 code = code + tmlch.getChannel(k).getName() + SP;
             }
+            TraceManager.addDev("Nb Of of samples in task " + task.getName() + " = " + tmlch.getNbOfSamples());
             code = code + modifyString(tmlch.getNbOfSamples());
             if (elt.securityPattern != null) {
                 code = code + SP + elt.securityPattern.name + CR;
@@ -2896,6 +2910,9 @@ public class TMLTextSpecification<E> {
     }
 
     private static String prepareString(String s) {
+        if (s == null) {
+            return null;
+        }
         return s.replaceAll("\\s", "");
     }
 
diff --git a/src/main/java/tmltranslator/tomappingsystemc2/DiploSimulatorCodeGenerator.java b/src/main/java/tmltranslator/tomappingsystemc2/DiploSimulatorCodeGenerator.java
index d10523ab75c19d93fec12d79efc1e5bf5ca53f10..d7cf9c87fbcb54d25fdaef7d71a51b4e31589cde 100644
--- a/src/main/java/tmltranslator/tomappingsystemc2/DiploSimulatorCodeGenerator.java
+++ b/src/main/java/tmltranslator/tomappingsystemc2/DiploSimulatorCodeGenerator.java
@@ -88,7 +88,7 @@ public class DiploSimulatorCodeGenerator implements IDiploSimulatorCodeGenerator
 
 
 
-    DiploSimulatorCodeGenerator(TMLModeling<?> _tmlm) {
+    public DiploSimulatorCodeGenerator(TMLModeling<?> _tmlm) {
         this(_tmlm.getDefaultMapping());
 
         tmlmodeling = _tmlm;
@@ -97,7 +97,7 @@ public class DiploSimulatorCodeGenerator implements IDiploSimulatorCodeGenerator
         //        tepeTranslator = new  SystemCTEPE(new ArrayList<TEPE>(), this);
     }
 
-    DiploSimulatorCodeGenerator(TMLMapping<?> _tmlmapping) {
+    public DiploSimulatorCodeGenerator(TMLMapping<?> _tmlmapping) {
         //        tmlmapping = _tmlmapping;
         //      tmlmapping.handleCPs();
         //      tmlmapping.removeForksAndJoins();
@@ -144,7 +144,8 @@ public class DiploSimulatorCodeGenerator implements IDiploSimulatorCodeGenerator
         return mainFile;
     }
 
-    public void generateSystemC(boolean _debug, boolean _optimize) {
+    // If String is non-null, returns an error
+    public String generateSystemC(boolean _debug, boolean _optimize) {
 
         TraceManager.addDev("Generate SystemC code from DiploSimulatorCodeGenerator");
 
@@ -156,16 +157,30 @@ public class DiploSimulatorCodeGenerator implements IDiploSimulatorCodeGenerator
         tasks = new ArrayList<MappedSystemCTask>();
         //generateSystemCTasks();
         //generateEBRDDs();
-        generateMainFile();
+        String error = generateMainFile();
+        if (error != null) {
+            return error;
+        }
+
         generateMakefileSrc();
+
+        return null;
     }
 
-    private void generateMainFile() {
+    // If String is non-null, returns an error
+    private String generateMainFile() {
         makeHeader();
-        makeDeclarations();
+
+        String error = makeDeclarations();
+        if (error != null) {
+            return error;
+        }
+
         header += tepeTranslator.getEqFuncDeclaration() + "\n";
         mainFile = header + declaration;
         mainFile = Conversion.indentString(mainFile, 4);
+
+        return null;
     }
 
     private void generateMakefileSrc() {
@@ -202,7 +217,8 @@ public class DiploSimulatorCodeGenerator implements IDiploSimulatorCodeGenerator
         header += CR;
     }
 
-    private void makeDeclarations() {
+    // If String is non-null, returns an error
+    private String  makeDeclarations() {
         declaration = "class CurrentComponents: public SimComponents{\npublic:\nCurrentComponents():SimComponents(" + tmlmapping.getHashCode() + "){\n";
 
         // Declaration of HW nodes
@@ -423,7 +439,16 @@ public class DiploSimulatorCodeGenerator implements IDiploSimulatorCodeGenerator
                         param = "";
                 }
 
-                declaration += determineRouting(tmlmapping.getHwNodeOf(channel.getOriginTask()), tmlmapping.getHwNodeOf(channel.getDestinationTask()), elem) + param + "," + channel.getPriority();
+                String ret =  determineRouting(tmlmapping.getHwNodeOf(channel.getOriginTask()),
+                        tmlmapping.getHwNodeOf(channel.getDestinationTask()), elem);
+                //TraceManager.addDev("------> Routing = " + ret);
+                if (ret == null) {
+                    return "Could not determine  routing between " +  channel.getOriginTask().getName() + " and " + channel.getDestinationTask()
+                            .getName() +
+                            " for channel " + channel.getName();
+                }
+                ret = ret + param + "," + channel.getPriority();
+                declaration += ret ;
 
                 if (channel.isLossy() && channel.getType() != TMLChannel.NBRNBW) {
                     declaration += "," + channel.getLossPercentage() + "," + channel.getMaxNbOfLoss();
@@ -459,7 +484,13 @@ public class DiploSimulatorCodeGenerator implements IDiploSimulatorCodeGenerator
 
             if (tmlmapping.isCommNodeMappedOn(evt, null)) {
                 //TraceManager.addDev("Evt: " + evt.getName());
-                declaration += eventTypeName + "* " + eventInstName + " = new " + eventTypeName + "(" + evt.getID() + ",\"" + eventName + "\"," + determineRouting(tmlmapping.getHwNodeOf(evt.getOriginTask()), tmlmapping.getHwNodeOf(evt.getDestinationTask()), evt) + param;
+                String ret = determineRouting(tmlmapping.getHwNodeOf(evt.getOriginTask()), tmlmapping.getHwNodeOf(evt.getDestinationTask()), evt);
+                if (ret == null) {
+                    return "Could not determine routing between " +  evt.getOriginTask().getName() + " and " + evt.getDestinationTask().getName() +
+                            " for event " + evt.getName();
+                }
+                declaration += eventTypeName + "* " + eventInstName + " = new " + eventTypeName + "(" + evt.getID() + ",\"" + eventName + "\"," +
+                         ret + param;
 
             } else {
                 declaration += eventTypeName + "* " + eventInstName + " = new " + eventTypeName + "(" + evt.getID() + ",\"" + eventName + "\",0,0,0" + param;   ///old command
@@ -485,10 +516,16 @@ public class DiploSimulatorCodeGenerator implements IDiploSimulatorCodeGenerator
 
                 if (tmlmapping.isCommNodeMappedOn(req, null)) {
                     //TraceManager.addDev("Request: " + req.getName());
+                    String ret =  determineRouting(tmlmapping.getHwNodeOf(req.getOriginTasks().get(0)), //tmlmapping.getHwNodeOf(req.getDestinationTask()), req) + ",0," + req.getNbOfParams() + ",true)" + SCCR;
+                            tmlmapping.getHwNodeOf(req.getDestinationTask()), req) + ",0,true,false";
+                    if (ret == null) {
+                        return "Could not determine routing between " +  req.getOriginTasks().get(0).getName() + " and " + req.getDestinationTask()
+                                .getName() +
+                                " for request " + req.getName();
+                    }
                     declaration += "TMLEventBChannel<ParamType," + req.getNbOfParams() + ">* " + reqChannelInstName + " = new TMLEventBChannel<ParamType," + req.getNbOfParams() + ">(" +
-                            req.getID() + ",\"" + reqChannelInstName + "\"," +
-                            determineRouting(tmlmapping.getHwNodeOf(req.getOriginTasks().get(0)), //tmlmapping.getHwNodeOf(req.getDestinationTask()), req) + ",0," + req.getNbOfParams() + ",true)" + SCCR;
-                                    tmlmapping.getHwNodeOf(req.getDestinationTask()), req) + ",0,true,false";
+                            req.getID() + ",\"" + reqChannelInstName + "\"," + ret;
+
                 } else {
                     declaration += "TMLEventBChannel<ParamType," + req.getNbOfParams() + ">* " + reqChannelInstName + " = new TMLEventBChannel<ParamType," + req.getNbOfParams() + ">(" + //req.getID() + ",\"reqChannel"+ task.getName() + "\",0,0,0,0," + req.getNbOfParams() + ",true)" + SCCR;
                             req.getID() + ",\"" + reqChannelInstName + "\",0,0,0,0,true,false";
@@ -673,6 +710,7 @@ public class DiploSimulatorCodeGenerator implements IDiploSimulatorCodeGenerator
           declaration += ebrdd.getName() + "* ebrdd__" + ebrdd.getName() + " = new " + ebrdd.getName() + "(0, \""+ ebrdd.getName() + "\");\n";
           declaration += "addEBRDD(ebrdd__"+ ebrdd.getName() +")"+ SCCR;
           }*/
+        return null;
     }
 
     private int extractPath(final List<HwCommunicationNode> path,
@@ -744,9 +782,10 @@ public class DiploSimulatorCodeGenerator implements IDiploSimulatorCodeGenerator
         return -masterCount;
     }
 
-    private String determineRouting(HwNode startNode, HwNode destNode, TMLElement commElemToRoute) {
+    public String determineRouting(HwNode startNode, HwNode destNode, TMLElement commElemToRoute) {
 
-        //TraceManager.addDev( "Determine routing from " + startNode.getName() + " to " + destNode.getName() );
+        /*TraceManager.addDev( "******** -------> ROUTING ROUTING ROUTING\nDetermine routing from " + startNode.getName() + " to " + destNode.getName
+                () );*/
         StrWrap masters = new StrWrap();
         StrWrap slaves = new StrWrap();
 
@@ -798,6 +837,12 @@ public class DiploSimulatorCodeGenerator implements IDiploSimulatorCodeGenerator
         //TraceManager.addDev("masters: " + masters.str);
         //TraceManager.addDev("slaves: " + slaves.str);
 
+        if (masters.str.length() == 0) {
+            return null;
+        }
+
+        //TraceManager.addDev("Going to return:" + hopNum + ",array(" + hopNum + masters.str + "),array(" + hopNum + slaves.str + ")");
+
         return hopNum + ",array(" + hopNum + masters.str + "),array(" + hopNum + slaves.str + ")";
     }
 
@@ -867,7 +912,7 @@ public class DiploSimulatorCodeGenerator implements IDiploSimulatorCodeGenerator
         for (HwCommunicationNode commNode : _commNodes) {
             if (commNode instanceof HwMemory) {
                 if (_bus != null) {
-                    //TraceManager.addDev(commNode.getName() + " connected to bus " + _bus.getName() + ": " + tmlmapping.getTMLArchitecture().isNodeConnectedToBus(commNode, _bus));
+                    TraceManager.addDev(commNode.getName() + " connected to bus " + _bus.getName() + ": " + tmlmapping.getTMLArchitecture().isNodeConnectedToBus(commNode, _bus));
                 }
                 //TraceManager.addDev(_channel.getName() + " is mapped onto " + commNode.getName() + ": " + tmlmapping.isCommNodeMappedOn(_channel, commNode));
                 if ((_bus == null || tmlmapping.getTMLArchitecture().isNodeConnectedToBus(commNode, _bus))
@@ -893,7 +938,7 @@ public class DiploSimulatorCodeGenerator implements IDiploSimulatorCodeGenerator
     private List<HwCommunicationNode> getBridgesConnectedToBus(List<HwCommunicationNode> _commNodes, HwBus _bus) {
         List<HwCommunicationNode> resultList = new LinkedList<HwCommunicationNode>();
         for (HwCommunicationNode commNode : _commNodes) {
-            if (commNode instanceof HwBridge) {
+            if ((commNode instanceof HwBridge) || (commNode instanceof HwNoC)){
                 if (tmlmapping.getTMLArchitecture().isNodeConnectedToBus(commNode, _bus)) resultList.add(commNode);
             }
         }
diff --git a/src/main/java/tmltranslator/tomappingsystemc2/IDiploSimulatorCodeGenerator.java b/src/main/java/tmltranslator/tomappingsystemc2/IDiploSimulatorCodeGenerator.java
index f2183fdda0a96c04f041237e6af222f5ba7bcea3..a49331124eaac60056e925c742d971ac7214c578 100644
--- a/src/main/java/tmltranslator/tomappingsystemc2/IDiploSimulatorCodeGenerator.java
+++ b/src/main/java/tmltranslator/tomappingsystemc2/IDiploSimulatorCodeGenerator.java
@@ -45,7 +45,7 @@ public interface IDiploSimulatorCodeGenerator {
 
     MappedSystemCTask getMappedTaskByName(String iName);
 
-    void generateSystemC(boolean _debug,
+    String generateSystemC(boolean _debug,
                          boolean _optimize);
 
     void saveFile(String path,
diff --git a/src/main/java/tmltranslator/tomappingsystemc2/NamesGenerationHelper.java b/src/main/java/tmltranslator/tomappingsystemc2/NamesGenerationHelper.java
index daa3badff8ca933b802e65f0a0664b470f241038..744b5262eeb4f8beaf1a24972a9f6cfe5799a224 100644
--- a/src/main/java/tmltranslator/tomappingsystemc2/NamesGenerationHelper.java
+++ b/src/main/java/tmltranslator/tomappingsystemc2/NamesGenerationHelper.java
@@ -279,6 +279,10 @@ public class NamesGenerationHelper {
             return bridgeInstanceName((HwBridge) element);
         }
 
+        if (element instanceof HwNoC) {
+            return hwNoCInstanceName((HwNoC) element);
+        }
+
         throw new UnsupportedOperationException();
     }
 
@@ -363,10 +367,18 @@ public class NamesGenerationHelper {
         return normalize(bridgeName(element));
     }
 
+    String hwNoCInstanceName(final HwNoC element) {
+        return normalize(hwNocName(element));
+    }
+
     String bridgeName(final HwBridge element) {
         return element.getName();
     }
 
+    String hwNocName(final HwNoC element) {
+        return element.getName();
+    }
+
     String memoryInstanceName(final HwMemory element) {
         return normalize(memoryName(element));
     }
diff --git a/src/main/java/tmltranslator/tomappingsystemc2/TML2MappingSystemC.java b/src/main/java/tmltranslator/tomappingsystemc2/TML2MappingSystemC.java
index d78287bf5ab2bb16e6a08382eea97b3c2cc8d714..96de38efc9c676f627e1c36c2907db6c8fe99504 100644
--- a/src/main/java/tmltranslator/tomappingsystemc2/TML2MappingSystemC.java
+++ b/src/main/java/tmltranslator/tomappingsystemc2/TML2MappingSystemC.java
@@ -129,7 +129,7 @@ public class TML2MappingSystemC implements IDiploSimulatorCodeGenerator {
         return mainFile;
     }
 
-    public void generateSystemC(boolean _debug, boolean _optimize) {
+    public String generateSystemC(boolean _debug, boolean _optimize) {
         debug = _debug;
         optimize = _optimize;
         tmlmapping.removeAllRandomSequences();
@@ -140,6 +140,8 @@ public class TML2MappingSystemC implements IDiploSimulatorCodeGenerator {
         //generateEBRDDs();
         generateMainFile();
         generateMakefileSrc();
+
+        return null;
     }
 
     private void generateMainFile() {
diff --git a/src/main/java/tmltranslator/tonetwork/FakeTaskOut.java b/src/main/java/tmltranslator/tonetwork/FakeTaskOut.java
new file mode 100644
index 0000000000000000000000000000000000000000..be3f9fb80225340b4aa20f932cd67e287c052a42
--- /dev/null
+++ b/src/main/java/tmltranslator/tonetwork/FakeTaskOut.java
@@ -0,0 +1,100 @@
+/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+ * 
+ * ludovic.apvrille AT enst.fr
+ * 
+ * This software is a computer program whose purpose is to allow the
+ * edition of TURTLE analysis, design and deployment diagrams, to
+ * allow the generation of RT-LOTOS or Java code from this diagram,
+ * and at last to allow the analysis of formal validation traces
+ * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
+ * from INRIA Rhone-Alpes.
+ * 
+ * This software is governed by the CeCILL  license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ * 
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ * 
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ * 
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ */
+
+
+package tmltranslator.tonetwork;
+
+import tmltranslator.*;
+
+import java.util.Vector;
+
+
+/**
+ * Class FakeTaskOut
+ * Creation: 21/05/2019
+ *
+ * @author Ludovic Apvrille
+ * @version 1.0 21/05/2019
+ */
+public class FakeTaskOut extends TMLTask {
+
+    public FakeTaskOut(String name, Object referenceToClass, Object referenceToActivityDiagram) {
+        super(name, referenceToClass, referenceToActivityDiagram);
+    }
+
+    // Output Channels are given in the order of VCs
+
+    public void generate(TMLEvent packetIn) {
+
+
+        // Attributes
+        TMLAttribute pktlen = new TMLAttribute("pktlen", "pktlen", new TMLType(TMLType.NATURAL), "0");
+        this.addAttribute(pktlen);
+        TMLAttribute dst = new TMLAttribute("dst", "dst", new TMLType(TMLType.NATURAL), "0");
+        this.addAttribute(dst);
+        TMLAttribute vc = new TMLAttribute("vc", "vc", new TMLType(TMLType.NATURAL), "0");
+        this.addAttribute(vc);
+        TMLAttribute eop = new TMLAttribute("eop", "eop", new TMLType(TMLType.NATURAL), "0");
+        this.addAttribute(eop);
+
+        // Events
+        addTMLEvent(packetIn);
+
+
+        // Activity Diagram
+        TMLStartState start = new TMLStartState("mainStart", referenceObject);
+        activity.setFirst(start);
+
+        TMLForLoop loop = new TMLForLoop("mainLoop", referenceObject);
+        loop.setInfinite(true);
+        addElement(start, loop);
+
+        TMLWaitEvent waitingForPacketFromOUT = new TMLWaitEvent("waitingForPacketFromOUT", referenceObject);
+        waitingForPacketFromOUT.setEvent(packetIn);
+        waitingForPacketFromOUT.addParam("pktlen");
+        waitingForPacketFromOUT.addParam("dst");
+        waitingForPacketFromOUT.addParam("vc");
+        waitingForPacketFromOUT.addParam("eop");
+        addElement(loop, waitingForPacketFromOUT);
+
+        TMLStopState stopMain = new TMLStopState("ReturnToInfiniteLoop", referenceObject);
+        addElement(waitingForPacketFromOUT, stopMain);
+
+    }
+
+}
diff --git a/src/main/java/tmltranslator/tonetwork/Link.java b/src/main/java/tmltranslator/tonetwork/Link.java
index 7caffe3a8a2694e38a16dffa2c2b92b7b4a24a70..5620618a53f6c1c6733bb133501f7e78603d9509 100644
--- a/src/main/java/tmltranslator/tonetwork/Link.java
+++ b/src/main/java/tmltranslator/tonetwork/Link.java
@@ -69,6 +69,8 @@ public class Link {
     TMLChannel chOutToIN;
     TMLEvent feedbackPerVC[];
 
+    private String add = "";
+
 
     public Link(TMLModeling tmlm, TranslatedRouter previous, TranslatedRouter next, int nbOfVCs) {
         previousRouter = previous;
@@ -76,9 +78,35 @@ public class Link {
         this.nbOfVCs = nbOfVCs;
         this.tmlm = tmlm;
 
+        TraceManager.addDev("Adding link between previous (" + previousRouter.getXPos() + "," + previousRouter.getYPos() +
+        ") and next (" + nextRouter.getXPos() + "," + nextRouter.getYPos() + ")");
+
+        if (tmlm ==null) {
+            TraceManager.addDev("null modeling");
+        }
+
         generateLinks();
     }
 
+    public Link(TMLModeling tmlm, TranslatedRouter previous, TranslatedRouter next, int nbOfVCs, String add) {
+        previousRouter = previous;
+        nextRouter = next;
+        this.nbOfVCs = nbOfVCs;
+        this.tmlm = tmlm;
+        this.add = "_" + add;
+
+        TraceManager.addDev("Adding link between previous (" + previousRouter.getXPos() + "," + previousRouter.getYPos() +
+                ") and next (" + nextRouter.getXPos() + "," + nextRouter.getYPos() + ")" + " with add=" + add);
+
+        if (tmlm ==null) {
+            TraceManager.addDev("null modeling");
+        }
+
+
+        generateLinks();
+
+    }
+
 
 
     public void generateLinks() {
@@ -105,9 +133,11 @@ public class Link {
         }
     }
 
-    private String getNaming() {
+    public String getNaming() {
         return "P_" + previousRouter.getXPos() + "_" + previousRouter.getYPos() +
-                "_N_" + nextRouter.getXPos() + "_" + nextRouter.getYPos();
+                "_N_" + nextRouter.getXPos() + "_" + nextRouter.getYPos() + add;
     }
 
+
+
 }
diff --git a/src/main/java/tmltranslator/tonetwork/TMAP2Network.java b/src/main/java/tmltranslator/tonetwork/TMAP2Network.java
index 59826ff5977fbb9c6c3ef80d132d0a7c7f33b4ed..271db9669b95ee2bee5e68b6cf15a0e95fe8e92e 100644
--- a/src/main/java/tmltranslator/tonetwork/TMAP2Network.java
+++ b/src/main/java/tmltranslator/tonetwork/TMAP2Network.java
@@ -39,9 +39,6 @@
 
 package tmltranslator.tonetwork;
 
-import myutil.Conversion;
-import myutil.FileException;
-import myutil.FileUtils;
 import myutil.TraceManager;
 import tmltranslator.*;
 
@@ -75,6 +72,8 @@ public class TMAP2Network<E>  {
     public final static int EAST = 3;
     public final static int DOMAIN = 4;
 
+    public final static String[] PORT_NAME = {"North", "South", "West", "East", "Internal"};
+
 
     public TMAP2Network(TMLMapping<?> _tmlmapping, int nocSize) {
         tmlmapping = _tmlmapping;
@@ -294,78 +293,60 @@ public class TMAP2Network<E>  {
             }
         }
 
+        // Create routers around
+        tmlmodeling = tmlmapping.getTMLModeling();
+
         // *** Create links and update routers accordingly
-        // For each router, I consider all routers that are around the considered on
+        // For each router, I consider all routers that are around the considered one
         for(i=0; i<nocSize; i++) {
             for(j=0; j<nocSize; j++) {
                 for(int k=0; k< DOMAIN; k++) {
 
                     // NORTH?
-                    if (i>0) {
+                    if ((i>0) && (k == NORTH)) {
                         // There is a north router
                         // link to next
-                        if (routers[i][j].toNextRouters[k] != null) {
+                        if (routers[i][j].playingTheRoleOfPrevious[k] == null) {
                             Link to = new Link(tmlmodeling, routers[i][j], routers[i-1][j], nbOfVCs);
-                            routers[i][j].toNextRouters[k] = to;
-                            routers[i-1][j].fromPreviousRouters[getFrom(k)] = to;
-                        }
-                        // Link to previous
-                        if (routers[i][j].fromPreviousRouters[k] != null) {
-                            Link from = new Link(tmlmodeling, routers[i][j], routers[i-1][j], nbOfVCs);
-                            routers[i][j].fromPreviousRouters[k] = from;
-                            routers[i-1][j].toNextRouters[getFrom(k)] = from;
+                            routers[i][j].playingTheRoleOfPrevious[k] = to;
+                            routers[i-1][j].playingTheRoleOfNext[getFrom(k)] = to;
                         }
+
                     }
 
                     // SOUTH?
-                    if (i<nocSize-1) {
+                    if ((i<nocSize-1) && (k == SOUTH)) {
                         // There is a south router
                         // link to next
-                        if (routers[i][j].toNextRouters[k] != null) {
+                        if (routers[i][j].playingTheRoleOfPrevious[k] == null) {
                             Link to = new Link(tmlmodeling, routers[i][j], routers[i+1][j], nbOfVCs);
-                            routers[i][j].toNextRouters[k] = to;
-                            routers[i+1][j].fromPreviousRouters[getFrom(k)] = to;
-                        }
-                        // Link to previous
-                        if (routers[i][j].fromPreviousRouters[k] != null) {
-                            Link from = new Link(tmlmodeling, routers[i][j], routers[i+1][j], nbOfVCs);
-                            routers[i][j].fromPreviousRouters[k] = from;
-                            routers[i+1][j].toNextRouters[getFrom(k)] = from;
+                            routers[i][j].playingTheRoleOfPrevious[k] = to;
+                            routers[i+1][j].playingTheRoleOfNext[getFrom(k)] = to;
                         }
                     }
 
                     // EAST?
-                    if (j<nocSize-1) {
+                    if ((j<nocSize-1) && (k == EAST)) {
                         // There is an east router
                         // link to next
-                        if (routers[i][j].toNextRouters[k] != null) {
-                            Link to = new Link(tmlmodeling, routers[i][j+1], routers[i][j+1], nbOfVCs);
-                            routers[i][j].toNextRouters[k] = to;
-                            routers[i][j+1].fromPreviousRouters[getFrom(k)] = to;
-                        }
-                        // Link to previous
-                        if (routers[i][j].fromPreviousRouters[k] != null) {
-                            Link from = new Link(tmlmodeling, routers[i][j], routers[i][j+1], nbOfVCs);
-                            routers[i][j].fromPreviousRouters[k] = from;
-                            routers[i][j+1].toNextRouters[getFrom(k)] = from;
+                        if (routers[i][j].playingTheRoleOfPrevious[k] == null) {
+                            Link to = new Link(tmlmodeling, routers[i][j], routers[i][j+1], nbOfVCs);
+                            routers[i][j].playingTheRoleOfPrevious[k] = to;
+                            routers[i][j+1].playingTheRoleOfNext[getFrom(k)] = to;
                         }
+
                     }
 
                     // WEST?
-                    if (j>0) {
+                    if ((j>0) && (k == WEST)) {
                         // There is an east router
                         // link to next
-                        if (routers[i][j].toNextRouters[k] != null) {
-                            Link to = new Link(tmlmodeling, routers[i][j+1], routers[i][j-1], nbOfVCs);
-                            routers[i][j].toNextRouters[k] = to;
-                            routers[i][j-1].fromPreviousRouters[getFrom(k)] = to;
-                        }
-                        // Link to previous
-                        if (routers[i][j].fromPreviousRouters[k] != null) {
-                            Link from = new Link(tmlmodeling, routers[i][j], routers[i][j-1], nbOfVCs);
-                            routers[i][j].fromPreviousRouters[k] = from;
-                            routers[i][j-1].toNextRouters[getFrom(k)] = from;
+                        if (routers[i][j].playingTheRoleOfPrevious[k] == null) {
+                            Link to = new Link(tmlmodeling, routers[i][j], routers[i][j-1], nbOfVCs);
+                            routers[i][j].playingTheRoleOfPrevious[k] = to;
+                            routers[i][j-1].playingTheRoleOfNext[getFrom(k)] = to;
                         }
+
                     }
 
                 }
@@ -373,6 +354,8 @@ public class TMAP2Network<E>  {
         }
 
 
+
+
         // Make internal channels & events of routers
         for(i=0; i<nocSize; i++) {
             for(j=0; j<nocSize; j++) {
@@ -389,6 +372,13 @@ public class TMAP2Network<E>  {
             }
         }
 
+        // Printing routers
+        for(i=0; i<nocSize; i++) {
+            for(j=0; j<nocSize; j++) {
+                TraceManager.addDev(routers[i][j].toString() + "\n");
+            }
+        }
+
         // Make their routing
 
         // Integrate into the TMLMapping
diff --git a/src/main/java/tmltranslator/tonetwork/TaskNetworkInterface.java b/src/main/java/tmltranslator/tonetwork/TaskNetworkInterface.java
index 516f5a9daabcba622327623c50634b9dbcddf395..c1dc504514f8251f66d23aaf8107938a98460ebe 100644
--- a/src/main/java/tmltranslator/tonetwork/TaskNetworkInterface.java
+++ b/src/main/java/tmltranslator/tonetwork/TaskNetworkInterface.java
@@ -239,6 +239,7 @@ public class TaskNetworkInterface extends TMLTask {
             // Feedback present
             TMLWriteChannel sendingSample = new TMLWriteChannel("SendingSample", referenceObject);
             sendingSample.addChannel(outputChannel);
+            sendingSample.setNbOfSamples("1");
             addElement(testOnFeedback, sendingSample);
             testOnFeedback.addGuard("feedback > 0");
 
diff --git a/src/main/java/tmltranslator/tonetwork/TaskOUTForDispatch.java b/src/main/java/tmltranslator/tonetwork/TaskOUTForDispatch.java
index b6930a0e8d3beeb984a50bd22be8b9b7b5a9a5bb..35ec4ee506710dbb7208acd29caddfb2de654d14 100644
--- a/src/main/java/tmltranslator/tonetwork/TaskOUTForDispatch.java
+++ b/src/main/java/tmltranslator/tonetwork/TaskOUTForDispatch.java
@@ -76,7 +76,7 @@ public class TaskOUTForDispatch extends TMLTask {
         this.addAttribute(vc);
         TMLAttribute eop = new TMLAttribute("eop", "eop", new TMLType(TMLType.NATURAL), "0");
         this.addAttribute(eop);
-        TMLAttribute nEvt = new TMLAttribute("nevt", "nevt", new TMLType(TMLType.NATURAL), "0");
+        TMLAttribute nEvt = new TMLAttribute("nEvt", "nEvt", new TMLType(TMLType.NATURAL), "0");
         this.addAttribute(nEvt);
         TMLAttribute loopExit = new TMLAttribute("loopExit", "loopExit", new TMLType(TMLType.NATURAL), "0");
         this.addAttribute(loopExit);
@@ -111,7 +111,7 @@ public class TaskOUTForDispatch extends TMLTask {
             if (mainChoice == null) {
                 TMLNotifiedEvent notified = new TMLNotifiedEvent("NotificationOfEvent"+i, referenceObject);
                 notified.setEvent(inPacketEvents.get(i));
-                notified.addParam("nEvt");
+                notified.setVariable("nEvt");
                 if (mainChoice == null) {
                     activity.addLinkElement(loop, notified);
                 } else {
@@ -131,7 +131,7 @@ public class TaskOUTForDispatch extends TMLTask {
 
                 TMLNotifiedEvent notifiedFeedback = new TMLNotifiedEvent("FeedbackNotifiedEvt"+i, referenceObject);
                 notifiedFeedback.setEvent(outSelectEvents.get(i));
-                notifiedFeedback.addParam("feedback");
+                notifiedFeedback.setVariable("feedback");
                 activity.addLinkElement(loopInside, notifiedFeedback);
 
                 TMLChoice internalChoice = new TMLChoice("InternalChoice"+i, referenceObject);
diff --git a/src/main/java/tmltranslator/tonetwork/TranslatedRouter.java b/src/main/java/tmltranslator/tonetwork/TranslatedRouter.java
index b96bf381ae7bcbb82ff48611d8e3cd4a3834d380..42074b7403224b500b0280edae7bf7c694de74b6 100644
--- a/src/main/java/tmltranslator/tonetwork/TranslatedRouter.java
+++ b/src/main/java/tmltranslator/tonetwork/TranslatedRouter.java
@@ -42,14 +42,13 @@ package tmltranslator.tonetwork;
 import myutil.TraceManager;
 import tmltranslator.*;
 
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Vector;
 
 
 /**
- * Class TaskINForVC
+ * Class TranslatedRouter
  * Creation: 17/01/2019
  *
  * @author Ludovic Apvrille
@@ -57,7 +56,6 @@ import java.util.Vector;
  */
 public class TranslatedRouter<E> {
 
-
     private final int NB_OF_PORTS = 5;
     private final int CHANNEL_SIZE = 4;
     private final int CHANNEL_MAX = 8;
@@ -78,23 +76,27 @@ public class TranslatedRouter<E> {
     // Events and channels with other routers
 
     // Between  IN and INVC
-    TMLEvent[][] pktInEvtsVCs; // position, vc
-    TMLChannel[][] pktInChsVCs; // position, vc
+    private TMLEvent[][] pktInEvtsVCs; // position, vc
+    private TMLChannel[][] pktInChsVCs; // position, vc
 
     // Between INVC and OUTVC
-    TMLEvent[][][] routeEvtVCs; // Task, vc, destination id
-    TMLEvent[][][] routeEvtVCsFeedback; // Task, vc, destination id
+    private TMLEvent[][][] routeEvtVCs; // Task, vc, destination id
+    private TMLEvent[][][] routeEvtVCsFeedback; // Task, vc, destination id
 
     // Between OUTVC and OUT
-    TMLEvent[][] evtOutVCs; // position, vc
-    TMLEvent[][] evtSelectVC; // position, vc
+    private TMLEvent[][] evtOutVCs; // position, vc
+    private TMLEvent[][] evtSelectVC; // position, vc
 
 
     // Links to other routers
-    public Link[] toNextRouters;
-    public Link[] fromPreviousRouters;
+    public Link[] playingTheRoleOfPrevious;
+    public Link[] playingTheRoleOfNext;
+
+    // All my tasks
+    Vector<TMLTask> allTasks;
 
-    // OUt of the NoC
+    // Out of the NoC
+    FakeTaskOut fto;
 
 
     public TranslatedRouter(TMAP2Network<?> main, TMLMapping<?> tmlmap, HwNoC noc, List<TMLChannel> channelsViaNoc, int nbOfVCs, int xPos, int yPos) {
@@ -106,16 +108,18 @@ public class TranslatedRouter<E> {
         this.yPos = yPos;
         this.tmlmap = tmlmap;
 
-        toNextRouters = new Link[NB_OF_PORTS];
-        fromPreviousRouters = new Link[NB_OF_PORTS];
+        playingTheRoleOfPrevious = new Link[NB_OF_PORTS];
+        playingTheRoleOfNext = new Link[NB_OF_PORTS];
+
+        allTasks = new Vector<>();
     }
 
     public void setLinkFromPreviousRouter(int index, Link l) {
-        fromPreviousRouters[index] = l;
+        playingTheRoleOfNext[index] = l;
     }
 
     public void setLinkToNextRouter(int index, Link l) {
-        toNextRouters[index] = l;
+        playingTheRoleOfPrevious[index] = l;
     }
 
     public int getXPos() {
@@ -209,6 +213,7 @@ public class TranslatedRouter<E> {
             tmlm.addTask(muxTask);
             muxTask.generate(inputEventsOfMUX, eventForMUX_and_NI_IN);
             muxTasks.add(muxTask);
+            allTasks.add(muxTask);
         }
 
 
@@ -216,7 +221,7 @@ public class TranslatedRouter<E> {
         // the corresponding local memory
 
 
-        // NETWORK INTERFACE IN
+        // NETWORK INTERFACE IN - Internal domain
         // We must first gathers events from must task
         Vector<TMLEvent> inputEventsFromMUX = new Vector<>();
         for (TaskMUXAppDispatch tmux : muxTasks) {
@@ -226,63 +231,55 @@ public class TranslatedRouter<E> {
         TaskNetworkInterface tniIn = new TaskNetworkInterface("NI_IN_" + nameOfExecNode, null,
                 null);
         tmlm.addTask(tniIn);
+        allTasks.add(tniIn);
 
-        // One TMLEvent for feedback for each VC
         Vector<TMLEvent> feedbackEventsNIINs = new Vector<>();
         for (i = 0; i < nbOfVCs; i++) {
-            TMLEvent eventFeedback = new TMLEvent("EventBetweenNI_IN_ANd_IN_for_" + nameOfExecNode,
-                    null, 8, true);
-            feedbackEventsNIINs.add(eventFeedback);
-            tmlm.addEvent(eventFeedback);
+            feedbackEventsNIINs.add(playingTheRoleOfNext[NB_OF_PORTS-1].feedbackPerVC[i]);
+            (playingTheRoleOfNext[NB_OF_PORTS-1].feedbackPerVC[i]).setDestinationTask(tniIn);
         }
 
-        TMLEvent outputFromNIINtoIN = new TMLEvent("EventBetweenNI_IN_to_IN_for_" + nameOfExecNode,
-                null, 8, true);
-        tmlm.addEvent(outputFromNIINtoIN);
-        TMLChannel outputChannelFromNIINtoIN = new TMLChannel("channelBetweenNI_IN_to_IN_for_" + nameOfExecNode,
-                null);
-        outputChannelFromNIINtoIN.setSize(4);
-        outputChannelFromNIINtoIN.setMax(8);
+        TMLEvent outputFromNIINtoIN = playingTheRoleOfNext[NB_OF_PORTS-1].packetOut;
+        outputFromNIINtoIN.setOriginTask(tniIn);
+
+        TMLChannel outputChannelFromNIINtoIN = playingTheRoleOfNext[NB_OF_PORTS-1].chOutToIN;
         outputChannelFromNIINtoIN.setOriginTask(tniIn);
-        tmlm.addChannel(outputChannelFromNIINtoIN);
 
         tniIn.generate(nbOfVCs, feedbackEventsNIINs, inputEventsFromMUX, outputFromNIINtoIN, outputChannelFromNIINtoIN);
 
 
         // IN NOC - One for each input
         // We need one output channel per VC and one output event per VC
-        // A task only create the output, never the input
 
         HashMap<Integer, TaskINForDispatch> dispatchIns = new HashMap<>();
-
         for (int portNb = 0; portNb < NB_OF_PORTS; portNb++) {
-            if (fromPreviousRouters[portNb] != null) {
-
-                TaskINForDispatch inDispatch = new TaskINForDispatch("IN_" + nameOfExecNode, null,
+            if (playingTheRoleOfNext[portNb] != null) {
+                TaskINForDispatch inDispatch = new TaskINForDispatch("IN_" + nameOfExecNode + "_" + portNb, null,
                         null);
                 tmlm.addTask(inDispatch);
                 Vector<TMLEvent> listOfOutEvents = new Vector<TMLEvent>();
                 Vector<TMLChannel> listOfOutChannels = new Vector<TMLChannel>();
                 for (int vcN = 0; vcN < nbOfVCs; vcN++) {
                     TMLEvent evt = pktInEvtsVCs[portNb][vcN];
+                    //tmlm.addEvent(evt);
                     listOfOutEvents.add(evt);
                     evt.setOriginTask(inDispatch);
 
                     TMLChannel ch = pktInChsVCs[portNb][vcN];
                     ch.setOriginTask(inDispatch);
+                    //tmlm.addChannel(ch);
                     listOfOutChannels.add(ch);
                 }
-                if (portNb == NB_OF_PORTS) { // From Network Interface?
-
+                if (portNb == NB_OF_PORTS-1) { // From Network Interface?
                     inDispatch.generate(nbOfVCs, outputFromNIINtoIN, outputChannelFromNIINtoIN, listOfOutEvents,
                             listOfOutChannels);
                     outputFromNIINtoIN.setDestinationTask(inDispatch);
                     outputChannelFromNIINtoIN.setDestinationTask(inDispatch);
                 } else {
                     // We have to use events / channels coming from another router
-                    TMLEvent toInEvt = fromPreviousRouters[portNb].packetOut;
+                    TMLEvent toInEvt = playingTheRoleOfNext[portNb].packetOut;
                     toInEvt.setDestinationTask(inDispatch);
-                    TMLChannel toInCh = fromPreviousRouters[portNb].chOutToIN;
+                    TMLChannel toInCh = playingTheRoleOfNext[portNb].chOutToIN;
                     toInCh.setDestinationTask(inDispatch);
 
                     inDispatch.generate(nbOfVCs, toInEvt, toInCh, listOfOutEvents,
@@ -290,19 +287,20 @@ public class TranslatedRouter<E> {
 
                 }
                 dispatchIns.put(new Integer(portNb), inDispatch);
-
+                allTasks.add(inDispatch);
             }
         }
 
         // IN VC
         TaskINForVC[][] dispatchInVCs = new TaskINForVC[NB_OF_PORTS][nbOfVCs];
         for (int portNb = 0; portNb < NB_OF_PORTS; portNb++) {
-            if (fromPreviousRouters[portNb] != null) {
+            if (playingTheRoleOfNext[portNb] != null) {
                 for (int vcNb = 0; vcNb < nbOfVCs; vcNb++) {
 
                     TaskINForVC taskINForVC = new TaskINForVC("INVC_" + nameOfExecNode + "___" + portNb + "_" + vcNb, null,
                             null);
                     tmlm.addTask(taskINForVC);
+                    allTasks.add(taskINForVC);
                     dispatchInVCs[portNb][vcNb] = taskINForVC;
 
                     pktInEvtsVCs[portNb][vcNb].setDestinationTask(taskINForVC);
@@ -323,7 +321,7 @@ public class TranslatedRouter<E> {
                         evt.setOriginTask(taskINForVC);
                     }
 
-                    TMLEvent feedback = fromPreviousRouters[portNb].feedbackPerVC[vcNb];
+                    TMLEvent feedback = playingTheRoleOfNext[portNb].feedbackPerVC[vcNb];
                     feedback.setOriginTask(taskINForVC);
 
                     taskINForVC.generate(pktInEvtsVCs[portNb][vcNb], inFeedbacks, inChannel,
@@ -337,13 +335,14 @@ public class TranslatedRouter<E> {
         // OUT VC
         TaskOUTForVC[][] dispatchOutVCs = new TaskOUTForVC[NB_OF_PORTS][nbOfVCs];
         for (int portNb = 0; portNb < NB_OF_PORTS; portNb++) {
-            for (int vcNb = 0; vcNb < nbOfVCs; vcNb++) {
-                TranslatedRouter routerToConnectWith = main.getRouterFrom(xPos, yPos, portNb);
-                if (routerToConnectWith != null) {
-                    if (TMAP2Network.hasRouterAt(xPos, yPos, portNb, noc.size)) {
-                        TaskOUTForVC taskOUTForVC = new TaskOUTForVC("OUTVC_" + nameOfExecNode + "_" + vcNb, null,
+            if (playingTheRoleOfPrevious[portNb] != null) {
+                //TraceManager.addDev("I have a router after me at port =" + portNb);
+                for (int vcNb = 0; vcNb < nbOfVCs; vcNb++) {
+
+                        TaskOUTForVC taskOUTForVC = new TaskOUTForVC("OUTVC_" + nameOfExecNode + "__" + portNb + "_" + vcNb, null,
                                 null);
                         tmlm.addTask(taskOUTForVC);
+                        allTasks.add(taskOUTForVC);
                         dispatchOutVCs[portNb][vcNb] = taskOUTForVC;
 
                         Vector<TMLEvent> inPackets = new Vector<>();
@@ -357,14 +356,15 @@ public class TranslatedRouter<E> {
 
                         }
 
+                        TraceManager.addDev("xPos=" + xPos + " yPos=" + yPos + " portNb=" + portNb + " vnNb=" + vcNb);
                         TMLEvent vcSelect = evtSelectVC[portNb][vcNb];
                         vcSelect.setDestinationTask(taskOUTForVC);
 
                         TMLEvent outVCEvt = evtOutVCs[portNb][vcNb];
-                        outVCEvt.setDestinationTask(taskOUTForVC);
+                        outVCEvt.setOriginTask(taskOUTForVC);
 
                         taskOUTForVC.generate(inPackets, vcSelect, outFeedbacks, outVCEvt);
-                    }
+
                 }
             }
         }
@@ -373,12 +373,12 @@ public class TranslatedRouter<E> {
         // We need one output channel for each exit and one output event per VC
         HashMap<Integer, TaskOUTForDispatch> dispatchOuts = new HashMap<>();
         for (int portNb = 0; portNb < NB_OF_PORTS; portNb++) {
-            if (toNextRouters[portNb] != null) {
+            if (playingTheRoleOfPrevious[portNb] != null) {
 
-                TaskOUTForDispatch outDispatch = new TaskOUTForDispatch("OUT_" + nameOfExecNode, null,
+                TaskOUTForDispatch outDispatch = new TaskOUTForDispatch("OUT_" + xPos + "_" + yPos + "_" + portNb, null,
                         null);
                 tmlm.addTask(outDispatch);
-
+                allTasks.add(outDispatch);
 
                 Vector<TMLEvent> inPacketEvents = new Vector<TMLEvent>();
                 Vector<TMLEvent> inFeedbackEvents = new Vector<TMLEvent>();
@@ -391,19 +391,36 @@ public class TranslatedRouter<E> {
                     evtOutVCs[portNb][nvc].setDestinationTask(outDispatch);
                     outSelectEvents.add(evtSelectVC[portNb][nvc]);
                     evtSelectVC[portNb][nvc].setOriginTask(outDispatch);
-                    inFeedbackEvents.add(toNextRouters[portNb].feedbackPerVC[nvc]);
-                    toNextRouters[portNb].feedbackPerVC[nvc].setDestinationTask(outDispatch);
+                    inFeedbackEvents.add(playingTheRoleOfPrevious[portNb].feedbackPerVC[nvc]);
+                    playingTheRoleOfPrevious[portNb].feedbackPerVC[nvc].setDestinationTask(outDispatch);
                 }
 
-                outPktEvent = toNextRouters[portNb].packetOut;
+                outPktEvent = playingTheRoleOfPrevious[portNb].packetOut;
                 outPktEvent.setOriginTask(outDispatch);
-                outPkt = toNextRouters[portNb].chOutToIN;
+                outPkt = playingTheRoleOfPrevious[portNb].chOutToIN;
                 outPkt.setOriginTask(outDispatch);
 
                 outDispatch.generate(inPacketEvents, inFeedbackEvents, outSelectEvents, outPktEvent, outPkt);
 
                 dispatchOuts.put(new Integer(portNb), outDispatch);
 
+            } else {
+                // We need to use a fake out
+                /*EmptyTMLTask emptyTask = new EmptyTMLTask("EmptyTaskOfOutput_" + portNb + "_OfRouter_" + xPos + "_" + yPos, null, null);
+                Vector<TMLEvent> inPacketEvents = new Vector<TMLEvent>();
+                Vector<TMLEvent> outSelectEvents = new Vector<TMLEvent>();
+                TMLEvent outPktEvent;
+                TMLChannel outPkt;
+                allTasks.add(emptyTask);
+
+                for (int nvc = 0; nvc < nbOfVCs; nvc++) {
+                    inPacketEvents.add(evtOutVCs[portNb][nvc]);
+                    evtOutVCs[portNb][nvc].setDestinationTask(emptyTask);
+                    outSelectEvents.add(evtSelectVC[portNb][nvc]);
+                    evtSelectVC[portNb][nvc].setOriginTask(emptyTask);
+                }
+
+                emptyTask.generate();*/
             }
         }
 
@@ -412,23 +429,38 @@ public class TranslatedRouter<E> {
         TaskNetworkInterfaceOUT tniOut = new TaskNetworkInterfaceOUT("NI_OUT_" + nameOfExecNode, null,
                 null);
         tmlm.addTask(tniOut);
+        allTasks.add(tniOut);
 
-        outputFromNIINtoIN.setOriginTask(tniOut);
-
-        TMLChannel chOfOut = toNextRouters[NB_OF_PORTS-1].chOutToIN;
+        TMLChannel chOfOut = playingTheRoleOfPrevious[NB_OF_PORTS-1].chOutToIN;
         chOfOut.setDestinationTask(tniOut);
 
         Vector<TMLEvent> feedbackPerVC = new Vector<TMLEvent>();
         for(i=0; i<nbOfVCs; i++) {
-            feedbackPerVC.add(toNextRouters[NB_OF_PORTS-1].feedbackPerVC[i]);
-            toNextRouters[NB_OF_PORTS-1].feedbackPerVC[i].setOriginTask(tniOut);
+            feedbackPerVC.add(playingTheRoleOfPrevious[NB_OF_PORTS-1].feedbackPerVC[i]);
+            playingTheRoleOfPrevious[NB_OF_PORTS-1].feedbackPerVC[i].setOriginTask(tniOut);
         }
 
-        TMLEvent pktout = toNextRouters[NB_OF_PORTS-1].packetOut;
-        pktout.setDestinationTask(tniOut);
+        TMLEvent pktoutFromOut = playingTheRoleOfPrevious[NB_OF_PORTS-1].packetOut;
+        pktoutFromOut.setDestinationTask(tniOut);
+
+        TMLEvent packetOut = new TMLEvent("evtPktOutToAppFromOut__" + xPos + "_" + yPos,
+                null, 8, true);
+        packetOut.addParam(new TMLType(TMLType.NATURAL));
+        packetOut.addParam(new TMLType(TMLType.NATURAL));
+        packetOut.addParam(new TMLType(TMLType.NATURAL));
+        packetOut.addParam(new TMLType(TMLType.NATURAL));
+        tmlm.addEvent(packetOut);
+        packetOut.setOriginTask(tniOut);
 
+        tniOut.generate(nbOfVCs, feedbackPerVC, pktoutFromOut, packetOut, chOfOut);
+
+        // Fake task out
+        fto = new FakeTaskOut("FakeTaskOutOfRouter_" + xPos + "_" + yPos, null, null);
+        tmlm.addTask(fto);
+        allTasks.add(fto);
+        packetOut.setDestinationTask(fto);
+        fto.generate(packetOut);
 
-        tniOut.generate(nbOfVCs, feedbackPerVC, pktout, outputFromNIINtoIN, chOfOut);
 
     }
 
@@ -447,32 +479,36 @@ public class TranslatedRouter<E> {
         pktInEvtsVCs = new TMLEvent[NB_OF_PORTS][nbOfVCs];
         pktInChsVCs = new TMLChannel[NB_OF_PORTS][nbOfVCs];
 
-        for (int i = 0; i < TMAP2Network.DOMAIN + 1; i++) {
-            for (int j = 0; j < nbOfVCs; j++) {
-                pktInEvtsVCs[i][j] = new TMLEvent("evt_pktin" + i + "_vc" + j + "_" + xPos + "_" + yPos,
-                        null, 8, true);
-                tmlm.addEvent(pktInEvtsVCs[i][j]);
+        for (int i = 0; i < NB_OF_PORTS; i++) {
+            if ((playingTheRoleOfNext[i] != null) || (i == NB_OF_PORTS - 1)) {
+                for (int j = 0; j < nbOfVCs; j++) {
+                    pktInEvtsVCs[i][j] = new TMLEvent("evt_pktin" + i + "_vc" + j + "_" + xPos + "_" + yPos,
+                            null, 8, true);
+                    tmlm.addEvent(pktInEvtsVCs[i][j]);
 
-                pktInChsVCs[i][j] = new TMLChannel("ch_pktin" + i + "_vc" + j + "_" + xPos + "_" + yPos,
-                        null);
-                pktInChsVCs[i][j].setSize(4);
-                pktInChsVCs[i][j].setMax(8);
-                tmlm.addChannel(pktInChsVCs[i][j]);
+                    pktInChsVCs[i][j] = new TMLChannel("ch_pktin" + i + "_vc" + j + "_" + xPos + "_" + yPos,
+                            null);
+                    pktInChsVCs[i][j].setSize(4);
+                    pktInChsVCs[i][j].setMax(8);
+                    tmlm.addChannel(pktInChsVCs[i][j]);
+                }
             }
         }
 
         // Between INVC and OUTVC
-        routeEvtVCs = new TMLEvent[TMAP2Network.DOMAIN + 1][nbOfVCs][TMAP2Network.DOMAIN + 1];
-        routeEvtVCsFeedback = new TMLEvent[TMAP2Network.DOMAIN + 1][nbOfVCs][TMAP2Network.DOMAIN + 1];
+        routeEvtVCs = new TMLEvent[NB_OF_PORTS][nbOfVCs][NB_OF_PORTS];
+        routeEvtVCsFeedback = new TMLEvent[NB_OF_PORTS][nbOfVCs][NB_OF_PORTS];
         for (int i = 0; i < TMAP2Network.DOMAIN + 1; i++) {
-            for (int j = 0; j < nbOfVCs; j++) {
-                for (int k = 0; k < TMAP2Network.DOMAIN + 1; k++) {
-                    routeEvtVCs[i][j][k] = new TMLEvent("evtroute_" + i + "_vc" + j + "_" + k + "_" +
-                            xPos + "_" + yPos, null, 8, true);
-                    tmlm.addEvent(routeEvtVCs[i][j][k]);
-                    routeEvtVCsFeedback[i][j][k] = new TMLEvent("evtfeedback_" + i + "_vc" + j + "_" + k + "_" +
-                            xPos + "_" + yPos, null, 8, true);
-                    tmlm.addEvent(routeEvtVCsFeedback[i][j][k]);
+            if ((playingTheRoleOfNext[i] != null) || (i == NB_OF_PORTS - 1)) {
+                for (int j = 0; j < nbOfVCs; j++) {
+                    for (int k = 0; k < TMAP2Network.DOMAIN + 1; k++) {
+                        routeEvtVCs[i][j][k] = new TMLEvent("evtroute_" + i + "_vc" + j + "_" + k + "_" +
+                                xPos + "_" + yPos, null, 8, true);
+                        tmlm.addEvent(routeEvtVCs[i][j][k]);
+                        routeEvtVCsFeedback[i][j][k] = new TMLEvent("evtfeedback_" + i + "_vc" + j + "_" + k + "_" +
+                                xPos + "_" + yPos, null, 8, true);
+                        tmlm.addEvent(routeEvtVCsFeedback[i][j][k]);
+                    }
                 }
             }
         }
@@ -482,23 +518,58 @@ public class TranslatedRouter<E> {
         evtOutVCs = new TMLEvent[TMAP2Network.DOMAIN + 1][nbOfVCs];
         evtSelectVC = new TMLEvent[TMAP2Network.DOMAIN + 1][nbOfVCs];
         for (int i = 0; i < TMAP2Network.DOMAIN + 1; i++) {
-            for (int j = 0; j < nbOfVCs; j++) {
-                evtOutVCs[i][j] = new TMLEvent("evt_out" + i + "_vc" + j + "_" + xPos + "_" + yPos,
-                        null, 8, true);
-                tmlm.addEvent(evtOutVCs[i][j]);
-                evtSelectVC[i][j] = new TMLEvent("evt_vcselect" + i + "_vc" + j + "_" + xPos + "_" + yPos,
-                        null, 8, true);
-                tmlm.addEvent(evtSelectVC[i][j]);
+            if ((playingTheRoleOfPrevious[i] != null) || (i == NB_OF_PORTS - 1)) {
+                for (int j = 0; j < nbOfVCs; j++) {
+                    evtOutVCs[i][j] = new TMLEvent("evt_out" + i + "_vc" + j + "_" + xPos + "_" + yPos,
+                            null, 8, true);
+                    tmlm.addEvent(evtOutVCs[i][j]);
+                    evtSelectVC[i][j] = new TMLEvent("evt_vcselect" + i + "_vc" + j + "_" + xPos + "_" + yPos,
+                            null, 8, true);
+                    tmlm.addEvent(evtSelectVC[i][j]);
+                }
+            } else {
+                TraceManager.addDev("xPos=" + xPos + " yPos=" + yPos + " is not playing the role of previous for port=" + i);
             }
         }
 
         // Must create the internal links
-        //network in
-        Link networkInterfaceIn = new Link(tmlm, this, this, nbOfVCs);
-        fromPreviousRouters[NB_OF_PORTS-1] = networkInterfaceIn;
-        //network out
-        Link networkInterfaceOut = new Link(tmlm, this, this, nbOfVCs);
-        toNextRouters[NB_OF_PORTS-1] = networkInterfaceOut;
+        // Network in: from apps to router
+        Link networkInterfaceIn = new Link(tmlm, this, this, nbOfVCs, "INRouter");
+        playingTheRoleOfNext[NB_OF_PORTS-1] = networkInterfaceIn;
+
+        // Network out: from router to apps
+        Link networkInterfaceOut = new Link(tmlm, this, this, nbOfVCs, "OUTRouter");
+        playingTheRoleOfPrevious[NB_OF_PORTS-1] = networkInterfaceOut;
+    }
+
+
+    public String toString() {
+        String ret = "Router at " + xPos + " " + yPos + "\n";
+        //Printing internal tasks;
+        for(TMLTask t: allTasks) {
+            ret += "\t Task " + t.getName() + "\n";
+        }
+
+        // Connections to other routers
+        for(int i = 0; i< playingTheRoleOfPrevious.length; i++) {
+            ret += "\tOutput port " + TMAP2Network.PORT_NAME[i] + " is ";
+            if (playingTheRoleOfPrevious[i] == null) {
+                ret += " NO ROUTER";
+            } else {
+                ret += playingTheRoleOfPrevious[i].getNaming();
+            }
+            ret += "\n";
+        }
+        for(int i = 0; i< playingTheRoleOfNext.length; i++) {
+            ret += "\tInput port " + TMAP2Network.PORT_NAME[i] + " is ";
+            if (playingTheRoleOfNext[i] == null) {
+                ret += " NO ROUTER";
+            } else {
+                ret += playingTheRoleOfNext[i].getNaming();
+            }
+            ret += "\n";
+        }
+        return ret;
     }
 
 }
diff --git a/src/main/java/ui/TGComboBoxWithHelp.java b/src/main/java/ui/TGComboBoxWithHelp.java
new file mode 100644
index 0000000000000000000000000000000000000000..8c54a7b6dda366824fcab561c90d14d932a8209d
--- /dev/null
+++ b/src/main/java/ui/TGComboBoxWithHelp.java
@@ -0,0 +1,82 @@
+/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+ * 
+ * ludovic.apvrille AT enst.fr
+ * 
+ * This software is a computer program whose purpose is to allow the
+ * edition of TURTLE analysis, design and deployment diagrams, to
+ * allow the generation of RT-LOTOS or Java code from this diagram,
+ * and at last to allow the analysis of formal validation traces
+ * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
+ * from INRIA Rhone-Alpes.
+ * 
+ * This software is governed by the CeCILL  license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ * 
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ * 
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ * 
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ */
+
+
+
+
+package ui;
+
+import help.HelpEntry;
+import help.HelpManager;
+import myutil.TraceManager;
+import ui.util.IconManager;
+import ui.window.JDialogTGComponentHelp;
+
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.Vector;
+
+/**
+ * Class TGComboBoxWithHelp
+ * Combo box with Help
+ * Creation: 21/05/2019
+ * @version 1.1 21/05/2019
+ * @author Ludovic APVRILLE
+ */
+public class TGComboBoxWithHelp<E> extends JComboBox<E> {
+    public  TGHelpButton myButton;
+
+    public TGComboBoxWithHelp() {
+        super();
+    }
+
+    public TGComboBoxWithHelp(Vector<E> v) {
+        super(v);
+    }
+
+    // helpword can reference a HTML file or a master keyword
+    public void makeEndHelpButton(String helpWord, MainGUI mgui, HelpManager hm, JPanel panel, GridBagConstraints c) {
+        Icon myIcon = IconManager.imgic32;
+        myButton = new TGHelpButton(myIcon, helpWord, mgui, hm);
+        myButton.addToPanel(panel, c);
+    }
+
+
+}
diff --git a/src/main/java/ui/TGHelpButton.java b/src/main/java/ui/TGHelpButton.java
new file mode 100644
index 0000000000000000000000000000000000000000..831bb0e8b09f7feab9f7262a1aade1ec154519bb
--- /dev/null
+++ b/src/main/java/ui/TGHelpButton.java
@@ -0,0 +1,135 @@
+/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+ * 
+ * ludovic.apvrille AT enst.fr
+ * 
+ * This software is a computer program whose purpose is to allow the
+ * edition of TURTLE analysis, design and deployment diagrams, to
+ * allow the generation of RT-LOTOS or Java code from this diagram,
+ * and at last to allow the analysis of formal validation traces
+ * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
+ * from INRIA Rhone-Alpes.
+ * 
+ * This software is governed by the CeCILL  license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ * 
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ * 
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ * 
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ */
+
+
+
+
+package ui;
+
+import help.HelpEntry;
+import help.HelpManager;
+import myutil.TraceManager;
+import ui.util.IconManager;
+import ui.window.JDialogTGComponentHelp;
+
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+/**
+ * Class TGHelpButton
+ * GGeneric help button
+ * Creation: 20/05/2019
+ * @version 1.1 20/05/2019
+ * @author Ludovic APVRILLE
+ */
+public class TGHelpButton extends JButton {
+
+    private JDialogTGComponentHelp helpDialog;
+    private HelpEntry he;
+    private MainGUI mgui;
+
+    public TGHelpButton(Icon icon, String helpWord, MainGUI mgui, HelpManager hm) {
+        super(icon);
+        this.mgui = mgui;
+        setGeneralConfiguration();
+        makeHelpConfiguration(helpWord, mgui, hm);
+    }
+
+    private void setGeneralConfiguration() {
+        setOpaque(false);
+        setFocusPainted(false);
+        setContentAreaFilled(false);
+        setBorderPainted(false);
+        setPreferredSize(new Dimension(20,20));
+    }
+
+    public void makeHelpConfiguration(String helpWord, MainGUI mgui, HelpManager hm) {
+        if (hm != null) {
+            if (hm.loadEntries()) {
+                if (helpWord.endsWith(".html")) {
+                    he = hm.getHelpEntryWithHTMLFile(helpWord);
+                } else{
+                    he = hm.getFromMasterKeyword(helpWord);
+                }
+                if (he == null) {
+                    TraceManager.addDev("NULL HE");
+                }
+            }
+        }
+    }
+
+    // helpword can reference a HTML file or a master keyword
+    public void addToPanel(JPanel panel, GridBagConstraints c) {
+        if (he == null) {
+            return;
+        }
+        c.weighty = 0.5;
+        c.weightx = 0.5;
+        c.gridwidth = GridBagConstraints.REMAINDER;
+
+        buttonClick(this, he, mgui);
+        panel.add(this, c);
+    }
+
+
+
+
+    private void buttonClick(JButton but, HelpEntry he, MainGUI mgui) {
+        but.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                if(helpDialog == null) {
+                    helpDialog = new JDialogTGComponentHelp(mgui, he);
+                    helpDialog.setLocationHelpWindow(but);
+                } else {
+                    if(!helpDialog.isVisible()) {
+                        helpDialog = new JDialogTGComponentHelp(mgui, he);
+                        helpDialog.setLocationHelpWindow(but);
+                    } else{
+                        helpDialog.setVisible(false);
+                    }
+                }
+            }
+        });
+    }
+
+
+
+}
diff --git a/src/main/java/ui/TGTextFieldWithHelp.java b/src/main/java/ui/TGTextFieldWithHelp.java
new file mode 100644
index 0000000000000000000000000000000000000000..fb05ddcb5667f4862ac9e6b1a2d0886ab593b679
--- /dev/null
+++ b/src/main/java/ui/TGTextFieldWithHelp.java
@@ -0,0 +1,77 @@
+/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+ * 
+ * ludovic.apvrille AT enst.fr
+ * 
+ * This software is a computer program whose purpose is to allow the
+ * edition of TURTLE analysis, design and deployment diagrams, to
+ * allow the generation of RT-LOTOS or Java code from this diagram,
+ * and at last to allow the analysis of formal validation traces
+ * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
+ * from INRIA Rhone-Alpes.
+ * 
+ * This software is governed by the CeCILL  license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ * 
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ * 
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ * 
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ */
+
+
+
+
+package ui;
+
+import help.HelpEntry;
+import help.HelpManager;
+import myutil.TraceManager;
+import ui.util.IconManager;
+import ui.window.JDialogTGComponentHelp;
+
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+/**
+ * Class TGTextFieldWithHelp
+ * Generic Box for storing attributes
+ * Creation: 20/05/2019
+ * @version 1.1 20/05/2019
+ * @author Ludovic APVRILLE
+ */
+public class TGTextFieldWithHelp extends JTextField {
+    public  TGHelpButton myButton;
+
+    public TGTextFieldWithHelp(String value, int nbOfColums) {
+        super(value, nbOfColums);
+    }
+
+    // helpword can reference a HTML file or a master keyword
+    public void makeEndHelpButton(String helpWord, MainGUI mgui, HelpManager hm, JPanel panel, GridBagConstraints c) {
+        Icon myIcon = IconManager.imgic32;
+        myButton = new TGHelpButton(myIcon, helpWord, mgui, hm);
+        myButton.addToPanel(panel, c);
+    }
+
+
+}
diff --git a/src/main/java/ui/avatardd/ADDBlockArtifact.java b/src/main/java/ui/avatardd/ADDBlockArtifact.java
index 5c0610657a9e220132dd21db5cc64016e9b37fd5..b299365c4fa6c87d324d85970e89e77fd0833219 100755
--- a/src/main/java/ui/avatardd/ADDBlockArtifact.java
+++ b/src/main/java/ui/avatardd/ADDBlockArtifact.java
@@ -114,7 +114,7 @@ public class ADDBlockArtifact extends TGCWithoutInternalComponent implements Swa
         g.drawLine(x+width-space-cran, y+space, x+width-space-cran, y+space+cran);
         g.drawLine(x+width-space-cran, y+space+cran, x + width-space, y+space+cran);
 		
-		g.drawImage(IconManager.img9, x+width-space-fileX + 3, y + space + 7, null);
+		//g.drawImage(IconManager.img9, x+width-space-fileX + 3, y + space + 7, null);
         
         g.drawString(value, x + textX , y + textY);
         
diff --git a/src/main/java/ui/avatardd/ADDBridgeNode.java b/src/main/java/ui/avatardd/ADDBridgeNode.java
index 197ddca0fd89d31d204bc0de7a0e641d898806b6..5ce1b26a92b0a05c08744b48cc12da46195a4c58 100755
--- a/src/main/java/ui/avatardd/ADDBridgeNode.java
+++ b/src/main/java/ui/avatardd/ADDBridgeNode.java
@@ -135,7 +135,7 @@ public class ADDBridgeNode extends ADDCommunicationNode implements WithAttribute
 		// Icon
 		//g.drawImage(IconManager.imgic1104.getImage(), x + width - 20, y + 4, null);
 		g.drawImage(IconManager.imgic1104.getImage(), x + 4, y + 4, null);
-		g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
+		//g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
     }
     
     @Override
diff --git a/src/main/java/ui/avatardd/ADDBusNode.java b/src/main/java/ui/avatardd/ADDBusNode.java
index 62d81cb73ca3b51701bce97898f803b5787c6366..58c39db4cd7f38d1771669085cd3678dccc2ca08 100755
--- a/src/main/java/ui/avatardd/ADDBusNode.java
+++ b/src/main/java/ui/avatardd/ADDBusNode.java
@@ -146,7 +146,7 @@ public class ADDBusNode extends ADDCommunicationNode implements WithAttributes {
         // Icon
         //g.drawImage(IconManager.imgic1102.getImage(), x + width - 20, y + 4, null);
         g.drawImage(IconManager.imgic1102.getImage(), x + 4, y + 4, null);
-        g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
+        //g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
     }
 
     @Override
diff --git a/src/main/java/ui/avatardd/ADDCPUNode.java b/src/main/java/ui/avatardd/ADDCPUNode.java
index 9b938ca44e76481921b72df3796850632c8875dd..540836b690b3f844e66fb60b84d6942c9bae2982 100755
--- a/src/main/java/ui/avatardd/ADDCPUNode.java
+++ b/src/main/java/ui/avatardd/ADDCPUNode.java
@@ -155,7 +155,7 @@ public class ADDCPUNode extends ADDNode implements SwallowTGComponent, WithAttri
 
         // Icon
         g.drawImage(IconManager.imgic1100.getImage(), x + 4, y + 4, null);
-        g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
+        //g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
     }
 
     public TGComponent isOnOnlyMe(int x1, int y1) {
diff --git a/src/main/java/ui/avatardd/ADDChannelArtifact.java b/src/main/java/ui/avatardd/ADDChannelArtifact.java
index 7d5944d04d35fd29c1c731435c290dad1ea62a7c..73d73194c1bf0d58ace130664ce980a9087627fb 100755
--- a/src/main/java/ui/avatardd/ADDChannelArtifact.java
+++ b/src/main/java/ui/avatardd/ADDChannelArtifact.java
@@ -115,7 +115,7 @@ public class ADDChannelArtifact extends TGCWithoutInternalComponent implements S
         g.drawLine(x+width-space-cran, y+space, x+width-space-cran, y+space+cran);
         g.drawLine(x+width-space-cran, y+space+cran, x + width-space, y+space+cran);
 
-        g.drawImage(IconManager.img9, x+width-space-fileX + 3, y + space + 7, null);
+        //g.drawImage(IconManager.img9, x+width-space-fileX + 3, y + space + 7, null);
 
         g.drawString(value, x + textX , y + textY);
     }
diff --git a/src/main/java/ui/avatardd/ADDClusterNode.java b/src/main/java/ui/avatardd/ADDClusterNode.java
index 9ef5fc5be1cf6c3ed37d87af32a8a296393ecbda..93bb2ffd26c6ead023d815ce73d8f8cd25c07385 100644
--- a/src/main/java/ui/avatardd/ADDClusterNode.java
+++ b/src/main/java/ui/avatardd/ADDClusterNode.java
@@ -142,7 +142,7 @@ public class ADDClusterNode extends ADDNode implements WithAttributes {
 
 		// Icon
 		g.drawImage(IconManager.imgic8006.getImage(), x + 4, y + 4, null);
-		g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
+		//g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
 	}
 
 	public TGComponent isOnOnlyMe(int x1, int y1) {
diff --git a/src/main/java/ui/avatardd/ADDCoproMWMRNode.java b/src/main/java/ui/avatardd/ADDCoproMWMRNode.java
index 5cfe395be0b1f127be14ff8f85c0c7e462c77dcc..6c1b39f75d6cceaf5f8c644ba48a099a2c0ff79f 100755
--- a/src/main/java/ui/avatardd/ADDCoproMWMRNode.java
+++ b/src/main/java/ui/avatardd/ADDCoproMWMRNode.java
@@ -155,7 +155,7 @@ public class ADDCoproMWMRNode extends ADDCommunicationNode implements WithAttrib
 		// Icon
 		//g.drawImage(IconManager.imgic1108.getImage(), x + width - 20, y + 4, null);
 		g.drawImage(IconManager.imgic1108.getImage(), x + 4, y + 4, null);
-		g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
+		//g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
 	}
 
 	public TGComponent isOnOnlyMe(int x1, int y1) {
diff --git a/src/main/java/ui/avatardd/ADDCrossbarNode.java b/src/main/java/ui/avatardd/ADDCrossbarNode.java
index c27505f8d03715d41ee828992aca9e0a32681c9e..866a0282165315c908ffc01b7778319fa52f63b1 100755
--- a/src/main/java/ui/avatardd/ADDCrossbarNode.java
+++ b/src/main/java/ui/avatardd/ADDCrossbarNode.java
@@ -150,7 +150,7 @@ public class ADDCrossbarNode extends ADDCommunicationNode implements WithAttribu
         // Icon
         //g.drawImage(IconManager.imgic1102.getImage(), x + width - 20, y + 4, null);
         g.drawImage(IconManager.imgic1102.getImage(), x + 4, y + 4, null);
-        g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
+        //g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
     }
 
     public TGComponent isOnOnlyMe(int x1, int y1) {
diff --git a/src/main/java/ui/avatardd/ADDDMANode.java b/src/main/java/ui/avatardd/ADDDMANode.java
index 359a8b4c8200e732796add80243d7f6b6b967be7..b8e5db17b18d5565aae2297c0956f35e9fcc26a1 100755
--- a/src/main/java/ui/avatardd/ADDDMANode.java
+++ b/src/main/java/ui/avatardd/ADDDMANode.java
@@ -140,7 +140,7 @@ public class ADDDMANode extends ADDCommunicationNode implements WithAttributes {
 		// Icon
 		//g.drawImage(IconManager.imgic1108.getImage(), x + width - 20, y + 4, null);
 		g.drawImage(IconManager.imgic1108.getImage(), x + 4, y + 4, null);
-		g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
+		//g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
     }
     
     public TGComponent isOnOnlyMe(int x1, int y1) {
diff --git a/src/main/java/ui/avatardd/ADDICUNode.java b/src/main/java/ui/avatardd/ADDICUNode.java
index 60299f17f32030ccf14fa15636819f68408b3cea..90a1dc99d75730e041eeb4761a040dd3a523258c 100755
--- a/src/main/java/ui/avatardd/ADDICUNode.java
+++ b/src/main/java/ui/avatardd/ADDICUNode.java
@@ -145,7 +145,7 @@ public class ADDICUNode extends ADDCommunicationNode implements WithAttributes {
 		// Icon
 		//g.drawImage(IconManager.imgic1108.getImage(), x + width - 20, y + 4, null);
 		g.drawImage(IconManager.imgic1108.getImage(), x + 4, y + 4, null);
-		g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
+		//g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
     }
     
     public TGComponent isOnOnlyMe(int x1, int y1) {
diff --git a/src/main/java/ui/avatardd/ADDMemoryNode.java b/src/main/java/ui/avatardd/ADDMemoryNode.java
index 974391901f33bcf84f32e24a358f2005d4314e01..65f4feca5ce2d780c6dd4de7c1c16e9d01493978 100755
--- a/src/main/java/ui/avatardd/ADDMemoryNode.java
+++ b/src/main/java/ui/avatardd/ADDMemoryNode.java
@@ -109,7 +109,7 @@ public abstract class ADDMemoryNode extends ADDCommunicationNode implements With
         // Icon
         //g.drawImage(IconManager.imgic1108.getImage(), x + width - 20, y + 4, null);
         g.drawImage(IconManager.imgic1108.getImage(), x + 4, y + 4, null);
-        g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
+        //g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
     }
 
     public TGComponent isOnOnlyMe(int x1, int y1) {
diff --git a/src/main/java/ui/avatardd/ADDTTYNode.java b/src/main/java/ui/avatardd/ADDTTYNode.java
index 068e154409db8caaeb19f407d6ca8797eb746f46..8b0637361048ec076ab7ff2dadaf01e2b697e550 100755
--- a/src/main/java/ui/avatardd/ADDTTYNode.java
+++ b/src/main/java/ui/avatardd/ADDTTYNode.java
@@ -144,7 +144,7 @@ public class ADDTTYNode extends ADDNode implements WithAttributes {
 		
 		// Icon
 		g.drawImage(IconManager.imgic1100.getImage(), x + 4, y + 4, null);
-		g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
+		//g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
 	}
 	
 	public TGComponent isOnOnlyMe(int x1, int y1) {
diff --git a/src/main/java/ui/avatardd/ADDTimerNode.java b/src/main/java/ui/avatardd/ADDTimerNode.java
index 3f29b81ed004dd08bf29126058fd12f8d3ce53d9..b090e33677dbc8ed1aaff14e7e8b1fac62e8a561 100755
--- a/src/main/java/ui/avatardd/ADDTimerNode.java
+++ b/src/main/java/ui/avatardd/ADDTimerNode.java
@@ -145,7 +145,7 @@ public class ADDTimerNode extends ADDCommunicationNode implements WithAttributes
         // Icon
         //g.drawImage(IconManager.imgic1108.getImage(), x + width - 20, y + 4, null);
         g.drawImage(IconManager.imgic1108.getImage(), x + 4, y + 4, null);
-        g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
+        //g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
     }
 
     public TGComponent isOnOnlyMe(int x1, int y1) {
diff --git a/src/main/java/ui/avatardd/ADDVgmnNode.java b/src/main/java/ui/avatardd/ADDVgmnNode.java
index 97b17316e470affcc3f8eaa5077606996cf4b75b..364f6e5a8649c3873f6a11bd5c0d3e2ecfeeed2c 100755
--- a/src/main/java/ui/avatardd/ADDVgmnNode.java
+++ b/src/main/java/ui/avatardd/ADDVgmnNode.java
@@ -150,7 +150,7 @@ public class ADDVgmnNode extends ADDCommunicationNode implements WithAttributes
         // Icon
         //g.drawImage(IconManager.imgic1102.getImage(), x + width - 20, y + 4, null);
         g.drawImage(IconManager.imgic1102.getImage(), x + 4, y + 4, null);
-        g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
+        //g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
     }
 
     public TGComponent isOnOnlyMe(int x1, int y1) {
diff --git a/src/main/java/ui/tmlcompd/TMLCFork.java b/src/main/java/ui/tmlcompd/TMLCFork.java
index 14e71561ef039e115d6bddc6970e60ab0e2d5c61..bec725d3c15548bb92fb2826dcc3f3ada573e6d0 100755
--- a/src/main/java/ui/tmlcompd/TMLCFork.java
+++ b/src/main/java/ui/tmlcompd/TMLCFork.java
@@ -148,8 +148,7 @@ public class TMLCFork extends TMLCChannelFacility implements WithAttributes {
 
             JDialogMultiString jdms = new JDialogMultiString(getTDiagramPanel().getMainGUI().getFrame(), "Fork attribute", 1,
                     labels, values, keywords, getTDiagramPanel().getMainGUI().getHelpManager(), getTDiagramPanel().getMainGUI());
-            jdms.setSize(500, 450);
-            GraphicLib.centerOnParent(jdms, 500, 450);
+            GraphicLib.centerOnParent(jdms, 400, 250);
             jdms.setVisible(true);
 
             if (jdms.hasBeenSet()) {
diff --git a/src/main/java/ui/tmlcompd/TMLCJoin.java b/src/main/java/ui/tmlcompd/TMLCJoin.java
index 7182cc438242cdd3740682869f4770574749a44b..84ee822a3d28cff967b737a80d5064116f9a290c 100755
--- a/src/main/java/ui/tmlcompd/TMLCJoin.java
+++ b/src/main/java/ui/tmlcompd/TMLCJoin.java
@@ -44,6 +44,7 @@ package ui.tmlcompd;
 import myutil.GraphicLib;
 import ui.*;
 import ui.util.IconManager;
+import ui.window.JDialogMultiString;
 
 import javax.swing.*;
 import java.awt.*;
@@ -148,14 +149,25 @@ public class TMLCJoin extends TMLCChannelFacility implements WithAttributes {
     public boolean editOndoubleClick(JFrame frame) {
         if (isChannel) {
             String oldValue = value;
-            String s = (String) JOptionPane.showInputDialog(frame, "Nb of samples (positive int): ",
-                    "Nb of samples per round", JOptionPane.PLAIN_MESSAGE, IconManager.imgic101, null,
-                    getValue());
-            if ((s != null) && (s.length() > 0) && (!s.equals(oldValue))) {
+            String[] labels = new String[1];
+            labels[0] = "Nb of samples (positive int): ";
+            String[] values = new String[1];
+            values[0] = "" + value;
+            String[] keywords = new String[1];
+            keywords[0] = "join" ;
+
+
+            JDialogMultiString jdms = new JDialogMultiString(getTDiagramPanel().getMainGUI().getFrame(), "Join attribute", 1,
+                    labels, values, keywords, getTDiagramPanel().getMainGUI().getHelpManager(), getTDiagramPanel().getMainGUI());
+            GraphicLib.centerOnParent(jdms, 400, 250);
+            jdms.setVisible(true);
+
+            if (jdms.hasBeenSet()) {
+                String tmp = jdms.getString(0).trim();
                 try {
-                    int testI = Integer.decode(s).intValue();
-                    if (testI > 0) {
-                        value = s;
+                    int val = Integer.decode(tmp);
+                    if (val > 0) {
+                        value = tmp;
                     } else {
                         JOptionPane.showMessageDialog(frame,
                                 "Could not change the number of samples: the number must be >0",
@@ -163,17 +175,15 @@ public class TMLCJoin extends TMLCChannelFacility implements WithAttributes {
                                 JOptionPane.INFORMATION_MESSAGE);
                         return false;
                     }
-
                 } catch (Exception e) {
                     JOptionPane.showMessageDialog(frame,
-                            "Could not change the number of samples: " + s + " is not a number",
+                            "Could not change the number of samples: " + tmp + " is not a number",
                             "Error",
                             JOptionPane.INFORMATION_MESSAGE);
                     return false;
                 }
-
+                return true;
             }
-            return true;
         } else {
             JOptionPane.showMessageDialog(frame,
                     "Only correctly connected join can be configured",
@@ -181,13 +191,12 @@ public class TMLCJoin extends TMLCChannelFacility implements WithAttributes {
                     JOptionPane.INFORMATION_MESSAGE);
             return true;
         }
+        return true;
 
     }
 
 
 
-
-
     public int getType() {
         return TGComponentManager.TMLCTD_JOIN;
     }
diff --git a/src/main/java/ui/util/DefaultText.java b/src/main/java/ui/util/DefaultText.java
index 1bc8d039ad2a62b1ef88ce95f245c65784211285..9304a7201adaf3e8b3e892d286f06879cc3dc54d 100755
--- a/src/main/java/ui/util/DefaultText.java
+++ b/src/main/java/ui/util/DefaultText.java
@@ -50,8 +50,8 @@ package ui.util;
  */
 public class DefaultText {
 
-    public static String BUILD = "13041";
-    public static String DATE = "2019/05/20 13:26:11 CET";
+    public static String BUILD = "13044";
+    public static String DATE = "2019/05/23 03:20:08 CET";
 
     public static StringBuffer sbAbout = makeAbout();
 
diff --git a/src/main/java/ui/window/JDialogCPUNode.java b/src/main/java/ui/window/JDialogCPUNode.java
index 81cb6436213abfc1ef208eeb8c81138fcc4e1dd6..db92848babb8bdcc31118dd5e79afb86bc9028cf 100644
--- a/src/main/java/ui/window/JDialogCPUNode.java
+++ b/src/main/java/ui/window/JDialogCPUNode.java
@@ -48,6 +48,8 @@ import myutil.TraceManager;
 import tmltranslator.modelcompiler.ArchUnitMEC;
 import ui.ColorManager;
 import ui.MainGUI;
+import ui.TGComboBoxWithHelp;
+import ui.TGTextFieldWithHelp;
 import ui.util.IconManager;
 import ui.interactivesimulation.SimulationTransaction;
 import ui.tmldd.TMLArchiCPUNode;
@@ -91,14 +93,14 @@ public class JDialogCPUNode extends JDialogBase implements ActionListener  {
     protected JComboBox<String> tracemode;
  //   private static int selectedTracemode = 0;
     // Panel1
-    protected JTextField nodeName;
+    protected TGTextFieldWithHelp nodeName;
 
     // Panel2
-    protected JTextField sliceTime, nbOfCores, byteDataSize, pipelineSize, goIdleTime, maxConsecutiveIdleCycles,
+    protected TGTextFieldWithHelp sliceTime, nbOfCores, byteDataSize, pipelineSize, goIdleTime, maxConsecutiveIdleCycles,
             taskSwitchingTime, branchingPredictionPenalty, cacheMiss, clockRatio, execiTime, execcTime, monitored,
         operation;
 
-    protected JComboBox<String> schedulingPolicy, MECTypeCB, encryption;
+    protected TGComboBoxWithHelp<String> schedulingPolicy, MECTypeCB, encryption;
 
     // Tabbed pane for panel1 and panel2
     private JTabbedPane tabbedPane;
@@ -109,7 +111,7 @@ public class JDialogCPUNode extends JDialogBase implements ActionListener  {
     //issue 183
     private List<JButton>  buttons;
     private List<HelpEntry> helpEntries;
-    private TGComponentHelp cpuHelp;
+    private JDialogTGComponentHelp cpuHelp;
 
     /* Creates new form  */
     public JDialogCPUNode(MainGUI _mgui, Frame _frame, String _title, TMLArchiCPUNode _node, ArchUnitMEC _MECType,
@@ -124,106 +126,10 @@ public class JDialogCPUNode extends JDialogBase implements ActionListener  {
         initComponents();
         pack();
     }
-//
-//    private void myInitComponents() {
-//    }
-
-    //issue 183
-    private void setButton(JButton button) {
-        button.setOpaque(false);
-        button.setFocusPainted(false);
-        button.setContentAreaFilled(false);
-        button.setBorderPainted(false);
-        button.setPreferredSize(new Dimension(20,20));
-    }
-
-    //issue 183
-    private void buttonClick(JButton but, HelpEntry he) {
-        but.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                if(cpuHelp == null) {
-                    cpuHelp = new TGComponentHelp(mgui, he);
-                    cpuHelp.setLocationHelpWindow(but);
-                } else {
-                    if(!cpuHelp.isVisible()) {
-                        cpuHelp = new TGComponentHelp(mgui, he);
-                        cpuHelp.setLocationHelpWindow(but);
-                    } else{
-                        cpuHelp.setVisible(false);
-                    }
-                }
-            }
-        });
-    }
-
-
-
-    //issue 183
-    private void hardwareHelp(){
-        HelpManager helpManager = mgui.getHelpManager();
-
-        if(!helpManager.loadEntries()) {
-            return;
-        }
-
-        buttons = new ArrayList<>();
-        helpEntries = new ArrayList<>();
-
-        /*if(helpManager.loadEntries()) {
-            helpEntries = new ArrayList<>();
-            HelpEntry he0 = helpManager.getHelpEntryWithHTMLFile("cpuname.html");
-            helpEntries.add(he0);
-            HelpEntry he1 = helpManager.getHelpEntryWithHTMLFile("schedulingpolicy.html");
-            helpEntries.add(he1);
-            HelpEntry he2 = helpManager.getHelpEntryWithHTMLFile("slicetime.html");
-            helpEntries.add(he2);
-            HelpEntry he3 = helpManager.getHelpEntryWithHTMLFile("numbercores.html");
-            helpEntries.add(he3);
-            HelpEntry he4 = helpManager.getHelpEntryWithHTMLFile("datasize.html");
-            helpEntries.add(he4);
-            HelpEntry he5 = helpManager.getHelpEntryWithHTMLFile("pipelinesize.html");
-            helpEntries.add(he5);
-            HelpEntry he6 = helpManager.getHelpEntryWithHTMLFile("taskswitchingtime.html");
-            helpEntries.add(he6);
-            HelpEntry he7 = helpManager.getHelpEntryWithHTMLFile("misbrandingprediction.html");
-            helpEntries.add(he7);
-            HelpEntry he8 = helpManager.getHelpEntryWithHTMLFile("cachemiss.html");
-            helpEntries.add(he8);
-            HelpEntry he9 = helpManager.getHelpEntryWithHTMLFile("goidletime.html");
-            helpEntries.add(he9);
-            HelpEntry he10 = helpManager.getHelpEntryWithHTMLFile("maxconsecutivecycles.html");
-            helpEntries.add(he10);
-            HelpEntry he11 = helpManager.getHelpEntryWithHTMLFile("execi.html");
-            helpEntries.add(he11);
-            HelpEntry he12 = helpManager.getHelpEntryWithHTMLFile("execc.html");
-            helpEntries.add(he12);
-            HelpEntry he13 = helpManager.getHelpEntryWithHTMLFile("clockdivider.html");
-            helpEntries.add(he13);
-            HelpEntry he14 = helpManager.getHelpEntryWithHTMLFile("encryption.html");
-            helpEntries.add(he14);
-            HelpEntry he15 = helpManager.getHelpEntryWithHTMLFile("cpuextension.html");
-            helpEntries.add(he15);
-            HelpEntry he16 = helpManager.getHelpEntryWithHTMLFile("operation.html");
-            helpEntries.add(he16);
-        }*/
-
-
-        for(int i=0; i<helpStrings.length; i++) {
-            HelpEntry he = helpManager.getHelpEntryWithHTMLFile(helpStrings[i]);
-            helpEntries.add(he);
-            Icon myIcon = IconManager.imgic32;
-            JButton but = new JButton(myIcon);
-            setButton(but);
-            buttonClick(but, he);
-            buttons.add(but);
-        }
-    }
 
 
     private void initComponents() {
 
-        hardwareHelp();
         Container c = getContentPane();
         GridBagLayout gridbag0 = new GridBagLayout();
         GridBagLayout gridbag2 = new GridBagLayout();
@@ -256,17 +162,13 @@ public class JDialogCPUNode extends JDialogBase implements ActionListener  {
         panel2.add(new JLabel("CPU name:"), c2);
         //-------
         //c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        nodeName = new JTextField(node.getNodeName(), 30);
+        nodeName = new TGTextFieldWithHelp(node.getNodeName(), 30);
         nodeName.setEditable(true);
         nodeName.setFont(new Font("times", Font.PLAIN, 12));
         panel2.add(nodeName, c2);
+        nodeName.makeEndHelpButton(helpStrings[0], mgui, mgui.getHelpManager(), panel2, c2);
+
 
-        //issue 183
-        c2.weighty = 0.5;
-        c2.weightx = 0.5;
-        c2.gridwidth = GridBagConstraints.REMAINDER;
-        if (buttons != null)
-            panel2.add(buttons.get(0),c2);
         c2.gridwidth = 1;
         c2.gridheight = 1;
         c2.weighty = 1.0;
@@ -275,14 +177,12 @@ public class JDialogCPUNode extends JDialogBase implements ActionListener  {
         panel2.add(new JLabel("Scheduling policy:"), c2);
 
         //c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        schedulingPolicy = new JComboBox<String>();
+        schedulingPolicy = new TGComboBoxWithHelp<String>();
         schedulingPolicy.addItem("Round Robin");
         schedulingPolicy.addItem("Round Robin - Priority Based");
         schedulingPolicy.setSelectedIndex(node.getSchedulingPolicy());
         panel2.add(schedulingPolicy, c2);
-
-        //issue 183
-        addHelpButton(1, panel2, c2);
+        schedulingPolicy.makeEndHelpButton(helpStrings[1], mgui, mgui.getHelpManager(), panel2, c2);
 
         c2.gridwidth = 1;
         //issue 183
@@ -290,11 +190,9 @@ public class JDialogCPUNode extends JDialogBase implements ActionListener  {
         c2.weightx = 1.0;
         panel2.add(new JLabel("Slice time (in microseconds):"), c2);
         //c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        sliceTime = new JTextField(""+node.getSliceTime(), 15);
+        sliceTime = new TGTextFieldWithHelp(""+node.getSliceTime(), 15);
         panel2.add(sliceTime, c2);
-
-        //issue 183
-        addHelpButton(2, panel2, c2);
+        sliceTime.makeEndHelpButton(helpStrings[2], mgui, mgui.getHelpManager(), panel2, c2);
 
         c2.gridwidth = 1;
         //issue 183
@@ -302,12 +200,9 @@ public class JDialogCPUNode extends JDialogBase implements ActionListener  {
         c2.weightx = 1.0;
         panel2.add(new JLabel("Nb of cores:"), c2);
         //c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        nbOfCores = new JTextField(""+node.getNbOfCores(), 15);
-        if (buttons != null)
-            panel2.add(nbOfCores, c2);
-
-        //issue 183
-        addHelpButton(3, panel2, c2);
+        nbOfCores = new TGTextFieldWithHelp(""+node.getNbOfCores(), 15);
+        panel2.add(nbOfCores, c2);
+        nbOfCores.makeEndHelpButton(helpStrings[3], mgui, mgui.getHelpManager(), panel2, c2);
 
         c2.gridwidth = 1;
         //issue 183
@@ -315,11 +210,10 @@ public class JDialogCPUNode extends JDialogBase implements ActionListener  {
         c2.weightx = 1.0;
         panel2.add(new JLabel("Data size (in byte):"), c2);
         //c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        byteDataSize = new JTextField(""+node.getByteDataSize(), 15);
+        byteDataSize = new TGTextFieldWithHelp(""+node.getByteDataSize(), 15);
         panel2.add(byteDataSize, c2);
+        byteDataSize.makeEndHelpButton(helpStrings[4], mgui, mgui.getHelpManager(), panel2, c2);
 
-        //issue 183
-        addHelpButton(4, panel2, c2);
 
         c2.gridwidth = 1;
         //issue 183
@@ -327,11 +221,10 @@ public class JDialogCPUNode extends JDialogBase implements ActionListener  {
         c2.weightx = 1.0;
         panel2.add(new JLabel("Pipeline size (num. stages):"), c2);
         //c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        pipelineSize = new JTextField(""+node.getPipelineSize(), 15);
+        pipelineSize = new TGTextFieldWithHelp(""+node.getPipelineSize(), 15);
         panel2.add(pipelineSize, c2);
+        pipelineSize.makeEndHelpButton(helpStrings[5], mgui, mgui.getHelpManager(), panel2, c2);
 
-        //issue 183
-        addHelpButton(5, panel2, c2);
 
         c2.gridwidth = 1;
         //issue 183
@@ -339,11 +232,10 @@ public class JDialogCPUNode extends JDialogBase implements ActionListener  {
         c2.weightx = 1.0;
         panel2.add(new JLabel("Task switching time (in cycle):"), c2);
         //c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        taskSwitchingTime = new JTextField(""+node.getTaskSwitchingTime(), 15);
+        taskSwitchingTime = new TGTextFieldWithHelp(""+node.getTaskSwitchingTime(), 15);
         panel2.add(taskSwitchingTime, c2);
+        pipelineSize.makeEndHelpButton(helpStrings[6], mgui, mgui.getHelpManager(), panel2, c2);
 
-        //issue 183
-        addHelpButton(6, panel2, c2);
 
         c2.gridwidth = 1;
         //issue 183
@@ -351,15 +243,11 @@ public class JDialogCPUNode extends JDialogBase implements ActionListener  {
         c2.weightx = 1.0;
         panel2.add(new JLabel("Mis-Branching prediction (in %):"), c2);
         //c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        branchingPredictionPenalty = new JTextField(""+node.getBranchingPredictionPenalty(), 15);
+        branchingPredictionPenalty = new TGTextFieldWithHelp(""+node.getBranchingPredictionPenalty(), 15);
         panel2.add(branchingPredictionPenalty, c2);
+        branchingPredictionPenalty.makeEndHelpButton(helpStrings[7], mgui, mgui.getHelpManager(), panel2, c2);
+
 
-        //issue 183
-        c2.weighty = 0.5;
-        c2.weightx = 0.5;
-        c2.gridwidth = GridBagConstraints.REMAINDER;
-        if (buttons != null)
-            panel2.add(buttons.get(7),c2);
 
         c2.gridwidth = 1;
         //issue 183
@@ -367,11 +255,9 @@ public class JDialogCPUNode extends JDialogBase implements ActionListener  {
         c2.weightx = 1.0;
         panel2.add(new JLabel("Cache-miss (in %):"), c2);
         //c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        cacheMiss = new JTextField(""+node.getCacheMiss(), 15);
+        cacheMiss = new TGTextFieldWithHelp(""+node.getCacheMiss(), 15);
         panel2.add(cacheMiss, c2);
-
-        //issue 183
-        addHelpButton(8, panel2, c2);
+        cacheMiss.makeEndHelpButton(helpStrings[8], mgui, mgui.getHelpManager(), panel2, c2);
 
 
         c2.gridwidth = 1;
@@ -380,11 +266,10 @@ public class JDialogCPUNode extends JDialogBase implements ActionListener  {
         c2.weightx = 1.0;
         panel2.add(new JLabel("Go idle time (in cycle):"), c2);
         //c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        goIdleTime = new JTextField(""+node.getGoIdleTime(), 15);
+        goIdleTime = new TGTextFieldWithHelp(""+node.getGoIdleTime(), 15);
         panel2.add(goIdleTime, c2);
+        goIdleTime.makeEndHelpButton(helpStrings[9], mgui, mgui.getHelpManager(), panel2, c2);
 
-        //issue 183
-        addHelpButton(9, panel2, c2);
 
         c2.gridwidth = 1;
         //issue 183
@@ -392,11 +277,10 @@ public class JDialogCPUNode extends JDialogBase implements ActionListener  {
         c2.weightx = 1.0;
         panel2.add(new JLabel("Max consecutive cycles before idle (in cycle):"), c2);
         //c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        maxConsecutiveIdleCycles = new JTextField(""+node.getMaxConsecutiveIdleCycles(), 15);
+        maxConsecutiveIdleCycles = new TGTextFieldWithHelp(""+node.getMaxConsecutiveIdleCycles(), 15);
         panel2.add(maxConsecutiveIdleCycles, c2);
+        maxConsecutiveIdleCycles.makeEndHelpButton(helpStrings[10], mgui, mgui.getHelpManager(), panel2, c2);
 
-        //issue 183
-        addHelpButton(10, panel2, c2);
 
         c2.gridwidth = 1;
         //issue 183
@@ -404,11 +288,9 @@ public class JDialogCPUNode extends JDialogBase implements ActionListener  {
         c2.weightx = 1.0;
         panel2.add(new JLabel("EXECI execution time (in cycle):"), c2);
         //c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        execiTime = new JTextField(""+node.getExeciTime(), 15);
+        execiTime = new TGTextFieldWithHelp(""+node.getExeciTime(), 15);
         panel2.add(execiTime, c2);
-
-        //issue 183
-        addHelpButton(11, panel2, c2);
+        execiTime.makeEndHelpButton(helpStrings[11], mgui, mgui.getHelpManager(), panel2, c2);
 
 
         c2.gridwidth = 1;
@@ -417,11 +299,11 @@ public class JDialogCPUNode extends JDialogBase implements ActionListener  {
         c2.weightx = 1.0;
         panel2.add(new JLabel("EXECC execution time (in cycle):"), c2);
         //c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        execcTime = new JTextField(""+node.getExeccTime(), 15);
+        execcTime = new TGTextFieldWithHelp(""+node.getExeccTime(), 15);
         panel2.add(execcTime, c2);
+        execcTime.makeEndHelpButton(helpStrings[12], mgui, mgui.getHelpManager(), panel2, c2);
+
 
-        //issue 183
-        addHelpButton(12, panel2, c2);
 
         c2.gridwidth = 1;
         //issue 183
@@ -429,25 +311,10 @@ public class JDialogCPUNode extends JDialogBase implements ActionListener  {
         c2.weightx = 1.0;
         panel2.add(new JLabel("Clock divider:"), c2);
         //c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        clockRatio = new JTextField(""+node.getClockRatio(), 15);
+        clockRatio = new TGTextFieldWithHelp(""+node.getClockRatio(), 15);
         panel2.add(clockRatio, c2);
+        execcTime.makeEndHelpButton(helpStrings[13], mgui, mgui.getHelpManager(), panel2, c2);
 
-        //issue 183
-        addHelpButton(13, panel2, c2);
-
-
-        // monitored
-        /*c2.gridwidth = 1;
-        panel2.add(new JLabel("Monitored:"), c2);
-        //c2.gridwidth = GridBagConstraints.REMAINDER; //end row
-        //monitored = new JTextField(""+node.getMonitored(), 15);//DG 19.04.
-        tracemode = new JComboBox(tracemodeTab);
-        tracemode.setSelectedIndex(selectedTracemode);
-        tracemode.addActionListener(this);
-        panel2.add(tracemode, c2);
-
-        monitored = new JTextField("", 15);
-        panel2.add(monitored, c2);*/
 
 
         // Code generation
@@ -462,14 +329,14 @@ public class JDialogCPUNode extends JDialogBase implements ActionListener  {
         c4.fill = GridBagConstraints.HORIZONTAL;
         panel4.add(new JLabel("Encryption:"), c4);
         //c4.gridwidth = GridBagConstraints.REMAINDER;
-        encryption = new JComboBox<String>();
+        encryption = new TGComboBoxWithHelp<String>();
         encryption.addItem("None");
         encryption.addItem("Software Encryption");
         encryption.addItem("Hardware Security Module");
         encryption.setSelectedIndex(node.getEncryption());
         panel4.add(encryption, c4);
-        //issue 183
-        addHelpButton(14, panel4, c4);
+        encryption.makeEndHelpButton(helpStrings[14], mgui, mgui.getHelpManager(), panel4, c4);
+
 
         c4.weighty = 1.0;
         c4.weightx = 1.0;
@@ -478,19 +345,18 @@ public class JDialogCPUNode extends JDialogBase implements ActionListener  {
         c4.gridwidth = 1;
         panel4.add(new JLabel("Operation:"), c4);
         //c4.gridwidth = GridBagConstraints.REMAINDER; //end row
-        operation = new JTextField(""+node.getOperation(), 15);
+        operation = new TGTextFieldWithHelp(""+node.getOperation(), 15);
         panel4.add(operation, c4);
+        operation.makeEndHelpButton(helpStrings[16], mgui, mgui.getHelpManager(), panel4, c4);
+
 
-        //issue 183
-        addHelpButton(16, panel4, c4);
         c4.weighty = 1.0;
         c4.weightx = 1.0;
-
         // extension constructs
         c4.gridwidth = 1;
         panel4.add(new JLabel("CPU Extension Construct:"), c4);
         //c4.gridwidth = GridBagConstraints.REMAINDER; //end row
-        MECTypeCB = new JComboBox<String>( ArchUnitMEC.stringTypes );
+        MECTypeCB = new TGComboBoxWithHelp<String>( ArchUnitMEC.stringTypes );
         if( MECType == null )   {
             MECTypeCB.setSelectedIndex( 0 );
         }
@@ -499,8 +365,7 @@ public class JDialogCPUNode extends JDialogBase implements ActionListener  {
         }
         MECTypeCB.addActionListener(this);
         panel4.add( MECTypeCB, c4);
-
-        addHelpButton(15, panel4, c4);
+        MECTypeCB.makeEndHelpButton(helpStrings[15], mgui, mgui.getHelpManager(), panel4, c4);
 
 
         TraceManager.addDev("Transactions size=" + transactions.size());
@@ -539,15 +404,6 @@ public class JDialogCPUNode extends JDialogBase implements ActionListener  {
     }
 
     public void actionPerformed(ActionEvent evt)  {
-        /* if (evt.getSource() == typeBox) {
-           boolean b = ((Boolean)(initValues.elementAt(typeBox.getSelectedIndex()))).booleanValue();
-           initialValue.setEnabled(b);
-           return;
-           }*/
-
-//        if (evt.getSource() == tracemode) {
-//            selectedTracemode = tracemode.getSelectedIndex();
-//        }
 
         String command = evt.getActionCommand();
 
@@ -672,14 +528,6 @@ public class JDialogCPUNode extends JDialogBase implements ActionListener  {
         }
     }
 
-    private void addHelpButton(int index, JPanel panel, GridBagConstraints c) {
-        //issue 183
-        c.weighty = 0.5;
-        c.weightx = 0.5;
-        c.gridwidth = GridBagConstraints.REMAINDER;
-        if (buttons != null)
-            panel.add(buttons.get(index), c);
-    }
     
     class MyFrame extends JPanel implements MouseMotionListener, MouseListener{
         Map<Range, String> toolMap = new HashMap<Range, String>();
diff --git a/src/main/java/ui/window/JDialogMultiString.java b/src/main/java/ui/window/JDialogMultiString.java
index b1728103d7482a71e0add3f4646bdb6e0492b6e4..cede519c793f311dfbc99f8b53b54131599f3ea0 100644
--- a/src/main/java/ui/window/JDialogMultiString.java
+++ b/src/main/java/ui/window/JDialogMultiString.java
@@ -38,16 +38,13 @@
 
 package ui.window;
 
-import help.HelpEntry;
 import help.HelpManager;
-import myutil.TraceManager;
 import ui.MainGUI;
-import ui.util.IconManager;
+import ui.TGTextFieldWithHelp;
 
 import java.awt.*;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -70,9 +67,6 @@ public class JDialogMultiString extends JDialogBase implements ActionListener {
     // Help
     private String[] helpKeywords;
     private HelpManager hm;
-    private List<JButton>  buttons;
-    private List<HelpEntry> helpEntries;
-    private TGComponentHelp cpuHelp;
     private MainGUI mgui;
 
     private int nbString;
@@ -147,29 +141,8 @@ public class JDialogMultiString extends JDialogBase implements ActionListener {
 
 
 
-//    private void myInitComponents() {
-//    }
-
     private void initComponents() {
 
-        if (hm != null) {
-            if(!hm.loadEntries()) {
-                hm = null;
-            } else {
-                buttons = new ArrayList<>();
-                helpEntries = new ArrayList<>();
-                for(int i=0; i<helpKeywords.length; i++) {
-                    TraceManager.addDev("Getting help entry with:" + helpKeywords[i]);
-                    HelpEntry he = hm.getHelpEntryWithHTMLFile(helpKeywords[i]);
-                    helpEntries.add(he);
-                    Icon myIcon = IconManager.imgic32;
-                    JButton but = new JButton(myIcon);
-                    setButton(but);
-                    buttonClick(but, he);
-                    buttons.add(but);
-                }
-            }
-        }
 
 
         inserts = new JButton[labels.length];
@@ -230,9 +203,9 @@ public class JDialogMultiString extends JDialogBase implements ActionListener {
                 }
             }
             if ((helpKeywords != null) && (helpKeywords[i] != null)) {
-                texts[i] = new JTextField(values[i], 15);
+                texts[i] = new TGTextFieldWithHelp(values[i], 15);
                 panel1.add(texts[i], c1);
-                addHelpButton(i, panel1, c1);
+                ((TGTextFieldWithHelp)texts[i]).makeEndHelpButton(helpKeywords[i], mgui, hm, panel1, c1);
             } else {
                 c1.gridwidth = GridBagConstraints.REMAINDER; //end row
                 texts[i] = new JTextField(values[i], 15);
@@ -257,43 +230,6 @@ public class JDialogMultiString extends JDialogBase implements ActionListener {
         initButtons(c0, c, this);
     }
 
-    private void setButton(JButton button) {
-        button.setOpaque(false);
-        button.setFocusPainted(false);
-        button.setContentAreaFilled(false);
-        button.setBorderPainted(false);
-        button.setPreferredSize(new Dimension(20,20));
-    }
-
-    private void buttonClick(JButton but, HelpEntry he) {
-        but.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                if(cpuHelp == null) {
-                    TraceManager.addDev("Null CPU help");
-                    cpuHelp = new TGComponentHelp(mgui, he);
-                    cpuHelp.setLocationHelpWindow(but);
-                } else {
-                    if(!cpuHelp.isVisible()) {
-                        cpuHelp = new TGComponentHelp(mgui, he);
-                        cpuHelp.setLocationHelpWindow(but);
-                    } else{
-                        cpuHelp.setVisible(false);
-                    }
-                }
-            }
-        });
-    }
-
-    private void addHelpButton(int index, JPanel panel, GridBagConstraints c) {
-        //issue 183
-        c.weighty = 0.5;
-        c.weightx = 0.5;
-        c.gridwidth = GridBagConstraints.REMAINDER;
-        if (buttons != null)
-            panel.add(buttons.get(index), c);
-    }
-
 
     @Override
     public void actionPerformed(ActionEvent evt) {
diff --git a/src/main/java/ui/window/JDialogSystemCGeneration.java b/src/main/java/ui/window/JDialogSystemCGeneration.java
index 243138dc9c2581679856182905fb40831ef8036d..35ac2fd9ea9036d466bd9c0bf3c81a99121a9acc 100644
--- a/src/main/java/ui/window/JDialogSystemCGeneration.java
+++ b/src/main/java/ui/window/JDialogSystemCGeneration.java
@@ -804,7 +804,13 @@ public class JDialogSystemCGeneration extends JDialog implements ActionListener,
 
                 try {
                     tml2systc.setModelName(mgui.getModelFileFullPath() + " / " + mgui.getCurrentJTabbedPane().getTitleAt(0));
-                    tml2systc.generateSystemC(debugmode.isSelected(), optimizemode.isSelected());
+                    String error = tml2systc.generateSystemC(debugmode.isSelected(), optimizemode.isSelected());
+                    if (error != null) {
+                        jta.append("Error identified during code generation:\n" + error + "\nCode generation was cancelled");
+                        setError();
+                        return;
+                    }
+
                     testGo();
                     jta.append("Simulator code generation done\n");
 
diff --git a/src/main/java/ui/window/TGComponentHelp.java b/src/main/java/ui/window/JDialogTGComponentHelp.java
similarity index 94%
rename from src/main/java/ui/window/TGComponentHelp.java
rename to src/main/java/ui/window/JDialogTGComponentHelp.java
index 9bcae860af66a05c819be97f723bd56cc11b1209..b61f8850e29ad186c20278d47c1f11d1fe5dab14 100644
--- a/src/main/java/ui/window/TGComponentHelp.java
+++ b/src/main/java/ui/window/JDialogTGComponentHelp.java
@@ -11,7 +11,7 @@ import java.awt.*;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 
-public class TGComponentHelp extends JDialog implements ActionListener {
+public class JDialogTGComponentHelp extends JDialog implements ActionListener {
 
     MainGUI mainGUI;
     HelpEntry helpEntry;
@@ -20,7 +20,7 @@ public class TGComponentHelp extends JDialog implements ActionListener {
     JEditorPane pane;
 
 
-    public TGComponentHelp(MainGUI _mgui, HelpEntry _he) {
+    public JDialogTGComponentHelp(MainGUI _mgui, HelpEntry _he) {
         mainGUI = _mgui;
         helpEntry = _he;
 
@@ -36,7 +36,7 @@ public class TGComponentHelp extends JDialog implements ActionListener {
         setModalExclusionType(ModalExclusionType.APPLICATION_EXCLUDE);
         Container framePanel = getContentPane();
         framePanel.setLayout(new BorderLayout());
-        Font f = new Font("Courrier", Font.BOLD, 12);
+        //Font f = new Font("Courrier", Font.BOLD, 12);
 
         JPanel helpPanel = new JPanel();
         helpPanel.setLayout(new BorderLayout());
diff --git a/src/main/resources/help/application.html b/src/main/resources/help/application.html
new file mode 100644
index 0000000000000000000000000000000000000000..b72a5efdd662ccdf24a2fe7044e34f7b4c4476b3
--- /dev/null
+++ b/src/main/resources/help/application.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
+<head>
+  <meta charset="utf-8" />
+  <meta name="generator" content="pandoc" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
+  <title>TTool help</title>
+  <style>
+      code{white-space: pre-wrap;}
+      span.smallcaps{font-variant: small-caps;}
+      span.underline{text-decoration: underline;}
+      div.column{display: inline-block; vertical-align: top; width: 50%;}
+  </style>
+  <!--[if lt IE 9]>
+    <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
+  <![endif]-->
+</head>
+<body>
+<h1 id="describing-an-application-in-diplodocus">Describing an application in DIPLODOCUS</h1>
+<p>An application is described within a functional view. It is built upon a set of: - Composite components - Primitive components that can contain ports - Ports. A port is the origin or destination of either a <a href="file://channel.html">channel</a>, an event or a request. - Connectors between ports, thus building a logical communication path. A Path can contain <a href="file://fork.html">fork</a> or <a href="file://join.html">join</a> operators, but not both.</p>
+</body>
+</html>
diff --git a/src/main/resources/help/channel.html b/src/main/resources/help/channel.html
new file mode 100644
index 0000000000000000000000000000000000000000..f71cbcc8b280f269113e48b8cb4dde7172a82b71
--- /dev/null
+++ b/src/main/resources/help/channel.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
+<head>
+  <meta charset="utf-8" />
+  <meta name="generator" content="pandoc" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
+  <title>TTool help</title>
+  <style>
+      code{white-space: pre-wrap;}
+      span.smallcaps{font-variant: small-caps;}
+      span.underline{text-decoration: underline;}
+      div.column{display: inline-block; vertical-align: top; width: 50%;}
+  </style>
+  <!--[if lt IE 9]>
+    <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
+  <![endif]-->
+</head>
+<body>
+<h1 id="channel">Channel</h1>
+<p>A channel models a communication path in which a quantity of data can be exchanged.</p>
+</body>
+</html>
diff --git a/src/main/resources/help/fork.html b/src/main/resources/help/fork.html
new file mode 100644
index 0000000000000000000000000000000000000000..844fff234aeadb30857da5773949cb1c67502cd0
--- /dev/null
+++ b/src/main/resources/help/fork.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
+<head>
+  <meta charset="utf-8" />
+  <meta name="generator" content="pandoc" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
+  <title>TTool help</title>
+  <style>
+      code{white-space: pre-wrap;}
+      span.smallcaps{font-variant: small-caps;}
+      span.underline{text-decoration: underline;}
+      div.column{display: inline-block; vertical-align: top; width: 50%;}
+  </style>
+  <!--[if lt IE 9]>
+    <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
+  <![endif]-->
+</head>
+<body>
+<h1 id="fork">Fork</h1>
+<p>A fork can be added to a logical path between ports. A fork means that data or event transiting reaching the fork will be duplicated to all paths outgoing the fork operator. The “number of samples” argument means the number of samples that are read from the input before being duplicated to the output.</p>
+</body>
+</html>
diff --git a/src/main/resources/help/helpTable.txt b/src/main/resources/help/helpTable.txt
index e2de3e156213f16a84e846111f23d884c1c356c0..c3d32104f9f2e02bc219f6e464747257a3b7d906 100644
--- a/src/main/resources/help/helpTable.txt
+++ b/src/main/resources/help/helpTable.txt
@@ -1,4 +1,4 @@
-- general TTool general info tool
+- general TTool general info ttool tool
 -- syntaxchecking syntaxchecking syntax checking model verification
 - diplodocus diplodocus hardware software partitioning dse design space exploration
 -- application application functional view diplodocus
@@ -7,7 +7,6 @@
 ----join join channel functional view diplodocus
 -- architecture architecture hardware os operating system
 --- cpu cpu processor cpu os
-
 ----cpuname cpu_name cpu name
 ----schedulingpolicy scheduling_policy scheduling policy cpu
 ----slicetime slice_time slice time cpu
diff --git a/src/main/resources/help/join.html b/src/main/resources/help/join.html
new file mode 100644
index 0000000000000000000000000000000000000000..9f379331d59bf12f822bc6ec4a2a7b2dabd1eaca
--- /dev/null
+++ b/src/main/resources/help/join.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
+<head>
+  <meta charset="utf-8" />
+  <meta name="generator" content="pandoc" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
+  <title>TTool help</title>
+  <style>
+      code{white-space: pre-wrap;}
+      span.smallcaps{font-variant: small-caps;}
+      span.underline{text-decoration: underline;}
+      div.column{display: inline-block; vertical-align: top; width: 50%;}
+  </style>
+  <!--[if lt IE 9]>
+    <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
+  <![endif]-->
+</head>
+<body>
+<h1 id="join">Join</h1>
+<p>A join operator can be added to a logical path between ports. A join means that data or event reaching a join will be merged on the same output path. Said differently, the join operator must get “nb of samples” samples on each of its inputs before writing “nb of samples” on its ouput.</p>
+</body>
+</html>
diff --git a/ttool/src/test/java/ui/TestGTMLModeling.java b/ttool/src/test/java/ui/TestGTMLModeling.java
index 523cc1817f886857761813d965ddf0e1e7eb7566..04f0a906f40d6e2cb71a9b0e41099f1071351304 100644
--- a/ttool/src/test/java/ui/TestGTMLModeling.java
+++ b/ttool/src/test/java/ui/TestGTMLModeling.java
@@ -3,6 +3,7 @@ package ui;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
+import myutil.FileUtils;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -10,6 +11,8 @@ import tmltranslator.TMLMapping;
 import tmltranslator.TMLModeling;
 import tmltranslator.TMLTask;
 
+import java.io.File;
+
 public class TestGTMLModeling extends AbstractUITest {
 	
 	private static final String MODEL_ZIGBEE_TUTORIAL = "ZigBeeTutorial";
@@ -77,6 +80,13 @@ public class TestGTMLModeling extends AbstractUITest {
 	public void testTranslateToTMLModelingZigbeeTX()
 	throws MalformedTMLDesignException {
 		final String actualCode = translateToTMLModelingXMLZigBeeTutorial( DIAG_ZIGBEE_TX );
+
+		File f = new File("actual.xml");
+		try {
+            FileUtils.saveFile(f, actualCode);
+        } catch (Exception e) {
+
+        }
 	
 		checkResultXml( actualCode, DIAG_ZIGBEE_TX );
 	}
@@ -86,6 +96,13 @@ public class TestGTMLModeling extends AbstractUITest {
 	throws MalformedTMLDesignException {
 		final String diagramName = "Mapping_0";
 		final String actualCode = translateToTMLMappingXMLZigBeeTutorial( diagramName );
+
+        File f = new File("mapping0.xml");
+        try {
+            FileUtils.saveFile(f, actualCode);
+        } catch (Exception e) {
+
+        }
 		
 		checkResultXml( actualCode, diagramName );
 	}
diff --git a/ttool/src/test/resources/ui/diagram2tml/expected/Mapping_0.xml b/ttool/src/test/resources/ui/diagram2tml/expected/Mapping_0.xml
index 7ce0df3d609b86ff84d801f7ee2b0455119f0744..2238a71b1a48af906cf076becf7d71d439bbc96b 100644
--- a/ttool/src/test/resources/ui/diagram2tml/expected/Mapping_0.xml
+++ b/ttool/src/test/resources/ui/diagram2tml/expected/Mapping_0.xml
@@ -265,14 +265,14 @@
 <NEXTACTIVITYELEMENT id="4" />
 </ACTIVITYELEMENT>
 <ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel">
-<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in "  />
+<CUSTOM  nbOfSamples="size"  channels="FORKCHANNEL_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in "  />
 <NEXTACTIVITYELEMENT id="1" />
 </ACTIVITYELEMENT>
 <ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state">
 <CUSTOM  />
 </ACTIVITYELEMENT>
 <ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="4" name="write channel">
-<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in "  />
+<CUSTOM  nbOfSamples="size"  channels="JOINCHANNEL_S_0__Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in "  />
 <NEXTACTIVITYELEMENT id="3" />
 </ACTIVITYELEMENT>
 <ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="5" name="action reading args">
@@ -294,14 +294,14 @@
 <NEXTACTIVITYELEMENT id="4" />
 </ACTIVITYELEMENT>
 <ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="2" name="read channel">
-<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in "  />
+<CUSTOM  nbOfSamples="size"  channels="FORKCHANNEL_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in "  />
 <NEXTACTIVITYELEMENT id="1" />
 </ACTIVITYELEMENT>
 <ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="3" name="stop state">
 <CUSTOM  />
 </ACTIVITYELEMENT>
 <ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="4" name="write channel">
-<CUSTOM  nbOfSamples="size"  channels="Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in "  />
+<CUSTOM  nbOfSamples="size"  channels="JOINCHANNEL_S_1__Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in "  />
 <NEXTACTIVITYELEMENT id="3" />
 </ACTIVITYELEMENT>
 <ACTIVITYELEMENT type="tmltranslator.TMLActionState" value="" id="5" name="action reading args">
@@ -368,11 +368,79 @@
 </ACTIVITYELEMENT>
 </ACTIVITY>
 </TASK>
+<TASK name="FORKTASK_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in" priority="0" >
+<ATTRIBUTE type="1" name="i" initialValue="0"/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="startOfFork">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stopOfFork">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop2OfFork">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLForLoop" value="" id="3" name="junctionOfFork">
+<CUSTOM  init="i=0" condition="i&lt;1" increment="i=i" isInfinite="false"  />
+<NEXTACTIVITYELEMENT id="4" />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="4" name="ReadOfFork">
+<CUSTOM  nbOfSamples="1"  channels="Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in "  />
+<NEXTACTIVITYELEMENT id="5" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="5" name="WriteOfFork_S_0">
+<CUSTOM  nbOfSamples="1"  channels="FORKCHANNEL_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in "  />
+<NEXTACTIVITYELEMENT id="6" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="6" name="WriteOfFork_S_1">
+<CUSTOM  nbOfSamples="1"  channels="FORKCHANNEL_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in "  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
+<TASK name="JOINTASK_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in" priority="0" >
+<ATTRIBUTE type="1" name="i" initialValue="0"/>
+<ACTIVITY first="0">
+<ACTIVITYELEMENT type="tmltranslator.TMLStartState" value="" id="0" name="startOfJoin">
+<CUSTOM  />
+<NEXTACTIVITYELEMENT id="3" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="1" name="stopOfJoin">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLStopState" value="" id="2" name="stop2OfFork">
+<CUSTOM  />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLForLoop" value="" id="3" name="junctionOfJoin">
+<CUSTOM  init="i=0" condition="i&lt;1" increment="i=i" isInfinite="false"  />
+<NEXTACTIVITYELEMENT id="5" />
+<NEXTACTIVITYELEMENT id="2" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLWriteChannel" value="" id="4" name="WriteOfJoin">
+<CUSTOM  nbOfSamples="1"  channels="Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in "  />
+<NEXTACTIVITYELEMENT id="1" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="5" name="ReadOfJoin_S_0">
+<CUSTOM  nbOfSamples="1"  channels="JOINCHANNEL_S_0__Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in "  />
+<NEXTACTIVITYELEMENT id="6" />
+</ACTIVITYELEMENT>
+<ACTIVITYELEMENT type="tmltranslator.TMLReadChannel" value="" id="6" name="ReadOfJoin_S_1">
+<CUSTOM  nbOfSamples="1"  channels="JOINCHANNEL_S_1__Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in "  />
+<NEXTACTIVITYELEMENT id="4" />
+</ACTIVITYELEMENT>
+</ACTIVITY>
+</TASK>
 <TMLCHANNEL name="Zigbee_TX__Source_ch_out__Zigbee_TX__symbol2ChipSeq_ch_in" origintask="Zigbee_TX__X_Source" originport="Source_ch_out" destinationtask="Zigbee_TX__X_Symbol2ChipSeq" destinationport="symbol2ChipSeq_ch_in" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8"  />
 <TMLCHANNEL name="Zigbee_TX__chip2octet_ch_out__Zigbee_TX__cwl_ch_in" origintask="Zigbee_TX__X_Chip2Octet" originport="chip2octet_ch_out" destinationtask="Zigbee_TX__X_CWL" destinationport="cwl_ch_in" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8"  />
-<TMLCHANNEL name="Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in" destinationtask="Zigbee_TX__X_Sink" destinationport="sink_ch_in" origintask="Zigbee_TX__X_CWP_I;Zigbee_TX__X_CWP_Q;" originport="cwpI_ch_out;cwpQ_ch_out;" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8"  />
-<TMLCHANNEL name="Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in" origintask="Zigbee_TX__X_CWL" originport="cwl_ch_out" destinationtask="Zigbee_TX__X_CWP_Q;Zigbee_TX__X_CWP_I;" destinationport="cwpQ_ch_in;cwpI_ch_in;" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8"  />
+<TMLCHANNEL name="Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in" origintask="JOINTASK_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in" originport="JOINPORTORIGIN_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in" destinationtask="Zigbee_TX__X_Sink" destinationport="sink_ch_in" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8"  />
+<TMLCHANNEL name="Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in" origintask="Zigbee_TX__X_CWL" originport="cwl_ch_out" destinationtask="FORKTASK_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in" destinationport="FORKPORTDESTINATION_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8"  />
 <TMLCHANNEL name="Zigbee_TX__symbol2ChipSeq_ch_out__Zigbee_TX__chip2octet_ch_in" origintask="Zigbee_TX__X_Symbol2ChipSeq" originport="symbol2ChipSeq_ch_out" destinationtask="Zigbee_TX__X_Chip2Octet" destinationport="chip2octet_ch_in" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8"  />
+<TMLCHANNEL name="FORKCHANNEL_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in" origintask="FORKTASK_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in" originport="FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in" destinationtask="Zigbee_TX__X_CWP_Q" destinationport="cwpQ_ch_in" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8"  />
+<TMLCHANNEL name="FORKCHANNEL_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in" origintask="FORKTASK_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in" originport="FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in" destinationtask="Zigbee_TX__X_CWP_I" destinationport="cwpI_ch_in" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8"  />
+<TMLCHANNEL name="JOINCHANNEL_S_0__Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in" origintask="Zigbee_TX__X_CWP_I" originport="cwpI_ch_out" destinationtask="JOINTASK_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in" destinationport="JOINPORTDESTINATION_S_0_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8"  />
+<TMLCHANNEL name="JOINCHANNEL_S_1__Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in" origintask="Zigbee_TX__X_CWP_Q" originport="cwpQ_ch_out" destinationtask="JOINTASK_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in" destinationport="JOINPORTDESTINATION_S_1_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in" dataFlowType="uint_16" isLossy="false" lossPercentage="0" maxNbOfLoss="0" type="BRBW" size="4" max="8"  />
 <TMLREQUEST name="Zigbee_TX__sink_req" destinationtask="Zigbee_TX__X_Sink" isLossy="false" lossPercentage="0" maxNbOfLoss="0"  >
 <ORIGINTASK name="Zigbee_TX__F_Sink" /> <PARAM type="int" /></TMLREQUEST>
 <TMLREQUEST name="Zigbee_TX__source_req" destinationtask="Zigbee_TX__X_Source" isLossy="false" lossPercentage="0" maxNbOfLoss="0"  >
@@ -470,6 +538,8 @@
 <TASKMAP node="FEP_PSS" task="Zigbee_TX__X_CWP_Q" />
 <TASKMAP node="FEP_PSS" task="Zigbee_TX__X_CWL" />
 <TASKMAP node="MAPPER_PSS" task="Zigbee_TX__X_Symbol2ChipSeq" />
+<TASKMAP node="FEP_PSS" task="FORKTASK_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in" />
+<TASKMAP node="ADAIF_PSS" task="JOINTASK_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in" />
 <TMLCPLIB name="CP_Symbol2ChipSeq_Chips2Octet::DMA_transfer" cpMECType="1" typeName="DMA_transfer">
 <TMLCPLIBARTIFACT taskName="Zigbee_TX::chip2octet_ch_in" portName="chip2octet_ch_in" memoryName="INTL_MSS" priority="5" >
 <BUFFERPARAMETERS param="3" />
diff --git a/ttool/src/test/resources/ui/generateccode/Mapping_0/expected/Zigbee_TX.c b/ttool/src/test/resources/ui/generateccode/Mapping_0/expected/Zigbee_TX.c
index 38f2f25615194f9b686e5e8a4c343e16f080f018..03975f3b8faef728519a213a3849816b2970b034 100644
--- a/ttool/src/test/resources/ui/generateccode/Mapping_0/expected/Zigbee_TX.c
+++ b/ttool/src/test/resources/ui/generateccode/Mapping_0/expected/Zigbee_TX.c
@@ -62,8 +62,7 @@ int op_F_Symbol2ChipSeq()	{
 int op_F_Sink()	{
 
 	int status = 0;
-	sig[cwpI_ch_out_CP].f = false;
-	sig[cwpQ_ch_out_CP].f = false;
+	sig[JOINPORTORIGIN_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in_CP].f = false;
 	adaif_wait(&X_Sink_ctx);
 	status = adaif_wait(&X_Sink_ctx);
 	sig[sink_ch_in].f = true;
@@ -88,12 +87,12 @@ int op_F_CWL()	{
 int op_F_CWP_Q()	{
 
 	int status = 0;
-	sig[cwl_ch_out].f = false;
+	sig[FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].f = false;
 	/*firm instruction*/
-	fep_set_l(&X_CWP_Q_ctx, ((FEP_BUFFER_TYPE*)sig[cwl_ch_out].pBuff)->num_samples);
-	fep_set_qx(&X_CWP_Q_ctx, ((FEP_BUFFER_TYPE*)sig[cwl_ch_out].pBuff)->bank);
-	fep_set_bx(&X_CWP_Q_ctx, ((FEP_BUFFER_TYPE*)sig[cwl_ch_out].pBuff)->base_address);
-	fep_set_tx(&X_CWP_Q_ctx, ((FEP_BUFFER_TYPE*)sig[cwl_ch_out].pBuff)->data_type);
+	fep_set_l(&X_CWP_Q_ctx, ((FEP_BUFFER_TYPE*)sig[FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff)->num_samples);
+	fep_set_qx(&X_CWP_Q_ctx, ((FEP_BUFFER_TYPE*)sig[FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff)->bank);
+	fep_set_bx(&X_CWP_Q_ctx, ((FEP_BUFFER_TYPE*)sig[FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff)->base_address);
+	fep_set_tx(&X_CWP_Q_ctx, ((FEP_BUFFER_TYPE*)sig[FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff)->data_type);
 	/*start execution*/
 	status = fep_do(&X_CWP_Q_ctx);
 	sig[cwpQ_ch_out].f = true;
@@ -103,12 +102,12 @@ int op_F_CWP_Q()	{
 int op_F_CWP_I()	{
 
 	int status = 0;
-	sig[cwl_ch_out].f = false;
+	sig[FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].f = false;
 	/*firm instruction*/
-	fep_set_l(&X_CWP_I_ctx, ((FEP_BUFFER_TYPE*)sig[cwl_ch_out].pBuff)->num_samples);
-	fep_set_qx(&X_CWP_I_ctx, ((FEP_BUFFER_TYPE*)sig[cwl_ch_out].pBuff)->bank);
-	fep_set_bx(&X_CWP_I_ctx, ((FEP_BUFFER_TYPE*)sig[cwl_ch_out].pBuff)->base_address);
-	fep_set_tx(&X_CWP_I_ctx, ((FEP_BUFFER_TYPE*)sig[cwl_ch_out].pBuff)->data_type);
+	fep_set_l(&X_CWP_I_ctx, ((FEP_BUFFER_TYPE*)sig[FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff)->num_samples);
+	fep_set_qx(&X_CWP_I_ctx, ((FEP_BUFFER_TYPE*)sig[FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff)->bank);
+	fep_set_bx(&X_CWP_I_ctx, ((FEP_BUFFER_TYPE*)sig[FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff)->base_address);
+	fep_set_tx(&X_CWP_I_ctx, ((FEP_BUFFER_TYPE*)sig[FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff)->data_type);
 	/*start execution*/
 	status = fep_do(&X_CWP_I_ctx);
 	sig[cwpI_ch_out].f = true;
@@ -141,12 +140,10 @@ int op_CP_Chip2Octet_CWL()	{
 
 int op_CP_sink()	{
 	int status = 0;
-	sig[ cwpI_ch_out ].f = false;
-	sig[ cwpQ_ch_out ].f = false;
+	sig[ JOINPORTORIGIN_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in ].f = false;
 	embb_mem2ip((EMBB_CONTEXT *)&CP_sink_ctx_0, (uintptr_t) fep_mss, 0/* USER TO DO */, 0/* USER TO DO */ );
 	embb_mem2ip((EMBB_CONTEXT *)&CP_sink_ctx_1, (uintptr_t) fep_mss, 0/* USER TO DO */, 0/* USER TO DO */ );
-	sig[ cwpI_ch_out_CP ].f = true;
-	sig[ cwpQ_ch_out_CP ].f = true;
+	sig[ JOINPORTORIGIN_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in_CP ].f = true;
 	return status;
 }
 
@@ -185,7 +182,7 @@ bool fr_F_Symbol2ChipSeq( void )	{
 }
 
 bool fr_F_Sink( void )	{
-	return ( ( sig[ cwpI_ch_out_CP ].f ) && ( sig[ cwpQ_ch_out_CP ].f ));
+	return (( sig[ JOINPORTORIGIN_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in_CP ].f ));
 }
 
 bool fr_F_CWL( void )	{
@@ -193,11 +190,11 @@ bool fr_F_CWL( void )	{
 }
 
 bool fr_F_CWP_Q( void )	{
-	return (( sig[ cwl_ch_out ].f ) && ( !sig[ cwpQ_ch_out ].f ));
+	return (( sig[ FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in ].f ) && ( !sig[ cwpQ_ch_out ].f ));
 }
 
 bool fr_F_CWP_I( void )	{
-	return (( sig[ cwl_ch_out ].f ) && ( !sig[ cwpI_ch_out ].f ));
+	return (( sig[ FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in ].f ) && ( !sig[ cwpI_ch_out ].f ));
 }
 
 bool fr_F_Chip2Octet( void )	{
@@ -215,7 +212,7 @@ bool fr_CP_Chip2Octet_CWL( void )	{
 }
 
 bool fr_CP_sink( void )	{
-	return ( ( sig[ cwpI_ch_out ].f ) &&( sig[ cwpQ_ch_out ].f ) &&( !sig[ cwpI_ch_out_CP ].f ) &&( !sig[ cwpQ_ch_out_CP ].f ) );
+	return ( ( sig[ JOINPORTORIGIN_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in ].f ) &&( !sig[ JOINPORTORIGIN_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in_CP ].f ) );
 }
 
 bool fr_CP_Source_to_Bits2Symbol( void )	{
diff --git a/ttool/src/test/resources/ui/generateccode/Mapping_0/expected/Zigbee_TX.h b/ttool/src/test/resources/ui/generateccode/Mapping_0/expected/Zigbee_TX.h
index 0bbff8c22ec9ba04a88752d22c6f45b4182b6abe..d94214845c2ed70c5b0bd2605fd52c9a7e54229f 100644
--- a/ttool/src/test/resources/ui/generateccode/Mapping_0/expected/Zigbee_TX.h
+++ b/ttool/src/test/resources/ui/generateccode/Mapping_0/expected/Zigbee_TX.h
@@ -122,14 +122,16 @@ extern MAPPER_CONTEXT CP_Source_to_Bits2Symbol_ctx;
 enum sigs_enu {
 	Source_ch_out,
 	chip2octet_ch_out,
-	cwpI_ch_out,
-	cwpQ_ch_out,
+	JOINPORTORIGIN_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in,
 	cwl_ch_out,
 	symbol2ChipSeq_ch_out,
+	FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in,
+	FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in,
+	cwpI_ch_out,
+	cwpQ_ch_out,
 	symbol2ChipSeq_ch_out_CP,
 	chip2octet_ch_out_CP,
-	cwpI_ch_out_CP,
-	cwpQ_ch_out_CP,
+	JOINPORTORIGIN_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in_CP,
 	Source_ch_out_CP,
 	sink_ch_in,
 NUM_SIGS };
diff --git a/ttool/src/test/resources/ui/generateccode/Mapping_0/expected/Zigbee_TX_init.c b/ttool/src/test/resources/ui/generateccode/Mapping_0/expected/Zigbee_TX_init.c
index 7e0d1923cc5afd47fdc826957b6bd158e14246ab..149c129c689054acd05a04854b7827f99fa33672 100644
--- a/ttool/src/test/resources/ui/generateccode/Mapping_0/expected/Zigbee_TX_init.c
+++ b/ttool/src/test/resources/ui/generateccode/Mapping_0/expected/Zigbee_TX_init.c
@@ -104,11 +104,8 @@ void init_signals()	{
 	sig[chip2octet_ch_out].f = false;
 	sig[chip2octet_ch_out].pBuff = (MM_BUFFER_TYPE*) &buff_chip2octet_ch_out;
 
-	sig[cwpI_ch_out].f = false;
-	sig[cwpI_ch_out].pBuff = (FEP_BUFFER_TYPE*) &buff_cwpI_ch_out;
-
-	sig[cwpQ_ch_out].f = false;
-	sig[cwpQ_ch_out].pBuff = (FEP_BUFFER_TYPE*) &buff_cwpQ_ch_out;
+	sig[JOINPORTORIGIN_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in].f = false;
+	sig[JOINPORTORIGIN_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in].pBuff = /* USER TO DO */;
 
 	sig[cwl_ch_out].f = false;
 	sig[cwl_ch_out].pBuff = (FEP_BUFFER_TYPE*) &buff_cwl_ch_out;
@@ -116,17 +113,26 @@ void init_signals()	{
 	sig[symbol2ChipSeq_ch_out].f = false;
 	sig[symbol2ChipSeq_ch_out].pBuff = (MAPPER_BUFFER_TYPE*) &buff_symbol2ChipSeq_ch_out;
 
+	sig[FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].f = false;
+	sig[FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff = /* USER TO DO */;
+
+	sig[FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].f = false;
+	sig[FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff = /* USER TO DO */;
+
+	sig[cwpI_ch_out].f = false;
+	sig[cwpI_ch_out].pBuff = (FEP_BUFFER_TYPE*) &buff_cwpI_ch_out;
+
+	sig[cwpQ_ch_out].f = false;
+	sig[cwpQ_ch_out].pBuff = (FEP_BUFFER_TYPE*) &buff_cwpQ_ch_out;
+
 	sig[symbol2ChipSeq_ch_out_CP].f = false;
 	sig[symbol2ChipSeq_ch_out_CP].pBuff = (MAPPER_BUFFER_TYPE*) &buff_symbol2ChipSeq_ch_out;
 
 	sig[chip2octet_ch_out_CP].f = false;
 	sig[chip2octet_ch_out_CP].pBuff = (MM_BUFFER_TYPE*) &buff_chip2octet_ch_out;
 
-	sig[cwpI_ch_out_CP].f = false;
-	sig[cwpI_ch_out_CP].pBuff = (FEP_BUFFER_TYPE*) &buff_cwpI_ch_out;
-
-	sig[cwpQ_ch_out_CP].f = false;
-	sig[cwpQ_ch_out_CP].pBuff = (FEP_BUFFER_TYPE*) &buff_cwpQ_ch_out;
+	sig[JOINPORTORIGIN_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in_CP].f = false;
+	sig[JOINPORTORIGIN_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in_CP].pBuff = /* USER TO DO */;
 
 	sig[Source_ch_out_CP].f = false;
 	sig[Source_ch_out_CP].pBuff = (MM_BUFFER_TYPE*) &buff_Source_ch_out;
diff --git a/ttool/src/test/resources/ui/generateccode/Mapping_1/expected/Zigbee_TX.c b/ttool/src/test/resources/ui/generateccode/Mapping_1/expected/Zigbee_TX.c
index 9ae69f8685e23d9edc9d0b408b4076990f80c2f8..651d804332e381e605e4996953a1bd5abb525dbb 100644
--- a/ttool/src/test/resources/ui/generateccode/Mapping_1/expected/Zigbee_TX.c
+++ b/ttool/src/test/resources/ui/generateccode/Mapping_1/expected/Zigbee_TX.c
@@ -43,12 +43,12 @@ int Zigbee_TX_exec(void)    {
 int op_F_CWP_I()	{
 
 	int status = 0;
-	sig[cwl_ch_out].f = false;
+	sig[FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].f = false;
 	/*firm instruction*/
-	fep_set_l(&X_CWP_I_ctx, ((FEP_BUFFER_TYPE*)sig[cwl_ch_out].pBuff)->num_samples);
-	fep_set_qx(&X_CWP_I_ctx, ((FEP_BUFFER_TYPE*)sig[cwl_ch_out].pBuff)->bank);
-	fep_set_bx(&X_CWP_I_ctx, ((FEP_BUFFER_TYPE*)sig[cwl_ch_out].pBuff)->base_address);
-	fep_set_tx(&X_CWP_I_ctx, ((FEP_BUFFER_TYPE*)sig[cwl_ch_out].pBuff)->data_type);
+	fep_set_l(&X_CWP_I_ctx, ((FEP_BUFFER_TYPE*)sig[FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff)->num_samples);
+	fep_set_qx(&X_CWP_I_ctx, ((FEP_BUFFER_TYPE*)sig[FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff)->bank);
+	fep_set_bx(&X_CWP_I_ctx, ((FEP_BUFFER_TYPE*)sig[FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff)->base_address);
+	fep_set_tx(&X_CWP_I_ctx, ((FEP_BUFFER_TYPE*)sig[FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff)->data_type);
 	/*start execution*/
 	status = fep_do(&X_CWP_I_ctx);
 	sig[cwpI_ch_out].f = true;
@@ -58,12 +58,12 @@ int op_F_CWP_I()	{
 int op_F_CWP_Q()	{
 
 	int status = 0;
-	sig[cwl_ch_out].f = false;
+	sig[FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].f = false;
 	/*firm instruction*/
-	fep_set_l(&X_CWP_Q_ctx, ((FEP_BUFFER_TYPE*)sig[cwl_ch_out].pBuff)->num_samples);
-	fep_set_qx(&X_CWP_Q_ctx, ((FEP_BUFFER_TYPE*)sig[cwl_ch_out].pBuff)->bank);
-	fep_set_bx(&X_CWP_Q_ctx, ((FEP_BUFFER_TYPE*)sig[cwl_ch_out].pBuff)->base_address);
-	fep_set_tx(&X_CWP_Q_ctx, ((FEP_BUFFER_TYPE*)sig[cwl_ch_out].pBuff)->data_type);
+	fep_set_l(&X_CWP_Q_ctx, ((FEP_BUFFER_TYPE*)sig[FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff)->num_samples);
+	fep_set_qx(&X_CWP_Q_ctx, ((FEP_BUFFER_TYPE*)sig[FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff)->bank);
+	fep_set_bx(&X_CWP_Q_ctx, ((FEP_BUFFER_TYPE*)sig[FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff)->base_address);
+	fep_set_tx(&X_CWP_Q_ctx, ((FEP_BUFFER_TYPE*)sig[FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff)->data_type);
 	/*start execution*/
 	status = fep_do(&X_CWP_Q_ctx);
 	sig[cwpQ_ch_out].f = true;
@@ -88,8 +88,7 @@ int op_F_CWL()	{
 int op_F_Sink()	{
 
 	int status = 0;
-	sig[cwpQ_ch_out_CP].f = false;
-	sig[cwpI_ch_out_CP].f = false;
+	sig[JOINPORTORIGIN_S_Zigbee_TX__cwpQ_ch_out__sink_ch_in__cwpI_ch_out_CP].f = false;
 	adaif_wait(&X_Sink_ctx);
 	status = adaif_wait(&X_Sink_ctx);
 	sig[sink_ch_in].f = true;
@@ -144,12 +143,10 @@ int op_CP_Chip2Octet_CWL()	{
 
 int op_CP_sink()	{
 	int status = 0;
-	sig[ cwpQ_ch_out ].f = false;
-	sig[ cwpI_ch_out ].f = false;
+	sig[ JOINPORTORIGIN_S_Zigbee_TX__cwpQ_ch_out__sink_ch_in__cwpI_ch_out ].f = false;
 	embb_mem2ip((EMBB_CONTEXT *)&CP_sink_ctx_0, (uintptr_t) fep_mss, 0/* USER TO DO */, 0/* USER TO DO */ );
 	embb_mem2ip((EMBB_CONTEXT *)&CP_sink_ctx_1, (uintptr_t) fep_mss, 0/* USER TO DO */, 0/* USER TO DO */ );
-	sig[ cwpQ_ch_out_CP ].f = true;
-	sig[ cwpI_ch_out_CP ].f = true;
+	sig[ JOINPORTORIGIN_S_Zigbee_TX__cwpQ_ch_out__sink_ch_in__cwpI_ch_out_CP ].f = true;
 	return status;
 }
 
@@ -180,11 +177,11 @@ void register_dataTransfers( void )	{
 
 /**** OPERATIONS FIRE RULES ****/
 bool fr_F_CWP_I( void )	{
-	return (( sig[ cwl_ch_out ].f ) && ( !sig[ cwpI_ch_out ].f ));
+	return (( sig[ FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in ].f ) && ( !sig[ cwpI_ch_out ].f ));
 }
 
 bool fr_F_CWP_Q( void )	{
-	return (( sig[ cwl_ch_out ].f ) && ( !sig[ cwpQ_ch_out ].f ));
+	return (( sig[ FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in ].f ) && ( !sig[ cwpQ_ch_out ].f ));
 }
 
 bool fr_F_CWL( void )	{
@@ -192,7 +189,7 @@ bool fr_F_CWL( void )	{
 }
 
 bool fr_F_Sink( void )	{
-	return ( ( sig[ cwpQ_ch_out_CP ].f ) && ( sig[ cwpI_ch_out_CP ].f ));
+	return (( sig[ JOINPORTORIGIN_S_Zigbee_TX__cwpQ_ch_out__sink_ch_in__cwpI_ch_out_CP ].f ));
 }
 
 bool fr_F_Chip2Octet( void )	{
@@ -218,7 +215,7 @@ bool fr_CP_Chip2Octet_CWL( void )	{
 }
 
 bool fr_CP_sink( void )	{
-	return ( ( sig[ cwpQ_ch_out ].f ) &&( sig[ cwpI_ch_out ].f ) &&( !sig[ cwpQ_ch_out_CP ].f ) &&( !sig[ cwpI_ch_out_CP ].f ) );
+	return ( ( sig[ JOINPORTORIGIN_S_Zigbee_TX__cwpQ_ch_out__sink_ch_in__cwpI_ch_out ].f ) &&( !sig[ JOINPORTORIGIN_S_Zigbee_TX__cwpQ_ch_out__sink_ch_in__cwpI_ch_out_CP ].f ) );
 }
 
 bool fr_CP_Source_to_Bits2Symbol( void )	{
diff --git a/ttool/src/test/resources/ui/generateccode/Mapping_1/expected/Zigbee_TX.h b/ttool/src/test/resources/ui/generateccode/Mapping_1/expected/Zigbee_TX.h
index 535e3b6ef9097d4274788d88394fff4ba4b661c6..403d434230d0ad26b5b1fb2e6272e753093ffd9a 100644
--- a/ttool/src/test/resources/ui/generateccode/Mapping_1/expected/Zigbee_TX.h
+++ b/ttool/src/test/resources/ui/generateccode/Mapping_1/expected/Zigbee_TX.h
@@ -123,13 +123,15 @@ enum sigs_enu {
 	Source_ch_out,
 	chip2octet_ch_out,
 	cwl_ch_out,
+	JOINPORTORIGIN_S_Zigbee_TX__cwpQ_ch_out__sink_ch_in__cwpI_ch_out,
+	symbol2ChipSeq_ch_out,
+	FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in,
+	FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in,
 	cwpQ_ch_out,
 	cwpI_ch_out,
-	symbol2ChipSeq_ch_out,
 	symbol2ChipSeq_ch_out_CP,
 	chip2octet_ch_out_CP,
-	cwpQ_ch_out_CP,
-	cwpI_ch_out_CP,
+	JOINPORTORIGIN_S_Zigbee_TX__cwpQ_ch_out__sink_ch_in__cwpI_ch_out_CP,
 	Source_ch_out_CP,
 	sink_ch_in,
 NUM_SIGS };
diff --git a/ttool/src/test/resources/ui/generateccode/Mapping_1/expected/Zigbee_TX_init.c b/ttool/src/test/resources/ui/generateccode/Mapping_1/expected/Zigbee_TX_init.c
index 4d2920ffe66a5bdb15ce8ff6b293cd74174fa777..ab43718b2cda390f673fac19929371a1f51a941e 100644
--- a/ttool/src/test/resources/ui/generateccode/Mapping_1/expected/Zigbee_TX_init.c
+++ b/ttool/src/test/resources/ui/generateccode/Mapping_1/expected/Zigbee_TX_init.c
@@ -121,26 +121,32 @@ void init_signals()	{
 	sig[cwl_ch_out].f = false;
 	sig[cwl_ch_out].pBuff = (FEP_BUFFER_TYPE*) &buff_cwl_ch_out;
 
+	sig[JOINPORTORIGIN_S_Zigbee_TX__cwpQ_ch_out__sink_ch_in__cwpI_ch_out].f = false;
+	sig[JOINPORTORIGIN_S_Zigbee_TX__cwpQ_ch_out__sink_ch_in__cwpI_ch_out].pBuff = /* USER TO DO */;
+
+	sig[symbol2ChipSeq_ch_out].f = false;
+	sig[symbol2ChipSeq_ch_out].pBuff = (MAPPER_BUFFER_TYPE*) &buff_symbol2ChipSeq_ch_out;
+
+	sig[FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].f = false;
+	sig[FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff = /* USER TO DO */;
+
+	sig[FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].f = false;
+	sig[FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff = /* USER TO DO */;
+
 	sig[cwpQ_ch_out].f = false;
 	sig[cwpQ_ch_out].pBuff = (FEP_BUFFER_TYPE*) &buff_cwpQ_ch_out;
 
 	sig[cwpI_ch_out].f = false;
 	sig[cwpI_ch_out].pBuff = (FEP_BUFFER_TYPE*) &buff_cwpI_ch_out;
 
-	sig[symbol2ChipSeq_ch_out].f = false;
-	sig[symbol2ChipSeq_ch_out].pBuff = (MAPPER_BUFFER_TYPE*) &buff_symbol2ChipSeq_ch_out;
-
 	sig[symbol2ChipSeq_ch_out_CP].f = false;
 	sig[symbol2ChipSeq_ch_out_CP].pBuff = (MAPPER_BUFFER_TYPE*) &buff_symbol2ChipSeq_ch_out;
 
 	sig[chip2octet_ch_out_CP].f = false;
 	sig[chip2octet_ch_out_CP].pBuff = (INTERLEAVER_BUFFER_TYPE*) &buff_chip2octet_ch_out;
 
-	sig[cwpQ_ch_out_CP].f = false;
-	sig[cwpQ_ch_out_CP].pBuff = (FEP_BUFFER_TYPE*) &buff_cwpQ_ch_out;
-
-	sig[cwpI_ch_out_CP].f = false;
-	sig[cwpI_ch_out_CP].pBuff = (FEP_BUFFER_TYPE*) &buff_cwpI_ch_out;
+	sig[JOINPORTORIGIN_S_Zigbee_TX__cwpQ_ch_out__sink_ch_in__cwpI_ch_out_CP].f = false;
+	sig[JOINPORTORIGIN_S_Zigbee_TX__cwpQ_ch_out__sink_ch_in__cwpI_ch_out_CP].pBuff = /* USER TO DO */;
 
 	sig[Source_ch_out_CP].f = false;
 	sig[Source_ch_out_CP].pBuff = (MM_BUFFER_TYPE*) &buff_Source_ch_out;
diff --git a/ttool/src/test/resources/ui/generateccode/Mapping_2/expected/Zigbee_TX.c b/ttool/src/test/resources/ui/generateccode/Mapping_2/expected/Zigbee_TX.c
index d9b7d67d66b0daccc68d5dfc54d2d38d3ff0e3c1..6dac4cd08bec09340c9f8999f8baf63522170fc6 100644
--- a/ttool/src/test/resources/ui/generateccode/Mapping_2/expected/Zigbee_TX.c
+++ b/ttool/src/test/resources/ui/generateccode/Mapping_2/expected/Zigbee_TX.c
@@ -73,8 +73,7 @@ int op_F_Chip2Octet()	{
 int op_F_Sink()	{
 
 	int status = 0;
-	sig[cwpI_ch_out_CP].f = false;
-	sig[cwpQ_ch_out_CP].f = false;
+	sig[JOINPORTORIGIN_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in_CP].f = false;
 	adaif_wait(&X_Sink_ctx);
 	status = adaif_wait(&X_Sink_ctx);
 	sig[sink_ch_in].f = true;
@@ -99,12 +98,12 @@ int op_F_CWL()	{
 int op_F_CWP_Q()	{
 
 	int status = 0;
-	sig[cwl_ch_out].f = false;
+	sig[FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].f = false;
 	/*firm instruction*/
-	fep_set_l(&X_CWP_Q_ctx, ((FEP_BUFFER_TYPE*)sig[cwl_ch_out].pBuff)->num_samples);
-	fep_set_qx(&X_CWP_Q_ctx, ((FEP_BUFFER_TYPE*)sig[cwl_ch_out].pBuff)->bank);
-	fep_set_bx(&X_CWP_Q_ctx, ((FEP_BUFFER_TYPE*)sig[cwl_ch_out].pBuff)->base_address);
-	fep_set_tx(&X_CWP_Q_ctx, ((FEP_BUFFER_TYPE*)sig[cwl_ch_out].pBuff)->data_type);
+	fep_set_l(&X_CWP_Q_ctx, ((FEP_BUFFER_TYPE*)sig[FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff)->num_samples);
+	fep_set_qx(&X_CWP_Q_ctx, ((FEP_BUFFER_TYPE*)sig[FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff)->bank);
+	fep_set_bx(&X_CWP_Q_ctx, ((FEP_BUFFER_TYPE*)sig[FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff)->base_address);
+	fep_set_tx(&X_CWP_Q_ctx, ((FEP_BUFFER_TYPE*)sig[FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff)->data_type);
 	/*start execution*/
 	status = fep_do(&X_CWP_Q_ctx);
 	sig[cwpQ_ch_out].f = true;
@@ -114,12 +113,12 @@ int op_F_CWP_Q()	{
 int op_F_CWP_I()	{
 
 	int status = 0;
-	sig[cwl_ch_out].f = false;
+	sig[FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].f = false;
 	/*firm instruction*/
-	fep_set_l(&X_CWP_I_ctx, ((FEP_BUFFER_TYPE*)sig[cwl_ch_out].pBuff)->num_samples);
-	fep_set_qx(&X_CWP_I_ctx, ((FEP_BUFFER_TYPE*)sig[cwl_ch_out].pBuff)->bank);
-	fep_set_bx(&X_CWP_I_ctx, ((FEP_BUFFER_TYPE*)sig[cwl_ch_out].pBuff)->base_address);
-	fep_set_tx(&X_CWP_I_ctx, ((FEP_BUFFER_TYPE*)sig[cwl_ch_out].pBuff)->data_type);
+	fep_set_l(&X_CWP_I_ctx, ((FEP_BUFFER_TYPE*)sig[FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff)->num_samples);
+	fep_set_qx(&X_CWP_I_ctx, ((FEP_BUFFER_TYPE*)sig[FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff)->bank);
+	fep_set_bx(&X_CWP_I_ctx, ((FEP_BUFFER_TYPE*)sig[FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff)->base_address);
+	fep_set_tx(&X_CWP_I_ctx, ((FEP_BUFFER_TYPE*)sig[FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff)->data_type);
 	/*start execution*/
 	status = fep_do(&X_CWP_I_ctx);
 	sig[cwpI_ch_out].f = true;
@@ -144,12 +143,10 @@ int op_CP_Chip2Octet_CWL()	{
 
 int op_CP_sink()	{
 	int status = 0;
-	sig[ cwpI_ch_out ].f = false;
-	sig[ cwpQ_ch_out ].f = false;
+	sig[ JOINPORTORIGIN_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in ].f = false;
 	embb_mem2ip((EMBB_CONTEXT *)&CP_sink_ctx_0, (uintptr_t) fep_mss, 0/* USER TO DO */, 0/* USER TO DO */ );
 	embb_mem2ip((EMBB_CONTEXT *)&CP_sink_ctx_1, (uintptr_t) fep_mss, 0/* USER TO DO */, 0/* USER TO DO */ );
-	sig[ cwpI_ch_out_CP ].f = true;
-	sig[ cwpQ_ch_out_CP ].f = true;
+	sig[ JOINPORTORIGIN_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in_CP ].f = true;
 	return status;
 }
 
@@ -192,7 +189,7 @@ bool fr_F_Chip2Octet( void )	{
 }
 
 bool fr_F_Sink( void )	{
-	return ( ( sig[ cwpI_ch_out_CP ].f ) && ( sig[ cwpQ_ch_out_CP ].f ));
+	return (( sig[ JOINPORTORIGIN_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in_CP ].f ));
 }
 
 bool fr_F_CWL( void )	{
@@ -200,11 +197,11 @@ bool fr_F_CWL( void )	{
 }
 
 bool fr_F_CWP_Q( void )	{
-	return (( sig[ cwl_ch_out ].f ) && ( !sig[ cwpQ_ch_out ].f ));
+	return (( sig[ FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in ].f ) && ( !sig[ cwpQ_ch_out ].f ));
 }
 
 bool fr_F_CWP_I( void )	{
-	return (( sig[ cwl_ch_out ].f ) && ( !sig[ cwpI_ch_out ].f ));
+	return (( sig[ FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in ].f ) && ( !sig[ cwpI_ch_out ].f ));
 }
 
 
@@ -218,7 +215,7 @@ bool fr_CP_Chip2Octet_CWL( void )	{
 }
 
 bool fr_CP_sink( void )	{
-	return ( ( sig[ cwpI_ch_out ].f ) &&( sig[ cwpQ_ch_out ].f ) &&( !sig[ cwpI_ch_out_CP ].f ) &&( !sig[ cwpQ_ch_out_CP ].f ) );
+	return ( ( sig[ JOINPORTORIGIN_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in ].f ) &&( !sig[ JOINPORTORIGIN_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in_CP ].f ) );
 }
 
 bool fr_CP_Source_to_Bits2Symbol( void )	{
diff --git a/ttool/src/test/resources/ui/generateccode/Mapping_2/expected/Zigbee_TX.h b/ttool/src/test/resources/ui/generateccode/Mapping_2/expected/Zigbee_TX.h
index 706daf5ef3febd8d815a2a5a3dfba5d009fdc2db..c233e5c5b1411fae07e3e1a14af2d6656b2bc684 100644
--- a/ttool/src/test/resources/ui/generateccode/Mapping_2/expected/Zigbee_TX.h
+++ b/ttool/src/test/resources/ui/generateccode/Mapping_2/expected/Zigbee_TX.h
@@ -122,14 +122,16 @@ extern MAPPER_CONTEXT CP_Source_to_Bits2Symbol_ctx;
 enum sigs_enu {
 	Source_ch_out,
 	chip2octet_ch_out,
-	cwpI_ch_out,
-	cwpQ_ch_out,
+	JOINPORTORIGIN_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in,
 	cwl_ch_out,
 	symbol2ChipSeq_ch_out,
+	FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in,
+	FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in,
+	cwpI_ch_out,
+	cwpQ_ch_out,
 	symbol2ChipSeq_ch_out_CP,
 	chip2octet_ch_out_CP,
-	cwpI_ch_out_CP,
-	cwpQ_ch_out_CP,
+	JOINPORTORIGIN_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in_CP,
 	Source_ch_out_CP,
 	sink_ch_in,
 NUM_SIGS };
diff --git a/ttool/src/test/resources/ui/generateccode/Mapping_2/expected/Zigbee_TX_init.c b/ttool/src/test/resources/ui/generateccode/Mapping_2/expected/Zigbee_TX_init.c
index 4f917275a439f309ba4b92251a646f9e45747c2f..6564487f25d3c21f40aac0e3126e772708cf1a6d 100644
--- a/ttool/src/test/resources/ui/generateccode/Mapping_2/expected/Zigbee_TX_init.c
+++ b/ttool/src/test/resources/ui/generateccode/Mapping_2/expected/Zigbee_TX_init.c
@@ -118,11 +118,8 @@ void init_signals()	{
 	sig[chip2octet_ch_out].f = false;
 	sig[chip2octet_ch_out].pBuff = (INTERLEAVER_BUFFER_TYPE*) &buff_chip2octet_ch_out;
 
-	sig[cwpI_ch_out].f = false;
-	sig[cwpI_ch_out].pBuff = (FEP_BUFFER_TYPE*) &buff_cwpI_ch_out;
-
-	sig[cwpQ_ch_out].f = false;
-	sig[cwpQ_ch_out].pBuff = (FEP_BUFFER_TYPE*) &buff_cwpQ_ch_out;
+	sig[JOINPORTORIGIN_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in].f = false;
+	sig[JOINPORTORIGIN_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in].pBuff = /* USER TO DO */;
 
 	sig[cwl_ch_out].f = false;
 	sig[cwl_ch_out].pBuff = (FEP_BUFFER_TYPE*) &buff_cwl_ch_out;
@@ -130,17 +127,26 @@ void init_signals()	{
 	sig[symbol2ChipSeq_ch_out].f = false;
 	sig[symbol2ChipSeq_ch_out].pBuff = (MAPPER_BUFFER_TYPE*) &buff_symbol2ChipSeq_ch_out;
 
+	sig[FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].f = false;
+	sig[FORKPORTORIGIN_S_0_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff = /* USER TO DO */;
+
+	sig[FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].f = false;
+	sig[FORKPORTORIGIN_S_1_S_Zigbee_TX__cwl_ch_out__cwpQ_ch_in__cwpI_ch_in].pBuff = /* USER TO DO */;
+
+	sig[cwpI_ch_out].f = false;
+	sig[cwpI_ch_out].pBuff = (FEP_BUFFER_TYPE*) &buff_cwpI_ch_out;
+
+	sig[cwpQ_ch_out].f = false;
+	sig[cwpQ_ch_out].pBuff = (FEP_BUFFER_TYPE*) &buff_cwpQ_ch_out;
+
 	sig[symbol2ChipSeq_ch_out_CP].f = false;
 	sig[symbol2ChipSeq_ch_out_CP].pBuff = (MAPPER_BUFFER_TYPE*) &buff_symbol2ChipSeq_ch_out;
 
 	sig[chip2octet_ch_out_CP].f = false;
 	sig[chip2octet_ch_out_CP].pBuff = (INTERLEAVER_BUFFER_TYPE*) &buff_chip2octet_ch_out;
 
-	sig[cwpI_ch_out_CP].f = false;
-	sig[cwpI_ch_out_CP].pBuff = (FEP_BUFFER_TYPE*) &buff_cwpI_ch_out;
-
-	sig[cwpQ_ch_out_CP].f = false;
-	sig[cwpQ_ch_out_CP].pBuff = (FEP_BUFFER_TYPE*) &buff_cwpQ_ch_out;
+	sig[JOINPORTORIGIN_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in_CP].f = false;
+	sig[JOINPORTORIGIN_S_Zigbee_TX__cwpI_ch_out__cwpQ_ch_out__sink_ch_in_CP].pBuff = /* USER TO DO */;
 
 	sig[Source_ch_out_CP].f = false;
 	sig[Source_ch_out_CP].pBuff = (MM_BUFFER_TYPE*) &buff_Source_ch_out;