]> rtime.felk.cvut.cz Git - fpga/lx-cpu1/tumbl.git/blobdiff - hw/core_ctrl.vhd
When branching, do not execute the instruction behind the branch
[fpga/lx-cpu1/tumbl.git] / hw / core_ctrl.vhd
index da5752b3e7765076d4fd744dd0f284bbb62db223..5e9d5a452bc2ad06a5123bc5b9787079593650cb 100644 (file)
@@ -257,7 +257,11 @@ regd_proc:
                 lp_rst_ID2EX_REG;
             ELSIF (clken_pipe_s = '1') THEN
                 setup_int_r <= '0';
-                ID2EX_REG_r <= ID2EX_REG_i;
+                if (EX2IF_REG_i.take_branch = '1') THEN
+                    lp_rst_ID2EX_REG;
+                ELSE
+                    ID2EX_REG_r <= ID2EX_REG_i;
+                END IF;
                 delayBit_r  <= ID2CTRL_i.delayBit;
             END IF;
             -- exeq-to-mem unit registers