From 97ba866a96493f511c97d069f5caa8479ac5ccdf Mon Sep 17 00:00:00 2001 From: adam Date: Mon, 20 Aug 2007 09:15:42 +0100 Subject: [PATCH] checkpoint --- Makefile | 8 ++++---- src/edu/berkeley/fleet/fpga/Generator.java | 23 ++++++++--------------- 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index 0bae854..9515eee 100644 --- 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/* . diff --git a/src/edu/berkeley/fleet/fpga/Generator.java b/src/edu/berkeley/fleet/fpga/Generator.java index 550c5b0..4906f2b 100644 --- a/src/edu/berkeley/fleet/fpga/Generator.java +++ b/src/edu/berkeley/fleet/fpga/Generator.java @@ -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); -- 1.7.10.4