write_xaiger: do not export flop inputs as POs
authorEddie Hung <eddie@fpgeh.com>
Wed, 15 Jan 2020 00:17:27 +0000 (16:17 -0800)
committerEddie Hung <eddie@fpgeh.com>
Wed, 15 Jan 2020 00:17:27 +0000 (16:17 -0800)
backends/aiger/xaiger.cc

index 4f466d568116b31bb871415d6f8baa479e5dddeb..c3fc61e3b13232b85ba1bbe228dc7ae0fc8a77ca 100644 (file)
@@ -226,6 +226,7 @@ struct XAigerWriter
                                }
 
                                if (inst_module) {
+                                       bool abc9_flop = inst_module->get_bool_attribute("\\abc9_flop");
                                        auto it = cell->attributes.find("\\abc9_box_seq");
                                        if (it != cell->attributes.end()) {
                                                int abc9_box_seq = it->second.as_int();
@@ -233,7 +234,7 @@ struct XAigerWriter
                                                        box_list.resize(abc9_box_seq+1);
                                                box_list[abc9_box_seq] = cell;
                                                // Only flop boxes may have arrival times
-                                               if (!inst_module->get_bool_attribute("\\abc9_flop"))
+                                               if (!abc9_flop)
                                                        continue;
                                        }
 
@@ -256,6 +257,9 @@ struct XAigerWriter
                                                        for (auto bit : sigmap(conn.second))
                                                                arrival_times[bit] = arrival;
                                        }
+
+                                       if (abc9_flop)
+                                               continue;
                                }
                        }
 
@@ -591,7 +595,7 @@ struct XAigerWriter
                                        // For flops only, create an extra 1-bit input that drives a new wire
                                        //   called "<cell>.abc9_ff.Q" that is used below
                                        if (box_module->get_bool_attribute("\\abc9_flop"))
-                                           box_inputs++;
+                                               box_inputs++;
 
                                        std::get<0>(v) = box_inputs;
                                        std::get<1>(v) = box_outputs;