From: Megan Wachs Date: Fri, 31 Mar 2017 03:01:30 +0000 (-0700) Subject: Merge remote-tracking branch 'origin/fix-false-comb-loop' into HEAD X-Git-Url: https://git.libre-soc.org/?p=sifive-blocks.git;a=commitdiff_plain;h=1af6ce1c85b189982e970c088405c9117f5fbb9d;hp=3f6f10f4eddb8e3949193cf3d3695a6dc3e4b721 Merge remote-tracking branch 'origin/fix-false-comb-loop' into HEAD --- diff --git a/src/main/scala/devices/spi/SPIArbiter.scala b/src/main/scala/devices/spi/SPIArbiter.scala index 56c484e..df87d95 100644 --- a/src/main/scala/devices/spi/SPIArbiter.scala +++ b/src/main/scala/devices/spi/SPIArbiter.scala @@ -20,7 +20,9 @@ class SPIArbiter(c: SPIParamsBase, n: Int) extends Module { io.outer.tx.bits := Mux1H(sel, io.inner.map(_.tx.bits)) io.outer.cnt := Mux1H(sel, io.inner.map(_.cnt)) io.outer.fmt := Mux1H(sel, io.inner.map(_.fmt)) - io.outer.cs := Mux1H(sel, io.inner.map(_.cs)) + // Workaround for overzealous combinational loop detection + io.outer.cs := Mux(sel(1), io.inner(0).cs, io.inner(1).cs) + require(n == 2, "SPIArbiter currently only supports 2 clients") (io.inner zip sel).foreach { case (inner, s) => inner.tx.ready := io.outer.tx.ready && s