checkpoint
[fleet.git] / src / edu / berkeley / fleet / fpga / Generator.java
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);