From bc8b2e36ced60bf71b6287dccca518fbd365a753 Mon Sep 17 00:00:00 2001 From: apvrille <ludovic.apvrille@eurecom.fr> Date: Thu, 14 Mar 2019 14:19:11 +0100 Subject: [PATCH] Remarks of Frederic G on NetworkInterfaceTask --- src/main/java/tmltranslator/HwNoC.java | 10 ++++++++++ .../java/tmltranslator/TMLArchitecture.java | 18 ++++++++++++++++++ .../tonetwork/TaskNetworkInterface.java | 10 +++++++--- .../tonetwork/TranslatedRouter.java | 7 ++++--- 4 files changed, 39 insertions(+), 6 deletions(-) diff --git a/src/main/java/tmltranslator/HwNoC.java b/src/main/java/tmltranslator/HwNoC.java index e64bd92abd..e97c1e1ab2 100755 --- a/src/main/java/tmltranslator/HwNoC.java +++ b/src/main/java/tmltranslator/HwNoC.java @@ -187,6 +187,16 @@ public class HwNoC extends HwCommunicationNode { return map; } + public String getHwExecutionNode(int x, int y) { + for(String s: placementMap.keySet()) { + Point p = placementMap.get(s); + if (p.x == x && p.y == y) { + return s; + } + } + return null; + } + diff --git a/src/main/java/tmltranslator/TMLArchitecture.java b/src/main/java/tmltranslator/TMLArchitecture.java index 25c439c9a6..ac349bc629 100755 --- a/src/main/java/tmltranslator/TMLArchitecture.java +++ b/src/main/java/tmltranslator/TMLArchitecture.java @@ -306,6 +306,9 @@ public class TMLArchitecture { } public HwCPU getHwCPUByName(String _name) { + if (_name == null) { + return null; + } for (HwNode node : hwnodes) { if (node.getName().equals(_name)) { if (node instanceof HwCPU) { @@ -316,6 +319,21 @@ public class TMLArchitecture { return null; } + public HwExecutionNode getHwExecutionNodeByName(String _name) { + if (_name == null) { + return null; + } + + for (HwNode node : hwnodes) { + if (node.getName().equals(_name)) { + if (node instanceof HwExecutionNode) { + return (HwExecutionNode) node; + } + } + } + return null; + } + public HwBus getHwBusByName(String _name) { for (HwNode node : hwnodes) { if (node.getName().equals(_name)) { diff --git a/src/main/java/tmltranslator/tonetwork/TaskNetworkInterface.java b/src/main/java/tmltranslator/tonetwork/TaskNetworkInterface.java index 53d9b93e8e..b978a9a192 100644 --- a/src/main/java/tmltranslator/tonetwork/TaskNetworkInterface.java +++ b/src/main/java/tmltranslator/tonetwork/TaskNetworkInterface.java @@ -122,7 +122,7 @@ public class TaskNetworkInterface extends TMLTask { loop.setInfinite(true); addElement(start, loop); - TMLActionState state = new TMLActionState("LoopExitSeeting", referenceObject); + TMLActionState state = new TMLActionState("LoopExitSetting", referenceObject); state.setAction("loopexit = 2"); addElement(loop, state); @@ -158,7 +158,7 @@ public class TaskNetworkInterface extends TMLTask { TMLChoice testingEvt = new TMLChoice("testingEvtVC", referenceObject); addElement(notifiedEvent, testingEvt); - TMLStopState endOfLoopNotified = new TMLStopState("NoEvetNorispkt", referenceObject); + TMLStopState endOfLoopNotified = new TMLStopState("NoEventNorispkt", referenceObject); addElement(testingEvt, endOfLoopNotified); testingEvt.addGuard("(nEvt == 0) and (ispkt" + i + " == 0)"); @@ -216,10 +216,14 @@ public class TaskNetworkInterface extends TMLTask { // No feedback TMLActionState noFeedbackAction = new TMLActionState("noFeedbackAction", referenceObject); - state.setAction("loopexit = 2"); + noFeedbackAction.setAction("loopexit = 2"); addElement(testOnFeedback, noFeedbackAction); testOnFeedback.addGuard("else"); + TMLStopState endOfNoFeedback = new TMLStopState("endOfNoFeedback", referenceObject); + addElement(noFeedbackAction, endOfNoFeedback); + + // Feedback present TMLWriteChannel sendingSample = new TMLWriteChannel("SendingSample", referenceObject); sendingSample.addChannel(outputChannel); diff --git a/src/main/java/tmltranslator/tonetwork/TranslatedRouter.java b/src/main/java/tmltranslator/tonetwork/TranslatedRouter.java index c6b92f616c..275658098c 100644 --- a/src/main/java/tmltranslator/tonetwork/TranslatedRouter.java +++ b/src/main/java/tmltranslator/tonetwork/TranslatedRouter.java @@ -91,9 +91,10 @@ public class TranslatedRouter<E> { // MUX for the different writing tasks - - - + // For each writing channel of the corresponding CPU, we need MUX to be created. + // We first get the corresponding CPU + String nameOfExecNode = noc.getHwExecutionNode(xPos, yPos); + HwExecutionNode execNode = tmlmap.getTMLArchitecture().getHwExecutionNodeByName(nameOfExecNode); // VC DISPATCHERS -- GitLab