Ensure that a TSHR doesn't see a valid Acquire if that is blocked by a Release,
but would otherwise be allocated. Closes #45
This commit is contained in:
parent
fd83d20857
commit
3e0b5d6fd9
@ -87,7 +87,7 @@ trait HasCoherenceAgentWiringHelpers {
|
|||||||
val match_ok = matchOverride.getOrElse(Bool(true))
|
val match_ok = matchOverride.getOrElse(Bool(true))
|
||||||
in.ready := Mux(no_matches, ready_bits.orR, (match_bits & ready_bits).orR) && alloc_ok && match_ok
|
in.ready := Mux(no_matches, ready_bits.orR, (match_bits & ready_bits).orR) && alloc_ok && match_ok
|
||||||
outs.zip(allocs).zipWithIndex.foreach { case((out, a), i) =>
|
outs.zip(allocs).zipWithIndex.foreach { case((out, a), i) =>
|
||||||
out.valid := in.valid && match_ok
|
out.valid := in.valid && match_ok && alloc_ok
|
||||||
out.bits := in.bits
|
out.bits := in.bits
|
||||||
dataOverrides foreach { d => out.bits.data := d(i) }
|
dataOverrides foreach { d => out.bits.data := d(i) }
|
||||||
a := alloc_bits(i) & no_matches & alloc_ok
|
a := alloc_bits(i) & no_matches & alloc_ok
|
||||||
|
Loading…
Reference in New Issue
Block a user