From ac641fb183e3a8866e6bd72123801cfb04a0c893 Mon Sep 17 00:00:00 2001 From: Schuyler Eldridge Date: Mon, 19 Oct 2020 12:35:26 -0400 Subject: Enable Cat of Zero Element Vec (#1623) * Return 0.U for asUInt of a zero-element Seq Add a condition to SeqUtils.asUInt to have it return an unspecified width 0.U when applied to an empty sequence. This enables the ability to do a Cat of a zero-element sequence. Signed-off-by: Schuyler Eldridge * Test elaboration of Cat on zero-element Seq Signed-off-by: Schuyler Eldridge --- src/test/scala/chiselTests/util/CatSpec.scala | 34 +++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/test/scala/chiselTests/util/CatSpec.scala (limited to 'src/test') diff --git a/src/test/scala/chiselTests/util/CatSpec.scala b/src/test/scala/chiselTests/util/CatSpec.scala new file mode 100644 index 00000000..2e52fe63 --- /dev/null +++ b/src/test/scala/chiselTests/util/CatSpec.scala @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: Apache-2.0 + +package chiselTests.util + +import chisel3._ +import chisel3.stage.ChiselStage +import chisel3.util.Cat + +import chiselTests.ChiselFlatSpec + +object CatSpec { + + class JackIsATypeSystemGod extends MultiIOModule { + val in = IO(Input (Vec(0, UInt(8.W)))) + val out = IO(Output(UInt(8.W))) + + out := Cat(in) + } + +} + +class CatSpec extends ChiselFlatSpec { + + import CatSpec._ + + behavior of "util.Cat" + + it should "not fail to elaborate a zero-element Vec" in { + + ChiselStage.elaborate(new JackIsATypeSystemGod) + + } + +} -- cgit v1.2.3