mirror of
https://github.com/YosysHQ/yosys
synced 2025-10-01 13:39:30 +00:00
verific: New -sva-continue-on-error
import option
This option allows you to process a design that includes unsupported SVA. Unsupported SVA gets imported as formal cells using 'x inputs and with the `unsupported_sva` attribute set. This allows you to get a complete list of defined properties or to check only a supported subset of properties. To ensure no properties are unintentionally skipped for actual verification, even in cases where `-sva-continue-on-error` is used by default to read and inspect a design, `hierarchy -simcheck` and `hierarchy -smtcheck` (run by SBY) now ensure that no `unsupported_sva` property cells remain in the design.
This commit is contained in:
parent
99a23c777c
commit
83dd99efb7
6 changed files with 124 additions and 25 deletions
|
@ -1149,6 +1149,25 @@ struct HierarchyPass : public Pass {
|
|||
}
|
||||
}
|
||||
|
||||
if (flag_simcheck || flag_smtcheck) {
|
||||
for (auto mod : design->modules()) {
|
||||
for (auto cell : mod->cells()) {
|
||||
if (!cell->type.in(ID($check), ID($assert), ID($assume), ID($live), ID($fair), ID($cover)))
|
||||
continue;
|
||||
if (!cell->has_attribute(ID(unsupported_sva)))
|
||||
continue;
|
||||
|
||||
auto src = cell->get_src_attribute();
|
||||
|
||||
if (!src.empty())
|
||||
src += ": ";
|
||||
|
||||
log_error("%sProperty `%s' in module `%s' uses unsupported SVA constructs. See frontend warnings for details, run `delete */a:unsupported_sva' to ignore.\n",
|
||||
src, log_id(cell->name), log_id(mod->name));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!keep_positionals)
|
||||
{
|
||||
std::set<RTLIL::Module*> pos_mods;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue