"{ {"+(WIDTH_WORD-FleetTwoFleet.DataLatch_WIDTH)+
"{"+SET_IMMEDIATE_EXTEND.verilogVal(ondeck.getName())+"}}, "+
SET_IMMEDIATE.verilogVal(ondeck.getName())+" }")),
- new ConditionalAction(SET_FLAGS.verilog(ondeck.getName()), new AssignAction(flag_a, "`new_flag_a("+ondeck.getName()+")")),
- new ConditionalAction(SET_FLAGS.verilog(ondeck.getName()), new AssignAction(flag_b, "`new_flag_b("+ondeck.getName()+")")),
+ new ConditionalAction(SET_FLAGS.verilog(ondeck.getName()), new AssignAction(flag_a, new_flag(SET_FLAGS_A.verilogVal(ondeck.getName())))),
+ new ConditionalAction(SET_FLAGS.verilog(ondeck.getName()), new AssignAction(flag_b, new_flag(SET_FLAGS_B.verilogVal(ondeck.getName())))),
new ConditionalAction(inbox
? "("+DI.verilog(ondeck.getName())+" || "+TI.verilog(ondeck.getName())+")"
: "(!"+DI.verilog(ondeck.getName())+" && "+TI.verilog(ondeck.getName())+")",
);
}
- public void dump(PrintWriter pw, boolean fix) {
- pw.println("`define new_flag(x) ("+
- "( ((x >> 0) & 1) & !flag_c) |" +
- "( ((x >> 1) & 1) & flag_c) |" +
- "( ((x >> 2) & 1) & !flag_b) |" +
- "( ((x >> 3) & 1) & flag_b) |" +
- "( ((x >> 4) & 1) & !flag_a) |" +
- "( ((x >> 5) & 1) & flag_a) | 0" +
- ")");
- pw.println("`define new_flag_a(i) `new_flag("+SET_FLAGS_A.verilogVal("i")+")");
- pw.println("`define new_flag_b(i) `new_flag("+SET_FLAGS_B.verilogVal("i")+")");
- super.dump(pw,fix);
+ private static String new_flag(String x) {
+ return "("+
+ "( (("+x+" >> 0) & 1) & !flag_c) |" +
+ "( (("+x+" >> 1) & 1) & flag_c) |" +
+ "( (("+x+" >> 2) & 1) & !flag_b) |" +
+ "( (("+x+" >> 3) & 1) & flag_b) |" +
+ "( (("+x+" >> 4) & 1) & !flag_a) |" +
+ "( (("+x+" >> 5) & 1) & flag_a) | 0" +
+ ")";
}
}
}
+