1
0

fix coherence bug with multiple probe replies

This commit is contained in:
Andrew Waterman 2012-04-09 21:40:35 -07:00
parent c9c3bd02bc
commit aee9378712

View File

@ -598,8 +598,8 @@ class CoherenceHubBroadcast(ntiles: Int) extends CoherenceHub(ntiles) with FourS
p_rep_data_dep_list(j).io.enq.valid := do_pop p_rep_data_dep_list(j).io.enq.valid := do_pop
p_rep_data_dep_list(j).io.enq.bits.global_xact_id := OHToUFix(pop_p_reps) p_rep_data_dep_list(j).io.enq.bits.global_xact_id := OHToUFix(pop_p_reps)
p_rep_data.ready := foldR(trackerList.map(_.io.pop_p_rep_data(j)))(_ || _) p_rep_data.ready := foldR(trackerList.map(_.io.pop_p_rep_data(j)))(_ || _)
when (p_rep.valid) { when (p_rep.valid && probeReplyHasData(p_rep.bits)) {
p_data_valid_arr(idx) := probeReplyHasData(p_rep.bits) p_data_valid_arr(idx) := Bool(true)
p_data_tile_id_arr(idx) := UFix(j) p_data_tile_id_arr(idx) := UFix(j)
} }
p_rep_data_dep_list(j).io.deq.ready := foldR(trackerList.map(_.io.pop_p_rep_dep(j).toBool))(_||_) p_rep_data_dep_list(j).io.deq.ready := foldR(trackerList.map(_.io.pop_p_rep_dep(j).toBool))(_||_)