mirror of
https://github.com/verilator/verilator.git
synced 2026-10-08 02:53:12 +02:00
Support $monitor and $strobe.
This commit is contained in:
+8
-1
@@ -673,6 +673,7 @@ private:
|
||||
bool m_inClkAss = false; // Underneath AstAssign
|
||||
bool m_inPre = false; // Underneath AstAssignPre
|
||||
bool m_inPost = false; // Underneath AstAssignPost
|
||||
bool m_inPostponed = false; // Underneath AstAssignPostponed
|
||||
OrderLogicVertex* m_activeSenVxp = nullptr; // Sensitivity vertex
|
||||
std::deque<OrderUser*> m_orderUserps; // All created OrderUser's for later deletion.
|
||||
// STATE... for inside process
|
||||
@@ -1044,7 +1045,8 @@ private:
|
||||
// We don't want to add extra edges if the logic block has many usages of same var
|
||||
bool gen = false;
|
||||
bool con = false;
|
||||
if (nodep->access().isWriteOrRW()) gen = !(varscp->user4() & VU_GEN);
|
||||
if (nodep->access().isWriteOrRW() && !m_inPostponed)
|
||||
gen = !(varscp->user4() & VU_GEN);
|
||||
if (nodep->access().isReadOrRW()) {
|
||||
con = !(varscp->user4() & VU_CON);
|
||||
if ((varscp->user4() & VU_GEN) && !m_inClocked) {
|
||||
@@ -1174,6 +1176,11 @@ private:
|
||||
iterateNewStmt(nodep);
|
||||
m_inPost = false;
|
||||
}
|
||||
virtual void visit(AstAlwaysPostponed* nodep) override {
|
||||
VL_RESTORER(m_inPostponed);
|
||||
m_inPostponed = true;
|
||||
iterateNewStmt(nodep);
|
||||
}
|
||||
virtual void visit(AstAlways* nodep) override { iterateNewStmt(nodep); }
|
||||
virtual void visit(AstAlwaysPublic* nodep) override { iterateNewStmt(nodep); }
|
||||
virtual void visit(AstAssignAlias* nodep) override { iterateNewStmt(nodep); }
|
||||
|
||||
Reference in New Issue
Block a user