Memory: Change offset latch in LDM so that there is no flutter if DCache cannot get...
authorJoshua Wise <joshua@rebirth.joshuawise.com>
Sun, 18 Jan 2009 09:18:45 +0000 (04:18 -0500)
committerJoshua Wise <joshua@rebirth.joshuawise.com>
Sun, 18 Jan 2009 09:18:45 +0000 (04:18 -0500)
Memory.v

index 2bab914..2e6ed0f 100644 (file)
--- a/Memory.v
+++ b/Memory.v
@@ -87,7 +87,8 @@ module Memory(
                out_write_data <= next_write_data;
                regs <= next_regs;
                prev_reg <= cur_reg;
-               prev_offset <= offset;
+               if (!rw_wait)
+                       prev_offset <= offset;
                prev_raddr <= raddr;
                outcpsr <= next_outcpsr;
                outspsr <= spsr;
@@ -349,10 +350,7 @@ module Memory(
                                        next_outcpsr = spsr;
                                end
 
-                               if (rw_wait)
-                                       offset = prev_offset;   /* whoops, do this one again */
-                               else
-                                       offset = prev_offset + 6'h4;
+                               offset = prev_offset + 6'h4;
                                offset_sel = insn[24] ? offset : prev_offset;
                                raddr = insn[23] ? op0 + {26'b0, offset_sel} : op0 - {26'b0, offset_sel};
                                if(insn[20]) begin
This page took 0.018968 seconds and 4 git commands to generate.