1
0

BusBypass: only stall A once the last beat is accepted (#1090)

When switching ports, the bypass stalls new messages until all
outstanding messages have received their responses. However, this
stall must NOT stop the remaining beats of a partially sent request.
This commit is contained in:
Wesley W. Terpstra 2017-11-06 11:13:15 -08:00 committed by GitHub
parent 7e75d63ba6
commit dcf67b49fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -93,7 +93,7 @@ class TLBusBypassBar(implicit p: Parameters) extends LazyModule
flight := next_flight flight := next_flight
when (next_flight === UInt(0)) { bypass := io.bypass } when (next_flight === UInt(0)) { bypass := io.bypass }
val stall = bypass != io.bypass val stall = (bypass != io.bypass) && a_first
out0.a.valid := !stall && in.a.valid && bypass out0.a.valid := !stall && in.a.valid && bypass
out1.a.valid := !stall && in.a.valid && !bypass out1.a.valid := !stall && in.a.valid && !bypass