From ab46c196896219c155270ad8c69bddf68d66a207 Mon Sep 17 00:00:00 2001
From: "le.truong" <le.truong@telecom-paris.fr>
Date: Mon, 21 Jun 2021 12:24:47 +0200
Subject: [PATCH] add function to parse data from .tmap .tarchi .tml file

---
 .../TMLArchiTextSpecification.java            |  7 ++++++-
 .../tmltranslator/TMLTextSpecification.java   |  2 +-
 .../BusSliceTimeConfigurationTest.java        | 21 ++++++++++++-------
 .../simulator/bus_rr_not_preempted.tarchi     |  1 +
 .../simulator/bus_rr_not_preempted.tml        |  8 +++----
 .../simulator/bus_rr_preempted.tarchi         |  3 ++-
 .../simulator/bus_rr_preempted.tml            |  8 +++----
 .../simulator/bus_rrpb_not_preempted.tarchi   |  1 +
 .../simulator/bus_rrpb_not_preempted.tml      |  8 +++----
 .../simulator/bus_rrpb_preempted.tarchi       |  3 ++-
 .../simulator/bus_rrpb_preempted.tml          |  8 +++----
 11 files changed, 42 insertions(+), 28 deletions(-)

diff --git a/src/main/java/tmltranslator/TMLArchiTextSpecification.java b/src/main/java/tmltranslator/TMLArchiTextSpecification.java
index 6d13fb1a7d..77402c8cb2 100755
--- a/src/main/java/tmltranslator/TMLArchiTextSpecification.java
+++ b/src/main/java/tmltranslator/TMLArchiTextSpecification.java
@@ -78,7 +78,7 @@ public class TMLArchiTextSpecification {
             "maxConsecutiveIdleCycles", "reconfigurationTime", "execiTime", "execcTime", "scheduling", "clockDivider"};
     private String linkparameters[] = {"bus", "node", "priority"};
     private String hwaparameters[] = {"byteDataSize", "execiTime", "execcTime", "clockDivider"};
-    private String busparameters[] = {"byteDataSize", "pipelineSize", "arbitration", "clockDivider"};
+    private String busparameters[] = {"byteDataSize", "pipelineSize", "arbitration", "sliceTime", "clockDivider"};
     private String bridgeparameters[] = {"bufferByteSize", "clockDivider"};
     private String memoryparameters[] = {"byteDataSize", "clockDivider"};
     private String nocparameters[] = {"bufferbytesize", "nocSize", "clockdivider"};
@@ -225,6 +225,7 @@ public class TMLArchiTextSpecification {
                 code += set + "byteDataSize " + bus.byteDataSize + CR;
                 code += set + "pipelineSize " + bus.pipelineSize + CR;
                 code += set + "arbitration " + bus.arbitration + CR;
+                code += set + "sliceTime " + bus.sliceTime + CR;
             }
 
 
@@ -774,6 +775,10 @@ public class TMLArchiTextSpecification {
                     if (_split[2].toUpperCase().equals("CLOCKDIVIDER")) {
                         bus.clockRatio = Integer.decode(_split[3]).intValue();
                     }
+
+                    if (_split[2].toUpperCase().equals("SLICETIME")) {
+                        bus.sliceTime = Integer.decode(_split[3]).intValue();
+                    }
                 }
 
                 if (node instanceof HwBridge) {
diff --git a/src/main/java/tmltranslator/TMLTextSpecification.java b/src/main/java/tmltranslator/TMLTextSpecification.java
index 4b6cf17bff..820491a04b 100755
--- a/src/main/java/tmltranslator/TMLTextSpecification.java
+++ b/src/main/java/tmltranslator/TMLTextSpecification.java
@@ -914,13 +914,13 @@ public class TMLTextSpecification<E> {
 
             ch = new TMLChannel(_split[1], null);
             ch.setTypeByName(_split[2]);
+            ch.setMax(tmp);// the capacity already calculated with _split[4]
             try {
                 tmp = Integer.decode(_split[3]).intValue();
             } catch (Exception e) {
                 tmp = 4;
             }
             ch.setSize(tmp);
-            ch.setMax(tmp);
 
             for (i = 5 + dec; i < _split.length; i++) {
                 if (i != indexOfIN) {
diff --git a/ttool/src/test/java/tmltranslator/BusSliceTimeConfigurationTest.java b/ttool/src/test/java/tmltranslator/BusSliceTimeConfigurationTest.java
index 6455351e8c..3e3084975e 100644
--- a/ttool/src/test/java/tmltranslator/BusSliceTimeConfigurationTest.java
+++ b/ttool/src/test/java/tmltranslator/BusSliceTimeConfigurationTest.java
@@ -2,17 +2,16 @@ package tmltranslator;
 
 import common.ConfigurationTTool;
 import common.SpecConfigTTool;
-import graph.AUTGraph;
 import myutil.FileUtils;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import req.ebrdd.EBRDD;
 import tepe.TEPE;
+import test.AbstractTest;
 import tmltranslator.tomappingsystemc2.DiploSimulatorFactory;
 import tmltranslator.tomappingsystemc2.IDiploSimulatorCodeGenerator;
 import tmltranslator.tomappingsystemc2.Penalties;
-import ui.AbstractUITest;
 
 import java.io.BufferedReader;
 import java.io.File;
@@ -22,11 +21,11 @@ import java.util.List;
 
 import static org.junit.Assert.assertTrue;
 
-public class BusSliceTimeConfigurationTest extends AbstractUITest {
+public class BusSliceTimeConfigurationTest extends AbstractTest {
 
     private final String DIR_GEN = "test_diplo_simulator/";
     private final String[] MODELS_BUS_SLICE_TIME = {"bus_rr_preempted", "bus_rr_not_preempted","bus_rrpb_preempted", "bus_rrpb_not_preempted"};
-    private final Integer[] EXPECTED_RESULT = {5, 2, 5, 2};
+    private final String[] EXPECTED_RESULT = {"20 - 2", "10 - 2", "10 - 2", "10 - 2"};
     private String SIM_DIR;
     private static String CPP_DIR = "../../../../simulators/c++2/";
 
@@ -175,16 +174,22 @@ public class BusSliceTimeConfigurationTest extends AbstractUITest {
 
             File graphFile = new File(graphPath + ".txt");
             String graphData = "";
-            String findStr = "Execi";
+            String findStr0 = "Application__Src0: Write";
+            String findStr1 = "Application__Src1: Write";
             try {
                 graphData = FileUtils.loadFileData(graphFile);
             } catch (Exception e) {
                 assertTrue(false);
             }
 
-            int countExecI = graphData.split(findStr, -1).length-1;
-            System.out.println("Number of ExecI transactions in model " + s + ": " + countExecI);
-            assertTrue(countExecI == EXPECTED_RESULT[i]);
+            String result = "";
+            int countExecI = graphData.split(findStr0, -1).length-1;
+            System.out.println("Number of Write transactions of Src0 in model " + s + ": " + countExecI);
+            result += countExecI;
+            countExecI = graphData.split(findStr1, -1).length-1;
+            System.out.println("Number of Write transactions of Src1 in model " + s + ": " + countExecI);
+            result += " - " + countExecI;
+            assertTrue(result.equals(EXPECTED_RESULT[i]));
         }
     }
 }
diff --git a/ttool/src/test/resources/tmltranslator/simulator/bus_rr_not_preempted.tarchi b/ttool/src/test/resources/tmltranslator/simulator/bus_rr_not_preempted.tarchi
index d7d8c5ba4c..75e3cafa4f 100644
--- a/ttool/src/test/resources/tmltranslator/simulator/bus_rr_not_preempted.tarchi
+++ b/ttool/src/test/resources/tmltranslator/simulator/bus_rr_not_preempted.tarchi
@@ -9,6 +9,7 @@ NODE BUS Bus0
 SET Bus0 byteDataSize 1
 SET Bus0 pipelineSize 1
 SET Bus0 arbitration 0
+SET Bus0 sliceTime 10000
 SET Bus0 clockDivider 1
 
 NODE CPU TGT
diff --git a/ttool/src/test/resources/tmltranslator/simulator/bus_rr_not_preempted.tml b/ttool/src/test/resources/tmltranslator/simulator/bus_rr_not_preempted.tml
index c8739d7844..756ed45bdd 100644
--- a/ttool/src/test/resources/tmltranslator/simulator/bus_rr_not_preempted.tml
+++ b/ttool/src/test/resources/tmltranslator/simulator/bus_rr_not_preempted.tml
@@ -19,7 +19,7 @@ TASK Application__Src0
     //Local variables
     
     //Behavior
-    WRITE Application__c0 5
+    WRITE Application__c0 200
     EXECI 400
 ENDTASK
 
@@ -28,7 +28,7 @@ TASK Application__Src1
     //Local variables
     
     //Behavior
-    WRITE Application__c1 5
+    WRITE Application__c1 10
     EXECI 300
 ENDTASK
 
@@ -37,7 +37,7 @@ TASK Application__Tgt0
     //Local variables
     
     //Behavior
-    READ Application__c0 5
+    READ Application__c0 200
 ENDTASK
 
 TASK Application__Tgt1
@@ -45,6 +45,6 @@ TASK Application__Tgt1
     //Local variables
     
     //Behavior
-    READ Application__c1 5
+    READ Application__c1 10
 ENDTASK
 
diff --git a/ttool/src/test/resources/tmltranslator/simulator/bus_rr_preempted.tarchi b/ttool/src/test/resources/tmltranslator/simulator/bus_rr_preempted.tarchi
index 97d0344ae1..2fea812680 100644
--- a/ttool/src/test/resources/tmltranslator/simulator/bus_rr_preempted.tarchi
+++ b/ttool/src/test/resources/tmltranslator/simulator/bus_rr_preempted.tarchi
@@ -1,5 +1,5 @@
 // Master clock frequency - in MHz
-MASTERCLOCKFREQUENCY 200
+MASTERCLOCKFREQUENCY 20
 
 NODE MEMORY Memory0
 SET Memory0 byteDataSize 4
@@ -9,6 +9,7 @@ NODE BUS Bus0
 SET Bus0 byteDataSize 1
 SET Bus0 pipelineSize 1
 SET Bus0 arbitration 0
+SET Bus0 sliceTime 1
 SET Bus0 clockDivider 1
 
 NODE CPU TGT
diff --git a/ttool/src/test/resources/tmltranslator/simulator/bus_rr_preempted.tml b/ttool/src/test/resources/tmltranslator/simulator/bus_rr_preempted.tml
index fcb7571789..a33ed2cd67 100644
--- a/ttool/src/test/resources/tmltranslator/simulator/bus_rr_preempted.tml
+++ b/ttool/src/test/resources/tmltranslator/simulator/bus_rr_preempted.tml
@@ -19,7 +19,7 @@ TASK Application__Src0
     //Local variables
     
     //Behavior
-    WRITE Application__c0 5
+    WRITE Application__c0 200
     EXECI 400
 ENDTASK
 
@@ -28,7 +28,7 @@ TASK Application__Src1
     //Local variables
     
     //Behavior
-    WRITE Application__c1 5
+    WRITE Application__c1 10
     EXECI 300
 ENDTASK
 
@@ -37,7 +37,7 @@ TASK Application__Tgt0
     //Local variables
     
     //Behavior
-    READ Application__c0 5
+    READ Application__c0 200
 ENDTASK
 
 TASK Application__Tgt1
@@ -45,6 +45,6 @@ TASK Application__Tgt1
     //Local variables
     
     //Behavior
-    READ Application__c1 5
+    READ Application__c1 10
 ENDTASK
 
diff --git a/ttool/src/test/resources/tmltranslator/simulator/bus_rrpb_not_preempted.tarchi b/ttool/src/test/resources/tmltranslator/simulator/bus_rrpb_not_preempted.tarchi
index 4ca7e0e889..b802860667 100644
--- a/ttool/src/test/resources/tmltranslator/simulator/bus_rrpb_not_preempted.tarchi
+++ b/ttool/src/test/resources/tmltranslator/simulator/bus_rrpb_not_preempted.tarchi
@@ -9,6 +9,7 @@ NODE BUS Bus0
 SET Bus0 byteDataSize 1
 SET Bus0 pipelineSize 1
 SET Bus0 arbitration 1
+SET Bus0 sliceTime 10000
 SET Bus0 clockDivider 1
 
 NODE CPU TGT
diff --git a/ttool/src/test/resources/tmltranslator/simulator/bus_rrpb_not_preempted.tml b/ttool/src/test/resources/tmltranslator/simulator/bus_rrpb_not_preempted.tml
index 9b30d97ee1..fe1e4cf636 100644
--- a/ttool/src/test/resources/tmltranslator/simulator/bus_rrpb_not_preempted.tml
+++ b/ttool/src/test/resources/tmltranslator/simulator/bus_rrpb_not_preempted.tml
@@ -19,7 +19,7 @@ TASK Application__Src0
     //Local variables
     
     //Behavior
-    WRITE Application__c0 5
+    WRITE Application__c0 200
     EXECI 400
 ENDTASK
 
@@ -28,7 +28,7 @@ TASK Application__Src1
     //Local variables
     
     //Behavior
-    WRITE Application__c1 5
+    WRITE Application__c1 10
     EXECI 300
 ENDTASK
 
@@ -37,7 +37,7 @@ TASK Application__Tgt0
     //Local variables
     
     //Behavior
-    READ Application__c0 5
+    READ Application__c0 200
 ENDTASK
 
 TASK Application__Tgt1
@@ -45,6 +45,6 @@ TASK Application__Tgt1
     //Local variables
     
     //Behavior
-    READ Application__c1 5
+    READ Application__c1 10
 ENDTASK
 
diff --git a/ttool/src/test/resources/tmltranslator/simulator/bus_rrpb_preempted.tarchi b/ttool/src/test/resources/tmltranslator/simulator/bus_rrpb_preempted.tarchi
index f0bd87bb45..2daca434d8 100644
--- a/ttool/src/test/resources/tmltranslator/simulator/bus_rrpb_preempted.tarchi
+++ b/ttool/src/test/resources/tmltranslator/simulator/bus_rrpb_preempted.tarchi
@@ -1,5 +1,5 @@
 // Master clock frequency - in MHz
-MASTERCLOCKFREQUENCY 200
+MASTERCLOCKFREQUENCY 20
 
 NODE MEMORY Memory0
 SET Memory0 byteDataSize 4
@@ -9,6 +9,7 @@ NODE BUS Bus0
 SET Bus0 byteDataSize 1
 SET Bus0 pipelineSize 1
 SET Bus0 arbitration 1
+SET Bus0 sliceTime 1
 SET Bus0 clockDivider 1
 
 NODE CPU TGT
diff --git a/ttool/src/test/resources/tmltranslator/simulator/bus_rrpb_preempted.tml b/ttool/src/test/resources/tmltranslator/simulator/bus_rrpb_preempted.tml
index f0d06dee59..fddce899a0 100644
--- a/ttool/src/test/resources/tmltranslator/simulator/bus_rrpb_preempted.tml
+++ b/ttool/src/test/resources/tmltranslator/simulator/bus_rrpb_preempted.tml
@@ -19,7 +19,7 @@ TASK Application__Src0
     //Local variables
     
     //Behavior
-    WRITE Application__c0 5
+    WRITE Application__c0 200
     EXECI 400
 ENDTASK
 
@@ -28,7 +28,7 @@ TASK Application__Src1
     //Local variables
     
     //Behavior
-    WRITE Application__c1 5
+    WRITE Application__c1 10
     EXECI 300
 ENDTASK
 
@@ -37,7 +37,7 @@ TASK Application__Tgt0
     //Local variables
     
     //Behavior
-    READ Application__c0 5
+    READ Application__c0 200
 ENDTASK
 
 TASK Application__Tgt1
@@ -45,6 +45,6 @@ TASK Application__Tgt1
     //Local variables
     
     //Behavior
-    READ Application__c1 5
+    READ Application__c1 10
 ENDTASK
 
-- 
GitLab