diff --git a/src/V3EmitCSyms.cpp b/src/V3EmitCSyms.cpp index a389d6a7b..8661ac966 100644 --- a/src/V3EmitCSyms.cpp +++ b/src/V3EmitCSyms.cpp @@ -298,11 +298,12 @@ class EmitCSyms final : EmitCBaseVisitor { m_scopes.emplace_back(std::make_pair(nodep, m_modp)); if (v3Global.opt.vpi() && !nodep->isTop()) { + string type = VN_IS(nodep->modp(), Package) ? "SCOPE_OTHER" : "SCOPE_MODULE"; string name_dedot = AstNode::dedotName(nodep->shortName()); int timeunit = m_modp->timeunit().powerOfTen(); m_vpiScopeCandidates.insert( std::make_pair(nodep->name(), ScopeData(scopeSymString(nodep->name()), name_dedot, - timeunit, "SCOPE_MODULE"))); + timeunit, type))); } } virtual void visit(AstScopeName* nodep) override { diff --git a/test_regress/t/t_vpi_module.v b/test_regress/t/t_vpi_module.v index 8d29e6622..ab6ac8201 100644 --- a/test_regress/t/t_vpi_module.v +++ b/test_regress/t/t_vpi_module.v @@ -12,6 +12,10 @@ import "DPI-C" context function int mon_check(); `endif +package somepackage; + int someint /*verilator public_flat_rw*/; +endpackage + module t (/*AUTOARG*/ // Inputs clk