Fix duplicate fork names (#4295)

This commit is contained in:
Ryszard Rozak 2023-06-22 12:51:53 +02:00 committed by GitHub
parent 9ee5fd0585
commit 4522834f7a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 99 additions and 47 deletions

View File

@ -277,13 +277,13 @@ private:
AstActive* m_activep = nullptr; // Current active
AstNode* m_procp = nullptr; // NodeProcedure/CFunc/Begin we're under
double m_timescaleFactor = 1.0; // Factor to scale delays by
int m_forkCnt = 0; // Number of forks inside a module
// Unique names
V3UniqueNames m_contAssignVarNames{"__VassignWtmp"}; // Names for temp AssignW vars
V3UniqueNames m_intraValueNames{"__Vintraval"}; // Intra assign delay value var names
V3UniqueNames m_intraIndexNames{"__Vintraidx"}; // Intra assign delay index var names
V3UniqueNames m_intraLsbNames{"__Vintralsb"}; // Intra assign delay LSB var names
V3UniqueNames m_forkNames{"__Vfork"}; // Fork name generator
V3UniqueNames m_trigSchedNames{"__VtrigSched"}; // Trigger scheduler name generator
V3UniqueNames m_dynTrigNames{"__VdynTrigger"}; // Dynamic trigger name generator
@ -564,6 +564,8 @@ private:
m_classp = VN_CAST(nodep, Class);
VL_RESTORER(m_timescaleFactor);
m_timescaleFactor = calculateTimescaleFactor(nodep->timeunit());
VL_RESTORER(m_forkCnt);
m_forkCnt = 0;
iterateChildren(nodep);
}
void visit(AstScope* nodep) override {
@ -918,7 +920,7 @@ private:
if (nodep->user1SetOnce()) return;
v3Global.setUsesTiming();
// Create a unique name for this fork
nodep->name(m_forkNames.get(nodep));
nodep->name("__Vfork_" + cvtToStr(++m_forkCnt));
unsigned idx = 0; // Index for naming begins
AstNode* stmtp = nodep->stmtsp();
// Put each statement in a begin

View File

@ -26,9 +26,9 @@
-V{t#,#}+ Vt_timing_debug1___024root___stl_sequent__TOP__2
-V{t#,#}+ Vt_timing_debug1___024root___act_comb__TOP__2
-V{t#,#}+ Vt_timing_debug1___024root___stl_comb__TOP__1
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___stl_comb__TOP__2
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_2__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__stl
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__stl
-V{t#,#} No triggers active
@ -49,9 +49,9 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__1
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_2__0
-V{t#,#}+ Vt_timing_debug1___024root___act_comb__TOP__2
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
@ -91,7 +91,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} 'act' region trigger index 3 is active: @(posedge t.clk1)
@ -150,7 +150,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} No triggers active
@ -222,7 +222,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} 'act' region trigger index 3 is active: @(posedge t.clk1)
@ -276,7 +276,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__1
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_2__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} 'act' region trigger index 5 is active: @(posedge t.clk2)
@ -344,7 +344,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} No triggers active
@ -414,7 +414,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} 'act' region trigger index 3 is active: @(posedge t.clk1)
@ -472,7 +472,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} No triggers active
@ -542,7 +542,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} 'act' region trigger index 3 is active: @(posedge t.clk1)
@ -594,7 +594,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__1
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_2__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} No triggers active
@ -632,7 +632,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} No triggers active
@ -702,7 +702,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} 'act' region trigger index 3 is active: @(posedge t.clk1)
@ -754,7 +754,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} No triggers active
@ -826,9 +826,9 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__1
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_2__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} 'act' region trigger index 3 is active: @(posedge t.clk1)
@ -932,7 +932,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} No triggers active
@ -1002,7 +1002,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} 'act' region trigger index 3 is active: @(posedge t.clk1)
@ -1060,7 +1060,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} No triggers active
@ -1130,7 +1130,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__1
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_2__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} No triggers active
@ -1167,7 +1167,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} 'act' region trigger index 3 is active: @(posedge t.clk1)
@ -1219,7 +1219,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} No triggers active
@ -1289,7 +1289,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} 'act' region trigger index 3 is active: @(posedge t.clk1)
@ -1341,7 +1341,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} No triggers active
@ -1383,7 +1383,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__1
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_2__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} 'act' region trigger index 5 is active: @(posedge t.clk2)
@ -1478,7 +1478,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} 'act' region trigger index 3 is active: @(posedge t.clk1)
@ -1536,7 +1536,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} No triggers active
@ -1606,7 +1606,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} 'act' region trigger index 3 is active: @(posedge t.clk1)
@ -1660,9 +1660,9 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__1
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_2__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} No triggers active
@ -1732,7 +1732,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} 'act' region trigger index 3 is active: @(posedge t.clk1)
@ -1784,7 +1784,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} No triggers active
@ -1854,7 +1854,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} 'act' region trigger index 3 is active: @(posedge t.clk1)
@ -1906,7 +1906,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__1
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_2__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} 'act' region trigger index 5 is active: @(posedge t.clk2)
@ -1976,7 +1976,7 @@
-V{t#,#}+ Vt_timing_debug1___024root___timing_resume
-V{t#,#}+ Vt_timing_debug1___024root___eval_act
-V{t#,#}+ Vt_timing_debug1___024root___act_sequent__TOP__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug1___024root____Vfork_1__0
-V{t#,#}+ Vt_timing_debug1___024root___eval_triggers__act
-V{t#,#}+ Vt_timing_debug1___024root___dump_triggers__act
-V{t#,#} No triggers active

View File

@ -62,10 +62,10 @@
-V{t#,#}+ Vt_timing_debug2_t__03a__03aForkClass::new
-V{t#,#}+ Vt_timing_debug2_t__03a__03aForkClass::_ctor_var_reset
-V{t#,#}+ Vt_timing_debug2_t__03a__03aForkClass::__VnoInFunc_do_fork
-V{t#,#}+ Vt_timing_debug2_t__03a__03aForkClass::__Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug2_t__03a__03aForkClass::__Vfork_h########__0__1
-V{t#,#}+ Vt_timing_debug2_t__03a__03aForkClass::__Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug2_t__03a__03aForkClass::__Vfork_h########__0__1
-V{t#,#}+ Vt_timing_debug2_t__03a__03aForkClass::__Vfork_1__0
-V{t#,#}+ Vt_timing_debug2_t__03a__03aForkClass::__Vfork_1__1
-V{t#,#}+ Vt_timing_debug2_t__03a__03aForkClass::__Vfork_2__0
-V{t#,#}+ Vt_timing_debug2_t__03a__03aForkClass::__Vfork_2__1
-V{t#,#} Awaiting join of fork at: t/t_timing_class.v:222
-V{t#,#} Awaiting join of fork at: t/t_timing_class.v:217
-V{t#,#}+ Vt_timing_debug2_t___eval_initial__TOP__t__7
@ -402,9 +402,9 @@
-V{t#,#} - Process waiting at t/t_timing_class.v:58
-V{t#,#} Resuming: Process waiting at t/t_timing_class.v:58
-V{t#,#}+ Vt_timing_debug2_t__03a__03aLocalWaitClass::__VnoInFunc_await
-V{t#,#}+ Vt_timing_debug2_t__03a__03aLocalWaitClass::__Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug2_t__03a__03aLocalWaitClass::__Vfork_1__0
-V{t#,#} Suspending process waiting for @([true] ((32'sh2a == t::LocalWaitClass.a) | (32'sh64 != t::LocalWaitClass.b))) at t/t_timing_class.v:75
-V{t#,#}+ Vt_timing_debug2_t__03a__03aLocalWaitClass::__Vfork_h########__0__1
-V{t#,#}+ Vt_timing_debug2_t__03a__03aLocalWaitClass::__Vfork_1__1
-V{t#,#} Awaiting join of fork at: t/t_timing_class.v:74
-V{t#,#}+ Vt_timing_debug2___024root___eval_act
-V{t#,#}+ Vt_timing_debug2___024root___eval_triggers__act
@ -455,7 +455,7 @@
-V{t#,#}+ Vt_timing_debug2_t__03a__03aDelay40::__VnoInFunc_do_sth_else
-V{t#,#}+ Vt_timing_debug2_t__03a__03aNoDelay::__VnoInFunc_do_delay
-V{t#,#}+ Vt_timing_debug2_t__03a__03aNoDelay::__VnoInFunc_do_sth_else
-V{t#,#}+ Vt_timing_debug2_t____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug2_t____Vfork_1__0
-V{t#,#}+ Vt_timing_debug2_t__03a__03aAssignDelayClass::__VnoInFunc_do_assign
-V{t#,#} Resuming: Process waiting at t/t_timing_class.v:162
-V{t#,#} Process forked at t/t_timing_class.v:76 finished
@ -538,7 +538,7 @@
-V{t#,#} Resuming delayed processes
-V{t#,#} Resuming: Process waiting at t/t_timing_class.v:99
-V{t#,#} Resuming: Process waiting at t/t_timing_class.v:97
-V{t#,#}+ Vt_timing_debug2_t____Vfork_h########__0__0
-V{t#,#}+ Vt_timing_debug2_t____Vfork_2__0
-V{t#,#}+ Vt_timing_debug2_t__03a__03aAssignDelayClass::__VnoInFunc_do_assign
-V{t#,#}+ Vt_timing_debug2___024root___eval_act
-V{t#,#}+ Vt_timing_debug2___024root___eval_triggers__act

View File

@ -0,0 +1,23 @@
#!/usr/bin/env perl
if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); die; }
# DESCRIPTION: Verilator: Verilog Test driver/expect definition
#
# Copyright 2023 by Wilson Snyder. This program is free software; you
# can redistribute it and/or modify it under the terms of either the GNU
# Lesser General Public License Version 3 or the Perl Artistic License
# Version 2.0.
# SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0
scenarios(simulator => 1);
compile(
verilator_flags2 => ["--exe --main --timing"],
make_main => 0,
);
execute(
check_finished => 1,
);
ok(1);
1;

View File

@ -0,0 +1,27 @@
// DESCRIPTION: Verilator: Verilog Test module
//
// This file ONLY is placed under the Creative Commons Public Domain, for
// any use, without warranty, 2023 by Antmicro Ltd.
// SPDX-License-Identifier: CC0-1.0
class RecFork;
int cnt = 0;
task run(int n);
if (n > 0) begin
cnt++;
fork
run(n - 1);
join
end
endtask
endclass
module t;
initial begin
automatic RecFork rec = new;
rec.run(7);
if (rec.cnt != 7) $stop;
$write("*-* All Finished *-*\n");
$finish;
end
endmodule