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