mirror of
https://github.com/YosysHQ/yosys
synced 2025-07-23 12:48:54 +00:00
verificsva: check -L value is small enough for code to work
This commit is contained in:
parent
7566af4a4b
commit
e47f5369fd
2 changed files with 7 additions and 4 deletions
|
@ -4124,6 +4124,9 @@ struct VerificPass : public Pass {
|
||||||
if (argidx > GetSize(args) && args[argidx].compare(0, 1, "-") == 0)
|
if (argidx > GetSize(args) && args[argidx].compare(0, 1, "-") == 0)
|
||||||
cmd_error(args, argidx, "unknown option");
|
cmd_error(args, argidx, "unknown option");
|
||||||
|
|
||||||
|
if ((unsigned long)verific_sva_fsm_limit >= sizeof(1ull)*8)
|
||||||
|
log_cmd_error("-L %d: limit too large; maximum allowed value is %zu.\n", verific_sva_fsm_limit, sizeof(1ull)*8-1);
|
||||||
|
|
||||||
std::set<std::string> top_mod_names;
|
std::set<std::string> top_mod_names;
|
||||||
|
|
||||||
if (mode_all)
|
if (mode_all)
|
||||||
|
|
|
@ -479,14 +479,14 @@ struct SvaFsm
|
||||||
GetSize(dnode.ctrl), verific_sva_fsm_limit);
|
GetSize(dnode.ctrl), verific_sva_fsm_limit);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < (1 << GetSize(dnode.ctrl)); i++)
|
for (unsigned long long i = 0; i < (1ull << GetSize(dnode.ctrl)); i++)
|
||||||
{
|
{
|
||||||
Const ctrl_val(i, GetSize(dnode.ctrl));
|
Const ctrl_val(i, GetSize(dnode.ctrl));
|
||||||
pool<SigBit> ctrl_bits;
|
pool<SigBit> ctrl_bits;
|
||||||
|
|
||||||
for (int i = 0; i < GetSize(dnode.ctrl); i++)
|
for (int j = 0; j < GetSize(dnode.ctrl); j++)
|
||||||
if (ctrl_val[i] == State::S1)
|
if (ctrl_val[j] == State::S1)
|
||||||
ctrl_bits.insert(dnode.ctrl[i]);
|
ctrl_bits.insert(dnode.ctrl[j]);
|
||||||
|
|
||||||
vector<int> new_state;
|
vector<int> new_state;
|
||||||
bool accept = false, cond = false;
|
bool accept = false, cond = false;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue