summaryrefslogtreecommitdiff
path: root/src/test/scala
diff options
context:
space:
mode:
authorSchuyler Eldridge2018-10-25 13:37:00 -0400
committerSchuyler Eldridge2018-10-25 13:37:00 -0400
commit2416d1d44a2bd73bd0556437ece7a7a24d649a7a (patch)
tree354899e66d63a6377f49ddba14541625262dbdc2 /src/test/scala
parent600405254c20c14fb3389aa4758ec27dffe992d0 (diff)
Make BaseModule.name lazy
This changes BaseModule.name to be lazy (instead of eager) to enable a desiredName to be a function of a sub-instance. This includes a test case showing the new behavior. Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
Diffstat (limited to 'src/test/scala')
-rw-r--r--src/test/scala/chiselTests/Module.scala9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/test/scala/chiselTests/Module.scala b/src/test/scala/chiselTests/Module.scala
index 968e7578..dc44838a 100644
--- a/src/test/scala/chiselTests/Module.scala
+++ b/src/test/scala/chiselTests/Module.scala
@@ -62,6 +62,12 @@ class ModuleRewrap extends Module {
val inst2 = Module(inst)
}
+class ModuleWrapper(gen: => Module) extends Module {
+ val io = IO(new Bundle{})
+ val child = Module(gen)
+ override lazy val desiredName = s"${child.desiredName}Wrapper"
+}
+
class ModuleSpec extends ChiselPropSpec {
property("ModuleVec should elaborate") {
@@ -138,4 +144,7 @@ class ModuleSpec extends ChiselPropSpec {
"a" -> m.a, "b" -> m.b))
})
}
+ property("A desiredName parameterized by a submodule should work") {
+ Driver.elaborate(() => new ModuleWrapper(new ModuleWire)).name should be ("ModuleWireWrapper")
+ }
}