Changeset 530


Ignore:
Timestamp:
Sep 19, 2013, 4:01:04 PM (11 years ago)
Author:
cfuguet
Message:

Modification in vci_mem_cache:

  • Aligning the FSM states values with the values of the RTL model to allow the cosimulation of this model.
  • Introducing one output port per FSM which are used when cosimulating this model. These ports are compiled only when the MONITOR_MEMCACHE_FSM preprocessor variable is equal to 1.
Location:
trunk/modules/vci_mem_cache/caba/source
Files:
2 edited

Legend:

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

    r527 r530  
    8080      {
    8181        TGT_CMD_IDLE,
    82         TGT_CMD_ERROR,
    8382        TGT_CMD_READ,
    8483        TGT_CMD_WRITE,
    8584        TGT_CMD_CAS,
     85        TGT_CMD_ERROR,
    8686        TGT_CMD_CONFIG
    8787      };
     
    9090      enum tgt_rsp_fsm_state_e
    9191      {
    92         TGT_RSP_CONFIG_IDLE,
    93         TGT_RSP_TGT_CMD_IDLE,
    9492        TGT_RSP_READ_IDLE,
    9593        TGT_RSP_WRITE_IDLE,
     
    9896        TGT_RSP_MULTI_ACK_IDLE,
    9997        TGT_RSP_CLEANUP_IDLE,
    100         TGT_RSP_CONFIG,
    101         TGT_RSP_TGT_CMD,
     98        TGT_RSP_CONFIG_IDLE,
     99        TGT_RSP_TGT_CMD_IDLE,
    102100        TGT_RSP_READ,
    103101        TGT_RSP_WRITE,
     
    105103        TGT_RSP_XRAM,
    106104        TGT_RSP_MULTI_ACK,
    107         TGT_RSP_CLEANUP
     105        TGT_RSP_CLEANUP,
     106        TGT_RSP_CONFIG,
     107        TGT_RSP_TGT_CMD
    108108      };
    109109
     
    120120      enum cc_send_fsm_state_e
    121121      {
    122         CC_SEND_CONFIG_IDLE,
    123122        CC_SEND_XRAM_RSP_IDLE,
    124123        CC_SEND_WRITE_IDLE,
    125124        CC_SEND_CAS_IDLE,
    126         CC_SEND_CONFIG_INVAL_HEADER,
    127         CC_SEND_CONFIG_INVAL_NLINE,
    128         CC_SEND_CONFIG_BRDCAST_HEADER,
    129         CC_SEND_CONFIG_BRDCAST_NLINE,
     125        CC_SEND_CONFIG_IDLE,
    130126        CC_SEND_XRAM_RSP_BRDCAST_HEADER,
    131127        CC_SEND_XRAM_RSP_BRDCAST_NLINE,
     
    142138        CC_SEND_CAS_UPDT_NLINE,
    143139        CC_SEND_CAS_UPDT_DATA,
    144         CC_SEND_CAS_UPDT_DATA_HIGH
     140        CC_SEND_CAS_UPDT_DATA_HIGH,
     141        CC_SEND_CONFIG_INVAL_HEADER,
     142        CC_SEND_CONFIG_INVAL_NLINE,
     143        CC_SEND_CONFIG_BRDCAST_HEADER,
     144        CC_SEND_CONFIG_BRDCAST_NLINE
    145145      };
    146146
     
    317317      {
    318318        ALLOC_DIR_RESET,
    319         ALLOC_DIR_CONFIG,
    320319        ALLOC_DIR_READ,
    321320        ALLOC_DIR_WRITE,
    322321        ALLOC_DIR_CAS,
    323322        ALLOC_DIR_CLEANUP,
    324         ALLOC_DIR_XRAM_RSP
     323        ALLOC_DIR_XRAM_RSP,
     324        ALLOC_DIR_CONFIG
    325325      };
    326326
     
    333333        ALLOC_TRT_XRAM_RSP,
    334334        ALLOC_TRT_IXR_RSP,
    335         ALLOC_TRT_CONFIG,
    336         ALLOC_TRT_IXR_CMD
     335        ALLOC_TRT_IXR_CMD,
     336        ALLOC_TRT_CONFIG
    337337      };
    338338
     
    470470      soclib::caba::DspinOutput<dspin_out_width>  p_dspin_m2p;
    471471      soclib::caba::DspinOutput<dspin_out_width>  p_dspin_clack;
     472
     473#if MONITOR_MEMCACHE_FSM == 1
     474      sc_out<int> p_read_fsm;
     475      sc_out<int> p_write_fsm;
     476      sc_out<int> p_xram_rsp_fsm;
     477      sc_out<int> p_cas_fsm;
     478      sc_out<int> p_cleanup_fsm;
     479      sc_out<int> p_config_fsm;
     480      sc_out<int> p_alloc_heap_fsm;
     481      sc_out<int> p_alloc_dir_fsm;
     482      sc_out<int> p_alloc_trt_fsm;
     483      sc_out<int> p_alloc_upt_fsm;
     484      sc_out<int> p_alloc_ivt_fsm;
     485      sc_out<int> p_tgt_cmd_fsm;
     486      sc_out<int> p_tgt_rsp_fsm;
     487      sc_out<int> p_ixr_cmd_fsm;
     488      sc_out<int> p_ixr_rsp_fsm;
     489      sc_out<int> p_cc_send_fsm;
     490      sc_out<int> p_cc_receive_fsm;
     491      sc_out<int> p_multi_ack_fsm;
     492#endif
    472493
    473494      VciMemCache(
  • trunk/modules/vci_mem_cache/caba/source/src/vci_mem_cache.cpp

    r529 r530  
    6161    {
    6262        "TGT_CMD_IDLE",
    63         "TGT_CMD_ERROR",
    6463        "TGT_CMD_READ",
    6564        "TGT_CMD_WRITE",
    6665        "TGT_CMD_CAS",
     66        "TGT_CMD_ERROR",
    6767        "TGT_CMD_CONFIG"
    6868    };
    6969    const char *tgt_rsp_fsm_str[] =
    7070    {
    71         "TGT_RSP_CONFIG_IDLE",
    72         "TGT_RSP_TGT_CMD_IDLE",
    7371        "TGT_RSP_READ_IDLE",
    7472        "TGT_RSP_WRITE_IDLE",
     
    7775        "TGT_RSP_MULTI_ACK_IDLE",
    7876        "TGT_RSP_CLEANUP_IDLE",
    79         "TGT_RSP_CONFIG",
    80         "TGT_RSP_TGT_CMD",
     77        "TGT_RSP_CONFIG_IDLE",
     78        "TGT_RSP_TGT_CMD_IDLE",
    8179        "TGT_RSP_READ",
    8280        "TGT_RSP_WRITE",
     
    8482        "TGT_RSP_XRAM",
    8583        "TGT_RSP_MULTI_ACK",
    86         "TGT_RSP_CLEANUP"
     84        "TGT_RSP_CLEANUP",
     85        "TGT_RSP_CONFIG",
     86        "TGT_RSP_TGT_CMD"
    8787    };
    8888    const char *cc_receive_fsm_str[] =
     
    9595    const char *cc_send_fsm_str[] =
    9696    {
    97         "CC_SEND_CONFIG_IDLE",
    9897        "CC_SEND_XRAM_RSP_IDLE",
    9998        "CC_SEND_WRITE_IDLE",
    10099        "CC_SEND_CAS_IDLE",
    101         "CC_SEND_CONFIG_INVAL_HEADER",
    102         "CC_SEND_CONFIG_INVAL_NLINE",
    103         "CC_SEND_CONFIG_BRDCAST_HEADER",
    104         "CC_SEND_CONFIG_BRDCAST_NLINE",
     100        "CC_SEND_CONFIG_IDLE",
    105101        "CC_SEND_XRAM_RSP_BRDCAST_HEADER",
    106102        "CC_SEND_XRAM_RSP_BRDCAST_NLINE",
     
    117113        "CC_SEND_CAS_UPDT_NLINE",
    118114        "CC_SEND_CAS_UPDT_DATA",
    119         "CC_SEND_CAS_UPDT_DATA_HIGH"
     115        "CC_SEND_CAS_UPDT_DATA_HIGH",
     116        "CC_SEND_CONFIG_INVAL_HEADER",
     117        "CC_SEND_CONFIG_INVAL_NLINE",
     118        "CC_SEND_CONFIG_BRDCAST_HEADER",
     119        "CC_SEND_CONFIG_BRDCAST_NLINE"
    120120    };
    121121    const char *multi_ack_fsm_str[] =
     
    272272    {
    273273        "ALLOC_DIR_RESET",
    274         "ALLOC_DIR_CONFIG",
    275274        "ALLOC_DIR_READ",
    276275        "ALLOC_DIR_WRITE",
    277276        "ALLOC_DIR_CAS",
    278277        "ALLOC_DIR_CLEANUP",
    279         "ALLOC_DIR_XRAM_RSP"
     278        "ALLOC_DIR_XRAM_RSP",
     279        "ALLOC_DIR_CONFIG"
    280280    };
    281281    const char *alloc_trt_fsm_str[] =
     
    286286        "ALLOC_TRT_XRAM_RSP",
    287287        "ALLOC_TRT_IXR_RSP",
    288         "ALLOC_TRT_CONFIG",
    289         "ALLOC_TRT_IXR_CMD"
     288        "ALLOC_TRT_IXR_CMD",
     289        "ALLOC_TRT_CONFIG"
    290290    };
    291291    const char *alloc_upt_fsm_str[] =
     
    461461        r_alloc_heap_fsm("r_alloc_heap_fsm"),
    462462        r_alloc_heap_reset_cpt("r_alloc_heap_reset_cpt")
     463#if MONITOR_MEMCACHE_FSM == 1
     464        ,
     465        p_read_fsm("p_read_fsm"),
     466        p_write_fsm("p_write_fsm"),
     467        p_xram_rsp_fsm("p_xram_rsp_fsm"),
     468        p_cas_fsm("p_cas_fsm"),
     469        p_cleanup_fsm("p_cleanup_fsm"),
     470        p_config_fsm("p_config_fsm"),
     471        p_alloc_heap_fsm("p_alloc_heap_fsm"),
     472        p_alloc_dir_fsm("p_alloc_dir_fsm"),
     473        p_alloc_trt_fsm("p_alloc_trt_fsm"),
     474        p_alloc_upt_fsm("p_alloc_upt_fsm"),
     475        p_alloc_ivt_fsm("p_alloc_ivt_fsm"),
     476        p_tgt_cmd_fsm("p_tgt_cmd_fsm"),
     477        p_tgt_rsp_fsm("p_tgt_rsp_fsm"),
     478        p_ixr_cmd_fsm("p_ixr_cmd_fsm"),
     479        p_ixr_rsp_fsm("p_ixr_rsp_fsm"),
     480        p_cc_send_fsm("p_cc_send_fsm"),
     481        p_cc_receive_fsm("p_cc_receive_fsm"),
     482        p_multi_ack_fsm("p_multi_ack_fsm")
     483#endif
    463484        {
    464485            std::cout << "  - Building VciMemCache : " << name << std::endl;
     
    814835            r_tgt_cmd_fsm    = TGT_CMD_IDLE;
    815836            r_config_fsm     = CONFIG_IDLE;
    816             r_tgt_rsp_fsm    = TGT_RSP_TGT_CMD_IDLE;
     837            r_tgt_rsp_fsm    = TGT_RSP_READ_IDLE;
    817838            r_cc_send_fsm    = CC_SEND_XRAM_RSP_IDLE;
    818839            r_cc_receive_fsm = CC_RECEIVE_IDLE;
     
    826847            r_alloc_trt_fsm  = ALLOC_TRT_READ;
    827848            r_alloc_upt_fsm  = ALLOC_UPT_WRITE;
    828             r_alloc_ivt_fsm  = ALLOC_IVT_XRAM_RSP;
     849            r_alloc_ivt_fsm  = ALLOC_IVT_WRITE;
    829850            r_ixr_rsp_fsm    = IXR_RSP_IDLE;
    830851            r_xram_rsp_fsm   = XRAM_RSP_IDLE;
     
    78477868        /////////////////////////////
    78487869    {
     7870#if MONITOR_MEMCACHE_FSM == 1
     7871        p_read_fsm.write        (r_read_fsm.read()       );
     7872        p_write_fsm.write       (r_write_fsm.read()      );
     7873        p_xram_rsp_fsm.write    (r_xram_rsp_fsm.read()   );
     7874        p_cas_fsm.write         (r_cas_fsm.read()        );
     7875        p_cleanup_fsm.write     (r_cleanup_fsm.read()    );
     7876        p_config_fsm.write      (r_config_fsm.read()     );
     7877        p_alloc_heap_fsm.write  (r_alloc_heap_fsm.read() );
     7878        p_alloc_dir_fsm.write   (r_alloc_dir_fsm.read()  );
     7879        p_alloc_trt_fsm.write   (r_alloc_trt_fsm.read()  );
     7880        p_alloc_upt_fsm.write   (r_alloc_upt_fsm.read()  );
     7881        p_alloc_ivt_fsm.write   (r_alloc_ivt_fsm.read()  );
     7882        p_tgt_cmd_fsm.write     (r_tgt_cmd_fsm.read()    );
     7883        p_tgt_rsp_fsm.write     (r_tgt_rsp_fsm.read()    );
     7884        p_ixr_cmd_fsm.write     (r_ixr_cmd_fsm.read()    );
     7885        p_ixr_rsp_fsm.write     (r_ixr_rsp_fsm.read()    );
     7886        p_cc_send_fsm.write     (r_cc_send_fsm.read()    );
     7887        p_cc_receive_fsm.write  (r_cc_receive_fsm.read() );
     7888        p_multi_ack_fsm.write   (r_multi_ack_fsm.read()  );
     7889#endif
     7890
    78497891        ////////////////////////////////////////////////////////////
    78507892        // Command signals on the p_vci_ixr port
Note: See TracChangeset for help on using the changeset viewer.