From db6a727485153cbb92989be2f5d67e059e0878ad Mon Sep 17 00:00:00 2001 From: Jack Koenig Date: Fri, 7 Apr 2017 16:42:34 -0700 Subject: Change Enum to emit minimum widths of 1 (#574) Fixes #554--- src/main/scala/chisel3/util/Enum.scala | 2 +- src/test/scala/chiselTests/EnumSpec.scala | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 src/test/scala/chiselTests/EnumSpec.scala (limited to 'src') diff --git a/src/main/scala/chisel3/util/Enum.scala b/src/main/scala/chisel3/util/Enum.scala index a3e39047..6ed0d422 100644 --- a/src/main/scala/chisel3/util/Enum.scala +++ b/src/main/scala/chisel3/util/Enum.scala @@ -10,7 +10,7 @@ import chisel3._ trait Enum { /** Returns a sequence of Bits subtypes with values from 0 until n. Helper method. */ protected def createValues(n: Int): Seq[UInt] = - (0 until n).map(_.U(log2Ceil(n).W)) + (0 until n).map(_.U((1 max log2Ceil(n)).W)) /** Returns n unique UInt values, use with unpacking to specify an enumeration. * diff --git a/src/test/scala/chiselTests/EnumSpec.scala b/src/test/scala/chiselTests/EnumSpec.scala new file mode 100644 index 00000000..37bbe2ff --- /dev/null +++ b/src/test/scala/chiselTests/EnumSpec.scala @@ -0,0 +1,19 @@ +// See LICENSE for license details. + +package chiselTests + +import chisel3._ +import chisel3.util.Enum +import chisel3.testers.BasicTester + +class EnumSpec extends ChiselFlatSpec { + + "1-entry Enums" should "work" in { + assertTesterPasses(new BasicTester { + val onlyState :: Nil = Enum(1) + val wire = Wire(init = onlyState) + chisel3.assert(wire === onlyState) + stop() + }) + } +} -- cgit v1.2.3