3
0
Fork 0
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:
Jannis Harder 2025-09-24 18:47:54 +02:00
parent 99a23c777c
commit 83dd99efb7
6 changed files with 124 additions and 25 deletions

View file

@ -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;