Changeset 463 for branches/v5/modules/vci_cc_vcache_wrapper/caba
- Timestamp:
- Jul 19, 2013, 4:52:06 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/v5/modules/vci_cc_vcache_wrapper/caba/source/src/vci_cc_vcache_wrapper.cpp
r462 r463 1900 1900 } 1901 1901 1902 // wait if pending request to CC_SEND. This way if there are pending 1903 // CLACK they can be treated in this state and then a deadlock 1904 // situation is avoided 1905 if ( r_icache_cc_send_req.read() ) break; 1906 1902 1907 // CC request handler 1903 1908 … … 1955 1960 case ICACHE_CC_INVAL: // hit inval : switch slot to ZOMBI state 1956 1961 { 1957 // return to CC_CHECK if pending request to CC_SEND 1958 // to handle possible pending CLACK and avoid deadlock 1959 if (r_icache_cc_send_req.read()) 1960 { 1961 r_icache_fsm = ICACHE_CC_CHECK; 1962 break; 1963 } 1962 assert (not r_icache_cc_send_req.read() && 1963 "ERROR in ICACHE_CC_INVAL: the r_icache_cc_send_req " 1964 "must not be set"); 1964 1965 1965 1966 #ifdef INSTRUMENTATION … … 1996 1997 case ICACHE_CC_UPDT: // hit update : write one word per cycle 1997 1998 { 1998 1999 // if pending request to CC_SEND or if the CC_UPDT data is not ready to 2000 // handle possible pending CLACK and avoid deadlock 2001 if ( r_icache_cc_send_req.read() ) 2002 { 2003 r_icache_fsm = ICACHE_CC_CHECK; 2004 break; 2005 } 1999 assert (not r_icache_cc_send_req.read() && 2000 "ERROR in ICACHE_CC_UPDT: the r_icache_cc_send_req " 2001 "must not be set"); 2006 2002 2007 2003 if ( not r_cc_receive_updt_fifo_be.rok() ) break; … … 4657 4653 } 4658 4654 4655 // wait if pending request to CC_SEND. This way if there are pending 4656 // CLACK they can be treated in this state and then a deadlock 4657 // situation is avoided 4658 if ( r_dcache_cc_send_req.read() ) break; 4659 4659 4660 // CC request handler 4660 4661 … … 4754 4755 } 4755 4756 4756 // return to CC_CHECK if pending request to CC_SEND 4757 // to handle possible pending CLACK and avoid deadlock 4758 if ( r_dcache_cc_send_req.read() ) 4759 { 4760 r_dcache_fsm = DCACHE_CC_CHECK; 4761 break; 4762 } 4757 assert (not r_dcache_cc_send_req.read() && 4758 "ERROR in DCACHE_CC_INVAL: the r_dcache_cc_send_req " 4759 "must not be set"); 4763 4760 4764 4761 // Switch slot state to ZOMBI and send CLEANUP command … … 4821 4818 } 4822 4819 4823 // if pending request to CC_SEND or if the CC_UPDT data is not ready to 4824 // handle possible pending CLACK and avoid deadlock 4825 if ( r_dcache_cc_send_req.read() ) 4826 { 4827 r_dcache_fsm = DCACHE_CC_CHECK; 4828 break; 4829 } 4820 assert (not r_dcache_cc_send_req.read() && 4821 "ERROR in DCACHE_CC_INVAL: the r_dcache_cc_send_req " 4822 "must not be set"); 4830 4823 4831 4824 if ( not r_cc_receive_updt_fifo_be.rok() ) break;
Note: See TracChangeset
for help on using the changeset viewer.