diff options
author | Alberto Gonzalez <boqwxp@airmail.cc> | 2020-04-23 05:42:18 +0000 |
---|---|---|
committer | Alberto Gonzalez <boqwxp@airmail.cc> | 2020-04-23 05:45:44 +0000 |
commit | 4ee8452d3476862ec9f470c69cfb1a70eb8b6e43 (patch) | |
tree | e95c04cedf4e2ae69f02d5828560b9dccfe6609f | |
parent | fa9df06c9dc5ead43645ba973e2ca8c63adfb29d (diff) | |
download | yosys-4ee8452d3476862ec9f470c69cfb1a70eb8b6e43.tar.gz yosys-4ee8452d3476862ec9f470c69cfb1a70eb8b6e43.tar.bz2 yosys-4ee8452d3476862ec9f470c69cfb1a70eb8b6e43.zip |
qbfsat: Make hole name recovery more robust. Allow multiple cell types to share the same source location as long as only one `$anyconst` or `$anyseq` has that location.
-rw-r--r-- | passes/sat/qbfsat.cc | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/passes/sat/qbfsat.cc b/passes/sat/qbfsat.cc index 981271770..e9b4913cd 100644 --- a/passes/sat/qbfsat.cc +++ b/passes/sat/qbfsat.cc @@ -98,11 +98,8 @@ dict<std::string, std::string> get_hole_loc_name_map(RTLIL::Module *module, cons for (auto cell : module->cells()) { std::string cell_src = cell->get_src_attribute(); auto pos = sol.hole_to_value.find(cell_src); - if (pos != sol.hole_to_value.end()) { -#ifndef NDEBUG - log_assert(cell->type.in("$anyconst", "$anyseq")); - log_assert(cell->getPort(ID::Y).is_wire()); -#endif + if (pos != sol.hole_to_value.end() && cell->type.in("$anyconst", "$anyseq")) { + log_assert(hole_loc_to_name.find(pos->first) == hole_loc_to_name.end()); hole_loc_to_name[pos->first] = cell->getPort(ID::Y).as_wire()->name.str(); } } |