abc9: error out if flip-flop init is 1'b1 for '-dff'
authorEddie Hung <eddie@fpgeh.com>
Wed, 22 Jan 2020 18:08:48 +0000 (10:08 -0800)
committerEddie Hung <eddie@fpgeh.com>
Wed, 22 Jan 2020 18:08:48 +0000 (10:08 -0800)
Due to ABC sequential synthesis restriction

passes/techmap/abc9.cc

index b0e2c76978c55c2abff898c1127f66d6b0d2154d..2568a6cd1bd7f2578ad3f111ed19159bfbdccefc 100644 (file)
@@ -1069,6 +1069,8 @@ struct Abc9Pass : public Pass {
                                        SigSpec abc9_init = assign_map(abc9_init_wire);
                                        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));
+                                       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()));
                                        log_assert(r2.second);
                                }