Changeset 108 for trunk/modules


Ignore:
Timestamp:
Oct 19, 2010, 12:32:49 AM (14 years ago)
Author:
gao
Message:

Bug correction

File:
1 edited

Legend:

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

    r104 r108  
    700700                          (paddr_t)p_vci_tgt.wdata.read() * m_dcache_words * 4;
    701701
    702             if ( (address & 0x3) == 0x3 ) // broadcast invalidate for data or instruction type
     702            if ( (address&0x3) == 0x3 ) // broadcast invalidate for data or instruction type
    703703            {
    704704                if ( ! p_vci_tgt.eop.read() )
     
    20782078    std::cout << name() << " Instruction Response: " << irsp << std::endl;
    20792079#endif
    2080 
    20812080    ////////////////////////////////////////////////////////////////////////////////////
    20822081    //      INVAL ITLB CHECK FSM
     
    44654464                r_dcache_itlb_inval_req = r_dcache_in_itlb[m_dcache_sets*way+set];
    44664465                r_dcache_itlb_inval_line = victim_index;
    4467                 r_dcache_in_itlb[way*m_dcache_sets+set] = false;
    44684466
    44694467                // data tlb invalidate verification
    44704468                r_dcache_dtlb_inval_req = r_dcache_in_dtlb[m_dcache_sets*way+set];
    44714469                r_dcache_dtlb_inval_line = victim_index;
    4472                 r_dcache_in_dtlb[way*m_dcache_sets+set] = false;
    44734470
    44744471                r_dcache_cleanup_req = true;
    44754472                r_dcache_cleanup_line = victim_index;
    44764473                m_cpt_cc_cleanup_data++;
     4474
    44774475                if ( r_dcache_in_itlb[m_dcache_sets*way+set] || r_dcache_in_dtlb[m_dcache_sets*way+set] )
    44784476                {
    44794477                    r_dcache_fsm = DCACHE_TLB_CC_INVAL;
    44804478                    r_dcache_fsm_save = r_dcache_fsm;
     4479                    r_dcache_in_itlb[way*m_dcache_sets+set] = false;
     4480                    r_dcache_in_dtlb[way*m_dcache_sets+set] = false;
    44814481                    break;
    44824482                }
     
    47384738                r_dcache_itlb_inval_req = r_dcache_in_itlb[m_dcache_sets*way+set];
    47394739                r_dcache_itlb_inval_line = victim_index;
    4740                 r_dcache_in_itlb[way*m_dcache_sets+set] = false;
    47414740
    47424741                // data tlb invalidate verification
    47434742                r_dcache_dtlb_inval_req = r_dcache_in_dtlb[m_dcache_sets*way+set];
    47444743                r_dcache_dtlb_inval_line = victim_index;
    4745                 r_dcache_in_dtlb[way*m_dcache_sets+set] = false;
    47464744
    47474745                r_dcache_cleanup_req = true;
     
    47524750                    r_dcache_fsm = DCACHE_TLB_CC_INVAL;
    47534751                    r_dcache_fsm_save = r_dcache_fsm;
     4752                    r_dcache_in_itlb[way*m_dcache_sets+set] = false;
     4753                    r_dcache_in_dtlb[way*m_dcache_sets+set] = false;
    47544754                    break;
    47554755                }
     
    51325132    std::cout << name() << " Data Response: " << drsp << std::endl;
    51335133#endif
    5134 
    51355134    ////////////////////////////////////////////////////////////////////////////////////
    51365135    //      INVAL DTLB CHECK FSM
     
    60466045
    60476046    } // end switch TGT_FSM
    6048 
    60496047#ifdef SOCLIB_MODULE_DEBUG
    60506048   std::cout << name()
Note: See TracChangeset for help on using the changeset viewer.