abc9: error out if flip-flop init is 1'b1 for '-dff'

Due to ABC sequential synthesis restriction
This commit is contained in:
Eddie Hung 2020-01-22 10:08:48 -08:00
parent 3b44b53e94
commit a94b41011d
1 changed files with 2 additions and 0 deletions

View File

@ -1069,6 +1069,8 @@ struct Abc9Pass : public Pass {
SigSpec abc9_init = assign_map(abc9_init_wire); SigSpec abc9_init = assign_map(abc9_init_wire);
if (!abc9_init.is_fully_const()) if (!abc9_init.is_fully_const())
log_error("'%s.init' is not a constant wire present in module '%s'.\n", cell->name.c_str(), log_id(module)); log_error("'%s.init' is not a constant wire present in module '%s'.\n", cell->name.c_str(), log_id(module));
if (abc9_init == State::S1)
log_error("'%s.init' in module '%s' has value 1'b1 which is not supported by 'abc9 -dff'.\n", cell->name.c_str(), log_id(module));
r2 = cell->attributes.insert(std::make_pair(ID(abc9_init), abc9_init.as_const())); r2 = cell->attributes.insert(std::make_pair(ID(abc9_init), abc9_init.as_const()));
log_assert(r2.second); log_assert(r2.second);
} }