Ignore:
Timestamp:
Aug 26, 2014, 4:40:29 PM (10 years ago)
Author:
meunier
Message:

RWT Branch:

  • Renamed module caba:generic_cache_tsar to caba:generic_cache_tsar_rwt
  • Renamed module caba:dspin_dhccp_param to caba:dspin_rwt_param
  • cosmetic in generic_cache.h
Location:
branches/RWT/modules/vci_cc_vcache_wrapper/caba/source
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/RWT/modules/vci_cc_vcache_wrapper/caba/source/include/vci_cc_vcache_wrapper.h

    r767 r771  
    3535#include <inttypes.h>
    3636#include <systemc>
     37
    3738#include "caba_base_module.h"
    3839#include "multi_write_buffer.h"
     
    4243#include "vci_initiator.h"
    4344#include "dspin_interface.h"
    44 #include "dspin_dhccp_param.h"
     45#include "dspin_rwt_param.h"
    4546#include "mapping_table.h"
    4647#include "static_assert.h"
  • branches/RWT/modules/vci_cc_vcache_wrapper/caba/source/src/vci_cc_vcache_wrapper.cpp

    r767 r771  
    42894289
    42904290        uint32_t rdata;
    4291         size_t   way;
    4292         size_t   set;
     4291        size_t   way = 0; // To avoid gcc warning
     4292        size_t   set = 0; // To avoid gcc warning
    42934293        size_t   word;
    42944294        r_dcache.read_neutral(r_dcache_xtn_data_addr.read(),
     
    53795379
    53805380        uint32_t rdata;
    5381         size_t   way;
    5382         size_t   set;
     5381        size_t   way = 0; // to avoid gcc warning
     5382        size_t   set = 0; // to avoid gcc warning
    53835383        size_t   word;
    53845384        r_dcache.read_neutral(r_dcache_cc_inval_addr.read(),
     
    53995399                r_dcache_cc_inval_data_cpt = 0;
    54005400                r_dcache_fsm          = r_dcache_fsm_cc_save.read();
    5401                 r_dcache.write_dir( way,
    5402                                     set,
    5403                                     CACHE_SLOT_STATE_ZOMBI );
     5401                r_dcache.write_dir(way,
     5402                                   set,
     5403                                   CACHE_SLOT_STATE_ZOMBI );
    54045404            }
    54055405        }
     
    62076207                uint64_t receive_data = p_dspin_m2p.data.read();
    62086208                // initialize coherence packet type
    6209                 uint64_t receive_type = DspinDhccpParam::dspin_get(receive_data,
    6210                                             DspinDhccpParam::M2P_TYPE);
     6209                uint64_t receive_type = DspinRwtParam::dspin_get(receive_data,
     6210                                            DspinRwtParam::M2P_TYPE);
    62116211                // test for a broadcast
    6212                 if (DspinDhccpParam::dspin_get(receive_data,DspinDhccpParam::M2P_BC))
     6212                if (DspinRwtParam::dspin_get(receive_data,DspinRwtParam::M2P_BC))
    62136213                {
    62146214                    r_cc_receive_fsm = CC_RECEIVE_BRDCAST_HEADER;
    62156215                }
    62166216                // test for a multi updt
    6217                 else if (receive_type == DspinDhccpParam::TYPE_MULTI_UPDT_DATA)
     6217                else if (receive_type == DspinRwtParam::TYPE_MULTI_UPDT_DATA)
    62186218                {
    62196219                    r_cc_receive_fsm = CC_RECEIVE_DATA_UPDT_HEADER;
    62206220                }
    6221                 else if (receive_type == DspinDhccpParam::TYPE_MULTI_UPDT_INST)
     6221                else if (receive_type == DspinRwtParam::TYPE_MULTI_UPDT_INST)
    62226222                {
    62236223                    r_cc_receive_fsm = CC_RECEIVE_INS_UPDT_HEADER;
    62246224                }
    62256225                // test for a multi inval
    6226                 else if (receive_type == DspinDhccpParam::TYPE_MULTI_INVAL_DATA)
     6226                else if (receive_type == DspinRwtParam::TYPE_MULTI_INVAL_DATA)
    62276227                {
    62286228                    r_cc_receive_fsm = CC_RECEIVE_DATA_INVAL_HEADER;
     
    62576257                // request dcache to handle the BROADCAST
    62586258                r_cc_receive_dcache_req = true;
    6259                 r_cc_receive_dcache_nline  = DspinDhccpParam::dspin_get(receive_data,
    6260                                              DspinDhccpParam::BROADCAST_NLINE);
     6259                r_cc_receive_dcache_nline  = DspinRwtParam::dspin_get(receive_data,
     6260                                             DspinRwtParam::BROADCAST_NLINE);
    62616261                r_cc_receive_dcache_type = CC_TYPE_INVAL;
    62626262                // request icache to handle the BROADCAST
    62636263                r_cc_receive_icache_req = true;
    6264                 r_cc_receive_icache_nline  = DspinDhccpParam::dspin_get(receive_data,
    6265                                              DspinDhccpParam::BROADCAST_NLINE);
     6264                r_cc_receive_icache_nline  = DspinRwtParam::dspin_get(receive_data,
     6265                                             DspinRwtParam::BROADCAST_NLINE);
    62666266                r_cc_receive_icache_type = CC_TYPE_INVAL;
    62676267                // get back to idle state
     
    62796279            // sample updt tab index in the HEADER, then skip to second flit
    62806280            r_cc_receive_fsm = CC_RECEIVE_DATA_INVAL_NLINE;
    6281             r_cc_receive_dcache_inval_is_config = DspinDhccpParam::dspin_get(receive_data,
    6282                                                   DspinDhccpParam::MULTI_INVAL_IS_CONFIG);
     6281            r_cc_receive_dcache_inval_is_config = DspinRwtParam::dspin_get(receive_data,
     6282                                                  DspinRwtParam::MULTI_INVAL_IS_CONFIG);
    62836283            break;
    62846284        }
     
    63016301                // request dcache to handle the INVAL
    63026302                r_cc_receive_dcache_req = true;
    6303                 r_cc_receive_dcache_nline = DspinDhccpParam::dspin_get(receive_data,DspinDhccpParam::MULTI_INVAL_NLINE);
     6303                r_cc_receive_dcache_nline = DspinRwtParam::dspin_get(receive_data,DspinRwtParam::MULTI_INVAL_NLINE);
    63046304                r_cc_receive_dcache_type = CC_TYPE_INVAL;
    63056305                // get back to idle state
     
    63206320                // request icache to handle the INVAL
    63216321                r_cc_receive_icache_req = true;
    6322                 r_cc_receive_icache_nline = DspinDhccpParam::dspin_get(receive_data,DspinDhccpParam::MULTI_INVAL_NLINE);
     6322                r_cc_receive_icache_nline = DspinRwtParam::dspin_get(receive_data,DspinRwtParam::MULTI_INVAL_NLINE);
    63236323                r_cc_receive_icache_type = CC_TYPE_INVAL;
    63246324                // get back to idle state
     
    63376337            if (not r_cc_receive_dcache_req.read())
    63386338            {
    6339                 r_cc_receive_dcache_updt_tab_idx  = DspinDhccpParam::dspin_get(receive_data,DspinDhccpParam::MULTI_UPDT_UPDT_INDEX);
     6339                r_cc_receive_dcache_updt_tab_idx  = DspinRwtParam::dspin_get(receive_data,DspinRwtParam::MULTI_UPDT_UPDT_INDEX);
    63406340                r_cc_receive_fsm = CC_RECEIVE_DATA_UPDT_NLINE;
    63416341                break;
     
    63526352            if (not r_cc_receive_icache_req.read())
    63536353            {
    6354                 r_cc_receive_icache_updt_tab_idx  = DspinDhccpParam::dspin_get(receive_data,DspinDhccpParam::MULTI_UPDT_UPDT_INDEX);
     6354                r_cc_receive_icache_updt_tab_idx  = DspinRwtParam::dspin_get(receive_data,DspinRwtParam::MULTI_UPDT_UPDT_INDEX);
    63556355                r_cc_receive_fsm = CC_RECEIVE_INS_UPDT_NLINE;
    63566356                break;
     
    63706370            {
    63716371                r_cc_receive_dcache_req = true;
    6372                 r_cc_receive_dcache_nline  = DspinDhccpParam::dspin_get(receive_data,DspinDhccpParam::MULTI_UPDT_NLINE);
    6373                 r_cc_receive_word_idx  = DspinDhccpParam::dspin_get(receive_data,DspinDhccpParam::MULTI_UPDT_WORD_INDEX);
     6372                r_cc_receive_dcache_nline  = DspinRwtParam::dspin_get(receive_data,DspinRwtParam::MULTI_UPDT_NLINE);
     6373                r_cc_receive_word_idx  = DspinRwtParam::dspin_get(receive_data,DspinRwtParam::MULTI_UPDT_WORD_INDEX);
    63746374                r_cc_receive_dcache_type = CC_TYPE_UPDT;
    63756375                // get back to idle state
     
    63906390            {
    63916391                r_cc_receive_icache_req = true;
    6392                 r_cc_receive_icache_nline  = DspinDhccpParam::dspin_get(receive_data,DspinDhccpParam::MULTI_UPDT_NLINE);
    6393                 r_cc_receive_word_idx  = DspinDhccpParam::dspin_get(receive_data,DspinDhccpParam::MULTI_UPDT_WORD_INDEX);
     6392                r_cc_receive_icache_nline  = DspinRwtParam::dspin_get(receive_data,DspinRwtParam::MULTI_UPDT_NLINE);
     6393                r_cc_receive_word_idx  = DspinRwtParam::dspin_get(receive_data,DspinRwtParam::MULTI_UPDT_WORD_INDEX);
    63946394                r_cc_receive_icache_type = CC_TYPE_UPDT;
    63956395                // get back to idle state
     
    64076407                uint64_t receive_data = p_dspin_m2p.data.read();
    64086408                bool     receive_eop  = p_dspin_m2p.eop.read();
    6409                 cc_receive_updt_fifo_be   = DspinDhccpParam::dspin_get(receive_data,DspinDhccpParam::MULTI_UPDT_BE);
    6410                 cc_receive_updt_fifo_data = DspinDhccpParam::dspin_get(receive_data,DspinDhccpParam::MULTI_UPDT_DATA);
     6409                cc_receive_updt_fifo_be   = DspinRwtParam::dspin_get(receive_data,DspinRwtParam::MULTI_UPDT_BE);
     6410                cc_receive_updt_fifo_data = DspinRwtParam::dspin_get(receive_data,DspinRwtParam::MULTI_UPDT_DATA);
    64116411                cc_receive_updt_fifo_eop  = receive_eop;
    64126412                cc_receive_updt_fifo_put  = true;
     
    64236423                uint64_t receive_data = p_dspin_m2p.data.read();
    64246424                bool     receive_eop  = p_dspin_m2p.eop.read();
    6425                 cc_receive_updt_fifo_be   = DspinDhccpParam::dspin_get(receive_data,DspinDhccpParam::MULTI_UPDT_BE);
    6426                 cc_receive_updt_fifo_data = DspinDhccpParam::dspin_get(receive_data,DspinDhccpParam::MULTI_UPDT_DATA);
     6425                cc_receive_updt_fifo_be   = DspinRwtParam::dspin_get(receive_data,DspinRwtParam::MULTI_UPDT_BE);
     6426                cc_receive_updt_fifo_data = DspinRwtParam::dspin_get(receive_data,DspinRwtParam::MULTI_UPDT_DATA);
    64276427                cc_receive_updt_fifo_eop  = receive_eop;
    64286428                cc_receive_updt_fifo_put  = true;
     
    64366436    ///////////////// DSPIN CLACK interface ///////////////
    64376437   
    6438     uint64_t clack_type = DspinDhccpParam::dspin_get(r_dspin_clack_flit.read(),
    6439                                                      DspinDhccpParam::CLACK_TYPE);
    6440 
    6441     size_t clack_way  = DspinDhccpParam::dspin_get(r_dspin_clack_flit.read(),
    6442                                                    DspinDhccpParam::CLACK_WAY);
    6443 
    6444     size_t clack_set  = DspinDhccpParam::dspin_get(r_dspin_clack_flit.read(),
    6445                                                    DspinDhccpParam::CLACK_SET);
     6438    uint64_t clack_type = DspinRwtParam::dspin_get(r_dspin_clack_flit.read(),
     6439                                                     DspinRwtParam::CLACK_TYPE);
     6440
     6441    size_t clack_way  = DspinRwtParam::dspin_get(r_dspin_clack_flit.read(),
     6442                                                   DspinRwtParam::CLACK_WAY);
     6443
     6444    size_t clack_set  = DspinRwtParam::dspin_get(r_dspin_clack_flit.read(),
     6445                                                   DspinRwtParam::CLACK_SET);
    64466446
    64476447    bool dspin_clack_get      = false;
    6448     bool dcache_clack_request = (clack_type == DspinDhccpParam::TYPE_CLACK_DATA);
    6449     bool icache_clack_request = (clack_type == DspinDhccpParam::TYPE_CLACK_INST);
     6448    bool dcache_clack_request = (clack_type == DspinRwtParam::TYPE_CLACK_DATA);
     6449    bool icache_clack_request = (clack_type == DspinRwtParam::TYPE_CLACK_INST);
    64506450
    64516451    if (r_dspin_clack_req.read())
     
    67016701        {
    67026702            // initialize dspin send data
    6703             DspinDhccpParam::dspin_set(dspin_send_data,
     6703            DspinRwtParam::dspin_set(dspin_send_data,
    67046704                                       m_cc_global_id,
    6705                                        DspinDhccpParam::CLEANUP_SRCID);
    6706             DspinDhccpParam::dspin_set(dspin_send_data,
     6705                                       DspinRwtParam::CLEANUP_SRCID);
     6706            DspinRwtParam::dspin_set(dspin_send_data,
    67076707                                       0,
    6708                                        DspinDhccpParam::P2M_BC);
     6708                                       DspinRwtParam::P2M_BC);
    67096709
    67106710            if(r_cc_send_last_client.read() == 0) // dcache active request
     
    67126712                uint64_t dest = (uint64_t) r_dcache_cc_send_nline.read()
    67136713                                >> (m_nline_width - m_x_width - m_y_width)
    6714                                 << (DspinDhccpParam::GLOBALID_WIDTH - m_x_width - m_y_width);
    6715                 DspinDhccpParam::dspin_set(dspin_send_data,
     6714                                << (DspinRwtParam::GLOBALID_WIDTH - m_x_width - m_y_width);
     6715                DspinRwtParam::dspin_set(dspin_send_data,
    67166716                                           dest,
    6717                                            DspinDhccpParam::CLEANUP_DEST);
    6718 
    6719                 DspinDhccpParam::dspin_set(dspin_send_data,
     6717                                           DspinRwtParam::CLEANUP_DEST);
     6718
     6719                DspinRwtParam::dspin_set(dspin_send_data,
    67206720                                           (r_dcache_cc_send_nline.read() & 0x300000000ULL)>>32,
    6721                                            DspinDhccpParam::CLEANUP_NLINE_MSB);
    6722 
    6723                 DspinDhccpParam::dspin_set(dspin_send_data,
     6721                                           DspinRwtParam::CLEANUP_NLINE_MSB);
     6722
     6723                DspinRwtParam::dspin_set(dspin_send_data,
    67246724                                           r_dcache_cc_send_way.read(),
    6725                                            DspinDhccpParam::CLEANUP_WAY_INDEX);
    6726 
    6727                 DspinDhccpParam::dspin_set(dspin_send_data,
    6728                                            DspinDhccpParam::TYPE_CLEANUP_DATA,
    6729                                            DspinDhccpParam::P2M_TYPE);
    6730 
    6731                 DspinDhccpParam::dspin_set(dspin_send_data,
     6725                                           DspinRwtParam::CLEANUP_WAY_INDEX);
     6726
     6727                DspinRwtParam::dspin_set(dspin_send_data,
     6728                                           DspinRwtParam::TYPE_CLEANUP_DATA,
     6729                                           DspinRwtParam::P2M_TYPE);
     6730
     6731                DspinRwtParam::dspin_set(dspin_send_data,
    67326732                                           (r_dcache_cc_cleanup_line_ncc.read() and (r_cc_send_last_client.read() == 0)),
    6733                                            DspinDhccpParam::CLEANUP_NCC);
     6733                                           DspinRwtParam::CLEANUP_NCC);
    67346734            }
    67356735            else                                // icache active request
     
    67376737                uint64_t dest = (uint64_t) r_icache_cc_send_nline.read()
    67386738                                >> (m_nline_width - m_x_width - m_y_width)
    6739                                 << (DspinDhccpParam::GLOBALID_WIDTH - m_x_width - m_y_width);
    6740 
    6741                 DspinDhccpParam::dspin_set(dspin_send_data,
     6739                                << (DspinRwtParam::GLOBALID_WIDTH - m_x_width - m_y_width);
     6740
     6741                DspinRwtParam::dspin_set(dspin_send_data,
    67426742                                           dest,
    6743                                            DspinDhccpParam::CLEANUP_DEST);
    6744 
    6745                 DspinDhccpParam::dspin_set(dspin_send_data,
     6743                                           DspinRwtParam::CLEANUP_DEST);
     6744
     6745                DspinRwtParam::dspin_set(dspin_send_data,
    67466746                                           (r_icache_cc_send_nline.read() & 0x300000000ULL)>>32,
    6747                                            DspinDhccpParam::CLEANUP_NLINE_MSB);
    6748 
    6749                 DspinDhccpParam::dspin_set(dspin_send_data,
     6747                                           DspinRwtParam::CLEANUP_NLINE_MSB);
     6748
     6749                DspinRwtParam::dspin_set(dspin_send_data,
    67506750                                           r_icache_cc_send_way.read(),
    6751                                            DspinDhccpParam::CLEANUP_WAY_INDEX);
    6752 
    6753                 DspinDhccpParam::dspin_set(dspin_send_data,
    6754                                            DspinDhccpParam::TYPE_CLEANUP_INST,
    6755                                            DspinDhccpParam::P2M_TYPE);
    6756 
    6757                 DspinDhccpParam::dspin_set(dspin_send_data,
     6751                                           DspinRwtParam::CLEANUP_WAY_INDEX);
     6752
     6753                DspinRwtParam::dspin_set(dspin_send_data,
     6754                                           DspinRwtParam::TYPE_CLEANUP_INST,
     6755                                           DspinRwtParam::P2M_TYPE);
     6756
     6757                DspinRwtParam::dspin_set(dspin_send_data,
    67586758                                           0,
    6759                                            DspinDhccpParam::CLEANUP_NCC);
     6759                                           DspinRwtParam::CLEANUP_NCC);
    67606760
    67616761
     
    67736773            if(r_cc_send_last_client.read() == 0) // dcache active request
    67746774            {
    6775                 DspinDhccpParam::dspin_set(dspin_send_data,
     6775                DspinRwtParam::dspin_set(dspin_send_data,
    67766776                                           r_dcache_cc_send_nline.read() & 0xFFFFFFFFULL,
    6777                                            DspinDhccpParam::CLEANUP_NLINE_LSB);
     6777                                           DspinRwtParam::CLEANUP_NLINE_LSB);
    67786778            }
    67796779            else                                  // icache active request
    67806780            {
    6781                 DspinDhccpParam::dspin_set(dspin_send_data,
     6781                DspinRwtParam::dspin_set(dspin_send_data,
    67826782                                           r_icache_cc_send_nline.read() & 0xFFFFFFFFULL,
    6783                                            DspinDhccpParam::CLEANUP_NLINE_LSB);
     6783                                           DspinRwtParam::CLEANUP_NLINE_LSB);
    67846784            }
    67856785            // send flit
     
    67936793        {
    67946794
    6795             DspinDhccpParam::dspin_set(dspin_send_data,
     6795            DspinRwtParam::dspin_set(dspin_send_data,
    67966796                                       r_cc_send_data_fifo.read(),
    6797                                        DspinDhccpParam::CLEANUP_DATA_UPDT);
     6797                                       DspinRwtParam::CLEANUP_DATA_UPDT);
    67986798           
    67996799            p_dspin_p2m.data = dspin_send_data;
     
    68066806        {
    68076807            // initialize dspin send data
    6808             DspinDhccpParam::dspin_set(dspin_send_data,
     6808            DspinRwtParam::dspin_set(dspin_send_data,
    68096809                                       0,
    6810                                        DspinDhccpParam::P2M_BC);
    6811             DspinDhccpParam::dspin_set(dspin_send_data,
    6812                                        DspinDhccpParam::TYPE_MULTI_ACK,
    6813                                        DspinDhccpParam::P2M_TYPE);
     6810                                       DspinRwtParam::P2M_BC);
     6811            DspinRwtParam::dspin_set(dspin_send_data,
     6812                                       DspinRwtParam::TYPE_MULTI_ACK,
     6813                                       DspinRwtParam::P2M_TYPE);
    68146814
    68156815            if(r_cc_send_last_client.read() == 0) // dcache active request
     
    68176817                uint64_t dest = (uint64_t) r_dcache_cc_send_nline.read()
    68186818                                >> (m_nline_width - m_x_width - m_y_width)
    6819                                 << (DspinDhccpParam::GLOBALID_WIDTH - m_x_width - m_y_width);
     6819                                << (DspinRwtParam::GLOBALID_WIDTH - m_x_width - m_y_width);
    68206820 
    6821                 DspinDhccpParam::dspin_set(dspin_send_data,
     6821                DspinRwtParam::dspin_set(dspin_send_data,
    68226822                                           dest,
    6823                                            DspinDhccpParam::MULTI_ACK_DEST);
    6824 
    6825                 DspinDhccpParam::dspin_set(dspin_send_data,
     6823                                           DspinRwtParam::MULTI_ACK_DEST);
     6824
     6825                DspinRwtParam::dspin_set(dspin_send_data,
    68266826                                           r_dcache_cc_send_updt_tab_idx.read(),
    6827                                            DspinDhccpParam::MULTI_ACK_UPDT_INDEX);
     6827                                           DspinRwtParam::MULTI_ACK_UPDT_INDEX);
    68286828            }
    68296829            else                                    // icache active request
     
    68316831                uint64_t dest = (uint64_t) r_icache_cc_send_nline.read()
    68326832                                >> (m_nline_width - m_x_width - m_y_width)
    6833                                 << (DspinDhccpParam::GLOBALID_WIDTH - m_x_width - m_y_width);
     6833                                << (DspinRwtParam::GLOBALID_WIDTH - m_x_width - m_y_width);
    68346834 
    68356835
    6836                 DspinDhccpParam::dspin_set(dspin_send_data,
     6836                DspinRwtParam::dspin_set(dspin_send_data,
    68376837                                           dest,
    6838                                            DspinDhccpParam::MULTI_ACK_DEST);
    6839 
    6840                 DspinDhccpParam::dspin_set(dspin_send_data,
     6838                                           DspinRwtParam::MULTI_ACK_DEST);
     6839
     6840                DspinRwtParam::dspin_set(dspin_send_data,
    68416841                                           r_icache_cc_send_updt_tab_idx.read(),
    6842                                            DspinDhccpParam::MULTI_ACK_UPDT_INDEX);
     6842                                           DspinRwtParam::MULTI_ACK_UPDT_INDEX);
    68436843            }
    68446844            // send flit
     
    69386938
    69396939
    6940     int clack_type = DspinDhccpParam::dspin_get(r_dspin_clack_flit.read(),
    6941                                                 DspinDhccpParam::CLACK_TYPE);
     6940    int clack_type = DspinRwtParam::dspin_get(r_dspin_clack_flit.read(),
     6941                                                DspinRwtParam::CLACK_TYPE);
    69426942
    69436943    bool dspin_clack_get      = false;
    6944     bool dcache_clack_request = (clack_type == DspinDhccpParam::TYPE_CLACK_DATA);
    6945     bool icache_clack_request = (clack_type == DspinDhccpParam::TYPE_CLACK_INST);
     6944    bool dcache_clack_request = (clack_type == DspinRwtParam::TYPE_CLACK_DATA);
     6945    bool icache_clack_request = (clack_type == DspinRwtParam::TYPE_CLACK_INST);
    69466946
    69476947    if (r_dspin_clack_req.read())
Note: See TracChangeset for help on using the changeset viewer.