mirror of
https://github.com/verilator/verilator.git
synced 2026-10-06 10:03:44 +02:00
Fix scope tree in traces in hierarchical mode (#7042)
This commit is contained in:
+13
-4
@@ -549,10 +549,14 @@ class EmitCModel final : public EmitCFunc {
|
||||
"0.\");\n");
|
||||
puts("}\n");
|
||||
puts("vlSymsp->__Vm_baseCode = code;\n");
|
||||
puts("tracep->pushPrefix(vlSymsp->name(), VerilatedTracePrefixType::SCOPE_MODULE);\n");
|
||||
if (v3Global.opt.libCreate().empty()) {
|
||||
puts("tracep->pushPrefix(vlSymsp->name(), VerilatedTracePrefixType::SCOPE_MODULE);\n");
|
||||
}
|
||||
puts(topModNameProtected + "__" + protect("trace_decl_types") + "(tracep);\n");
|
||||
puts(topModNameProtected + "__" + protect("trace_init_top") + "(vlSelf, tracep);\n");
|
||||
puts("tracep->popPrefix();\n");
|
||||
if (v3Global.opt.libCreate().empty()) { //
|
||||
puts("tracep->popPrefix();\n");
|
||||
}
|
||||
puts("}\n");
|
||||
|
||||
// Forward declaration
|
||||
@@ -583,8 +587,13 @@ class EmitCModel final : public EmitCFunc {
|
||||
+ " and --trace-vcd with VerilatedVcd object\");\n");
|
||||
puts(/**/ "}\n");
|
||||
puts(/**/ "stfp->spTrace()->addModel(this);\n");
|
||||
puts(/**/ "stfp->spTrace()->addInitCb(&" + protect("trace_init")
|
||||
+ ", &(vlSymsp->TOP));\n");
|
||||
puts(/**/ "stfp->spTrace()->addInitCb("s //
|
||||
+ "&" + protect("trace_init") //
|
||||
+ ", &(vlSymsp->TOP)" //
|
||||
+ ", name()" //
|
||||
+ ", " + (v3Global.opt.libCreate().empty() ? "false" : "true") //
|
||||
+ ", " + std::to_string(v3Global.rootp()->nTraceCodes()) //
|
||||
+ ");\n");
|
||||
puts(/**/ topModNameProtected + "__" + protect("trace_register")
|
||||
+ "(&(vlSymsp->TOP), stfp->spTrace());\n");
|
||||
puts("}\n");
|
||||
|
||||
Reference in New Issue
Block a user