Internals: Do not overload AstVar::isPrimaryIO() for sampled value vars
This commit is contained in:
parent
5ab2bf1ec4
commit
a07a980b73
|
|
@ -51,8 +51,6 @@ class SampledVisitor final : public VNVisitor {
|
|||
AstVar* const newvarp = new AstVar{flp, VVarType::MODULETEMP, newvarname, varp->dtypep()};
|
||||
m_scopep->modp()->addStmtsp(newvarp);
|
||||
AstVarScope* const newvscp = new AstVarScope{flp, m_scopep, newvarp};
|
||||
newvarp->direction(VDirection::INPUT); // Inform V3Sched that it will be driven later
|
||||
newvarp->primaryIO(true);
|
||||
newvarp->sampled(true);
|
||||
vscp->user1p(newvscp);
|
||||
m_scopep->addVarsp(newvscp);
|
||||
|
|
|
|||
|
|
@ -608,7 +608,7 @@ AstNode* createInputCombLoop(AstNetlist* netlistp, AstCFunc* const initFuncp,
|
|||
auto it = inp2changedp.find(vscp);
|
||||
if (it != inp2changedp.end()) {
|
||||
out.push_back(it->second);
|
||||
} else if (varp->isPrimaryInish() || varp->isSigUserRWPublic()) {
|
||||
} else if (varp->isPrimaryInish() || varp->isSigUserRWPublic() || varp->sampled()) {
|
||||
if (!firstIterTriggerp) {
|
||||
firstIterTriggerp
|
||||
= trigKit.newExtraTriggerSenTree(trigKit.vscp(), firstIterationTrigger);
|
||||
|
|
|
|||
|
|
@ -150,8 +150,8 @@ public:
|
|||
: SchedReplicateVertex{graphp}
|
||||
, m_vscp{vscp} {
|
||||
// Top level inputs are
|
||||
if (varp()->isPrimaryInish() || varp()->isSigUserRWPublic() || varp()->isWrittenByDpi()
|
||||
|| varp()->sensIfacep() || varp()->isVirtIface()) {
|
||||
if (varp()->isPrimaryInish() || varp()->isSigUserRWPublic() || varp()->sampled()
|
||||
|| varp()->isWrittenByDpi() || varp()->sensIfacep() || varp()->isVirtIface()) {
|
||||
addDrivingRegions(INPUT);
|
||||
}
|
||||
// Currently we always execute suspendable processes at the beginning of
|
||||
|
|
|
|||
Loading…
Reference in New Issue