summaryrefslogtreecommitdiff
path: root/src/test/scala/chiselTests/Vec.scala
diff options
context:
space:
mode:
authorJack2022-07-30 22:41:15 +0000
committerJack2022-07-30 22:41:15 +0000
commit4cd44fa4dab370fcc5c20bcacc1fa0ee02327252 (patch)
tree05730be260feca0d2a870c4bb88325d36631a8fc /src/test/scala/chiselTests/Vec.scala
parentfe9635ef21bad233945617a24ab16cfa4055f2d1 (diff)
parentbced77045c8fc5db37e40b159c49220929e15d46 (diff)
Merge branch '3.5.x' into 3.5-release
Diffstat (limited to 'src/test/scala/chiselTests/Vec.scala')
-rw-r--r--src/test/scala/chiselTests/Vec.scala22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/test/scala/chiselTests/Vec.scala b/src/test/scala/chiselTests/Vec.scala
index 2eb6ae5f..02743187 100644
--- a/src/test/scala/chiselTests/Vec.scala
+++ b/src/test/scala/chiselTests/Vec.scala
@@ -517,4 +517,26 @@ class VecSpec extends ChiselPropSpec with Utils {
property("reduceTree should preserve input/output type") {
assertTesterPasses { new ReduceTreeTester() }
}
+
+ property("Vecs of empty Bundles and empty Records should work") {
+ class MyModule(gen: Record) extends Module {
+ val idx = IO(Input(UInt(2.W)))
+ val in = IO(Input(gen))
+ val out = IO(Output(gen))
+
+ val reg = RegInit(0.U.asTypeOf(Vec(4, gen)))
+ reg(idx) := in
+ out := reg(idx)
+ }
+ class EmptyBundle extends Bundle
+ class EmptyRecord extends Record {
+ val elements = collection.immutable.ListMap.empty
+ override def cloneType = (new EmptyRecord).asInstanceOf[this.type]
+ }
+ for (gen <- List(new EmptyBundle, new EmptyRecord)) {
+ val chirrtl = ChiselStage.emitChirrtl(new MyModule(gen))
+ chirrtl should include("input in : { }")
+ chirrtl should include("reg reg : { }[4]")
+ }
+ }
}