mirror of https://github.com/YosysHQ/yosys.git
chformal: Add -coverprecond option
This inserts $cover cells to cover the enable signal (precondition) for the selected formal cells.
This commit is contained in:
parent
90147f5fbf
commit
c659bd1878
|
@ -55,6 +55,9 @@ struct ChformalPass : public Pass {
|
|||
log(" -skip <N>\n");
|
||||
log(" ignore activation of the constraint in the first <N> clock cycles\n");
|
||||
log("\n");
|
||||
log(" -coverprecond\n");
|
||||
log(" add a cover statement for the precondition (enable signal) of the cells\n");
|
||||
log("\n");
|
||||
log(" -assert2assume\n");
|
||||
log(" -assume2assert\n");
|
||||
log(" -live2fair\n");
|
||||
|
@ -114,6 +117,10 @@ struct ChformalPass : public Pass {
|
|||
mode_arg = atoi(args[++argidx].c_str());
|
||||
continue;
|
||||
}
|
||||
if (mode == 0 && args[argidx] == "-coverprecond") {
|
||||
mode = 'p';
|
||||
continue;
|
||||
}
|
||||
if ((mode == 0 || mode == 'c') && args[argidx] == "-assert2assume") {
|
||||
assert2assume = true;
|
||||
mode = 'c';
|
||||
|
@ -263,6 +270,13 @@ struct ChformalPass : public Pass {
|
|||
cell->setPort(ID::EN, module->LogicAnd(NEW_ID, en, cell->getPort(ID::EN)));
|
||||
}
|
||||
else
|
||||
if (mode =='p')
|
||||
{
|
||||
for (auto cell : constr_cells)
|
||||
module->addCover(NEW_ID, cell->getPort(ID::EN), State::S1,
|
||||
"$auto$coverprecond$" + cell->get_src_attribute());
|
||||
}
|
||||
else
|
||||
if (mode == 'c')
|
||||
{
|
||||
for (auto cell : constr_cells)
|
||||
|
|
Loading…
Reference in New Issue