--jump <= (alu_jmp xor br_pred) and (write_en or wb_reg.dmem_en);
jump <= (alu_jmp xor br_pred);-- and (write_en or wb_reg.dmem_en);
+ if (alu_jmp = '1' and wb_reg.dmem_en = '1' and wb_reg.dmem_write_en = '0' and write_en = '0') then
+ jump_addr <= data_ram_read;
+ else
+ jump_addr <= result;
+ end if;
+
-- 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;
- end if;
+-- if ((alu_jmp and wb_reg.dmem_en) = '1') then
+-- jump_addr <= data_ram_read;
+-- end if;
end process;