1
0

Fix stupid D$ probe bug

This commit is contained in:
Andrew Waterman 2017-07-06 00:26:32 -07:00
parent 90a7d6a343
commit be4eceec0d

View File

@ -474,7 +474,7 @@ class DCacheModule(outer: DCache) extends HellaCacheModule(outer) {
probe_bits.address := Cat(s2_victim_tag, s2_req.addr(idxMSB, idxLSB)) << idxLSB
}
when (s2_probe) {
s1_nack := true
val probeNack = Wire(init = true.B)
when (s2_meta_error) {
release_state := s_probe_retry
}.elsewhen (s2_prb_ack_data) {
@ -485,9 +485,10 @@ class DCacheModule(outer: DCache) extends HellaCacheModule(outer) {
release_state := Mux(releaseDone, s_probe_write_meta, s_probe_rep_clean)
}.otherwise {
tl_out.c.valid := true
s1_nack := !releaseDone
probeNack := !releaseDone
release_state := Mux(releaseDone, s_ready, s_probe_rep_miss)
}
when (probeNack) { s1_nack := true }
}
when (release_state === s_probe_retry) {
metaArb.io.in(6).valid := true