From 35d5ed159ca14b998c5b836aad76f7672a0d644f Mon Sep 17 00:00:00 2001 From: megacz Date: Sun, 18 Jan 2009 18:31:31 -0800 Subject: [PATCH] fix bug in Fpga implementation related to Dc latch and c-flag; was causing c-flag-determined-by-dc.test to fail --- src/edu/berkeley/fleet/fpga/FpgaDock.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) 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), -- 1.7.10.4