Changeset 430 for trunk/modules/vci_mem_cache/caba/source
- Timestamp:
- Jul 1, 2013, 4:20:05 PM (12 years ago)
- 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
r403 r430 79 79 enum tgt_cmd_fsm_state_e{ 80 80 TGT_CMD_IDLE, 81 TGT_CMD_ERROR, 81 82 TGT_CMD_READ, 82 83 TGT_CMD_WRITE, … … 87 88 enum tgt_rsp_fsm_state_e 88 89 { 90 TGT_RSP_TGT_CMD_IDLE, 89 91 TGT_RSP_READ_IDLE, 90 92 TGT_RSP_WRITE_IDLE, 91 93 TGT_RSP_CAS_IDLE, 92 94 TGT_RSP_XRAM_IDLE, 93 TGT_RSP_ INIT_IDLE,95 TGT_RSP_MULTI_ACK_IDLE, 94 96 TGT_RSP_CLEANUP_IDLE, 97 TGT_RSP_TGT_CMD, 95 98 TGT_RSP_READ, 96 99 TGT_RSP_WRITE, 97 100 TGT_RSP_CAS, 98 101 TGT_RSP_XRAM, 99 TGT_RSP_ INIT,102 TGT_RSP_MULTI_ACK, 100 103 TGT_RSP_CLEANUP 101 104 }; … … 473 476 ////////////////////////////////////////////////// 474 477 478 sc_signal<int> r_tgt_cmd_fsm; 479 475 480 // Fifo between TGT_CMD fsm and READ fsm 476 481 GenericFifo<addr_t> m_cmd_read_addr_fifo; … … 503 508 GenericFifo<uint64_t> m_cc_receive_to_multi_ack_fifo; 504 509 505 sc_signal<int> r_tgt_cmd_fsm; 510 // Buffer between TGT_CMD fsm and TGT_RSP fsm 511 // (segmentation violation response request) 512 sc_signal<bool> r_tgt_cmd_to_tgt_rsp_req; 513 sc_signal<size_t> r_tgt_cmd_to_tgt_rsp_srcid; 514 sc_signal<size_t> r_tgt_cmd_to_tgt_rsp_trdid; 515 sc_signal<size_t> r_tgt_cmd_to_tgt_rsp_pktid; 506 516 507 517 /////////////////////////////////////////////////////// -
trunk/modules/vci_mem_cache/caba/source/src/vci_mem_cache.cpp
r429 r430 61 61 { 62 62 "TGT_CMD_IDLE", 63 "TGT_CMD_ERROR", 63 64 "TGT_CMD_READ", 64 65 "TGT_CMD_WRITE", … … 67 68 const char *tgt_rsp_fsm_str[] = 68 69 { 70 "TGT_RSP_TGT_CMD_IDLE", 69 71 "TGT_RSP_READ_IDLE", 70 72 "TGT_RSP_WRITE_IDLE", 71 73 "TGT_RSP_CAS_IDLE", 72 74 "TGT_RSP_XRAM_IDLE", 73 "TGT_RSP_ INIT_IDLE",75 "TGT_RSP_MULTI_ACK_IDLE", 74 76 "TGT_RSP_CLEANUP_IDLE", 77 "TGT_RSP_TGT_CMD", 75 78 "TGT_RSP_READ", 76 79 "TGT_RSP_WRITE", 77 80 "TGT_RSP_CAS", 78 81 "TGT_RSP_XRAM", 79 "TGT_RSP_ INIT",82 "TGT_RSP_MULTI_ACK", 80 83 "TGT_RSP_CLEANUP" 81 84 }; … … 342 345 m_broadcast_boundaries(0x7C1F), 343 346 347 r_tgt_cmd_fsm("r_tgt_cmd_fsm"), 348 344 349 // FIFOs 345 350 m_cmd_read_addr_fifo("m_cmd_read_addr_fifo", 4), … … 366 371 m_cc_receive_to_cleanup_fifo("m_cc_receive_to_cleanup_fifo", 4), 367 372 m_cc_receive_to_multi_ack_fifo("m_cc_receive_to_multi_ack_fifo", 4), 368 369 r_tgt_cmd_fsm("r_tgt_cmd_fsm"),370 373 371 374 r_read_fsm("r_read_fsm"), … … 628 631 // Initializing FSMs 629 632 r_tgt_cmd_fsm = TGT_CMD_IDLE; 630 r_tgt_rsp_fsm = TGT_RSP_ READ_IDLE;633 r_tgt_rsp_fsm = TGT_RSP_TGT_CMD_IDLE; 631 634 r_cc_send_fsm = CC_SEND_XRAM_RSP_IDLE; 632 635 r_cc_receive_fsm = CC_RECEIVE_IDLE; … … 686 689 m_cmd_cas_wdata_fifo.init() ; 687 690 m_cmd_cas_eop_fifo.init() ; 691 692 r_tgt_cmd_to_tgt_rsp_req = false; 688 693 689 694 r_read_to_tgt_rsp_req = false; … … 898 903 } 899 904 } 905 900 906 if(not found) 901 907 { 902 std::cout << "VCI_MEM_CACHE ERROR " << name() << std::endl; 903 std::cout 904 << "Out of segment VCI address in TGT_CMD_IDLE state (address = " 905 << std::hex << address << ", srcid = " << p_vci_tgt.srcid.read() 906 << std::dec << ", cycle = " << m_cpt_cycles << ")" << std::endl; 907 exit(0); 908 } 909 910 if(p_vci_tgt.cmd.read() == vci_param_int::CMD_READ) 908 r_tgt_cmd_fsm = TGT_CMD_ERROR; 909 } 910 else if(p_vci_tgt.cmd.read() == vci_param_int::CMD_READ) 911 911 { 912 912 // check that the pktid is either : … … 963 963 } 964 964 } 965 break; 966 967 case TGT_CMD_ERROR: 968 // A segmentation violation has been detected, thus a response with error 969 // must be sent 970 971 // wait if pending TGT_CMD request to TGT_RSP FSM 972 if(r_tgt_cmd_to_tgt_rsp_req.read()) break; 973 974 // consume all the command packet flits and set new request to the 975 // TGT_RSP FSM 976 if(p_vci_tgt.cmdval and p_vci_tgt.eop) 977 { 978 r_tgt_cmd_to_tgt_rsp_req = true; 979 r_tgt_cmd_to_tgt_rsp_srcid = p_vci_tgt.srcid.read(); 980 r_tgt_cmd_to_tgt_rsp_trdid = p_vci_tgt.trdid.read(); 981 r_tgt_cmd_to_tgt_rsp_pktid = p_vci_tgt.pktid.read(); 982 983 r_tgt_cmd_fsm = TGT_CMD_IDLE; 984 985 #if DEBUG_MEMC_TGT_CMD 986 if(m_debug_tgt_cmd_fsm) 987 std::cout << " <MEMC " << name() 988 << " TGT_CMD_ERROR> Segmentation violation:" 989 << " address = " << std::hex << p_vci_tgt.address.read() 990 << " / srcid = " << p_vci_tgt.srcid.read() 991 << " / trdid = " << p_vci_tgt.trdid.read() 992 << " / pktid = " << p_vci_tgt.pktid.read() 993 << " / plen = " << std::dec << p_vci_tgt.plen.read() << std::endl; 994 #endif 995 } 996 965 997 break; 966 998 … … 5995 6027 ///////////////////////////////////////////////////////////////////// 5996 6028 // The TGT_RSP fsm sends the responses on the VCI target port 5997 // with a round robin priority between six requests : 6029 // with a round robin priority between seven requests : 6030 // - r_tgt_cmd_to_tgt_rsp_req 5998 6031 // - r_read_to_tgt_rsp_req 5999 6032 // - r_write_to_tgt_rsp_req … … 6002 6035 // - r_xram_rsp_to_tgt_rsp_req 6003 6036 // - r_multi_ack_to_tgt_rsp_req 6004 // The ordering is : read > write > cas > xram > init > cleanup 6037 // 6038 // The ordering is : 6039 // tgt_cmd > read > write > cas > xram > multi_ack > cleanup 6005 6040 ///////////////////////////////////////////////////////////////////// 6006 6041 6007 6042 switch(r_tgt_rsp_fsm.read()) 6008 6043 { 6009 case TGT_RSP_READ_IDLE: 6010 { 6011 // write requests have the highest priority 6012 if(r_write_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_WRITE; 6013 else if(r_cas_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_CAS ; 6014 else if(r_xram_rsp_to_tgt_rsp_req) 6015 { 6016 r_tgt_rsp_fsm = TGT_RSP_XRAM; 6017 r_tgt_rsp_cpt = r_xram_rsp_to_tgt_rsp_word.read(); 6018 } 6019 else if(r_multi_ack_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_INIT ; 6020 else if(r_cleanup_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_CLEANUP; 6021 else if(r_read_to_tgt_rsp_req) 6022 { 6023 r_tgt_rsp_fsm = TGT_RSP_READ; 6024 r_tgt_rsp_cpt = r_read_to_tgt_rsp_word.read(); 6025 } 6026 break; 6027 } 6028 //////////////////////// 6029 case TGT_RSP_WRITE_IDLE: // cas requests have the highest priority 6030 { 6031 if(r_cas_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_CAS; 6032 else if(r_xram_rsp_to_tgt_rsp_req) 6033 { 6034 r_tgt_rsp_fsm = TGT_RSP_XRAM; 6035 r_tgt_rsp_cpt = r_xram_rsp_to_tgt_rsp_word.read(); 6036 } 6037 else if(r_multi_ack_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_INIT ; 6038 else if(r_cleanup_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_CLEANUP; 6039 else if(r_read_to_tgt_rsp_req) 6040 { 6041 r_tgt_rsp_fsm = TGT_RSP_READ; 6042 r_tgt_rsp_cpt = r_read_to_tgt_rsp_word.read(); 6043 } 6044 6045 else if(r_write_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_WRITE; 6046 break; 6047 } 6048 /////////////////////// 6049 case TGT_RSP_CAS_IDLE: // xram_rsp requests have the highest priority 6050 { 6051 if(r_xram_rsp_to_tgt_rsp_req) 6052 { 6053 r_tgt_rsp_fsm = TGT_RSP_XRAM; 6054 r_tgt_rsp_cpt = r_xram_rsp_to_tgt_rsp_word.read(); 6055 } 6056 else if(r_multi_ack_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_INIT ; 6057 else if(r_cleanup_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_CLEANUP; 6058 else if(r_read_to_tgt_rsp_req) 6059 { 6060 r_tgt_rsp_fsm = TGT_RSP_READ; 6061 r_tgt_rsp_cpt = r_read_to_tgt_rsp_word.read(); 6062 } 6063 else if(r_write_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_WRITE; 6064 else if(r_cas_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_CAS ; 6065 break; 6066 } 6067 /////////////////////// 6068 case TGT_RSP_XRAM_IDLE: // init requests have the highest priority 6069 { 6070 6071 if(r_multi_ack_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_INIT ; 6072 else if(r_cleanup_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_CLEANUP; 6073 else if(r_read_to_tgt_rsp_req) 6044 case TGT_RSP_TGT_CMD_IDLE: // read requests have the highest priority 6045 { 6046 if(r_read_to_tgt_rsp_req) 6074 6047 { 6075 6048 r_tgt_rsp_fsm = TGT_RSP_READ; … … 6083 6056 r_tgt_rsp_cpt = r_xram_rsp_to_tgt_rsp_word.read(); 6084 6057 } 6058 else if(r_multi_ack_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_MULTI_ACK; 6059 else if(r_cleanup_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_CLEANUP; 6060 else if(r_tgt_cmd_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_TGT_CMD; 6085 6061 break; 6086 6062 } 6087 6063 /////////////////////// 6088 case TGT_RSP_INIT_IDLE: // cleanup requests have the highest priority 6089 { 6090 if(r_cleanup_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_CLEANUP; 6064 case TGT_RSP_READ_IDLE: // write requests have the highest priority 6065 { 6066 if(r_write_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_WRITE; 6067 else if(r_cas_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_CAS; 6068 else if(r_xram_rsp_to_tgt_rsp_req) 6069 { 6070 r_tgt_rsp_fsm = TGT_RSP_XRAM; 6071 r_tgt_rsp_cpt = r_xram_rsp_to_tgt_rsp_word.read(); 6072 } 6073 else if(r_multi_ack_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_MULTI_ACK; 6074 else if(r_cleanup_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_CLEANUP; 6075 else if(r_tgt_cmd_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_TGT_CMD; 6076 else if(r_read_to_tgt_rsp_req) 6077 { 6078 r_tgt_rsp_fsm = TGT_RSP_READ; 6079 r_tgt_rsp_cpt = r_read_to_tgt_rsp_word.read(); 6080 } 6081 break; 6082 } 6083 //////////////////////// 6084 case TGT_RSP_WRITE_IDLE: // cas requests have the highest priority 6085 { 6086 if(r_cas_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_CAS; 6087 else if(r_xram_rsp_to_tgt_rsp_req) 6088 { 6089 r_tgt_rsp_fsm = TGT_RSP_XRAM; 6090 r_tgt_rsp_cpt = r_xram_rsp_to_tgt_rsp_word.read(); 6091 } 6092 else if(r_multi_ack_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_MULTI_ACK; 6093 else if(r_cleanup_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_CLEANUP; 6094 else if(r_tgt_cmd_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_TGT_CMD; 6095 else if(r_read_to_tgt_rsp_req) 6096 { 6097 r_tgt_rsp_fsm = TGT_RSP_READ; 6098 r_tgt_rsp_cpt = r_read_to_tgt_rsp_word.read(); 6099 } 6100 6101 else if(r_write_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_WRITE; 6102 break; 6103 } 6104 /////////////////////// 6105 case TGT_RSP_CAS_IDLE: // xram_rsp requests have the highest priority 6106 { 6107 if(r_xram_rsp_to_tgt_rsp_req) 6108 { 6109 r_tgt_rsp_fsm = TGT_RSP_XRAM; 6110 r_tgt_rsp_cpt = r_xram_rsp_to_tgt_rsp_word.read(); 6111 } 6112 else if(r_multi_ack_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_MULTI_ACK ; 6113 else if(r_cleanup_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_CLEANUP; 6114 else if(r_tgt_cmd_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_TGT_CMD; 6115 else if(r_read_to_tgt_rsp_req) 6116 { 6117 r_tgt_rsp_fsm = TGT_RSP_READ; 6118 r_tgt_rsp_cpt = r_read_to_tgt_rsp_word.read(); 6119 } 6120 else if(r_write_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_WRITE; 6121 else if(r_cas_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_CAS ; 6122 break; 6123 } 6124 /////////////////////// 6125 case TGT_RSP_XRAM_IDLE: // multi ack requests have the highest priority 6126 { 6127 6128 if(r_multi_ack_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_MULTI_ACK ; 6129 else if(r_cleanup_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_CLEANUP; 6130 else if(r_tgt_cmd_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_TGT_CMD; 6091 6131 else if(r_read_to_tgt_rsp_req) 6092 6132 { … … 6101 6141 r_tgt_rsp_cpt = r_xram_rsp_to_tgt_rsp_word.read(); 6102 6142 } 6103 else if(r_multi_ack_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_INIT;6104 6143 break; 6105 6144 } 6106 6145 /////////////////////// 6107 case TGT_RSP_CLEANUP_IDLE: // read requests have the highest priority 6108 { 6109 if(r_read_to_tgt_rsp_req) 6146 case TGT_RSP_MULTI_ACK_IDLE: // cleanup requests have the highest priority 6147 { 6148 if(r_cleanup_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_CLEANUP; 6149 else if(r_tgt_cmd_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_TGT_CMD; 6150 else if(r_read_to_tgt_rsp_req) 6110 6151 { 6111 6152 r_tgt_rsp_fsm = TGT_RSP_READ; … … 6119 6160 r_tgt_rsp_cpt = r_xram_rsp_to_tgt_rsp_word.read(); 6120 6161 } 6121 else if(r_multi_ack_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_INIT ; 6162 else if(r_multi_ack_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_MULTI_ACK; 6163 break; 6164 } 6165 /////////////////////// 6166 case TGT_RSP_CLEANUP_IDLE: // tgt cmd requests have the highest priority 6167 { 6168 if(r_tgt_cmd_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_TGT_CMD; 6169 else if(r_read_to_tgt_rsp_req) 6170 { 6171 r_tgt_rsp_fsm = TGT_RSP_READ; 6172 r_tgt_rsp_cpt = r_read_to_tgt_rsp_word.read(); 6173 } 6174 else if(r_write_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_WRITE; 6175 else if(r_cas_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_CAS ; 6176 else if(r_xram_rsp_to_tgt_rsp_req) 6177 { 6178 r_tgt_rsp_fsm = TGT_RSP_XRAM; 6179 r_tgt_rsp_cpt = r_xram_rsp_to_tgt_rsp_word.read(); 6180 } 6181 else if(r_multi_ack_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_MULTI_ACK ; 6122 6182 else if(r_cleanup_to_tgt_rsp_req) r_tgt_rsp_fsm = TGT_RSP_CLEANUP; 6123 6183 break; 6124 6184 } 6185 ///////////////////// 6186 case TGT_RSP_TGT_CMD: // send the response after a segmentation violation 6187 { 6188 if ( p_vci_tgt.rspack ) 6189 { 6190 r_tgt_cmd_to_tgt_rsp_req = false; 6191 6192 #if DEBUG_MEMC_TGT_RSP 6193 if( m_debug_tgt_rsp_fsm ) 6194 { 6195 std::cout 6196 << " <MEMC " << name() 6197 << " TGT_RSP_TGT_CMD> Segmentation violation from TGT_CMD response" 6198 << " / rsrcid = " << std::hex << r_tgt_cmd_to_tgt_rsp_srcid.read() 6199 << " / rtrdid = " << r_tgt_cmd_to_tgt_rsp_trdid.read() 6200 << " / rpktid = " << r_tgt_cmd_to_tgt_rsp_pktid.read() 6201 << std::endl; 6202 } 6203 #endif 6204 } 6205 } 6206 break; 6207 6125 6208 ////////////////// 6126 6209 case TGT_RSP_READ: // send the response to a read … … 6268 6351 } 6269 6352 ////////////////// 6270 case TGT_RSP_ INIT: // send the write response after coherence transaction6353 case TGT_RSP_MULTI_ACK: // send the write response after coherence transaction 6271 6354 { 6272 6355 if(p_vci_tgt.rspack) … … 6275 6358 #if DEBUG_MEMC_TGT_RSP 6276 6359 if(m_debug_tgt_rsp_fsm) 6277 std::cout << " <MEMC " << name() << " TGT_RSP_ INIT> Write response after coherence transaction"6360 std::cout << " <MEMC " << name() << " TGT_RSP_MULTI_ACK> Write response after coherence transaction" 6278 6361 << " / rsrcid = " << std::hex << r_multi_ack_to_tgt_rsp_srcid.read() 6279 6362 << " / rtrdid = " << r_multi_ack_to_tgt_rsp_trdid.read() 6280 6363 << " / rpktid = " << r_multi_ack_to_tgt_rsp_pktid.read() << std::endl; 6281 6364 #endif 6282 r_tgt_rsp_fsm = TGT_RSP_ INIT_IDLE;6365 r_tgt_rsp_fsm = TGT_RSP_MULTI_ACK_IDLE; 6283 6366 r_multi_ack_to_tgt_rsp_req = false; 6284 6367 } … … 7196 7279 { 7197 7280 case TGT_CMD_IDLE: 7198 p_vci_tgt.cmdack = false; 7281 p_vci_tgt.cmdack = false; 7282 break; 7283 7284 case TGT_CMD_ERROR: 7285 p_vci_tgt.cmdack = not r_tgt_cmd_to_tgt_rsp_req.read(); 7199 7286 break; 7200 7287 7201 7288 case TGT_CMD_READ: 7202 p_vci_tgt.cmdack 7289 p_vci_tgt.cmdack = m_cmd_read_addr_fifo.wok(); 7203 7290 break; 7204 7291 7205 7292 case TGT_CMD_WRITE: 7206 p_vci_tgt.cmdack 7293 p_vci_tgt.cmdack = m_cmd_write_addr_fifo.wok(); 7207 7294 break; 7208 7295 7209 7296 case TGT_CMD_CAS: 7210 p_vci_tgt.cmdack 7297 p_vci_tgt.cmdack = m_cmd_cas_addr_fifo.wok(); 7211 7298 break; 7212 7299 7213 7300 default: 7214 p_vci_tgt.cmdack 7301 p_vci_tgt.cmdack = false; 7215 7302 break; 7216 7303 } … … 7222 7309 switch(r_tgt_rsp_fsm.read()) 7223 7310 { 7311 case TGT_RSP_TGT_CMD_IDLE: 7224 7312 case TGT_RSP_READ_IDLE: 7225 7313 case TGT_RSP_WRITE_IDLE: 7226 7314 case TGT_RSP_CAS_IDLE: 7227 7315 case TGT_RSP_XRAM_IDLE: 7228 case TGT_RSP_ INIT_IDLE:7316 case TGT_RSP_MULTI_ACK_IDLE: 7229 7317 case TGT_RSP_CLEANUP_IDLE: 7230 7318 p_vci_tgt.rspval = false; … … 7236 7324 p_vci_tgt.reop = false; 7237 7325 break; 7326 7327 case TGT_RSP_TGT_CMD: 7328 { 7329 p_vci_tgt.rspval = true; 7330 p_vci_tgt.rdata = 0; 7331 p_vci_tgt.rsrcid = r_tgt_cmd_to_tgt_rsp_srcid.read(); 7332 p_vci_tgt.rtrdid = r_tgt_cmd_to_tgt_rsp_trdid.read(); 7333 p_vci_tgt.rpktid = r_tgt_cmd_to_tgt_rsp_pktid.read(); 7334 p_vci_tgt.rerror = 0x1; 7335 p_vci_tgt.reop = true; 7336 7337 break; 7338 } 7238 7339 7239 7340 case TGT_RSP_READ: … … 7324 7425 } 7325 7426 7326 case TGT_RSP_ INIT:7427 case TGT_RSP_MULTI_ACK: 7327 7428 p_vci_tgt.rspval = true; 7328 7429 p_vci_tgt.rdata = 0; // Can be a CAS or SC rsp
Note: See TracChangeset
for help on using the changeset viewer.