checkpoint
authoradam <adam@megacz.com>
Mon, 4 Dec 2006 18:03:15 +0000 (19:03 +0100)
committeradam <adam@megacz.com>
Mon, 4 Dec 2006 18:03:15 +0000 (19:03 +0100)
Makefile
demo.fleet
src/edu/berkeley/fleet/CodeBag.java
src/edu/berkeley/fleet/Fleet.java

index be93738..32079e4 100644 (file)
--- 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
index b36eb85..4ca21c5 100644 (file)
@@ -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
 
 
index fb7325a..0173781 100644 (file)
@@ -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();
             }
index cd41c9f..ef2e71f 100644 (file)
@@ -93,7 +93,8 @@ public class Fleet {
         ArrayList instructionports = new ArrayList<Port>();
         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<Port>();
         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<Port>();
         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");
     }