feat: Extendend .json content

This commit is contained in:
Jonathan Schröter 2025-11-27 11:30:13 +01:00
parent fab0b69f0b
commit 8d597ab62c
3 changed files with 7 additions and 0 deletions

View File

@ -1863,6 +1863,7 @@ class AstVar final : public AstNode {
bool m_substConstOnly : 1; // Only substitute if constant
bool m_overridenParam : 1; // Overridden parameter by #(...) or defparam
bool m_trace : 1; // Trace this variable
bool m_isHookInserted : 1; // This variable is instrumented for coverage
bool m_isLatched : 1; // Not assigned in all control paths of combo always
bool m_isForceable : 1; // May be forced/released externally from user C code
bool m_isForcedByCode : 1; // May be forced/released from AstAssignForce/AstRelease
@ -1913,6 +1914,7 @@ class AstVar final : public AstNode {
m_substConstOnly = false;
m_overridenParam = false;
m_trace = false;
m_isHookInserted = false;
m_isLatched = false;
m_isForceable = false;
m_isForcedByCode = false;
@ -2055,6 +2057,8 @@ public:
bool gotNansiType() { return m_gotNansiType; }
void hasStrengthAssignment(bool flag) { m_hasStrengthAssignment = flag; }
bool hasStrengthAssignment() { return m_hasStrengthAssignment; }
void hasHookInserted(bool flag) { m_isHookInserted = flag; }
bool isHookInserted() const { return m_isHookInserted; }
void isDpiOpenArray(bool flag) { m_isDpiOpenArray = flag; }
bool isDpiOpenArray() const VL_MT_SAFE { return m_isDpiOpenArray; }
bool isHideLocal() const { return m_isHideLocal; }

View File

@ -2790,6 +2790,8 @@ void AstVar::dumpJson(std::ostream& str) const {
dumpJsonBoolFunc(str, attrSFormat);
dumpJsonBoolFunc(str, ignorePostWrite);
dumpJsonBoolFunc(str, ignoreSchedWrite);
dumpJsonBoolFunc(str, isHookInserted);
dumpJsonNum(str, "width", width());
dumpJsonGen(str);
}
void AstScope::dump(std::ostream& str) const {

View File

@ -441,6 +441,7 @@ class HookInsTargetFndr final : public VNVisitor {
AstVar* varp = nodep->cloneTree(false);
varp->name("tmp_" + nodep->name());
varp->origName("tmp_" + nodep->name());
varp->hasHookInserted(true);
varp->trace(true);
if (varp->varType() == VVarType::WIRE) { varp->varType(VVarType::VAR); }
setVar(nodep, varp, m_target);