Ignore:
Timestamp:
Jun 1, 2010, 1:49:54 AM (14 years ago)
Author:
gao
Message:

Bug correction

Location:
trunk/modules/vci_cc_vcache_wrapper2_v1/caba/source
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/modules/vci_cc_vcache_wrapper2_v1/caba/source/include/vci_cc_vcache_wrapper2_v1.h

    r2 r37  
    373373    sc_signal<bool>         r_vci_rsp_ins_error;
    374374    sc_signal<bool>         r_vci_rsp_data_error;
     375    sc_signal<bool>         r_dcache_tlb_sc_fail;
    375376
    376377    data_t                  *r_icache_miss_buf;   
  • trunk/modules/vci_cc_vcache_wrapper2_v1/caba/source/src/vci_cc_vcache_wrapper2_v1.cpp

    r13 r37  
    275275      r_vci_rsp_ins_error("r_vci_rsp_ins_error"),
    276276      r_vci_rsp_data_error("r_vci_rsp_data_error"),
     277      r_dcache_tlb_sc_fail("r_dcache_tlb_sc_fail"),
    277278
    278279      r_vci_tgt_fsm("r_vci_tgt_fsm"),
     
    514515
    515516        r_dcache_cc_check         = false;
     517        r_dcache_tlb_sc_fail      = false;
    516518
    517519        // activity counters
     
    30063008
    30073009                if (r_dcache_inval_tlb_rsp) r_dcache_inval_tlb_rsp = false;
    3008                 if (r_dcache_inval_rsp) r_dcache_inval_rsp = false;                         }
     3010                if (r_dcache_inval_rsp) r_dcache_inval_rsp = false;                         
     3011            }
    30093012            else
    30103013            {
     
    30143017                    r_dcache_inval_tlb_rsp = false;
    30153018                    r_dcache_fsm = DCACHE_IDLE;
     3019                    if (r_dcache_tlb_sc_fail) r_dcache_tlb_sc_fail = false;
    30163020                    m_cost_data_tlb_miss_frz++;
    30173021                }
     
    30193023                {
    30203024                    r_dcache_inval_rsp = false;
     3025                    if (r_dcache_tlb_sc_fail) r_dcache_tlb_sc_fail = false;
    30213026                    r_dcache_fsm = DCACHE_IDLE;
    30223027                }
    3023                 else if ( r_dcache_tlb_ll_dirty_req )
     3028                else if ( r_dcache_tlb_sc_fail )
    30243029                {
     3030                    r_dcache_tlb_ll_dirty_req = true;
     3031                    r_dcache_tlb_sc_fail = false;
    30253032                    r_dcache_fsm = DCACHE_LL_DIRTY_WAIT;
    30263033                }
     
    32523259                    r_dcache_inval_tlb_rsp = false;
    32533260                    r_dcache_fsm = DCACHE_IDLE;
     3261                    if (r_dcache_tlb_sc_fail) r_dcache_tlb_sc_fail = false;
    32543262                    m_cost_data_tlb_miss_frz++;
    32553263                }
     
    32573265                {
    32583266                    r_dcache_inval_rsp = false;
     3267                    if (r_dcache_tlb_sc_fail) r_dcache_tlb_sc_fail = false;
    32593268                    r_dcache_fsm = DCACHE_IDLE;
    32603269                }
    3261                 else if ( r_dcache_tlb_ll_acc_req )
     3270                else if ( r_dcache_tlb_sc_fail )
    32623271                {
     3272                    r_dcache_tlb_sc_fail = false;
     3273                    r_dcache_tlb_ll_acc_req = true;
    32633274                    r_dcache_fsm = DCACHE_TLB1_LL_WAIT;
    32643275                }
     
    37133724                {
    37143725                    r_dcache_inval_tlb_rsp = false;
     3726                    if (r_dcache_tlb_sc_fail) r_dcache_tlb_sc_fail = false;
    37153727                    r_dcache_fsm = DCACHE_IDLE;
    37163728                    m_cost_data_tlb_miss_frz++;
     
    37193731                {
    37203732                    r_dcache_inval_rsp = false;
     3733                    if (r_dcache_tlb_sc_fail) r_dcache_tlb_sc_fail = false;
    37213734                    r_dcache_fsm = DCACHE_IDLE;
    37223735                }
    3723                 else if ( r_dcache_tlb_ll_acc_req )
     3736                else if ( r_dcache_tlb_sc_fail )
    37243737                {
     3738                    r_dcache_tlb_ll_acc_req = true;
     3739                    r_dcache_tlb_sc_fail = false;
    37253740                    r_dcache_fsm = DCACHE_TLB2_LL_WAIT;
    37263741                }
     
    46764691                    r_dcache_inval_rsp = false;
    46774692                    r_dcache_fsm = DCACHE_IDLE;
     4693                    if (r_dcache_tlb_sc_fail) r_dcache_tlb_sc_fail = false;
    46784694                    m_cost_data_tlb_miss_frz++;
    46794695                }
    4680                 else if ( r_dcache_itlb_ll_acc_req )
     4696                else if ( r_dcache_tlb_sc_fail )
    46814697                {
     4698                    r_dcache_tlb_sc_fail = false;
     4699                    r_dcache_itlb_ll_acc_req = true;
    46824700                    r_dcache_fsm = DCACHE_ITLB_LL_WAIT;
    46834701                }
     
    52265244        else if ( p_vci_ini_rw.rdata.read() == 1 ) // store conditional is not successful
    52275245        {
    5228             r_dcache_itlb_ll_acc_req = true;
     5246            r_dcache_tlb_sc_fail = true;
     5247            //r_dcache_itlb_ll_acc_req = true;
    52295248        }
    52305249        r_dcache_itlb_sc_acc_req = false;
     
    53305349        else if ( p_vci_ini_rw.rdata.read() == 1 ) // store conditional is not successful
    53315350        {
    5332             r_dcache_tlb_ll_acc_req = true;
     5351            r_dcache_tlb_sc_fail = true;
     5352            //r_dcache_tlb_ll_acc_req = true;
    53335353        }
    53345354        r_dcache_tlb_sc_acc_req = false;
     
    53685388        else if ( p_vci_ini_rw.rdata.read() == 1 ) // store conditional is not successful
    53695389        {
    5370             r_dcache_tlb_ll_dirty_req = true;
     5390            r_dcache_tlb_sc_fail = true;
     5391            //r_dcache_tlb_ll_dirty_req = true;
    53715392        }
    53725393        r_dcache_tlb_sc_dirty_req = false;
Note: See TracChangeset for help on using the changeset viewer.