);
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);