diff --git a/src/tmltranslator/TMLActivityElementChannel.java b/src/tmltranslator/TMLActivityElementChannel.java index ae25641e0e3df5e142963042edcf310cc265f6d5..c1e23d4cfed63da3f18111ddd082c2ec71c26e6a 100755 --- a/src/tmltranslator/TMLActivityElementChannel.java +++ b/src/tmltranslator/TMLActivityElementChannel.java @@ -61,7 +61,7 @@ public class TMLActivityElementChannel extends TMLActivityElement { channels.add(_channel); } - /* To remove once TTool has been tested */ + /* To remove once TTool has been tested public void setChannel(TMLChannel _channel) { channels.add(_channel); } @@ -69,7 +69,7 @@ public class TMLActivityElementChannel extends TMLActivityElement { public TMLChannel getChannel() { return channels.get(0); } - /* Remove before */ + Remove before */ public int getNbOfChannels() { return channels.size(); diff --git a/src/tmltranslator/tomappingsystemc2/MappedSystemCTask.java b/src/tmltranslator/tomappingsystemc2/MappedSystemCTask.java index 4e080cf27edaf6322fa110ced9a795d80cde24d2..87cf972827ca2d08f5da182a2e2dc9bd5cf3b802 100755 --- a/src/tmltranslator/tomappingsystemc2/MappedSystemCTask.java +++ b/src/tmltranslator/tomappingsystemc2/MappedSystemCTask.java @@ -472,9 +472,12 @@ public class MappedSystemCTask { hcode+="TMLReadCommand " + cmdName + SCCR; TMLReadChannel rCommand=(TMLReadChannel)currElem; if (isIntValue(rCommand.getNbOfSamples())) - initCommand+= "," + cmdName + "("+currElem.getID()+",this,0," + rCommand.getChannel(0).getExtendedName() + "," + rCommand.getChannel(0).getSize() + "*" + rCommand.getNbOfSamples() + ")"+CR; + //initCommand+= "," + cmdName + "("+currElem.getID()+",this,0," + rCommand.getChannel(0).getExtendedName() + "," + rCommand.getChannel(0).getSize() + "*" + rCommand.getNbOfSamples() + ")"+CR; + initCommand+= "," + cmdName + "("+currElem.getID()+",this,0," + rCommand.getChannel(0).getExtendedName() + "," + rCommand.getNbOfSamples() + ")"+CR; + else - initCommand+= "," + cmdName + "("+currElem.getID()+",this," + makeCommandLenFunc(cmdName, rCommand.getChannel(0).getSize() + "*(" + rCommand.getNbOfSamples()+")",null) + "," + rCommand.getChannel(0).getExtendedName() + ")"+CR; + //initCommand+= "," + cmdName + "("+currElem.getID()+",this," + makeCommandLenFunc(cmdName, rCommand.getChannel(0).getSize() + "*(" + rCommand.getNbOfSamples()+")",null) + "," + rCommand.getChannel(0).getExtendedName() + ")"+CR; + initCommand+= "," + cmdName + "("+currElem.getID()+",this," + makeCommandLenFunc(cmdName, rCommand.getNbOfSamples(),null) + "," + rCommand.getChannel(0).getExtendedName() + ")"+CR; nextCommand= cmdName + ".setNextCommand(array(1,(TMLCommand*)" + makeCommands(currElem.getNextElement(0),false,retElement,null,null) + "))"+ SCCR; } else if (currElem instanceof TMLWriteChannel){ @@ -747,7 +750,7 @@ public class MappedSystemCTask { nextCommand=cmdName + ".setNextCommand(array(" + nbevt + nextCommand + "))" + SCCR; } else { - System.out.println("Operator: " + currElem + " is not managed in the current version of this C++ code generator." + "))" + SCCR); + System.out.println("Operator: " + currElem + " of class " + currElem.getClass().getName() + " is not managed in the current version of this C++ code generator."); } chaining+=nextCommand; return (cmdName.equals("0") || cmdName.charAt(0)=='&')? cmdName : "&"+cmdName; diff --git a/src/tmltranslator/tomappingsystemc2/TML2MappingSystemC.java b/src/tmltranslator/tomappingsystemc2/TML2MappingSystemC.java index 3ccc26920275712a6ea64647de691e53a1fd93c2..16bbe2e7fb3870e252f80e97c117361a2ae95067 100755 --- a/src/tmltranslator/tomappingsystemc2/TML2MappingSystemC.java +++ b/src/tmltranslator/tomappingsystemc2/TML2MappingSystemC.java @@ -167,7 +167,7 @@ public class TML2MappingSystemC { declaration += "//Declaration of CPUs" + CR; for(HwNode node: tmlmapping.getTMLArchitecture().getHwNodes()) { if (node instanceof HwCPU) { - if (tmlmapping.isAUsedHwNode(node)) { + //if (tmlmapping.isAUsedHwNode(node)) { HwCPU exNode = (HwCPU)node; declaration += "CPU* " + exNode.getName() + " = new CPU(" + exNode.getID() + ", \"" + exNode.getName() + "\", "; if (exNode.getType().equals("CPURRPB")) @@ -177,7 +177,7 @@ public class TML2MappingSystemC { declaration += exNode.clockRatio + ", " + exNode.execiTime + ", " + exNode.execcTime + ", " + exNode.pipelineSize + ", " + exNode.taskSwitchingTime + ", " + exNode.branchingPredictionPenalty + ", " + exNode.goIdleTime + ", " + exNode.maxConsecutiveIdleCycles + ", " + exNode.byteDataSize + ")" + SCCR; declaration += "addCPU("+ node.getName() +")"+ SCCR; - } + //} } } declaration += CR; @@ -272,13 +272,14 @@ public class TML2MappingSystemC { } declaration += tmp + "* " + channel.getExtendedName() + " = new " + tmp +"(" + channel.getID() + ",\"" + channel.getName() + "\"," + channel.getSize() + ","; strwrap buses1=new strwrap(), buses2=new strwrap(), slaves1=new strwrap(), slaves2=new strwrap(); - int hopNum = addRoutingInfoForChannel(elem, ((TMLChannel)elem).getOriginTask(), tmlmapping.getHwNodeByTask(((TMLChannel)elem).getOriginTask()).getName(), buses1, slaves1, true); + //int hopNum = addRoutingInfoForChannel(elem, ((TMLChannel)elem).getOriginTask(), tmlmapping.getHwNodeByTask(((TMLChannel)elem).getOriginTask()).getName(), buses1, slaves1, true); + int hopNum = addRoutingInfoForChannel(elem, channel.getOriginTask(), tmlmapping.getHwNodeByTask(channel.getOriginTask()).getName(), buses1, slaves1, true); if (hopNum==-1){ buses2.str=buses1.str; slaves2.str=slaves1.str; hopNum=2; }else{ - int tempHop= addRoutingInfoForChannel(elem, ((TMLChannel)elem).getDestinationTask(), tmlmapping.getHwNodeByTask(((TMLChannel)elem).getDestinationTask()).getName(), buses2, slaves2, false); + int tempHop= addRoutingInfoForChannel(elem, channel.getDestinationTask(), tmlmapping.getHwNodeByTask(channel.getDestinationTask()).getName(), buses2, slaves2, false); if (tempHop==-1){ buses1.str=buses2.str; slaves1.str=slaves2.str; @@ -308,8 +309,24 @@ public class TML2MappingSystemC { param= "," + evt.getMaxSize() + ",0"; } } - - declaration += tmp + "* " + evt.getExtendedName() + " = new " + tmp + "(" + evt.getID() + ",\"" + evt.getName() + "\",0,0,0" + param +")" + SCCR; + strwrap buses1=new strwrap(), buses2=new strwrap(), slaves1=new strwrap(), slaves2=new strwrap(); + int hopNum = addRoutingInfoForChannel(evt, evt.getOriginTask(), tmlmapping.getHwNodeByTask(evt.getOriginTask()).getName(), buses1, slaves1, true); + boolean mapped=false; + if(hopNum!=-1){ + int tempHop= addRoutingInfoForChannel(evt, evt.getDestinationTask(), tmlmapping.getHwNodeByTask(evt.getDestinationTask()).getName(), buses2, slaves2, false); + if (tempHop!=-1){ + hopNum+=tempHop; + mapped=true; + } + + } + if (mapped){ + declaration += tmp + "* " + evt.getExtendedName() + " = new " + tmp + "(" + evt.getID() + ",\"" + evt.getName() + "\"," + hopNum + ",array(" + hopNum + buses1.str + buses2.str + "),array(" + hopNum + slaves1.str + slaves2.str + ")" + param +")" + SCCR; + + }else{ + declaration += tmp + "* " + evt.getExtendedName() + " = new " + tmp + "(" + evt.getID() + ",\"" + evt.getName() + "\",0,0,0" + param +")" + SCCR; ///old command + } + declaration += "addEvent("+ evt.getExtendedName() +")"+ SCCR; } declaration += CR;