end if;
end if;
- jump <= alu_jmp xor br_pred;
+ jump <= (alu_jmp xor br_pred) and (write_en or wb_reg.dmem_en);
+
+ if alu_jmp = '0' and br_pred = '1' and write_en = '0' then
+ jump <= '1';
+ end if;
+
jump_addr <= result;
if ((alu_jmp and wb_reg.dmem_en) = '1') then
jump_addr <= data_ram_read;