mirror of https://github.com/YosysHQ/yosys.git
In RTLIL::Module::check(), check process invariants.
This commit is contained in:
parent
64947453e2
commit
df6576edc8
|
@ -1381,7 +1381,34 @@ void RTLIL::Module::check()
|
|||
for (auto &it : processes) {
|
||||
log_assert(it.first == it.second->name);
|
||||
log_assert(!it.first.empty());
|
||||
// FIXME: More checks here..
|
||||
log_assert(it.second->root_case.compare.empty());
|
||||
std::vector<CaseRule*> all_cases = {&it.second->root_case};
|
||||
for (size_t i = 0; i < all_cases.size(); i++) {
|
||||
for (auto &switch_it : all_cases[i]->switches) {
|
||||
for (auto &case_it : switch_it->cases) {
|
||||
for (auto &compare_it : case_it->compare) {
|
||||
log_assert(switch_it->signal.size() == compare_it.size());
|
||||
}
|
||||
all_cases.push_back(case_it);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (auto &sync_it : it.second->syncs) {
|
||||
switch (sync_it->type) {
|
||||
case SyncType::ST0:
|
||||
case SyncType::ST1:
|
||||
case SyncType::STp:
|
||||
case SyncType::STn:
|
||||
case SyncType::STe:
|
||||
log_assert(!sync_it->signal.empty());
|
||||
break;
|
||||
case SyncType::STa:
|
||||
case SyncType::STg:
|
||||
case SyncType::STi:
|
||||
log_assert(sync_it->signal.empty());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (auto &it : connections_) {
|
||||
|
|
Loading…
Reference in New Issue