From 2416d1d44a2bd73bd0556437ece7a7a24d649a7a Mon Sep 17 00:00:00 2001 From: Schuyler Eldridge Date: Thu, 25 Oct 2018 13:37:00 -0400 Subject: 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 --- src/test/scala/chiselTests/Module.scala | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src') 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") + } } -- cgit v1.2.3