summaryrefslogtreecommitdiff
path: root/src/test/scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/scala')
-rw-r--r--src/test/scala/chiselTests/AutoNestedCloneSpec.scala35
1 files changed, 34 insertions, 1 deletions
diff --git a/src/test/scala/chiselTests/AutoNestedCloneSpec.scala b/src/test/scala/chiselTests/AutoNestedCloneSpec.scala
index d3977213..746780be 100644
--- a/src/test/scala/chiselTests/AutoNestedCloneSpec.scala
+++ b/src/test/scala/chiselTests/AutoNestedCloneSpec.scala
@@ -5,6 +5,12 @@ import Chisel.ChiselException
import org.scalatest._
import chisel3._
+class BundleWithAnonymousInner(val w: Int) extends Bundle {
+ val inner = new Bundle {
+ val foo = Input(UInt(w.W))
+ }
+}
+
class AutoNestedCloneSpec extends ChiselFlatSpec with Matchers {
behavior of "autoCloneType of inner Bundle in Chisel3"
@@ -18,7 +24,7 @@ class AutoNestedCloneSpec extends ChiselFlatSpec with Matchers {
def getIO = new InnerIOType
}
val io = IO(new Bundle {})
- val myWire = Wire((new Middle(w)).getIO)
+ val myWire = Wire((new Middle(w)).getIO)
}
new Outer(2)
}
@@ -56,6 +62,33 @@ class AutoNestedCloneSpec extends ChiselFlatSpec with Matchers {
}
}
+ it should "clone an anonymous, bound, inner bundle of another bundle successfully" in {
+ elaborate {
+ class TestModule(w: Int) extends Module {
+ val io = IO(new BundleWithAnonymousInner(w) )
+ val w0 = WireInit(io)
+ val w1 = WireInit(io.inner)
+ }
+ new TestModule(8)
+ }
+ }
+
+ it should "clone an anonymous, inner bundle of a Module, bound to another bundle successfully" in {
+ elaborate {
+ class TestModule(w: Int) extends Module {
+ val bun = new Bundle {
+ val foo = UInt(w.W)
+ }
+ val io = IO(new Bundle {
+ val inner = Input(bun)
+ })
+ val w0 = WireInit(io)
+ val w1 = WireInit(io.inner)
+ }
+ new TestModule(8)
+ }
+ }
+
behavior of "anonymous doubly-nested inner bundle fails with clear error"
( the[ChiselException] thrownBy {
elaborate {