mirror of
https://github.com/verilator/verilator.git
synced 2026-10-06 10:03:44 +02:00
Support covergroup events with reference members or ref arguments (#8201)
This commit is contained in:
@@ -1707,11 +1707,6 @@ class FunctionalCoverageVisitor final : public VNVisitor {
|
||||
return found;
|
||||
}
|
||||
|
||||
static bool hasInstanceMemberEventRef(const AstCovergroup* cgp) {
|
||||
return cgp->eventp()->exists(
|
||||
[](const AstVarRef* refp) { return isEnclosingInstanceVar(refp->varp()); });
|
||||
}
|
||||
|
||||
static bool parseEmbeddedEventExpr(AstNodeExpr* exprp, AstVar*& baseVarp,
|
||||
AstVar*& memberVarp) {
|
||||
if (AstVarRef* const refp = VN_CAST(exprp, VarRef)) {
|
||||
@@ -2085,14 +2080,6 @@ class FunctionalCoverageVisitor final : public VNVisitor {
|
||||
itemp = nextp;
|
||||
continue;
|
||||
}
|
||||
if (hasInstanceMemberEventRef(cgp)) {
|
||||
cgp->v3warn(COVERIGN, "Unsupported: 'covergroup' clocking event "
|
||||
"on member variable");
|
||||
hasUnsupportedEvent = true;
|
||||
VL_DO_DANGLING(pushDeletep(cgp->unlinkFrBack()), cgp);
|
||||
itemp = nextp;
|
||||
continue;
|
||||
}
|
||||
// V3Active handles events that do not depend on an enclosing instance.
|
||||
UINFO(4, "Keeping covergroup event node for V3Active: " << nodep->name());
|
||||
itemp = nextp;
|
||||
|
||||
Reference in New Issue
Block a user