summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/scala/chiselTests/When.scala25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/test/scala/chiselTests/When.scala b/src/test/scala/chiselTests/When.scala
index d4491e13..d2646df7 100644
--- a/src/test/scala/chiselTests/When.scala
+++ b/src/test/scala/chiselTests/When.scala
@@ -53,6 +53,28 @@ class OverlappedWhenTester() extends BasicTester {
}
}
+class NoOtherwiseOverlappedWhenTester() extends BasicTester {
+ val cnt = Counter(4)
+ when(true.B) { cnt.inc() }
+
+ val out = Wire(UInt(3.W))
+ when(cnt.value <= 0.U) {
+ out := 1.U
+ } .elsewhen (cnt.value <= 1.U) {
+ out := 2.U
+ } .elsewhen (cnt.value <= 2.U) {
+ out := 3.U
+ } .elsewhen (cnt.value <= 3.U) {
+ out := 0.U
+ }
+
+ assert(out === cnt.value + 1.U)
+
+ when(cnt.value === 3.U) {
+ stop()
+ }
+}
+
class WhenSpec extends ChiselFlatSpec {
"When, elsewhen, and otherwise with orthogonal conditions" should "work" in {
assertTesterPasses{ new WhenTester }
@@ -60,4 +82,7 @@ class WhenSpec extends ChiselFlatSpec {
"When, elsewhen, and otherwise with overlapped conditions" should "work" in {
assertTesterPasses{ new OverlappedWhenTester }
}
+ "When and elsewhen without otherwise with overlapped conditions" should "work" in {
+ assertTesterPasses{ new NoOtherwiseOverlappedWhenTester }
+ }
}