Changeset 228


Ignore:
Timestamp:
Apr 17, 2012, 1:59:09 PM (13 years ago)
Author:
alain
Message:

Fixing a bug in the INIT_FSM (in case of write on disk)

File:
1 edited

Legend:

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

    r216 r228  
    162162    case M_IDLE :       // waiting for activation
    163163    {
    164         if ( r_go )
     164        if ( r_go )
    165165        {
    166166            r_block_count   = 0;
     
    170170
    171171            if ( r_read )       r_initiator_fsm = M_READ_BLOCK;
    172             else                r_initiator_fsm = M_WRITE_CMD;
    173         }
    174         break;
    175     }
    176     case M_READ_BLOCK:  // read one block from block after waiting m_latency cycles
    177     {
    178         if(r_latency_count == 0)
     172            else            r_initiator_fsm = M_WRITE_CMD;
     173        }
     174        break;
     175    }
     176    case M_READ_BLOCK:  // read one block from disk after waiting m_latency cycles
     177    {
     178        if ( r_latency_count == 0 )
    179179        {
    180180            r_latency_count = m_latency;
     
    256256    case M_WRITE_CMD:   // This is actually a single flit VCI READ command
    257257    {
    258         if ( p_vci_initiator.cmdack.read() ) r_initiator_fsm = M_WRITE_RSP;
     258            if ( p_vci_initiator.cmdack.read() ) r_initiator_fsm = M_WRITE_RSP;
    259259        break;
    260260    }
     
    267267            if ( p_vci_initiator.reop.read() )
    268268            {
    269                 r_flit_count = 0;
    270                 if( (p_vci_initiator.rerror.read()&0x1) == 0 ) r_initiator_fsm = M_WRITE_BLOCK;
     269                    r_flit_count = 0;
     270                        if( (p_vci_initiator.rerror.read()&0x1) == 0 ) r_initiator_fsm = M_WRITE_TEST;
    271271                else                                           r_initiator_fsm = M_WRITE_ERROR;
    272272            }
    273273            else
    274274            {
    275                 r_flit_count = r_flit_count.read() + 1;
     275                    r_flit_count = r_flit_count.read() + 1;
    276276            }
    277277        }
     
    285285            r_block_count = r_block_count.read() + 1;
    286286            r_initiator_fsm = M_WRITE_BLOCK;
    287         }                                                       // not the last burst
    288         else
     287        }                                       
     288        else                                                    // not the last burst
    289289        {
    290290            r_burst_count = r_burst_count.read() + 1;
     
    329329    }
    330330    } // end switch r_initiator_fsm
    331 
    332331}  // end transition
    333332
Note: See TracChangeset for help on using the changeset viewer.