mirror of https://github.com/YosysHQ/yosys.git
Fix smt2 code generation for partially initialized memowy words, fixes #831
Signed-off-by: Clifford Wolf <clifford@clifford.at>
This commit is contained in:
parent
5e94a8a127
commit
f570aa5e1d
|
@ -1103,20 +1103,27 @@ struct Smt2Worker
|
||||||
break;
|
break;
|
||||||
|
|
||||||
Const initword = init_data.extract(i*width, width, State::Sx);
|
Const initword = init_data.extract(i*width, width, State::Sx);
|
||||||
|
Const initmask = initword;
|
||||||
bool gen_init_constr = false;
|
bool gen_init_constr = false;
|
||||||
|
|
||||||
for (auto bit : initword.bits)
|
for (int k = 0; k < GetSize(initword); k++) {
|
||||||
if (bit == State::S0 || bit == State::S1)
|
if (initword[k] == State::S0 || initword[k] == State::S1) {
|
||||||
gen_init_constr = true;
|
gen_init_constr = true;
|
||||||
|
initmask[k] = State::S1;
|
||||||
|
} else {
|
||||||
|
initmask[k] = State::S0;
|
||||||
|
initword[k] = State::S0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (gen_init_constr)
|
if (gen_init_constr)
|
||||||
{
|
{
|
||||||
if (statebv)
|
if (statebv)
|
||||||
/* FIXME */;
|
/* FIXME */;
|
||||||
else
|
else
|
||||||
init_list.push_back(stringf("(= (select (|%s#%d#0| state) #b%s) #b%s) ; %s[%d]",
|
init_list.push_back(stringf("(= (bvand (select (|%s#%d#0| state) #b%s) #b%s) #b%s) ; %s[%d]",
|
||||||
get_id(module), arrayid, Const(i, abits).as_string().c_str(),
|
get_id(module), arrayid, Const(i, abits).as_string().c_str(),
|
||||||
initword.as_string().c_str(), get_id(cell), i));
|
initmask.as_string().c_str(), initword.as_string().c_str(), get_id(cell), i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue