From: adam Date: Mon, 4 Dec 2006 18:03:15 +0000 (+0100) Subject: checkpoint X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=aa2d8e7403a1b1ef54f6630c1ded6c56a5f076f3;p=fleet.git checkpoint --- diff --git a/Makefile b/Makefile index be93738..32079e4 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,8 @@ code: fleeterpreter.jar java -Xmx500m -cp lib/edu.berkeley.sbp.jar:fleeterpreter.jar edu.berkeley.fleet.FleetParser --dump-code < demo.fleet fabric: fleeterpreter.jar - java -Xmx500m -cp lib/edu.berkeley.sbp.jar:fleeterpreter.jar edu.berkeley.fleet.FleetParser --dump-fabric < demo.fleet + java -Xmx500m -cp lib/edu.berkeley.sbp.jar:fleeterpreter.jar edu.berkeley.fleet.FleetParser --dump-fabric < demo.fleet > ../fleet/build/fabric.balsa + cat ../fleet/build/fabric.balsa applet: fleeterpreter.jar java -Xmx500m -cp lib/edu.berkeley.sbp.jar:fleeterpreter.jar edu.berkeley.fleet.FleetApplet < test.fleet @@ -18,3 +19,8 @@ fleeterpreter.jar: $(shell find src -name \*.java) fleet.g cd bin; jar xvf ../lib/edu.berkeley.sbp.jar echo 'Main-Class: edu.berkeley.fleet.FleetParser' > bin/manifest cd bin; jar cvmf manifest ../$@ . + +program: + make code + scp fleet.bin root@bee441.cs.berkeley.edu: +# ssh root@bee441.cs.berkeley.edu 'user_unprogram 1;user_program 1 main.bit; echo ok; ./a.out /dev/selectmap1 fleet.bin' \ No newline at end of file diff --git a/demo.fleet b/demo.fleet index b36eb85..4ca21c5 100644 --- a/demo.fleet +++ b/demo.fleet @@ -1,7 +1,12 @@ #include "demo.ships" -//3 -> adder1.a - -3 -> debug.data +3 -> adder1.a +3 -> adder1.b +adder1.out -> adder1.a ; accept adder1.a->() +3 -> adder1.b +adder1.out -> debug.data +accept debug.data -> () + +//4 -> debug.data diff --git a/src/edu/berkeley/fleet/CodeBag.java b/src/edu/berkeley/fleet/CodeBag.java index fb7325a..0173781 100644 --- a/src/edu/berkeley/fleet/CodeBag.java +++ b/src/edu/berkeley/fleet/CodeBag.java @@ -2,6 +2,7 @@ package edu.berkeley.fleet; import java.util.*; import java.io.*; +import static edu.berkeley.fleet.Instruction.IgnoreCopyTake; /** a codebag */ public class CodeBag { @@ -65,10 +66,15 @@ public class CodeBag { Instruction inst = (Instruction)d; dump(os, inst.source.resolve(fleet).instr_bits); dump(os, inst.source.resolve(fleet).instr_addr); - dump(os, 5); - dump(os, 10); // input+output - dump(os, inst.destination.resolve(fleet).bits); - dump(os, inst.destination.resolve(fleet).addr); + dump(os, 1); dump(os, inst.trigger ? 1 : 0); + dump(os, 1); dump(os, inst.dataIn != IgnoreCopyTake.IGNORE ? 1 : 0); + dump(os, 1); dump(os, inst.dataIn == IgnoreCopyTake.COPY ? 1 : 0); + dump(os, 1); dump(os, inst.dataOut ? 1 : 0); + dump(os, 1); dump(os, inst.ack ? 1 : 0); + if (inst.destination != null) { + dump(os, inst.destination.resolve(fleet).bits); + dump(os, inst.destination.resolve(fleet).addr); + } dump(os, 0); System.out.println(); } else if (d instanceof Literal.LiteralDatum) { @@ -78,7 +84,14 @@ public class CodeBag { dump(os, 5); dump(os, 2); dump(os, 32); - dump(os, ld.data); + dump(os, (ld.data >> 24) & 0xff); + dump(os, (ld.data >> 16) & 0xff); + dump(os, (ld.data >> 8) & 0xff); + dump(os, (ld.data >> 0) & 0xff); + //dump(os, 0xff); + //dump(os, 0xff); + //dump(os, 0xff); + //dump(os, 0xff); dump(os, 0); System.out.println(); } diff --git a/src/edu/berkeley/fleet/Fleet.java b/src/edu/berkeley/fleet/Fleet.java index cd41c9f..ef2e71f 100644 --- a/src/edu/berkeley/fleet/Fleet.java +++ b/src/edu/berkeley/fleet/Fleet.java @@ -93,7 +93,8 @@ public class Fleet { ArrayList instructionports = new ArrayList(); for(Ship ship : shiplist) for(Port port : ship.portlist) - instructionports.add(port); + if (!(port.getName().equals("out") && port.getShip() instanceof DebugShip)) + instructionports.add(port); FabricTree instructions = new FabricTree((Port[])instructionports.toArray(new Port[0]), "horn", @@ -102,7 +103,7 @@ public class Fleet { ArrayList inputports = new ArrayList(); for(Ship ship : shiplist) for(Port port : ship.portlist) - if (port instanceof Inbox) + if (!(port.getName().equals("out") && port.getShip() instanceof DebugShip)) inputports.add(port); FabricTree inputs = new FabricTree((Port[])inputports.toArray(new Port[0]), @@ -112,7 +113,7 @@ public class Fleet { ArrayList outputports = new ArrayList(); for(Ship ship : shiplist) for(Port port : ship.portlist) - if (port instanceof Outbox && !(port.getShip() instanceof DebugShip)) + if (!(port.getName().equals("out") && port.getShip() instanceof DebugShip)) outputports.add(port); FabricTree outputs = new FabricTree((Port[])outputports.toArray(new Port[0]), @@ -136,14 +137,16 @@ public class Fleet { System.out.println("procedure fabric(input top_in:XBit; output top_out:XBit)"); System.out.println("is"); - System.out.println(" channel source_debug_out : XBit"); instructions.dumpChannels(true); outputs.dumpChannels(true); inputs.dumpChannels(true); + for(Ship ship : shiplist) + for(Port port : ship.portlist) + System.out.println(" channel data_"+ship.getName()+"_"+port.getName()+" : XBit"); System.out.println("begin"); System.out.println(" loop source -> dest end"); System.out.println(" || loop top_in -> instruction end"); - System.out.println(" || loop source_debug_out -> top_out end"); + System.out.println(" || loop data_debug_out -> top_out end"); System.out.println(""); instructions.dumpChannels(false); System.out.println(""); @@ -159,15 +162,30 @@ public class Fleet { for(Port port : ship.portlist) { if (!first) System.out.print(", "); first = false; - System.out.print("instruction_"+port.getShip().getName()+"_"+port.getName()); - System.out.print(","); - if (port instanceof Inbox) - System.out.print("dest_"+port.getShip().getName()+"_"+port.getName()); - else - System.out.print("source_"+port.getShip().getName()+"_"+port.getName()); + System.out.print("data_"+port.getShip().getName()+"_"+port.getName()); System.out.print(" "); } System.out.println(")"); + + for(Port port : ship.portlist) { + if (ship instanceof DebugShip && port instanceof Outbox) + continue; + System.out.print(" || "); + if (port instanceof Inbox) + System.out.print("inbox("); + else + System.out.print("outbox("); + System.out.print("instruction_"+port.getShip().getName()+"_"+port.getName()); + System.out.print(", "); + System.out.print("dest_"+port.getShip().getName()+"_"+port.getName()); + System.out.print(", "); + System.out.print("source_"+port.getShip().getName()+"_"+port.getName()); + System.out.print(", "); + System.out.print("data_"+port.getShip().getName()+"_"+port.getName()); + System.out.print(")"); + System.out.println(); + } + } System.out.println("end"); }