updates to make fpga-code instruction generation work again
authoradam <adam@megacz.com>
Mon, 29 Jan 2007 08:32:45 +0000 (09:32 +0100)
committeradam <adam@megacz.com>
Mon, 29 Jan 2007 08:32:45 +0000 (09:32 +0100)
Makefile
contrib/demo.fleet
contrib/demo.ships
src/edu/berkeley/fleet/interpreter/Interpreter.java
src/edu/berkeley/fleet/interpreter/Main.java

index da98e04..3a362c1 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -9,12 +9,12 @@ run: fleet.jar
        $(java) $(cp) $(interpreter_class)
 
 fleet.jar: $(shell find src -name \*.java) src/edu/berkeley/fleet/assembler/fleet.g
-       mkdir -p bin/edu/berkeley/fleet/assembler/
-       cp src/edu/berkeley/fleet/assembler/fleet.g bin/edu/berkeley/fleet/assembler/
-       javac -cp lib/edu.berkeley.sbp.jar -d bin $(shell find src -name \*.java)
-       cd bin; jar xvf ../lib/edu.berkeley.sbp.jar
-       echo 'Main-Class: $(interpreter_class)' > bin/manifest
-       cd bin; jar cvmf manifest ../$@ .
+       mkdir -p build/class/edu/berkeley/fleet/assembler/
+       cp src/edu/berkeley/fleet/assembler/fleet.g build/class/edu/berkeley/fleet/assembler/
+       javac -cp lib/edu.berkeley.sbp.jar -d build/class/ $(shell find src -name \*.java)
+       cd build/class/; jar xvf ../../lib/edu.berkeley.sbp.jar
+       echo 'Main-Class: $(interpreter_class)' > build/class/manifest
+       cd build/class/; jar cvmf manifest ../../$@ .
 
 
 ## Slipway ####################################################################################
@@ -41,13 +41,13 @@ remote_run += gcc test.c;
 remote_run += echo running;
 remote_run +=  ./a.out /dev/selectmap1 fleet.bin
 
-runfpga: build/main.bit
+runfpga: fleet.jar build/main.bit
        $(java) $(cp) $(interpreter_class) --dump-code < contrib/demo.fleet
-       mv fleet.bin build
        rsync -zare ssh --progress --verbose build/fleet.bin build/main.bit src/edu/berkeley/fleet/slipway/test.c root@bee441.cs.berkeley.edu:
        ssh root@bee441.cs.berkeley.edu '$(remote_run)'
 
-build/main.bit: fleet.jar contrib/demo.ships $(shell find src -name \*.v)
+build/main.bit: contrib/demo.ships $(shell find src -name \*.v)
+       make fleet.jar
        mkdir -p build
        $(java) $(cp) $(interpreter_class) --dump-fabric < contrib/demo.ships | tee build/fabric.v
        rsync -zare ssh --progress --delete --verbose ./ ${host}:${remote_dir}
@@ -92,15 +92,15 @@ javadoc:
 ## Misc ####################################################################################
 
 clean:
-       rm -rf bin fleet.jar build
+       rm -rf fleet.jar build
 
 ## Dist ####################################################################################
 
 dist:
        darcs record
+       darcs push /afs/research.cs.berkeley.edu/class/fleet/website/repos/fleet/
        darcs get . --repo-name=fleet-`date +%d.%h.%y`
        make -C fleet-`date +%d.%h.%y` fleet.jar
-       rm -rf fleet-`date +%d.%h.%y`/bin
        rm -rf fleet-`date +%d.%h.%y`/build
        tar cvzf fleet-`date +%d.%h.%y`.tgz fleet-`date +%d.%h.%y`
        rm -rf fleet-`date +%d.%h.%y`
index 4d8eed3..f17bbe0 100644 (file)
@@ -1,20 +1,14 @@
-#import edu.berkeley.fleet.ships
-#ship alu          : Alu2
-#ship debug        : Debug
-#ship command      : Command
+#include "contrib/demo.ships"
+
+
+0:  sendto alu2.op;
+10: sendto alu2.a;
+2:  sendto alu2.b;
+
+alu2.a:   take, deliver;
+alu2.b:   take, deliver;
+alu2.op:  take, deliver;
+alu2.out: take, sendto debug.data;
+
 
-0: sendto alu.a;
-0: sendto alu.op;
-42: sendto alu.b;
-1:  sendto alu.b;
-5:  sendto alu.b;
-alu.a:  [*] take, deliver;
-alu.b:  [*] take, deliver;
-alu.op: take; [*] deliver;
-debug.data: [*] take, deliver;
-alu.out:
-  [*]  nop;
-  [*r] take, sendto alu.a;
-  [*r]       sendto debug.data;
-  kill;
 
index 45aa47b..f3f60ed 100644 (file)
@@ -13,7 +13,7 @@
 
 // want: memory, fetch, halt
 
-#ship alu1         : Alu1
+//#ship alu1         : Alu1
 #ship alu2         : Alu2
 #ship debug        : Debug
 #ship command      : Command
@@ -27,5 +27,3 @@
 //#ship demux1      : DeMux
 //#ship demux2      : DeMux
 //#ship sort        : Sort2
-
-
index 5e8952c..8ed504d 100644 (file)
@@ -17,8 +17,14 @@ public class Interpreter extends Fleet implements Iterable<Ship> {
 
     public InterpreterBenkoBox resolve(edu.berkeley.fleet.api.BenkoBox bb) { return (InterpreterBenkoBox)bb; }
 
-    public void dumpCode() {
-        throw new RuntimeException("not implemented");
+    public void dumpCode(Instruction[] instructions) throws IOException {
+        DataOutputStream dos = new DataOutputStream(new FileOutputStream("build/fleet.bin"));
+        for(int i=1; i<instructions.length; i++) {
+            Instruction inst = instructions[i];
+            writeInstruction(dos, inst);
+        }
+        dos.flush();
+        dos.close();
     }
 
     public void dispatch(Instruction i, long address) {
index 0d9b3b6..ee7a87e 100644 (file)
@@ -64,7 +64,8 @@ public class Main {
             fleet.dumpFabric(false);
 
         } else if (dump_code) {
-            fleet.dumpCode();
+            fleet.dumpFabric(true);
+            fleet.dumpCode(fleet.instructions);
 
         } else {
             if (debugMemory) { fleet.dumpMem(); }