summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/scala/chisel3/util/Enum.scala2
-rw-r--r--src/test/scala/chiselTests/EnumSpec.scala19
2 files changed, 20 insertions, 1 deletions
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()
+ })
+ }
+}