checkpoint
authoradam <adam@megacz.com>
Mon, 20 Aug 2007 08:15:42 +0000 (09:15 +0100)
committeradam <adam@megacz.com>
Mon, 20 Aug 2007 08:15:42 +0000 (09:15 +0100)
Makefile
src/edu/berkeley/fleet/fpga/Generator.java

index 0bae854..9515eee 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -59,9 +59,9 @@ verilog_files += $(shell find src -name \*.inc)
 runfpga: fleet.jar
        $(java) -jar fleet.jar target=fpga run
 
-upload: fleet.jar build/main.bit
+upload: fleet.jar build/fpga/main.bit
        mkdir -p build
-       rsync -zare ssh --progress --verbose build/main.bit root@bee441.megacz.com:/var/slipway/megacz.bit
+       rsync -zare ssh --progress --verbose build/fpga/main.bit root@bee441.megacz.com:/var/slipway/megacz.bit
 
 uploadtest:
        make upload
@@ -74,7 +74,7 @@ build/fpga/fabric.v: $(verilog_files) src/edu/berkeley/fleet/fpga/Fpga.java
        mkdir -p build/fpga
        $(java) $(cp) edu.berkeley.fleet.fpga.Fpga > build/fpga/fabric.v
 
-build/main.bit: build/fpga/fabric.v $(verilog_files)
+build/fpga/main.bit: build/fpga/fabric.v $(verilog_files)
        make fleet.jar
        cp src/edu/berkeley/fleet/fpga/* build/fpga
        for A in `find ships -name \*.ship`;\
@@ -83,7 +83,7 @@ build/main.bit: build/fpga/fabric.v $(verilog_files)
        $(java) -cp fleet.jar edu.berkeley.fleet.fpga.Generator build/fpga/
        rsync -zare ssh --progress --delete --verbose ./ ${host}:${remote_dir}
        time ssh ${host} 'make -C ${remote_dir} synth XILINX=${remote_xilinx}'
-       scp ${host}:${remote_dir}/build/main.bit build/
+       scp ${host}:${remote_dir}/build/fpga/main.bit build/fpga/
 
 synth:
        cd build/fpga; ln -sf ../src/edu/berkeley/fleet/fpga/* .
index 550c5b0..4906f2b 100644 (file)
@@ -633,23 +633,16 @@ public class Generator {
                               );
 
         PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream(prefix+"/"+name+".v")));
-        pw.println("`define INSTRUCTION_BENKOBOX_OFFSET (1+`COUNT_BITS+`DESTINATION_ADDRESS_BITS+5)");
-        pw.println("`define instruction_dest(i)         i[(24+11-1):24]");
-        pw.println("`define packet_dest_steer(p)        p[0]");
-        pw.println("`define instruction_dest_steer(i)   i[24]");
-
-        pw.println("`define opcode_base (1+`DESTINATION_ADDRESS_BITS+`COUNT_BITS)");
-        pw.println("`define instruction_bit_tokenout(instruction) instruction[`opcode_base+4]");
-        pw.println("`define instruction_bit_dataout(instruction)  instruction[`opcode_base+3]");
-        pw.println("`define instruction_bit_latch(instruction)    instruction[`opcode_base+2]");
-        pw.println("`define instruction_bit_datain(instruction)   instruction[`opcode_base+1]");
-        pw.println("`define instruction_bit_tokenin(instruction)  instruction[`opcode_base+0]");
-        pw.println("`define instruction_bit_dest(instruction)     instruction[(`DESTINATION_ADDRESS_BITS):1]");
-        pw.println("`define instruction_bit_recycle(instruction)  instruction[0]");
+        pw.println("`define instruction_bit_tokenout(instruction) instruction["+OFFSET_TO+"]");
+        pw.println("`define instruction_bit_dataout(instruction)  instruction["+OFFSET_DO+"]");
+        pw.println("`define instruction_bit_latch(instruction)    instruction["+OFFSET_DL+"]");
+        pw.println("`define instruction_bit_datain(instruction)   instruction["+OFFSET_DI+"]");
+        pw.println("`define instruction_bit_tokenin(instruction)  instruction["+OFFSET_TI+"]");
+        pw.println("`define instruction_bit_recycle(instruction)  instruction["+OFFSET_RQ+"]");
+        pw.println("`define instruction_bit_dest(instruction)     instruction["+(OFFSET_DEST+WIDTH_DEST_ADDR-1)+":"+OFFSET_DEST+"]");
+        pw.println("`define instruction_count(instruction)        instruction["+(OFFSET_COUNT+WIDTH_COUNT-1)+":"+OFFSET_COUNT+"]");
         pw.println("`define instruction_is_kill(i)                (`instruction_bit_latch(i) && (!(`instruction_bit_datain(i))))");
         pw.println("`define instruction_bit_kill_only_standing(i) (`instruction_bit_tokenin(i))");
-        pw.println("`define instruction_count(instruction)        instruction[(1+`DESTINATION_ADDRESS_BITS+`COUNT_BITS-1):(1+`DESTINATION_ADDRESS_BITS)]");
-
         pw.println("`define instruction_is_clog(instruction)     (`instruction_count(instruction)==0 && !`instruction_bit_tokenin(instruction) && !`instruction_bit_datain(instruction) && !`instruction_bit_tokenout(instruction) && !`instruction_bit_dataout(instruction))");
         pw.println("`define instruction_is_unclog(instruction)   (`instruction_bit_kill_only_standing(instruction) && `instruction_is_kill(instruction))");
         box.dump(pw);