Ignore:
Timestamp:
Sep 1, 2013, 7:49:00 PM (11 years ago)
Author:
cfuguet
Message:

Modifications in vci_mem_cache:

  • Erasing the unnecessary registers r_write_to_ixr_cmd_put and r_cas_to_ixr_cmd_put. The IXR_CMD FSM can get this information from the xram_read bit stored in the TRT entries.
  • In the IXR_CMD FSM, the r_ixr_cmd_wdata does not need to be written when it is a GET request.
File:
1 edited

Legend:

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

    r504 r505  
    33103310                    {
    33113311                        r_write_to_ixr_cmd_req   = true;
    3312                         r_write_to_ixr_cmd_put   = false;
    33133312                        r_write_to_ixr_cmd_index = r_write_trt_index.read();
    33143313                        r_write_fsm              = WRITE_RSP;
     
    35113510                    {
    35123511                        r_write_to_ixr_cmd_req     = true;
    3513                         r_write_to_ixr_cmd_put     = true;
    35143512                        r_write_to_ixr_cmd_index   = r_write_trt_index.read();
    35153513                        r_write_fsm = WRITE_IDLE;
     
    36123610                        r_ixr_cmd_word    = 0;
    36133611                        r_ixr_cmd_fsm     = IXR_CMD_READ_SEND;
    3614                         for( size_t i=0 ; i<m_words ; i++ ) r_ixr_cmd_wdata[i] = entry.wdata[i];
    36153612
    36163613#if DEBUG_MEMC_IXR_CMD
     
    36343631                        r_ixr_cmd_word    = 0;
    36353632                        r_ixr_cmd_fsm     = IXR_CMD_WRITE_SEND;
    3636                         for( size_t i=0 ; i<m_words ; i++ ) r_ixr_cmd_wdata[i] = entry.wdata[i];
     3633
     3634                        // Read data from TRT if PUT transaction
     3635                        if (not entry.xram_read)
     3636                        {
     3637                            for( size_t i=0 ; i<m_words ; i++ ) r_ixr_cmd_wdata[i] = entry.wdata[i];
     3638                        }
    36373639
    36383640#if DEBUG_MEMC_IXR_CMD
     
    36563658                        r_ixr_cmd_word    = 0;
    36573659                        r_ixr_cmd_fsm     = IXR_CMD_CAS_SEND;
    3658                         for( size_t i=0 ; i<m_words ; i++ ) r_ixr_cmd_wdata[i] = entry.wdata[i];
     3660
     3661                        // Read data from TRT if PUT transaction
     3662                        if (not entry.xram_read)
     3663                        {
     3664                            for( size_t i=0 ; i<m_words ; i++ ) r_ixr_cmd_wdata[i] = entry.wdata[i];
     3665                        }
    36593666
    36603667#if DEBUG_MEMC_IXR_CMD
     
    37333740                    if (p_vci_ixr.cmdack)
    37343741                    {
    3735                         if (r_write_to_ixr_cmd_put.read())   // PUT
     3742                        if (not r_ixr_cmd_get.read())   // PUT
    37363743                        {
    37373744                            if (r_ixr_cmd_word.read() == (m_words - 2))
     
    37703777                    if (p_vci_ixr.cmdack)
    37713778                    {
    3772                         if (r_cas_to_ixr_cmd_put.read()) // PUT
     3779                        if (not r_ixr_cmd_get.read()) // PUT
    37733780                        {
    37743781                            if (r_ixr_cmd_word.read() == (m_words - 2))
     
    56655672                    {
    56665673                        r_cas_to_ixr_cmd_req     = true;
    5667                         r_cas_to_ixr_cmd_put     = true;
    56685674                        r_cas_to_ixr_cmd_index   = r_cas_trt_index.read();
    56695675                        r_cas_fsm                = CAS_IDLE;
     
    58025808                    {
    58035809                        r_cas_to_ixr_cmd_req        = true;
    5804                         r_cas_to_ixr_cmd_put        = false;
    58055810                        r_cas_to_ixr_cmd_index      = r_cas_trt_index.read();
    58065811                        r_cas_fsm                   = CAS_WAIT;
Note: See TracChangeset for help on using the changeset viewer.