1
0

Xbar: use the IdentityModule to encourage wider fanout

This commit is contained in:
Wesley W. Terpstra 2017-09-06 16:07:58 -07:00
parent 5626cdd18f
commit 42f1ae27fc

View File

@ -219,7 +219,7 @@ object TLXbar
def fanout[T <: TLChannel](input: DecoupledIO[T], select: Seq[Bool]) = { def fanout[T <: TLChannel](input: DecoupledIO[T], select: Seq[Bool]) = {
val filtered = Wire(Vec(select.size, input)) val filtered = Wire(Vec(select.size, input))
for (i <- 0 until select.size) { for (i <- 0 until select.size) {
filtered(i).bits := input.bits filtered(i).bits := IdentityModule(input.bits) // force fanout of wires
filtered(i).valid := input.valid && select(i) filtered(i).valid := input.valid && select(i)
} }
input.ready := Mux1H(select, filtered.map(_.ready)) input.ready := Mux1H(select, filtered.map(_.ready))