Changeset 138 for trunk/modules/vci_mem_cache_v4/caba/source/include
- Timestamp:
- Feb 18, 2011, 11:10:07 AM (14 years ago)
- Location:
- trunk/modules/vci_mem_cache_v4/caba/source/include
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/modules/vci_mem_cache_v4/caba/source/include/vci_mem_cache_v4.h
r116 r138 189 189 XRAM_RSP_HEAP_ERASE, 190 190 XRAM_RSP_HEAP_LAST, 191 XRAM_RSP_ERROR_ERASE, 192 XRAM_RSP_ERROR_RSP, 191 193 }; 192 194 … … 393 395 sc_signal<int> r_tgt_cmd_fsm; 394 396 395 sc_signal<size_t> r_index;396 397 size_t nseg; 397 398 size_t ncseg; … … 634 635 sc_signal<size_t> r_xram_rsp_to_tgt_rsp_word; // first word index 635 636 sc_signal<size_t> r_xram_rsp_to_tgt_rsp_length;// length of the response 637 sc_signal<bool> r_xram_rsp_to_tgt_rsp_rerror;// send error to requester 636 638 637 639 // Buffer between XRAM_RSP fsm and INIT_CMD fsm (Inval L1 Caches) -
trunk/modules/vci_mem_cache_v4/caba/source/include/xram_transaction_v4.h
r2 r138 31 31 std::vector<data_t> wdata; // write buffer (one cache line) 32 32 std::vector<be_t> wdata_be; // be for each data in the write buffer 33 bool rerror; // error returned by xram 33 34 34 35 ///////////////////////////////////////////////////////////////////// … … 72 73 word_index = source.word_index; 73 74 wdata_be.assign(source.wdata_be.begin(),source.wdata_be.end()); 74 wdata.assign(source.wdata.begin(),source.wdata.end()); 75 wdata.assign(source.wdata.begin(),source.wdata.end()); 76 rerror = source.rerror; 75 77 } 76 78 … … 95 97 } 96 98 std::cout << std::endl; 99 std::cout << "rerror = " << rerror << std::endl; 97 100 } 98 101 … … 106 109 wdata.clear(); 107 110 valid=false; 111 rerror=false; 108 112 } 109 113 … … 120 124 wdata_be.assign(source.wdata_be.begin(),source.wdata_be.end()); 121 125 wdata.assign(source.wdata.begin(),source.wdata.end()); 126 rerror = source.rerror; 122 127 } 123 128 … … 363 368 ///////////////////////////////////////////////////////////////////// 364 369 void write_rsp(const size_t index, 365 const size_t word, 366 const data_t data) 370 const size_t word, 371 const data_t data, 372 const bool rerror) 367 373 { 368 374 assert( (index < size_tab) … … 377 383 data_t mask = be_to_mask(tab[index].wdata_be[word]); 378 384 tab[index].wdata[word] = (tab[index].wdata[word] & mask) | (data & ~mask); 385 tab[index].rerror |= rerror; 379 386 } 380 387
Note: See TracChangeset
for help on using the changeset viewer.