diff --git a/src/V3EmitC.cpp b/src/V3EmitC.cpp index 77142c101..b8f870f21 100644 --- a/src/V3EmitC.cpp +++ b/src/V3EmitC.cpp @@ -2549,14 +2549,6 @@ void EmitCImp::emitConfigureImp(AstNodeModule* modp) { if (v3Global.opt.coverage()) { puts(modName + "__" + protect("_configure_coverage") + "(this, first);\n"); } - if (modp->isTop() && !v3Global.rootp()->timeunit().isNone()) { - puts("vlSymsp->_vm_contextp__->timeunit(" - + cvtToStr(v3Global.rootp()->timeunit().powerOfTen()) + ");\n"); - } - if (modp->isTop() && !v3Global.rootp()->timeprecision().isNone()) { - puts("vlSymsp->_vm_contextp__->timeprecision(" - + cvtToStr(v3Global.rootp()->timeprecision().powerOfTen()) + ");\n"); - } puts("}\n"); splitSizeInc(10); } diff --git a/src/V3EmitCSyms.cpp b/src/V3EmitCSyms.cpp index f5d41845b..ccd80af56 100644 --- a/src/V3EmitCSyms.cpp +++ b/src/V3EmitCSyms.cpp @@ -704,6 +704,18 @@ void EmitCSyms::emitSymImp() { } } + puts("// Configure time unit / time precision\n"); + if (!v3Global.rootp()->timeunit().isNone()) { + puts("_vm_contextp__->timeunit("); + puts(cvtToStr(v3Global.rootp()->timeunit().powerOfTen())); + puts(");\n"); + } + if (!v3Global.rootp()->timeprecision().isNone()) { + puts("_vm_contextp__->timeprecision("); + puts(cvtToStr(v3Global.rootp()->timeprecision().powerOfTen())); + puts(");\n"); + } + puts("// Setup each module's pointer back to symbol table (for public functions)\n"); puts("TOPp->" + protect("__Vconfigure") + "(this, true);\n"); for (const auto& i : m_scopes) {