tilelink: SourceShrinker should work also for 0 latency
This commit is contained in:
parent
f02c921d0f
commit
138276fd87
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user