diff options
Diffstat (limited to 'chiselFrontend/src/main/scala/chisel3/core/UserModule.scala')
| -rw-r--r-- | chiselFrontend/src/main/scala/chisel3/core/UserModule.scala | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/chiselFrontend/src/main/scala/chisel3/core/UserModule.scala b/chiselFrontend/src/main/scala/chisel3/core/UserModule.scala index c99d53cf..9c923037 100644 --- a/chiselFrontend/src/main/scala/chisel3/core/UserModule.scala +++ b/chiselFrontend/src/main/scala/chisel3/core/UserModule.scala @@ -81,8 +81,15 @@ abstract class UserModule(implicit moduleCompileOptions: CompileOptions) component } - // There is no initialization to be done by default. - private[core] def initializeInParent() {} + private[core] def initializeInParent(parentCompileOptions: CompileOptions): Unit = { + implicit val sourceInfo = UnlocatableSourceInfo + + if (!parentCompileOptions.explicitInvalidate) { + for (port <- getModulePorts) { + pushCommand(DefInvalid(sourceInfo, port.ref)) + } + } + } } /** Abstract base class for Modules, which behave much like Verilog modules. @@ -100,14 +107,10 @@ abstract class ImplicitModule(implicit moduleCompileOptions: CompileOptions) // Setup ClockAndReset Builder.currentClockAndReset = Some(ClockAndReset(clock, reset)) - private[core] override def initializeInParent() { + private[core] override def initializeInParent(parentCompileOptions: CompileOptions): Unit = { implicit val sourceInfo = UnlocatableSourceInfo - if (!compileOptions.explicitInvalidate) { - for (port <- getModulePorts) { - pushCommand(DefInvalid(sourceInfo, port.ref)) - } - } + super.initializeInParent(parentCompileOptions) clock := Builder.forcedClock reset := Builder.forcedReset } @@ -173,12 +176,12 @@ abstract class LegacyModule(implicit moduleCompileOptions: CompileOptions) super.generateComponent() } - private[core] override def initializeInParent() { + private[core] override def initializeInParent(parentCompileOptions: CompileOptions): Unit = { // Don't generate source info referencing parents inside a module, since this interferes with // module de-duplication in FIRRTL emission. implicit val sourceInfo = UnlocatableSourceInfo - if (!compileOptions.explicitInvalidate) { + if (!parentCompileOptions.explicitInvalidate) { pushCommand(DefInvalid(sourceInfo, io.ref)) } |
