+ op2_next <= punkt_int;
+ when others => assert(false) report "SCALC_1/1: shouldn't happen!";
+ end case;
+
+ when ALU_MUL | ALU_DIV =>
+ case aktop_int is
+ when ALU_ADD | ALU_SUB | ALU_DONE =>
+ op2_next <= z_int;
+ opcode_next <= opp_int;
+ op1_next <= punkt_int;
+ when ALU_MUL | ALU_DIV =>
+ op2_next <= z_int;
+ opcode_next <= opp_int;
+ op1_next <= punkt_int;
+ when others => assert(false) report "SCALC_1/2: shouldn't happen!";
+ end case;
+ when others => assert(false) report "SCALC_1/3: shouldn't happen!";
+ end case;
+ do_calc_next <= '1';
+
+ when SCALC_14 =>
+ case opp_int is
+ when ALU_MUL | ALU_DIV =>
+ case aktop_int is
+ when ALU_ADD | ALU_SUB | ALU_DONE =>
+ op1_next <= op3;
+ do_calc_next <= '0';
+ when others => assert(false) report("SCALC_14/1: bla!");
+ end case;
+ when others => assert(false) report("SCALC_14/2: bla!");
+ end case;
+
+ when SCALC_15 =>
+ case opp_int is
+ when ALU_MUL | ALU_DIV =>
+ case aktop_int is
+ when ALU_ADD | ALU_SUB | ALU_DONE =>
+ opcode_next <= ALU_ADD;