write_aiger -O to write dummy output as __dummy_o__
authorEddie Hung <eddieh@ece.ubc.ca>
Sun, 17 Feb 2019 04:08:59 +0000 (20:08 -0800)
committerEddie Hung <eddieh@ece.ubc.ca>
Sun, 17 Feb 2019 04:08:59 +0000 (20:08 -0800)
backends/aiger/xaiger.cc

index c0bd9e9218b1fecf8209f443a08336830bf76555..25e03fa5fd1cb19dfd79c3ccefdfd3c60688ea19 100644 (file)
@@ -502,7 +502,7 @@ struct XAigerWriter
                f << stringf("c\nGenerated by %s\n", yosys_version_str);
        }
 
-       void write_map(std::ostream &f, bool verbose_map)
+       void write_map(std::ostream &f, bool verbose_map, bool omode)
        {
                dict<int, string> input_lines;
                dict<int, string> init_lines;
@@ -564,6 +564,9 @@ struct XAigerWriter
                output_lines.sort();
                for (auto &it : output_lines)
                        f << it.second;
+               if (omode && output_bits.empty()) {
+                       f << "output 0 0 __dummy_o__\n";
+               }
 
                latch_lines.sort();
                for (auto &it : latch_lines)
@@ -675,7 +678,7 @@ struct XAigerBackend : public Backend {
                        mapf.open(map_filename.c_str(), std::ofstream::trunc);
                        if (mapf.fail())
                                log_error("Can't open file `%s' for writing: %s\n", map_filename.c_str(), strerror(errno));
-                       writer.write_map(mapf, verbose_map);
+                       writer.write_map(mapf, verbose_map, omode);
                }
        }
 } XAigerBackend;