1
0

tilelink: SourceShrinker should work also for 0 latency

This commit is contained in:
Wesley W. Terpstra 2017-07-26 10:40:40 -07:00
parent f02c921d0f
commit 138276fd87

View File

@ -60,8 +60,9 @@ class TLSourceShrinker(maxInFlight: Int)(implicit p: Parameters) extends LazyMod
out.a.bits := in.a.bits out.a.bits := in.a.bits
out.a.bits.source := nextFree holdUnless a_first out.a.bits.source := nextFree holdUnless a_first
val bypass = Bool(edgeOut.manager.minLatency == 0) && in.a.fire() && a_first && nextFree === out.d.bits.source
in.d <> out.d in.d <> out.d
in.d.bits.source := sourceIdMap(out.d.bits.source) in.d.bits.source := Mux(bypass, in.a.bits.source, sourceIdMap(out.d.bits.source))
when (a_first && in.a.fire()) { when (a_first && in.a.fire()) {
sourceIdMap(nextFree) := in.a.bits.source sourceIdMap(nextFree) := in.a.bits.source