Ignore:
Timestamp:
Jul 19, 2012, 3:32:18 PM (12 years ago)
Author:
cfuguet
Message:

Bug fix: When there is a pending write in the stage 1 of the write pipeline (DCACHE_IDLE) and the pipeline is frozen (write uncacheable and pending unc write or not write ok in the wbuf), we must not invalidate this write with the next requests to the DCACHE

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/modules/vci_cc_vcache_wrapper_v4/caba/source/src/vci_cc_vcache_wrapper_v4.cpp

    r238 r239  
    21552155            r_dcache_fsm_scan_save = r_dcache_fsm.read();
    21562156            r_dcache_fsm           = DCACHE_INVAL_TLB_SCAN;
    2157             r_dcache_p0_valid      = false;
     2157            r_dcache_p0_valid      = r_dcache_p0_valid.read() and write_pipe_frozen;
    21582158        }
    21592159        // external coherence request
     
    21622162            r_dcache_fsm_cc_save = r_dcache_fsm.read();
    21632163            r_dcache_fsm         = DCACHE_CC_CHECK;
    2164             r_dcache_p0_valid    = false;
     2164            r_dcache_p0_valid    = r_dcache_p0_valid.read() and write_pipe_frozen;
    21652165        }       
    21662166
     
    27142714            r_dcache_tlb_vaddr  = r_icache_vaddr_save.read();
    27152715            r_dcache_fsm        = DCACHE_TLB_MISS;
    2716             r_dcache_p0_valid = false;
     2716            r_dcache_p0_valid   = r_dcache_p0_valid.read() and write_pipe_frozen;
    27172717        }
    27182718        else
    27192719        {
    2720             r_dcache_p0_valid = false;
     2720            r_dcache_p0_valid = r_dcache_p0_valid.read() and write_pipe_frozen;
    27212721        } // end P0 pipe stage
    27222722        break;
Note: See TracChangeset for help on using the changeset viewer.