summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJack Koenig2017-04-07 16:42:34 -0700
committerGitHub2017-04-07 16:42:34 -0700
commitdb6a727485153cbb92989be2f5d67e059e0878ad (patch)
treee664fb625e7519bd953a692e929c3aaa2bd01a2b /src
parent00796dfce1ec3eba739467571cdfc52df2aa62de (diff)
Change Enum to emit minimum widths of 1 (#574)
Fixes #554
Diffstat (limited to 'src')
-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()
+ })
+ }
+}