parent
0fed5f8b3e
commit
6db149c588
|
|
@ -263,33 +263,24 @@ class VerilatedVpioScope VL_NOT_FINAL : public VerilatedVpio {
|
||||||
protected:
|
protected:
|
||||||
const VerilatedScope* const m_scopep;
|
const VerilatedScope* const m_scopep;
|
||||||
bool m_toplevel = false;
|
bool m_toplevel = false;
|
||||||
|
const char* m_name;
|
||||||
|
const char* m_fullname;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit VerilatedVpioScope(const VerilatedScope* scopep)
|
explicit VerilatedVpioScope(const VerilatedScope* scopep)
|
||||||
: m_scopep{scopep} {
|
: m_scopep{scopep} {
|
||||||
std::string scopename = m_scopep->name();
|
m_fullname = m_scopep->name();
|
||||||
std::string::size_type pos = std::string::npos;
|
if (std::strncmp(m_fullname, "TOP.", 4) == 0) m_fullname += 4;
|
||||||
// Look for '.' not inside escaped identifier
|
m_name = m_scopep->identifier();
|
||||||
size_t i = 0;
|
|
||||||
while (i < scopename.length()) {
|
|
||||||
if (scopename[i] == '\\') {
|
|
||||||
while (i < scopename.length() && scopename[i] != ' ') ++i;
|
|
||||||
++i; // Proc ' ', it should always be there. Then grab '.' on next cycle
|
|
||||||
} else {
|
|
||||||
while (i < scopename.length() && scopename[i] != '.') ++i;
|
|
||||||
if (i < scopename.length()) pos = i++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (VL_UNLIKELY(pos == std::string::npos)) m_toplevel = true;
|
|
||||||
}
|
}
|
||||||
~VerilatedVpioScope() override = default;
|
~VerilatedVpioScope() override = default;
|
||||||
static VerilatedVpioScope* castp(vpiHandle h) {
|
static VerilatedVpioScope* castp(vpiHandle h) {
|
||||||
return dynamic_cast<VerilatedVpioScope*>(reinterpret_cast<VerilatedVpio*>(h));
|
return dynamic_cast<VerilatedVpioScope*>(reinterpret_cast<VerilatedVpio*>(h));
|
||||||
}
|
}
|
||||||
uint32_t type() const override { return vpiScope; }
|
uint32_t type() const override { return vpiGenScope; }
|
||||||
const VerilatedScope* scopep() const { return m_scopep; }
|
const VerilatedScope* scopep() const { return m_scopep; }
|
||||||
const char* name() const override { return m_scopep->name(); }
|
const char* name() const override { return m_name; }
|
||||||
const char* fullname() const override { return m_scopep->name(); }
|
const char* fullname() const override { return m_fullname; }
|
||||||
bool toplevel() const { return m_toplevel; }
|
bool toplevel() const { return m_toplevel; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -469,22 +460,29 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
class VerilatedVpioModule final : public VerilatedVpioScope {
|
class VerilatedVpioModule final : public VerilatedVpioScope {
|
||||||
const char* m_name;
|
|
||||||
const char* m_fullname;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit VerilatedVpioModule(const VerilatedScope* modulep)
|
explicit VerilatedVpioModule(const VerilatedScope* modulep)
|
||||||
: VerilatedVpioScope{modulep} {
|
: VerilatedVpioScope{modulep} {
|
||||||
m_fullname = m_scopep->name();
|
// Look for '.' not inside escaped identifier
|
||||||
if (std::strncmp(m_fullname, "TOP.", 4) == 0) m_fullname += 4;
|
const std::string scopename = m_fullname;
|
||||||
m_name = m_scopep->identifier();
|
std::string::size_type pos = std::string::npos;
|
||||||
|
size_t i = 0;
|
||||||
|
while (i < scopename.length()) {
|
||||||
|
if (scopename[i] == '\\') {
|
||||||
|
while (i < scopename.length() && scopename[i] != ' ') ++i;
|
||||||
|
++i; // Proc ' ', it should always be there. Then grab '.' on next cycle
|
||||||
|
} else {
|
||||||
|
while (i < scopename.length() && scopename[i] != '.') ++i;
|
||||||
|
if (i < scopename.length()) pos = i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (VL_UNLIKELY(pos == std::string::npos)) m_toplevel = true;
|
||||||
}
|
}
|
||||||
static VerilatedVpioModule* castp(vpiHandle h) {
|
static VerilatedVpioModule* castp(vpiHandle h) {
|
||||||
return dynamic_cast<VerilatedVpioModule*>(reinterpret_cast<VerilatedVpio*>(h));
|
return dynamic_cast<VerilatedVpioModule*>(reinterpret_cast<VerilatedVpio*>(h));
|
||||||
}
|
}
|
||||||
uint32_t type() const override { return vpiModule; }
|
uint32_t type() const override { return vpiModule; }
|
||||||
const char* name() const override { return m_name; }
|
|
||||||
const char* fullname() const override { return m_fullname; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class VerilatedVpioModuleIter final : public VerilatedVpio {
|
class VerilatedVpioModuleIter final : public VerilatedVpio {
|
||||||
|
|
@ -507,8 +505,8 @@ public:
|
||||||
delete this; // IEEE 37.2.2 vpi_scan at end does a vpi_release_handle
|
delete this; // IEEE 37.2.2 vpi_scan at end does a vpi_release_handle
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
const VerilatedScope::Type itype = (*m_it)->type();
|
|
||||||
const VerilatedScope* const modp = *m_it++;
|
const VerilatedScope* const modp = *m_it++;
|
||||||
|
const VerilatedScope::Type itype = modp->type();
|
||||||
if (itype == VerilatedScope::SCOPE_MODULE) {
|
if (itype == VerilatedScope::SCOPE_MODULE) {
|
||||||
return (new VerilatedVpioModule{modp})->castVpiHandle();
|
return (new VerilatedVpioModule{modp})->castVpiHandle();
|
||||||
}
|
}
|
||||||
|
|
@ -516,26 +514,54 @@ public:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class VerilatedVpioScopeIter final : public VerilatedVpio {
|
||||||
|
const std::vector<const VerilatedScope*>* m_vec;
|
||||||
|
std::vector<const VerilatedScope*>::const_iterator m_it;
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit VerilatedVpioScopeIter(const std::vector<const VerilatedScope*>& vec)
|
||||||
|
: m_vec{&vec} {
|
||||||
|
m_it = m_vec->begin();
|
||||||
|
}
|
||||||
|
~VerilatedVpioScopeIter() override = default;
|
||||||
|
static VerilatedVpioScopeIter* castp(vpiHandle h) {
|
||||||
|
return dynamic_cast<VerilatedVpioScopeIter*>(reinterpret_cast<VerilatedVpio*>(h));
|
||||||
|
}
|
||||||
|
uint32_t type() const override { return vpiIterator; }
|
||||||
|
vpiHandle dovpi_scan() override {
|
||||||
|
while (true) {
|
||||||
|
if (m_it == m_vec->end()) {
|
||||||
|
delete this; // IEEE 37.2.2 vpi_scan at end does a vpi_release_handle
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
const VerilatedScope* const modp = *m_it++;
|
||||||
|
const VerilatedScope::Type itype = modp->type();
|
||||||
|
if (itype == VerilatedScope::SCOPE_OTHER) {
|
||||||
|
return (new VerilatedVpioScope{modp})->castVpiHandle();
|
||||||
|
} else if (itype == VerilatedScope::SCOPE_MODULE) {
|
||||||
|
return (new VerilatedVpioModule{modp})->castVpiHandle();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
static const char* d_unit = "$unit";
|
||||||
class VerilatedVpioPackage final : public VerilatedVpioScope {
|
class VerilatedVpioPackage final : public VerilatedVpioScope {
|
||||||
std::string m_name;
|
std::string m_fullname_string;
|
||||||
std::string m_fullname;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit VerilatedVpioPackage(const VerilatedScope* modulep)
|
explicit VerilatedVpioPackage(const VerilatedScope* modulep)
|
||||||
: VerilatedVpioScope{modulep} {
|
: VerilatedVpioScope{modulep} {
|
||||||
const char* sfullname = m_scopep->name();
|
m_fullname_string = std::string{m_fullname} + "::";
|
||||||
if (std::strncmp(sfullname, "TOP.", 4) == 0) sfullname += 4;
|
if (m_fullname_string == "\\$unit ::") m_fullname_string = "$unit::";
|
||||||
m_fullname = std::string{sfullname} + "::";
|
|
||||||
if (m_fullname == "\\$unit ::") m_fullname = "$unit::";
|
if (strcmp(m_name, "\\$unit ") == 0) { m_name = d_unit; }
|
||||||
m_name = std::string(m_scopep->identifier());
|
|
||||||
if (m_name == "\\$unit ") m_name = "$unit";
|
|
||||||
}
|
}
|
||||||
static VerilatedVpioPackage* castp(vpiHandle h) {
|
static VerilatedVpioPackage* castp(vpiHandle h) {
|
||||||
return dynamic_cast<VerilatedVpioPackage*>(reinterpret_cast<VerilatedVpio*>(h));
|
return dynamic_cast<VerilatedVpioPackage*>(reinterpret_cast<VerilatedVpio*>(h));
|
||||||
}
|
}
|
||||||
|
const char* fullname() const override { return m_fullname_string.c_str(); }
|
||||||
uint32_t type() const override { return vpiPackage; }
|
uint32_t type() const override { return vpiPackage; }
|
||||||
const char* name() const override { return m_name.c_str(); }
|
|
||||||
const char* fullname() const override { return m_fullname.c_str(); }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class VerilatedVpioInstanceIter final : public VerilatedVpio {
|
class VerilatedVpioInstanceIter final : public VerilatedVpio {
|
||||||
|
|
@ -1978,13 +2004,21 @@ vpiHandle vpi_iterate(PLI_INT32 type, vpiHandle object) {
|
||||||
return ((new VerilatedVpioVarIter{vop, true})->castVpiHandle());
|
return ((new VerilatedVpioVarIter{vop, true})->castVpiHandle());
|
||||||
}
|
}
|
||||||
case vpiModule: {
|
case vpiModule: {
|
||||||
const VerilatedVpioModule* const vop = VerilatedVpioModule::castp(object);
|
const VerilatedVpioScope* const vop = VerilatedVpioScope::castp(object);
|
||||||
const VerilatedHierarchyMap* const map = VerilatedImp::hierarchyMap();
|
const VerilatedHierarchyMap* const map = VerilatedImp::hierarchyMap();
|
||||||
const VerilatedScope* const modp = vop ? vop->scopep() : nullptr;
|
const VerilatedScope* const modp = vop ? vop->scopep() : nullptr;
|
||||||
const auto it = vlstd::as_const(map)->find(const_cast<VerilatedScope*>(modp));
|
const auto it = vlstd::as_const(map)->find(const_cast<VerilatedScope*>(modp));
|
||||||
if (it == map->end()) return nullptr;
|
if (it == map->end()) return nullptr;
|
||||||
return ((new VerilatedVpioModuleIter{it->second})->castVpiHandle());
|
return ((new VerilatedVpioModuleIter{it->second})->castVpiHandle());
|
||||||
}
|
}
|
||||||
|
case vpiInternalScope: {
|
||||||
|
const VerilatedVpioScope* const vop = VerilatedVpioScope::castp(object);
|
||||||
|
const VerilatedHierarchyMap* const map = VerilatedImp::hierarchyMap();
|
||||||
|
const VerilatedScope* const modp = vop ? vop->scopep() : nullptr;
|
||||||
|
const auto it = vlstd::as_const(map)->find(const_cast<VerilatedScope*>(modp));
|
||||||
|
if (it == map->end()) return nullptr;
|
||||||
|
return ((new VerilatedVpioScopeIter{it->second})->castVpiHandle());
|
||||||
|
}
|
||||||
case vpiInstance: {
|
case vpiInstance: {
|
||||||
if (object) return nullptr;
|
if (object) return nullptr;
|
||||||
const VerilatedHierarchyMap* const map = VerilatedImp::hierarchyMap();
|
const VerilatedHierarchyMap* const map = VerilatedImp::hierarchyMap();
|
||||||
|
|
|
||||||
|
|
@ -253,7 +253,6 @@ class EmitCSyms final : EmitCBaseVisitorConst {
|
||||||
void buildVpiHierarchy() {
|
void buildVpiHierarchy() {
|
||||||
for (ScopeNames::const_iterator it = m_scopeNames.begin(); it != m_scopeNames.end();
|
for (ScopeNames::const_iterator it = m_scopeNames.begin(); it != m_scopeNames.end();
|
||||||
++it) {
|
++it) {
|
||||||
if (it->second.m_type != "SCOPE_MODULE") continue;
|
|
||||||
|
|
||||||
const string symName = it->second.m_symName;
|
const string symName = it->second.m_symName;
|
||||||
string above = symName;
|
string above = symName;
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,7 @@ void dpi_show(svScope obj) {
|
||||||
void vpi_show(vpiHandle obj) {
|
void vpi_show(vpiHandle obj) {
|
||||||
const char* namep;
|
const char* namep;
|
||||||
if (obj) {
|
if (obj) {
|
||||||
namep = vpi_get_str(vpiName, obj);
|
namep = vpi_get_str(vpiFullName, obj);
|
||||||
} else {
|
} else {
|
||||||
namep = "global";
|
namep = "global";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ std::map<int32_t, std::vector<int32_t>> iterate_over = [] {
|
||||||
};
|
};
|
||||||
|
|
||||||
std::vector<int32_t> module_options = {
|
std::vector<int32_t> module_options = {
|
||||||
vpiModule, // Aldec SEGV on mixed language
|
// vpiModule, // Aldec SEGV on mixed language
|
||||||
// vpiModuleArray, // Aldec SEGV on mixed language
|
// vpiModuleArray, // Aldec SEGV on mixed language
|
||||||
// vpiIODecl, // Don't care about these
|
// vpiIODecl, // Don't care about these
|
||||||
vpiMemory, vpiIntegerVar, vpiRealVar,
|
vpiMemory, vpiIntegerVar, vpiRealVar,
|
||||||
|
|
|
||||||
|
|
@ -4,13 +4,6 @@ t (vpiModule) t
|
||||||
t.clk (vpiNet) t.clk
|
t.clk (vpiNet) t.clk
|
||||||
vpiReg:
|
vpiReg:
|
||||||
t.x (vpiReg) t.x
|
t.x (vpiReg) t.x
|
||||||
vpiModule:
|
|
||||||
t.sub (vpiModule) t.sub
|
|
||||||
vpiNet:
|
|
||||||
t.sub.redundant (vpiNet) t.sub.redundant
|
|
||||||
vpiReg:
|
|
||||||
t.sub.subsig1 (vpiReg) t.sub.subsig1
|
|
||||||
t.sub.subsig2 (vpiReg) t.sub.subsig2
|
|
||||||
vpiParameter:
|
vpiParameter:
|
||||||
t.do_generate (vpiParameter) t.do_generate
|
t.do_generate (vpiParameter) t.do_generate
|
||||||
vpiConstType=vpiBinaryConst
|
vpiConstType=vpiBinaryConst
|
||||||
|
|
@ -22,16 +15,6 @@ t (vpiModule) t
|
||||||
a (vpiPort) (null)
|
a (vpiPort) (null)
|
||||||
vpiInternalScope:
|
vpiInternalScope:
|
||||||
t.arr[1] (vpiGenScope) t.arr[1]
|
t.arr[1] (vpiGenScope) t.arr[1]
|
||||||
vpiModule:
|
|
||||||
t.arr[1].arr (vpiModule) t.arr[1].arr
|
|
||||||
vpiReg:
|
|
||||||
t.arr[1].arr.check (vpiReg) t.arr[1].arr.check
|
|
||||||
t.arr[1].arr.rfr (vpiReg) t.arr[1].arr.rfr
|
|
||||||
t.arr[1].arr.sig (vpiReg) t.arr[1].arr.sig
|
|
||||||
t.arr[1].arr.verbose (vpiReg) t.arr[1].arr.verbose
|
|
||||||
vpiParameter:
|
|
||||||
t.arr[1].arr.LENGTH (vpiParameter) t.arr[1].arr.LENGTH
|
|
||||||
vpiConstType=vpiBinaryConst
|
|
||||||
vpiParameter:
|
vpiParameter:
|
||||||
t.arr[1].i (vpiParameter) t.arr[1].i
|
t.arr[1].i (vpiParameter) t.arr[1].i
|
||||||
vpiConstType=vpiBinaryConst
|
vpiConstType=vpiBinaryConst
|
||||||
|
|
@ -46,16 +29,6 @@ t (vpiModule) t
|
||||||
t.arr[1].arr.LENGTH (vpiParameter) t.arr[1].arr.LENGTH
|
t.arr[1].arr.LENGTH (vpiParameter) t.arr[1].arr.LENGTH
|
||||||
vpiConstType=vpiBinaryConst
|
vpiConstType=vpiBinaryConst
|
||||||
t.arr[2] (vpiGenScope) t.arr[2]
|
t.arr[2] (vpiGenScope) t.arr[2]
|
||||||
vpiModule:
|
|
||||||
t.arr[2].arr (vpiModule) t.arr[2].arr
|
|
||||||
vpiReg:
|
|
||||||
t.arr[2].arr.check (vpiReg) t.arr[2].arr.check
|
|
||||||
t.arr[2].arr.rfr (vpiReg) t.arr[2].arr.rfr
|
|
||||||
t.arr[2].arr.sig (vpiReg) t.arr[2].arr.sig
|
|
||||||
t.arr[2].arr.verbose (vpiReg) t.arr[2].arr.verbose
|
|
||||||
vpiParameter:
|
|
||||||
t.arr[2].arr.LENGTH (vpiParameter) t.arr[2].arr.LENGTH
|
|
||||||
vpiConstType=vpiBinaryConst
|
|
||||||
vpiParameter:
|
vpiParameter:
|
||||||
t.arr[2].i (vpiParameter) t.arr[2].i
|
t.arr[2].i (vpiParameter) t.arr[2].i
|
||||||
vpiConstType=vpiBinaryConst
|
vpiConstType=vpiBinaryConst
|
||||||
|
|
@ -70,13 +43,6 @@ t (vpiModule) t
|
||||||
t.arr[2].arr.LENGTH (vpiParameter) t.arr[2].arr.LENGTH
|
t.arr[2].arr.LENGTH (vpiParameter) t.arr[2].arr.LENGTH
|
||||||
vpiConstType=vpiBinaryConst
|
vpiConstType=vpiBinaryConst
|
||||||
t.cond_scope (vpiGenScope) t.cond_scope
|
t.cond_scope (vpiGenScope) t.cond_scope
|
||||||
vpiModule:
|
|
||||||
t.cond_scope.scoped_sub (vpiModule) t.cond_scope.scoped_sub
|
|
||||||
vpiNet:
|
|
||||||
t.cond_scope.scoped_sub.redundant (vpiNet) t.cond_scope.scoped_sub.redundant
|
|
||||||
vpiReg:
|
|
||||||
t.cond_scope.scoped_sub.subsig1 (vpiReg) t.cond_scope.scoped_sub.subsig1
|
|
||||||
t.cond_scope.scoped_sub.subsig2 (vpiReg) t.cond_scope.scoped_sub.subsig2
|
|
||||||
vpiParameter:
|
vpiParameter:
|
||||||
t.cond_scope.scoped_wire (vpiParameter) t.cond_scope.scoped_wire
|
t.cond_scope.scoped_wire (vpiParameter) t.cond_scope.scoped_wire
|
||||||
vpiConstType=vpiBinaryConst
|
vpiConstType=vpiBinaryConst
|
||||||
|
|
@ -87,6 +53,8 @@ t (vpiModule) t
|
||||||
vpiReg:
|
vpiReg:
|
||||||
t.cond_scope.scoped_sub.subsig1 (vpiReg) t.cond_scope.scoped_sub.subsig1
|
t.cond_scope.scoped_sub.subsig1 (vpiReg) t.cond_scope.scoped_sub.subsig1
|
||||||
t.cond_scope.scoped_sub.subsig2 (vpiReg) t.cond_scope.scoped_sub.subsig2
|
t.cond_scope.scoped_sub.subsig2 (vpiReg) t.cond_scope.scoped_sub.subsig2
|
||||||
|
t.intf_arr[0] (vpiModule) t.intf_arr[0]
|
||||||
|
t.intf_arr[1] (vpiModule) t.intf_arr[1]
|
||||||
t.outer_scope[1] (vpiGenScope) t.outer_scope[1]
|
t.outer_scope[1] (vpiGenScope) t.outer_scope[1]
|
||||||
vpiParameter:
|
vpiParameter:
|
||||||
t.outer_scope[1].i (vpiParameter) t.outer_scope[1].i
|
t.outer_scope[1].i (vpiParameter) t.outer_scope[1].i
|
||||||
|
|
@ -95,16 +63,6 @@ t (vpiModule) t
|
||||||
vpiConstType=vpiBinaryConst
|
vpiConstType=vpiBinaryConst
|
||||||
vpiInternalScope:
|
vpiInternalScope:
|
||||||
t.outer_scope[1].inner_scope[1] (vpiGenScope) t.outer_scope[1].inner_scope[1]
|
t.outer_scope[1].inner_scope[1] (vpiGenScope) t.outer_scope[1].inner_scope[1]
|
||||||
vpiModule:
|
|
||||||
t.outer_scope[1].inner_scope[1].arr (vpiModule) t.outer_scope[1].inner_scope[1].arr
|
|
||||||
vpiReg:
|
|
||||||
t.outer_scope[1].inner_scope[1].arr.check (vpiReg) t.outer_scope[1].inner_scope[1].arr.check
|
|
||||||
t.outer_scope[1].inner_scope[1].arr.rfr (vpiReg) t.outer_scope[1].inner_scope[1].arr.rfr
|
|
||||||
t.outer_scope[1].inner_scope[1].arr.sig (vpiReg) t.outer_scope[1].inner_scope[1].arr.sig
|
|
||||||
t.outer_scope[1].inner_scope[1].arr.verbose (vpiReg) t.outer_scope[1].inner_scope[1].arr.verbose
|
|
||||||
vpiParameter:
|
|
||||||
t.outer_scope[1].inner_scope[1].arr.LENGTH (vpiParameter) t.outer_scope[1].inner_scope[1].arr.LENGTH
|
|
||||||
vpiConstType=vpiBinaryConst
|
|
||||||
vpiParameter:
|
vpiParameter:
|
||||||
t.outer_scope[1].inner_scope[1].j (vpiParameter) t.outer_scope[1].inner_scope[1].j
|
t.outer_scope[1].inner_scope[1].j (vpiParameter) t.outer_scope[1].inner_scope[1].j
|
||||||
vpiConstType=vpiBinaryConst
|
vpiConstType=vpiBinaryConst
|
||||||
|
|
@ -121,16 +79,6 @@ t (vpiModule) t
|
||||||
t.outer_scope[1].inner_scope[1].arr.LENGTH (vpiParameter) t.outer_scope[1].inner_scope[1].arr.LENGTH
|
t.outer_scope[1].inner_scope[1].arr.LENGTH (vpiParameter) t.outer_scope[1].inner_scope[1].arr.LENGTH
|
||||||
vpiConstType=vpiBinaryConst
|
vpiConstType=vpiBinaryConst
|
||||||
t.outer_scope[1].inner_scope[2] (vpiGenScope) t.outer_scope[1].inner_scope[2]
|
t.outer_scope[1].inner_scope[2] (vpiGenScope) t.outer_scope[1].inner_scope[2]
|
||||||
vpiModule:
|
|
||||||
t.outer_scope[1].inner_scope[2].arr (vpiModule) t.outer_scope[1].inner_scope[2].arr
|
|
||||||
vpiReg:
|
|
||||||
t.outer_scope[1].inner_scope[2].arr.check (vpiReg) t.outer_scope[1].inner_scope[2].arr.check
|
|
||||||
t.outer_scope[1].inner_scope[2].arr.rfr (vpiReg) t.outer_scope[1].inner_scope[2].arr.rfr
|
|
||||||
t.outer_scope[1].inner_scope[2].arr.sig (vpiReg) t.outer_scope[1].inner_scope[2].arr.sig
|
|
||||||
t.outer_scope[1].inner_scope[2].arr.verbose (vpiReg) t.outer_scope[1].inner_scope[2].arr.verbose
|
|
||||||
vpiParameter:
|
|
||||||
t.outer_scope[1].inner_scope[2].arr.LENGTH (vpiParameter) t.outer_scope[1].inner_scope[2].arr.LENGTH
|
|
||||||
vpiConstType=vpiBinaryConst
|
|
||||||
vpiParameter:
|
vpiParameter:
|
||||||
t.outer_scope[1].inner_scope[2].j (vpiParameter) t.outer_scope[1].inner_scope[2].j
|
t.outer_scope[1].inner_scope[2].j (vpiParameter) t.outer_scope[1].inner_scope[2].j
|
||||||
vpiConstType=vpiBinaryConst
|
vpiConstType=vpiBinaryConst
|
||||||
|
|
@ -147,16 +95,6 @@ t (vpiModule) t
|
||||||
t.outer_scope[1].inner_scope[2].arr.LENGTH (vpiParameter) t.outer_scope[1].inner_scope[2].arr.LENGTH
|
t.outer_scope[1].inner_scope[2].arr.LENGTH (vpiParameter) t.outer_scope[1].inner_scope[2].arr.LENGTH
|
||||||
vpiConstType=vpiBinaryConst
|
vpiConstType=vpiBinaryConst
|
||||||
t.outer_scope[1].inner_scope[3] (vpiGenScope) t.outer_scope[1].inner_scope[3]
|
t.outer_scope[1].inner_scope[3] (vpiGenScope) t.outer_scope[1].inner_scope[3]
|
||||||
vpiModule:
|
|
||||||
t.outer_scope[1].inner_scope[3].arr (vpiModule) t.outer_scope[1].inner_scope[3].arr
|
|
||||||
vpiReg:
|
|
||||||
t.outer_scope[1].inner_scope[3].arr.check (vpiReg) t.outer_scope[1].inner_scope[3].arr.check
|
|
||||||
t.outer_scope[1].inner_scope[3].arr.rfr (vpiReg) t.outer_scope[1].inner_scope[3].arr.rfr
|
|
||||||
t.outer_scope[1].inner_scope[3].arr.sig (vpiReg) t.outer_scope[1].inner_scope[3].arr.sig
|
|
||||||
t.outer_scope[1].inner_scope[3].arr.verbose (vpiReg) t.outer_scope[1].inner_scope[3].arr.verbose
|
|
||||||
vpiParameter:
|
|
||||||
t.outer_scope[1].inner_scope[3].arr.LENGTH (vpiParameter) t.outer_scope[1].inner_scope[3].arr.LENGTH
|
|
||||||
vpiConstType=vpiBinaryConst
|
|
||||||
vpiParameter:
|
vpiParameter:
|
||||||
t.outer_scope[1].inner_scope[3].j (vpiParameter) t.outer_scope[1].inner_scope[3].j
|
t.outer_scope[1].inner_scope[3].j (vpiParameter) t.outer_scope[1].inner_scope[3].j
|
||||||
vpiConstType=vpiBinaryConst
|
vpiConstType=vpiBinaryConst
|
||||||
|
|
@ -180,16 +118,6 @@ t (vpiModule) t
|
||||||
vpiConstType=vpiBinaryConst
|
vpiConstType=vpiBinaryConst
|
||||||
vpiInternalScope:
|
vpiInternalScope:
|
||||||
t.outer_scope[2].inner_scope[1] (vpiGenScope) t.outer_scope[2].inner_scope[1]
|
t.outer_scope[2].inner_scope[1] (vpiGenScope) t.outer_scope[2].inner_scope[1]
|
||||||
vpiModule:
|
|
||||||
t.outer_scope[2].inner_scope[1].arr (vpiModule) t.outer_scope[2].inner_scope[1].arr
|
|
||||||
vpiReg:
|
|
||||||
t.outer_scope[2].inner_scope[1].arr.check (vpiReg) t.outer_scope[2].inner_scope[1].arr.check
|
|
||||||
t.outer_scope[2].inner_scope[1].arr.rfr (vpiReg) t.outer_scope[2].inner_scope[1].arr.rfr
|
|
||||||
t.outer_scope[2].inner_scope[1].arr.sig (vpiReg) t.outer_scope[2].inner_scope[1].arr.sig
|
|
||||||
t.outer_scope[2].inner_scope[1].arr.verbose (vpiReg) t.outer_scope[2].inner_scope[1].arr.verbose
|
|
||||||
vpiParameter:
|
|
||||||
t.outer_scope[2].inner_scope[1].arr.LENGTH (vpiParameter) t.outer_scope[2].inner_scope[1].arr.LENGTH
|
|
||||||
vpiConstType=vpiBinaryConst
|
|
||||||
vpiParameter:
|
vpiParameter:
|
||||||
t.outer_scope[2].inner_scope[1].j (vpiParameter) t.outer_scope[2].inner_scope[1].j
|
t.outer_scope[2].inner_scope[1].j (vpiParameter) t.outer_scope[2].inner_scope[1].j
|
||||||
vpiConstType=vpiBinaryConst
|
vpiConstType=vpiBinaryConst
|
||||||
|
|
@ -206,16 +134,6 @@ t (vpiModule) t
|
||||||
t.outer_scope[2].inner_scope[1].arr.LENGTH (vpiParameter) t.outer_scope[2].inner_scope[1].arr.LENGTH
|
t.outer_scope[2].inner_scope[1].arr.LENGTH (vpiParameter) t.outer_scope[2].inner_scope[1].arr.LENGTH
|
||||||
vpiConstType=vpiBinaryConst
|
vpiConstType=vpiBinaryConst
|
||||||
t.outer_scope[2].inner_scope[2] (vpiGenScope) t.outer_scope[2].inner_scope[2]
|
t.outer_scope[2].inner_scope[2] (vpiGenScope) t.outer_scope[2].inner_scope[2]
|
||||||
vpiModule:
|
|
||||||
t.outer_scope[2].inner_scope[2].arr (vpiModule) t.outer_scope[2].inner_scope[2].arr
|
|
||||||
vpiReg:
|
|
||||||
t.outer_scope[2].inner_scope[2].arr.check (vpiReg) t.outer_scope[2].inner_scope[2].arr.check
|
|
||||||
t.outer_scope[2].inner_scope[2].arr.rfr (vpiReg) t.outer_scope[2].inner_scope[2].arr.rfr
|
|
||||||
t.outer_scope[2].inner_scope[2].arr.sig (vpiReg) t.outer_scope[2].inner_scope[2].arr.sig
|
|
||||||
t.outer_scope[2].inner_scope[2].arr.verbose (vpiReg) t.outer_scope[2].inner_scope[2].arr.verbose
|
|
||||||
vpiParameter:
|
|
||||||
t.outer_scope[2].inner_scope[2].arr.LENGTH (vpiParameter) t.outer_scope[2].inner_scope[2].arr.LENGTH
|
|
||||||
vpiConstType=vpiBinaryConst
|
|
||||||
vpiParameter:
|
vpiParameter:
|
||||||
t.outer_scope[2].inner_scope[2].j (vpiParameter) t.outer_scope[2].inner_scope[2].j
|
t.outer_scope[2].inner_scope[2].j (vpiParameter) t.outer_scope[2].inner_scope[2].j
|
||||||
vpiConstType=vpiBinaryConst
|
vpiConstType=vpiBinaryConst
|
||||||
|
|
@ -232,16 +150,6 @@ t (vpiModule) t
|
||||||
t.outer_scope[2].inner_scope[2].arr.LENGTH (vpiParameter) t.outer_scope[2].inner_scope[2].arr.LENGTH
|
t.outer_scope[2].inner_scope[2].arr.LENGTH (vpiParameter) t.outer_scope[2].inner_scope[2].arr.LENGTH
|
||||||
vpiConstType=vpiBinaryConst
|
vpiConstType=vpiBinaryConst
|
||||||
t.outer_scope[2].inner_scope[3] (vpiGenScope) t.outer_scope[2].inner_scope[3]
|
t.outer_scope[2].inner_scope[3] (vpiGenScope) t.outer_scope[2].inner_scope[3]
|
||||||
vpiModule:
|
|
||||||
t.outer_scope[2].inner_scope[3].arr (vpiModule) t.outer_scope[2].inner_scope[3].arr
|
|
||||||
vpiReg:
|
|
||||||
t.outer_scope[2].inner_scope[3].arr.check (vpiReg) t.outer_scope[2].inner_scope[3].arr.check
|
|
||||||
t.outer_scope[2].inner_scope[3].arr.rfr (vpiReg) t.outer_scope[2].inner_scope[3].arr.rfr
|
|
||||||
t.outer_scope[2].inner_scope[3].arr.sig (vpiReg) t.outer_scope[2].inner_scope[3].arr.sig
|
|
||||||
t.outer_scope[2].inner_scope[3].arr.verbose (vpiReg) t.outer_scope[2].inner_scope[3].arr.verbose
|
|
||||||
vpiParameter:
|
|
||||||
t.outer_scope[2].inner_scope[3].arr.LENGTH (vpiParameter) t.outer_scope[2].inner_scope[3].arr.LENGTH
|
|
||||||
vpiConstType=vpiBinaryConst
|
|
||||||
vpiParameter:
|
vpiParameter:
|
||||||
t.outer_scope[2].inner_scope[3].j (vpiParameter) t.outer_scope[2].inner_scope[3].j
|
t.outer_scope[2].inner_scope[3].j (vpiParameter) t.outer_scope[2].inner_scope[3].j
|
||||||
vpiConstType=vpiBinaryConst
|
vpiConstType=vpiBinaryConst
|
||||||
|
|
@ -265,16 +173,6 @@ t (vpiModule) t
|
||||||
vpiConstType=vpiBinaryConst
|
vpiConstType=vpiBinaryConst
|
||||||
vpiInternalScope:
|
vpiInternalScope:
|
||||||
t.outer_scope[3].inner_scope[1] (vpiGenScope) t.outer_scope[3].inner_scope[1]
|
t.outer_scope[3].inner_scope[1] (vpiGenScope) t.outer_scope[3].inner_scope[1]
|
||||||
vpiModule:
|
|
||||||
t.outer_scope[3].inner_scope[1].arr (vpiModule) t.outer_scope[3].inner_scope[1].arr
|
|
||||||
vpiReg:
|
|
||||||
t.outer_scope[3].inner_scope[1].arr.check (vpiReg) t.outer_scope[3].inner_scope[1].arr.check
|
|
||||||
t.outer_scope[3].inner_scope[1].arr.rfr (vpiReg) t.outer_scope[3].inner_scope[1].arr.rfr
|
|
||||||
t.outer_scope[3].inner_scope[1].arr.sig (vpiReg) t.outer_scope[3].inner_scope[1].arr.sig
|
|
||||||
t.outer_scope[3].inner_scope[1].arr.verbose (vpiReg) t.outer_scope[3].inner_scope[1].arr.verbose
|
|
||||||
vpiParameter:
|
|
||||||
t.outer_scope[3].inner_scope[1].arr.LENGTH (vpiParameter) t.outer_scope[3].inner_scope[1].arr.LENGTH
|
|
||||||
vpiConstType=vpiBinaryConst
|
|
||||||
vpiParameter:
|
vpiParameter:
|
||||||
t.outer_scope[3].inner_scope[1].j (vpiParameter) t.outer_scope[3].inner_scope[1].j
|
t.outer_scope[3].inner_scope[1].j (vpiParameter) t.outer_scope[3].inner_scope[1].j
|
||||||
vpiConstType=vpiBinaryConst
|
vpiConstType=vpiBinaryConst
|
||||||
|
|
@ -291,16 +189,6 @@ t (vpiModule) t
|
||||||
t.outer_scope[3].inner_scope[1].arr.LENGTH (vpiParameter) t.outer_scope[3].inner_scope[1].arr.LENGTH
|
t.outer_scope[3].inner_scope[1].arr.LENGTH (vpiParameter) t.outer_scope[3].inner_scope[1].arr.LENGTH
|
||||||
vpiConstType=vpiBinaryConst
|
vpiConstType=vpiBinaryConst
|
||||||
t.outer_scope[3].inner_scope[2] (vpiGenScope) t.outer_scope[3].inner_scope[2]
|
t.outer_scope[3].inner_scope[2] (vpiGenScope) t.outer_scope[3].inner_scope[2]
|
||||||
vpiModule:
|
|
||||||
t.outer_scope[3].inner_scope[2].arr (vpiModule) t.outer_scope[3].inner_scope[2].arr
|
|
||||||
vpiReg:
|
|
||||||
t.outer_scope[3].inner_scope[2].arr.check (vpiReg) t.outer_scope[3].inner_scope[2].arr.check
|
|
||||||
t.outer_scope[3].inner_scope[2].arr.rfr (vpiReg) t.outer_scope[3].inner_scope[2].arr.rfr
|
|
||||||
t.outer_scope[3].inner_scope[2].arr.sig (vpiReg) t.outer_scope[3].inner_scope[2].arr.sig
|
|
||||||
t.outer_scope[3].inner_scope[2].arr.verbose (vpiReg) t.outer_scope[3].inner_scope[2].arr.verbose
|
|
||||||
vpiParameter:
|
|
||||||
t.outer_scope[3].inner_scope[2].arr.LENGTH (vpiParameter) t.outer_scope[3].inner_scope[2].arr.LENGTH
|
|
||||||
vpiConstType=vpiBinaryConst
|
|
||||||
vpiParameter:
|
vpiParameter:
|
||||||
t.outer_scope[3].inner_scope[2].j (vpiParameter) t.outer_scope[3].inner_scope[2].j
|
t.outer_scope[3].inner_scope[2].j (vpiParameter) t.outer_scope[3].inner_scope[2].j
|
||||||
vpiConstType=vpiBinaryConst
|
vpiConstType=vpiBinaryConst
|
||||||
|
|
@ -317,16 +205,6 @@ t (vpiModule) t
|
||||||
t.outer_scope[3].inner_scope[2].arr.LENGTH (vpiParameter) t.outer_scope[3].inner_scope[2].arr.LENGTH
|
t.outer_scope[3].inner_scope[2].arr.LENGTH (vpiParameter) t.outer_scope[3].inner_scope[2].arr.LENGTH
|
||||||
vpiConstType=vpiBinaryConst
|
vpiConstType=vpiBinaryConst
|
||||||
t.outer_scope[3].inner_scope[3] (vpiGenScope) t.outer_scope[3].inner_scope[3]
|
t.outer_scope[3].inner_scope[3] (vpiGenScope) t.outer_scope[3].inner_scope[3]
|
||||||
vpiModule:
|
|
||||||
t.outer_scope[3].inner_scope[3].arr (vpiModule) t.outer_scope[3].inner_scope[3].arr
|
|
||||||
vpiReg:
|
|
||||||
t.outer_scope[3].inner_scope[3].arr.check (vpiReg) t.outer_scope[3].inner_scope[3].arr.check
|
|
||||||
t.outer_scope[3].inner_scope[3].arr.rfr (vpiReg) t.outer_scope[3].inner_scope[3].arr.rfr
|
|
||||||
t.outer_scope[3].inner_scope[3].arr.sig (vpiReg) t.outer_scope[3].inner_scope[3].arr.sig
|
|
||||||
t.outer_scope[3].inner_scope[3].arr.verbose (vpiReg) t.outer_scope[3].inner_scope[3].arr.verbose
|
|
||||||
vpiParameter:
|
|
||||||
t.outer_scope[3].inner_scope[3].arr.LENGTH (vpiParameter) t.outer_scope[3].inner_scope[3].arr.LENGTH
|
|
||||||
vpiConstType=vpiBinaryConst
|
|
||||||
vpiParameter:
|
vpiParameter:
|
||||||
t.outer_scope[3].inner_scope[3].j (vpiParameter) t.outer_scope[3].inner_scope[3].j
|
t.outer_scope[3].inner_scope[3].j (vpiParameter) t.outer_scope[3].inner_scope[3].j
|
||||||
vpiConstType=vpiBinaryConst
|
vpiConstType=vpiBinaryConst
|
||||||
|
|
@ -349,4 +227,4 @@ t (vpiModule) t
|
||||||
t.sub.subsig1 (vpiReg) t.sub.subsig1
|
t.sub.subsig1 (vpiReg) t.sub.subsig1
|
||||||
t.sub.subsig2 (vpiReg) t.sub.subsig2
|
t.sub.subsig2 (vpiReg) t.sub.subsig2
|
||||||
*-* All Finished *-*
|
*-* All Finished *-*
|
||||||
t/t_vpi_dump.v:65: $finish called at 0 (1s)
|
t/t_vpi_dump.v:75: $finish called at 0 (1s)
|
||||||
|
|
|
||||||
|
|
@ -29,141 +29,261 @@ t (vpiModule) t
|
||||||
text_word (vpiReg) t.text_word
|
text_word (vpiReg) t.text_word
|
||||||
twoone (vpiReg) t.twoone
|
twoone (vpiReg) t.twoone
|
||||||
x (vpiReg) TOP.x
|
x (vpiReg) TOP.x
|
||||||
vpiModule:
|
|
||||||
arr (vpiModule) t.arr[1].arr
|
|
||||||
vpiReg:
|
|
||||||
LENGTH (vpiParameter) t.arr[1].arr.LENGTH
|
|
||||||
vpiConstType=vpiDecConst
|
|
||||||
check (vpiReg) t.arr[1].arr.check
|
|
||||||
rfr (vpiReg) t.arr[1].arr.rfr
|
|
||||||
sig (vpiReg) t.arr[1].arr.sig
|
|
||||||
verbose (vpiReg) t.arr[1].arr.verbose
|
|
||||||
vpiParameter:
|
|
||||||
LENGTH (vpiParameter) t.arr[1].arr.LENGTH
|
|
||||||
vpiConstType=vpiDecConst
|
|
||||||
arr (vpiModule) t.arr[2].arr
|
|
||||||
vpiReg:
|
|
||||||
LENGTH (vpiParameter) t.arr[2].arr.LENGTH
|
|
||||||
vpiConstType=vpiDecConst
|
|
||||||
check (vpiReg) t.arr[2].arr.check
|
|
||||||
rfr (vpiReg) t.arr[2].arr.rfr
|
|
||||||
sig (vpiReg) t.arr[2].arr.sig
|
|
||||||
verbose (vpiReg) t.arr[2].arr.verbose
|
|
||||||
vpiParameter:
|
|
||||||
LENGTH (vpiParameter) t.arr[2].arr.LENGTH
|
|
||||||
vpiConstType=vpiDecConst
|
|
||||||
scoped_sub (vpiModule) t.cond_scope.scoped_sub
|
|
||||||
vpiReg:
|
|
||||||
subsig1 (vpiReg) t.cond_scope.scoped_sub.subsig1
|
|
||||||
subsig2 (vpiReg) t.cond_scope.scoped_sub.subsig2
|
|
||||||
vpiParameter:
|
|
||||||
arr (vpiModule) t.outer_scope[1].inner_scope[1].arr
|
|
||||||
vpiReg:
|
|
||||||
LENGTH (vpiParameter) t.outer_scope[1].inner_scope[1].arr.LENGTH
|
|
||||||
vpiConstType=vpiDecConst
|
|
||||||
check (vpiReg) t.outer_scope[1].inner_scope[1].arr.check
|
|
||||||
rfr (vpiReg) t.outer_scope[1].inner_scope[1].arr.rfr
|
|
||||||
sig (vpiReg) t.outer_scope[1].inner_scope[1].arr.sig
|
|
||||||
verbose (vpiReg) t.outer_scope[1].inner_scope[1].arr.verbose
|
|
||||||
vpiParameter:
|
|
||||||
LENGTH (vpiParameter) t.outer_scope[1].inner_scope[1].arr.LENGTH
|
|
||||||
vpiConstType=vpiDecConst
|
|
||||||
arr (vpiModule) t.outer_scope[1].inner_scope[2].arr
|
|
||||||
vpiReg:
|
|
||||||
LENGTH (vpiParameter) t.outer_scope[1].inner_scope[2].arr.LENGTH
|
|
||||||
vpiConstType=vpiDecConst
|
|
||||||
check (vpiReg) t.outer_scope[1].inner_scope[2].arr.check
|
|
||||||
rfr (vpiReg) t.outer_scope[1].inner_scope[2].arr.rfr
|
|
||||||
sig (vpiReg) t.outer_scope[1].inner_scope[2].arr.sig
|
|
||||||
verbose (vpiReg) t.outer_scope[1].inner_scope[2].arr.verbose
|
|
||||||
vpiParameter:
|
|
||||||
LENGTH (vpiParameter) t.outer_scope[1].inner_scope[2].arr.LENGTH
|
|
||||||
vpiConstType=vpiDecConst
|
|
||||||
arr (vpiModule) t.outer_scope[1].inner_scope[3].arr
|
|
||||||
vpiReg:
|
|
||||||
LENGTH (vpiParameter) t.outer_scope[1].inner_scope[3].arr.LENGTH
|
|
||||||
vpiConstType=vpiDecConst
|
|
||||||
check (vpiReg) t.outer_scope[1].inner_scope[3].arr.check
|
|
||||||
rfr (vpiReg) t.outer_scope[1].inner_scope[3].arr.rfr
|
|
||||||
sig (vpiReg) t.outer_scope[1].inner_scope[3].arr.sig
|
|
||||||
verbose (vpiReg) t.outer_scope[1].inner_scope[3].arr.verbose
|
|
||||||
vpiParameter:
|
|
||||||
LENGTH (vpiParameter) t.outer_scope[1].inner_scope[3].arr.LENGTH
|
|
||||||
vpiConstType=vpiDecConst
|
|
||||||
arr (vpiModule) t.outer_scope[2].inner_scope[1].arr
|
|
||||||
vpiReg:
|
|
||||||
LENGTH (vpiParameter) t.outer_scope[2].inner_scope[1].arr.LENGTH
|
|
||||||
vpiConstType=vpiDecConst
|
|
||||||
check (vpiReg) t.outer_scope[2].inner_scope[1].arr.check
|
|
||||||
rfr (vpiReg) t.outer_scope[2].inner_scope[1].arr.rfr
|
|
||||||
sig (vpiReg) t.outer_scope[2].inner_scope[1].arr.sig
|
|
||||||
verbose (vpiReg) t.outer_scope[2].inner_scope[1].arr.verbose
|
|
||||||
vpiParameter:
|
|
||||||
LENGTH (vpiParameter) t.outer_scope[2].inner_scope[1].arr.LENGTH
|
|
||||||
vpiConstType=vpiDecConst
|
|
||||||
arr (vpiModule) t.outer_scope[2].inner_scope[2].arr
|
|
||||||
vpiReg:
|
|
||||||
LENGTH (vpiParameter) t.outer_scope[2].inner_scope[2].arr.LENGTH
|
|
||||||
vpiConstType=vpiDecConst
|
|
||||||
check (vpiReg) t.outer_scope[2].inner_scope[2].arr.check
|
|
||||||
rfr (vpiReg) t.outer_scope[2].inner_scope[2].arr.rfr
|
|
||||||
sig (vpiReg) t.outer_scope[2].inner_scope[2].arr.sig
|
|
||||||
verbose (vpiReg) t.outer_scope[2].inner_scope[2].arr.verbose
|
|
||||||
vpiParameter:
|
|
||||||
LENGTH (vpiParameter) t.outer_scope[2].inner_scope[2].arr.LENGTH
|
|
||||||
vpiConstType=vpiDecConst
|
|
||||||
arr (vpiModule) t.outer_scope[2].inner_scope[3].arr
|
|
||||||
vpiReg:
|
|
||||||
LENGTH (vpiParameter) t.outer_scope[2].inner_scope[3].arr.LENGTH
|
|
||||||
vpiConstType=vpiDecConst
|
|
||||||
check (vpiReg) t.outer_scope[2].inner_scope[3].arr.check
|
|
||||||
rfr (vpiReg) t.outer_scope[2].inner_scope[3].arr.rfr
|
|
||||||
sig (vpiReg) t.outer_scope[2].inner_scope[3].arr.sig
|
|
||||||
verbose (vpiReg) t.outer_scope[2].inner_scope[3].arr.verbose
|
|
||||||
vpiParameter:
|
|
||||||
LENGTH (vpiParameter) t.outer_scope[2].inner_scope[3].arr.LENGTH
|
|
||||||
vpiConstType=vpiDecConst
|
|
||||||
arr (vpiModule) t.outer_scope[3].inner_scope[1].arr
|
|
||||||
vpiReg:
|
|
||||||
LENGTH (vpiParameter) t.outer_scope[3].inner_scope[1].arr.LENGTH
|
|
||||||
vpiConstType=vpiDecConst
|
|
||||||
check (vpiReg) t.outer_scope[3].inner_scope[1].arr.check
|
|
||||||
rfr (vpiReg) t.outer_scope[3].inner_scope[1].arr.rfr
|
|
||||||
sig (vpiReg) t.outer_scope[3].inner_scope[1].arr.sig
|
|
||||||
verbose (vpiReg) t.outer_scope[3].inner_scope[1].arr.verbose
|
|
||||||
vpiParameter:
|
|
||||||
LENGTH (vpiParameter) t.outer_scope[3].inner_scope[1].arr.LENGTH
|
|
||||||
vpiConstType=vpiDecConst
|
|
||||||
arr (vpiModule) t.outer_scope[3].inner_scope[2].arr
|
|
||||||
vpiReg:
|
|
||||||
LENGTH (vpiParameter) t.outer_scope[3].inner_scope[2].arr.LENGTH
|
|
||||||
vpiConstType=vpiDecConst
|
|
||||||
check (vpiReg) t.outer_scope[3].inner_scope[2].arr.check
|
|
||||||
rfr (vpiReg) t.outer_scope[3].inner_scope[2].arr.rfr
|
|
||||||
sig (vpiReg) t.outer_scope[3].inner_scope[2].arr.sig
|
|
||||||
verbose (vpiReg) t.outer_scope[3].inner_scope[2].arr.verbose
|
|
||||||
vpiParameter:
|
|
||||||
LENGTH (vpiParameter) t.outer_scope[3].inner_scope[2].arr.LENGTH
|
|
||||||
vpiConstType=vpiDecConst
|
|
||||||
arr (vpiModule) t.outer_scope[3].inner_scope[3].arr
|
|
||||||
vpiReg:
|
|
||||||
LENGTH (vpiParameter) t.outer_scope[3].inner_scope[3].arr.LENGTH
|
|
||||||
vpiConstType=vpiDecConst
|
|
||||||
check (vpiReg) t.outer_scope[3].inner_scope[3].arr.check
|
|
||||||
rfr (vpiReg) t.outer_scope[3].inner_scope[3].arr.rfr
|
|
||||||
sig (vpiReg) t.outer_scope[3].inner_scope[3].arr.sig
|
|
||||||
verbose (vpiReg) t.outer_scope[3].inner_scope[3].arr.verbose
|
|
||||||
vpiParameter:
|
|
||||||
LENGTH (vpiParameter) t.outer_scope[3].inner_scope[3].arr.LENGTH
|
|
||||||
vpiConstType=vpiDecConst
|
|
||||||
sub (vpiModule) t.sub
|
|
||||||
vpiReg:
|
|
||||||
subsig1 (vpiReg) t.sub.subsig1
|
|
||||||
subsig2 (vpiReg) t.sub.subsig2
|
|
||||||
vpiParameter:
|
|
||||||
vpiParameter:
|
vpiParameter:
|
||||||
do_generate (vpiParameter) t.do_generate
|
do_generate (vpiParameter) t.do_generate
|
||||||
vpiConstType=vpiDecConst
|
vpiConstType=vpiDecConst
|
||||||
long_int (vpiParameter) t.long_int
|
long_int (vpiParameter) t.long_int
|
||||||
vpiConstType=vpiDecConst
|
vpiConstType=vpiDecConst
|
||||||
|
vpiInternalScope:
|
||||||
|
arr[1] (vpiGenScope) t.arr[1]
|
||||||
|
vpiReg:
|
||||||
|
vpiParameter:
|
||||||
|
vpiInternalScope:
|
||||||
|
arr (vpiModule) t.arr[1].arr
|
||||||
|
vpiReg:
|
||||||
|
LENGTH (vpiParameter) t.arr[1].arr.LENGTH
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
check (vpiReg) t.arr[1].arr.check
|
||||||
|
rfr (vpiReg) t.arr[1].arr.rfr
|
||||||
|
sig (vpiReg) t.arr[1].arr.sig
|
||||||
|
verbose (vpiReg) t.arr[1].arr.verbose
|
||||||
|
vpiParameter:
|
||||||
|
LENGTH (vpiParameter) t.arr[1].arr.LENGTH
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
arr[2] (vpiGenScope) t.arr[2]
|
||||||
|
vpiReg:
|
||||||
|
vpiParameter:
|
||||||
|
vpiInternalScope:
|
||||||
|
arr (vpiModule) t.arr[2].arr
|
||||||
|
vpiReg:
|
||||||
|
LENGTH (vpiParameter) t.arr[2].arr.LENGTH
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
check (vpiReg) t.arr[2].arr.check
|
||||||
|
rfr (vpiReg) t.arr[2].arr.rfr
|
||||||
|
sig (vpiReg) t.arr[2].arr.sig
|
||||||
|
verbose (vpiReg) t.arr[2].arr.verbose
|
||||||
|
vpiParameter:
|
||||||
|
LENGTH (vpiParameter) t.arr[2].arr.LENGTH
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
cond_scope (vpiGenScope) t.cond_scope
|
||||||
|
vpiReg:
|
||||||
|
scoped_wire (vpiParameter) t.cond_scope.scoped_wire
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiParameter:
|
||||||
|
scoped_wire (vpiParameter) t.cond_scope.scoped_wire
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiInternalScope:
|
||||||
|
scoped_sub (vpiModule) t.cond_scope.scoped_sub
|
||||||
|
vpiReg:
|
||||||
|
subsig1 (vpiReg) t.cond_scope.scoped_sub.subsig1
|
||||||
|
subsig2 (vpiReg) t.cond_scope.scoped_sub.subsig2
|
||||||
|
vpiParameter:
|
||||||
|
intf_arr[0] (vpiModule) t.intf_arr[0]
|
||||||
|
vpiReg:
|
||||||
|
addr (vpiReg) t.intf_arr[0].addr
|
||||||
|
vpiParameter:
|
||||||
|
intf_arr[1] (vpiModule) t.intf_arr[1]
|
||||||
|
vpiReg:
|
||||||
|
addr (vpiReg) t.intf_arr[1].addr
|
||||||
|
vpiParameter:
|
||||||
|
outer_scope[1] (vpiGenScope) t.outer_scope[1]
|
||||||
|
vpiReg:
|
||||||
|
scoped_param (vpiParameter) t.outer_scope[1].scoped_param
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiParameter:
|
||||||
|
scoped_param (vpiParameter) t.outer_scope[1].scoped_param
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiInternalScope:
|
||||||
|
inner_scope[1] (vpiGenScope) t.outer_scope[1].inner_scope[1]
|
||||||
|
vpiReg:
|
||||||
|
scoped_param_inner (vpiParameter) t.outer_scope[1].inner_scope[1].scoped_param_inner
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiParameter:
|
||||||
|
scoped_param_inner (vpiParameter) t.outer_scope[1].inner_scope[1].scoped_param_inner
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiInternalScope:
|
||||||
|
arr (vpiModule) t.outer_scope[1].inner_scope[1].arr
|
||||||
|
vpiReg:
|
||||||
|
LENGTH (vpiParameter) t.outer_scope[1].inner_scope[1].arr.LENGTH
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
check (vpiReg) t.outer_scope[1].inner_scope[1].arr.check
|
||||||
|
rfr (vpiReg) t.outer_scope[1].inner_scope[1].arr.rfr
|
||||||
|
sig (vpiReg) t.outer_scope[1].inner_scope[1].arr.sig
|
||||||
|
verbose (vpiReg) t.outer_scope[1].inner_scope[1].arr.verbose
|
||||||
|
vpiParameter:
|
||||||
|
LENGTH (vpiParameter) t.outer_scope[1].inner_scope[1].arr.LENGTH
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
inner_scope[2] (vpiGenScope) t.outer_scope[1].inner_scope[2]
|
||||||
|
vpiReg:
|
||||||
|
scoped_param_inner (vpiParameter) t.outer_scope[1].inner_scope[2].scoped_param_inner
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiParameter:
|
||||||
|
scoped_param_inner (vpiParameter) t.outer_scope[1].inner_scope[2].scoped_param_inner
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiInternalScope:
|
||||||
|
arr (vpiModule) t.outer_scope[1].inner_scope[2].arr
|
||||||
|
vpiReg:
|
||||||
|
LENGTH (vpiParameter) t.outer_scope[1].inner_scope[2].arr.LENGTH
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
check (vpiReg) t.outer_scope[1].inner_scope[2].arr.check
|
||||||
|
rfr (vpiReg) t.outer_scope[1].inner_scope[2].arr.rfr
|
||||||
|
sig (vpiReg) t.outer_scope[1].inner_scope[2].arr.sig
|
||||||
|
verbose (vpiReg) t.outer_scope[1].inner_scope[2].arr.verbose
|
||||||
|
vpiParameter:
|
||||||
|
LENGTH (vpiParameter) t.outer_scope[1].inner_scope[2].arr.LENGTH
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
inner_scope[3] (vpiGenScope) t.outer_scope[1].inner_scope[3]
|
||||||
|
vpiReg:
|
||||||
|
scoped_param_inner (vpiParameter) t.outer_scope[1].inner_scope[3].scoped_param_inner
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiParameter:
|
||||||
|
scoped_param_inner (vpiParameter) t.outer_scope[1].inner_scope[3].scoped_param_inner
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiInternalScope:
|
||||||
|
arr (vpiModule) t.outer_scope[1].inner_scope[3].arr
|
||||||
|
vpiReg:
|
||||||
|
LENGTH (vpiParameter) t.outer_scope[1].inner_scope[3].arr.LENGTH
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
check (vpiReg) t.outer_scope[1].inner_scope[3].arr.check
|
||||||
|
rfr (vpiReg) t.outer_scope[1].inner_scope[3].arr.rfr
|
||||||
|
sig (vpiReg) t.outer_scope[1].inner_scope[3].arr.sig
|
||||||
|
verbose (vpiReg) t.outer_scope[1].inner_scope[3].arr.verbose
|
||||||
|
vpiParameter:
|
||||||
|
LENGTH (vpiParameter) t.outer_scope[1].inner_scope[3].arr.LENGTH
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
outer_scope[2] (vpiGenScope) t.outer_scope[2]
|
||||||
|
vpiReg:
|
||||||
|
scoped_param (vpiParameter) t.outer_scope[2].scoped_param
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiParameter:
|
||||||
|
scoped_param (vpiParameter) t.outer_scope[2].scoped_param
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiInternalScope:
|
||||||
|
inner_scope[1] (vpiGenScope) t.outer_scope[2].inner_scope[1]
|
||||||
|
vpiReg:
|
||||||
|
scoped_param_inner (vpiParameter) t.outer_scope[2].inner_scope[1].scoped_param_inner
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiParameter:
|
||||||
|
scoped_param_inner (vpiParameter) t.outer_scope[2].inner_scope[1].scoped_param_inner
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiInternalScope:
|
||||||
|
arr (vpiModule) t.outer_scope[2].inner_scope[1].arr
|
||||||
|
vpiReg:
|
||||||
|
LENGTH (vpiParameter) t.outer_scope[2].inner_scope[1].arr.LENGTH
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
check (vpiReg) t.outer_scope[2].inner_scope[1].arr.check
|
||||||
|
rfr (vpiReg) t.outer_scope[2].inner_scope[1].arr.rfr
|
||||||
|
sig (vpiReg) t.outer_scope[2].inner_scope[1].arr.sig
|
||||||
|
verbose (vpiReg) t.outer_scope[2].inner_scope[1].arr.verbose
|
||||||
|
vpiParameter:
|
||||||
|
LENGTH (vpiParameter) t.outer_scope[2].inner_scope[1].arr.LENGTH
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
inner_scope[2] (vpiGenScope) t.outer_scope[2].inner_scope[2]
|
||||||
|
vpiReg:
|
||||||
|
scoped_param_inner (vpiParameter) t.outer_scope[2].inner_scope[2].scoped_param_inner
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiParameter:
|
||||||
|
scoped_param_inner (vpiParameter) t.outer_scope[2].inner_scope[2].scoped_param_inner
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiInternalScope:
|
||||||
|
arr (vpiModule) t.outer_scope[2].inner_scope[2].arr
|
||||||
|
vpiReg:
|
||||||
|
LENGTH (vpiParameter) t.outer_scope[2].inner_scope[2].arr.LENGTH
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
check (vpiReg) t.outer_scope[2].inner_scope[2].arr.check
|
||||||
|
rfr (vpiReg) t.outer_scope[2].inner_scope[2].arr.rfr
|
||||||
|
sig (vpiReg) t.outer_scope[2].inner_scope[2].arr.sig
|
||||||
|
verbose (vpiReg) t.outer_scope[2].inner_scope[2].arr.verbose
|
||||||
|
vpiParameter:
|
||||||
|
LENGTH (vpiParameter) t.outer_scope[2].inner_scope[2].arr.LENGTH
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
inner_scope[3] (vpiGenScope) t.outer_scope[2].inner_scope[3]
|
||||||
|
vpiReg:
|
||||||
|
scoped_param_inner (vpiParameter) t.outer_scope[2].inner_scope[3].scoped_param_inner
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiParameter:
|
||||||
|
scoped_param_inner (vpiParameter) t.outer_scope[2].inner_scope[3].scoped_param_inner
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiInternalScope:
|
||||||
|
arr (vpiModule) t.outer_scope[2].inner_scope[3].arr
|
||||||
|
vpiReg:
|
||||||
|
LENGTH (vpiParameter) t.outer_scope[2].inner_scope[3].arr.LENGTH
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
check (vpiReg) t.outer_scope[2].inner_scope[3].arr.check
|
||||||
|
rfr (vpiReg) t.outer_scope[2].inner_scope[3].arr.rfr
|
||||||
|
sig (vpiReg) t.outer_scope[2].inner_scope[3].arr.sig
|
||||||
|
verbose (vpiReg) t.outer_scope[2].inner_scope[3].arr.verbose
|
||||||
|
vpiParameter:
|
||||||
|
LENGTH (vpiParameter) t.outer_scope[2].inner_scope[3].arr.LENGTH
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
outer_scope[3] (vpiGenScope) t.outer_scope[3]
|
||||||
|
vpiReg:
|
||||||
|
scoped_param (vpiParameter) t.outer_scope[3].scoped_param
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiParameter:
|
||||||
|
scoped_param (vpiParameter) t.outer_scope[3].scoped_param
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiInternalScope:
|
||||||
|
inner_scope[1] (vpiGenScope) t.outer_scope[3].inner_scope[1]
|
||||||
|
vpiReg:
|
||||||
|
scoped_param_inner (vpiParameter) t.outer_scope[3].inner_scope[1].scoped_param_inner
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiParameter:
|
||||||
|
scoped_param_inner (vpiParameter) t.outer_scope[3].inner_scope[1].scoped_param_inner
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiInternalScope:
|
||||||
|
arr (vpiModule) t.outer_scope[3].inner_scope[1].arr
|
||||||
|
vpiReg:
|
||||||
|
LENGTH (vpiParameter) t.outer_scope[3].inner_scope[1].arr.LENGTH
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
check (vpiReg) t.outer_scope[3].inner_scope[1].arr.check
|
||||||
|
rfr (vpiReg) t.outer_scope[3].inner_scope[1].arr.rfr
|
||||||
|
sig (vpiReg) t.outer_scope[3].inner_scope[1].arr.sig
|
||||||
|
verbose (vpiReg) t.outer_scope[3].inner_scope[1].arr.verbose
|
||||||
|
vpiParameter:
|
||||||
|
LENGTH (vpiParameter) t.outer_scope[3].inner_scope[1].arr.LENGTH
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
inner_scope[2] (vpiGenScope) t.outer_scope[3].inner_scope[2]
|
||||||
|
vpiReg:
|
||||||
|
scoped_param_inner (vpiParameter) t.outer_scope[3].inner_scope[2].scoped_param_inner
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiParameter:
|
||||||
|
scoped_param_inner (vpiParameter) t.outer_scope[3].inner_scope[2].scoped_param_inner
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiInternalScope:
|
||||||
|
arr (vpiModule) t.outer_scope[3].inner_scope[2].arr
|
||||||
|
vpiReg:
|
||||||
|
LENGTH (vpiParameter) t.outer_scope[3].inner_scope[2].arr.LENGTH
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
check (vpiReg) t.outer_scope[3].inner_scope[2].arr.check
|
||||||
|
rfr (vpiReg) t.outer_scope[3].inner_scope[2].arr.rfr
|
||||||
|
sig (vpiReg) t.outer_scope[3].inner_scope[2].arr.sig
|
||||||
|
verbose (vpiReg) t.outer_scope[3].inner_scope[2].arr.verbose
|
||||||
|
vpiParameter:
|
||||||
|
LENGTH (vpiParameter) t.outer_scope[3].inner_scope[2].arr.LENGTH
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
inner_scope[3] (vpiGenScope) t.outer_scope[3].inner_scope[3]
|
||||||
|
vpiReg:
|
||||||
|
scoped_param_inner (vpiParameter) t.outer_scope[3].inner_scope[3].scoped_param_inner
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiParameter:
|
||||||
|
scoped_param_inner (vpiParameter) t.outer_scope[3].inner_scope[3].scoped_param_inner
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
vpiInternalScope:
|
||||||
|
arr (vpiModule) t.outer_scope[3].inner_scope[3].arr
|
||||||
|
vpiReg:
|
||||||
|
LENGTH (vpiParameter) t.outer_scope[3].inner_scope[3].arr.LENGTH
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
check (vpiReg) t.outer_scope[3].inner_scope[3].arr.check
|
||||||
|
rfr (vpiReg) t.outer_scope[3].inner_scope[3].arr.rfr
|
||||||
|
sig (vpiReg) t.outer_scope[3].inner_scope[3].arr.sig
|
||||||
|
verbose (vpiReg) t.outer_scope[3].inner_scope[3].arr.verbose
|
||||||
|
vpiParameter:
|
||||||
|
LENGTH (vpiParameter) t.outer_scope[3].inner_scope[3].arr.LENGTH
|
||||||
|
vpiConstType=vpiDecConst
|
||||||
|
sub (vpiModule) t.sub
|
||||||
|
vpiReg:
|
||||||
|
subsig1 (vpiReg) t.sub.subsig1
|
||||||
|
subsig2 (vpiReg) t.sub.subsig2
|
||||||
|
vpiParameter:
|
||||||
*-* All Finished *-*
|
*-* All Finished *-*
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,14 @@ typedef struct packed {
|
||||||
int sel; // select
|
int sel; // select
|
||||||
} t_bus;
|
} t_bus;
|
||||||
|
|
||||||
|
interface TestInterface();
|
||||||
|
|
||||||
|
logic [31:0] addr;
|
||||||
|
modport source (input addr);
|
||||||
|
|
||||||
|
endinterface
|
||||||
|
|
||||||
|
|
||||||
module t ( /*AUTOARG*/
|
module t ( /*AUTOARG*/
|
||||||
// Outputs
|
// Outputs
|
||||||
x,
|
x,
|
||||||
|
|
@ -58,6 +66,8 @@ module t ( /*AUTOARG*/
|
||||||
|
|
||||||
sub sub ();
|
sub sub ();
|
||||||
|
|
||||||
|
TestInterface intf_arr[2]();
|
||||||
|
|
||||||
|
|
||||||
initial begin
|
initial begin
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue