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:
parent
7e75d63ba6
commit
dcf67b49fa
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user