From 95704fd3cfedb792839f6168c777d77ca1da3ceb Mon Sep 17 00:00:00 2001 From: Joshua Wise Date: Sun, 18 Jan 2009 04:18:45 -0500 Subject: [PATCH] Memory: Change offset latch in LDM so that there is no flutter if DCache cannot get the bus or tries to write to an address that has latency. --- Memory.v | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Memory.v b/Memory.v index 2bab914..2e6ed0f 100644 --- 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 -- 2.39.2