Ignore:
Timestamp:
Mar 14, 2012, 10:22:45 PM (12 years ago)
Author:
alain
Message:

bug fixing

File:
1 edited

Legend:

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

    r205 r206  
    116116        DCACHE_XTN_DC_INVAL_GO,         
    117117        DCACHE_XTN_DT_INVAL,         
    118         //handling long write (set dirty bit)
    119         DCACHE_DIRTY_TLB_SET,
    120         DCACHE_DIRTY_CACHE_SET,
     118        //handling dirty bit update
     119        DCACHE_DIRTY_GET_PTE,
    121120        DCACHE_DIRTY_SC_WAIT,           
    122         DCACHE_DIRTY_UNC_WAIT,
    123121            // handling processor miss requests
    124122        DCACHE_MISS_VICTIM,
    125123        DCACHE_MISS_INVAL,
    126         DCACHE_MISS_INVAL_WAIT,
    127124        DCACHE_MISS_WAIT,           
    128125        DCACHE_MISS_UPDT,           
     
    274271    // debug variables (for each FSM)
    275272    /////////////////////////////////////////////
    276     uint32_t                                    m_debug_start_cycle;
    277     bool                                        m_debug_ok;
    278     bool                                        m_debug_previous_hit;
    279     bool                                        m_debug_dcache_fsm;
    280     bool                                        m_debug_icache_fsm;
    281     bool                                        m_debug_cleanup_fsm;
    282     bool                                        m_debug_inval_itlb_fsm;
    283     bool                                        m_debug_inval_dtlb_fsm;
     273    uint32_t                            m_debug_start_cycle;
     274    bool                                m_debug_ok;
     275    bool                                m_debug_previous_hit;
     276    bool                                m_debug_dcache_fsm;
     277    bool                                m_debug_icache_fsm;
     278    bool                                m_debug_cleanup_fsm;
     279    bool                                m_debug_inval_itlb_fsm;
     280    bool                                m_debug_inval_dtlb_fsm;
    284281
    285282    ///////////////////////////////
     
    344341    sc_signal<paddr_t>      r_dcache_p0_paddr;          // physical address
    345342    sc_signal<bool>         r_dcache_p0_cacheable;          // address cacheable
    346     sc_signal<size_t>       r_dcache_p0_tlb_way;            // selected way (from dtlb)
    347     sc_signal<size_t>       r_dcache_p0_tlb_set;            // selected set (from dtlb)
    348     sc_signal<paddr_t>      r_dcache_p0_tlb_nline;          // nline value (from dtlb)
    349     sc_signal<bool>         r_dcache_p0_tlb_dirty;      // dirty bit (from dtlb)
    350     sc_signal<bool>         r_dcache_p0_tlb_big;        // big page bit (from dtlb)
    351343    // registers written in P1 stage (used in P2 stage)
    352344    sc_signal<bool>         r_dcache_p1_valid;              // P2 pipeline stage must be executed
    353     sc_signal<bool>         r_dcache_p1_updt_cache;     // dcache must be updated
    354     sc_signal<bool>         r_dcache_p1_set_dirty;      // PTE dirty bit must be set
    355     sc_signal<uint32_t>     r_dcache_p1_vaddr;          // virtual address (from proc)
    356345    sc_signal<uint32_t>     r_dcache_p1_wdata;          // write data (from proc)
    357346    sc_signal<vci_be_t>     r_dcache_p1_be;             // byte enable (from proc)
     
    360349    sc_signal<size_t>       r_dcache_p1_cache_set;          // selected set (from dcache)   
    361350    sc_signal<size_t>       r_dcache_p1_cache_word;         // selected word (from dcache)   
    362     sc_signal<size_t>       r_dcache_p1_tlb_way;            // selected way (from dtlb)
    363     sc_signal<size_t>       r_dcache_p1_tlb_set;            // selected set (from dtlb)
    364     sc_signal<paddr_t>      r_dcache_p1_tlb_nline;          // nline value (from dtlb)
    365     sc_signal<bool>         r_dcache_p1_tlb_big;        // big page bit (from dtlb)
    366     // registers written in P2 stage (used in long write)
    367     sc_signal<size_t>       r_dcache_p2_way;            // selected way in dtlb or dcache
    368     sc_signal<size_t>       r_dcache_p2_set;            // selected set in dtlb or dcache
    369     sc_signal<size_t>       r_dcache_p2_word;           // selected word in dcache
    370     sc_signal<paddr_t>      r_dcache_p2_pte_paddr;      // PTE physical address
    371     sc_signal<size_t>       r_dcache_p2_pte_value;      // PTE value
    372     sc_signal<bool>         r_dcache_p2_type_sc;            // request type (WRITE or SC)
    373     sc_signal<bool>         r_dcache_p2_sc_success;     // successful SC request
    374    
     351    // registers used by the Dirty bit sub-fsm
     352    sc_signal<paddr_t>      r_dcache_dirty_paddr;       // PTE physical address
     353    sc_signal<size_t>       r_dcache_dirty_way;         // way to invalidate in dcache
     354    sc_signal<size_t>       r_dcache_dirty_set;         // set to invalidate in dcache
     355
    375356    // communication between DCACHE FSM and VCI_CMD FSM
    376357    sc_signal<paddr_t>      r_dcache_vci_paddr;             // physical address for VCI command
     
    422403                           
    423404    // ITLB and DTLB invalidation
    424     sc_signal<bool>         r_dcache_itlb_inval_req;    // inval request for itlb
    425     sc_signal<bool>         r_dcache_dtlb_inval_req;    // inval request for dtlb
    426405    sc_signal<paddr_t>      r_dcache_tlb_inval_line;    // line index
    427406    sc_signal<size_t>       r_dcache_tlb_inval_count;   // tlb entry counter
     
    436415
    437416    // dcache directory extension
    438     bool                    *r_dcache_in_itlb;          // copy of dcache line in itlb
    439     bool                    *r_dcache_in_dtlb;          // copy of dcache line in dtlb
     417    bool                    *r_dcache_in_tlb;           // copy exist in dtlb or itlb
     418    bool                    *r_dcache_contains_ptd;     // cache line contains a PTD
    440419
    441420    ///////////////////////////////////
Note: See TracChangeset for help on using the changeset viewer.