fix a bug in repeat kill on fpga
authoradam <adam@megacz.com>
Tue, 28 Aug 2007 00:24:45 +0000 (01:24 +0100)
committeradam <adam@megacz.com>
Tue, 28 Aug 2007 00:24:45 +0000 (01:24 +0100)
src/edu/berkeley/fleet/fpga/Generator.java

index 8810fbf..38d6229 100644 (file)
@@ -580,11 +580,13 @@ public class Generator {
 
         // First Kill
         box.new Event(
-                      new Object[] { instr, ififo_out,
+                      new Object[] { instr,
                                      "`instruction_is_kill(instr)",
                                      "!`instruction_is_unclog(instr)",
-                                     newMayProceed.isFull() },
-                      new Action[] { instr, ififo_out,
+                                     ondeckFull.isFull()
+                      },
+                      new Action[] { instr,
+                                     ondeckFull.doDrain(),
                                      new ConditionalAction("`instruction_count(instr)!=0", new AssignAction(repcount, instruction_count_instr+"-1")),
                                      new ConditionalAction("`instruction_count(instr)!=0", doRepeatKill.doFill()),
                                      new ConditionalAction("`instruction_count(instr)!=0", newMayProceed.doDrain()),
@@ -595,9 +597,9 @@ public class Generator {
         box.new Event(
                       new Object[] { doKill.isFull() },
                       new Action[] { doKill.doDrain(),
-                                     new ConditionalAction("`instruction_count(instr)!=0", new AssignAction(repcount, instruction_count_instr+"-1")),
-                                     new ConditionalAction("`instruction_count(instr)!=0", doRepeatKill.doFill()),
-                                     new ConditionalAction("`instruction_count(instr)==0", newMayProceed.doFill())
+                                     new ConditionalAction("`instruction_count(ondeck)!=0", new AssignAction(repcount, instruction_count_ondeck+"-1")),
+                                     new ConditionalAction("`instruction_count(ondeck)!=0", doRepeatKill.doFill()),
+                                     new ConditionalAction("`instruction_count(ondeck)==0", newMayProceed.doFill())
                       });
 
         // RepKill