From: megacz Date: Mon, 19 Jan 2009 02:31:31 +0000 (-0800) Subject: fix bug in Fpga implementation related to Dc latch and c-flag; was causing c-flag... X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=35d5ed159ca14b998c5b836aad76f7672a0d644f;p=fleet.git fix bug in Fpga implementation related to Dc latch and c-flag; was causing c-flag-determined-by-dc.test to fail --- diff --git a/src/edu/berkeley/fleet/fpga/FpgaDock.java b/src/edu/berkeley/fleet/fpga/FpgaDock.java index 52f4e55..693db09 100644 --- a/src/edu/berkeley/fleet/fpga/FpgaDock.java +++ b/src/edu/berkeley/fleet/fpga/FpgaDock.java @@ -343,10 +343,14 @@ public class FpgaDock extends FleetTwoDock implements FabricElement { new AssignAction(flag_a, new_flag(ondeck.getBits(fpga.SET_FLAGS_A),flag_a,flag_b,flag_c))), new ConditionalAction(ondeck.testMask(fpga.SET_FLAGS), new AssignAction(flag_b, new_flag(ondeck.getBits(fpga.SET_FLAGS_B),flag_a,flag_b,flag_c))), - new ConditionalAction(inbox - ? new OrTrigger(ondeck.testMask(fpga.DI), ondeck.testMask(fpga.TI)) - : new AndTrigger(ondeck.testMask(fpga.DI).invert(), ondeck.testMask(fpga.TI)), - new AssignAction(flag_c, dfifo_out.getBits(dfifo_width-1, dfifo_width-1))), + new ConditionalAction(ondeck.testMask(fpga.MOVE), + new AssignAction(flag_c, + inbox + ? dfifo_out.getBits(dfifo_width-1, dfifo_width-1) + : new MuxValue(ondeck.testMask(fpga.DC), + ship_out.getBits(fpga.getWordWidth(), fpga.getWordWidth()), + dfifo_out.getBits(dfifo_width-1, dfifo_width-1)) + )), new ConditionalAction(ondeck.testMask(fpga.DI), data_in), new ConditionalAction(ondeck.testMask(fpga.DO), data_out), new ConditionalAction(ondeck.testMask(fpga.FLUSH), data_out),