diff --git a/lib/CPUs/MIPS/src/core/mips_pipeline.vhd b/lib/CPUs/MIPS/src/core/mips_pipeline.vhd index 1138de4..987dd9d 100644 --- a/lib/CPUs/MIPS/src/core/mips_pipeline.vhd +++ b/lib/CPUs/MIPS/src/core/mips_pipeline.vhd @@ -563,8 +563,12 @@ proc_stage_DMEM_ADDR: if rising_edge(clk_1) then if sdu.EX_stall = '0' then EX_stage.va <= vaddr; - if c0_ctrl_in.RE = '1' then - EX_stage.pa_off <= not vaddr(1 downto 0); + if c0_ctrl_in.EB = '1' then + if ID_stage.ctrl.word2_en = '0' then + EX_stage.pa_off <= not vaddr(1 downto 0); + else + EX_stage.pa_off <= not vaddr(1) & vaddr(0); + end if; else EX_stage.pa_off <= vaddr(1 downto 0); end if;