Added "write_blif -cname" mode
authorClifford Wolf <clifford@clifford.at>
Wed, 6 Jan 2016 13:32:28 +0000 (14:32 +0100)
committerClifford Wolf <clifford@clifford.at>
Wed, 6 Jan 2016 13:32:28 +0000 (14:32 +0100)
backends/blif/blif.cc

index 0a13180ae0411ed99198cf946033333b21ac861a..f3b57765f1a7172f49e15595b801530041381040 100644 (file)
@@ -37,6 +37,7 @@ struct BlifDumperConfig
        bool conn_mode;
        bool impltf_mode;
        bool gates_mode;
+       bool cname_mode;
        bool param_mode;
        bool attr_mode;
        bool blackbox_mode;
@@ -45,7 +46,8 @@ struct BlifDumperConfig
        std::map<RTLIL::IdString, std::pair<RTLIL::IdString, RTLIL::IdString>> unbuf_types;
        std::string true_type, true_out, false_type, false_out, undef_type, undef_out;
 
-       BlifDumperConfig() : icells_mode(false), conn_mode(false), impltf_mode(false), gates_mode(false), param_mode(false), attr_mode(false), blackbox_mode(false) { }
+       BlifDumperConfig() : icells_mode(false), conn_mode(false), impltf_mode(false), gates_mode(false),
+                       cname_mode(false), param_mode(false), attr_mode(false), blackbox_mode(false) { }
 };
 
 struct BlifDumper
@@ -349,6 +351,8 @@ struct BlifDumper
                        }
                        f << stringf("\n");
 
+                       if (config->cname_mode)
+                               f << stringf(".cname %s\n", cstr(cell->name));
                        if (config->attr_mode)
                                dump_params(".attr", cell->attributes);
                        if (config->param_mode)
@@ -426,6 +430,9 @@ struct BlifBackend : public Backend {
                log("    -param\n");
                log("        use the non-standard .param statement to write cell parameters\n");
                log("\n");
+               log("    -cname\n");
+               log("        use the non-standard .cname statement to write cell names\n");
+               log("\n");
                log("    -blackbox\n");
                log("        write blackbox cells with .blackbox statement.\n");
                log("\n");
@@ -490,6 +497,10 @@ struct BlifBackend : public Backend {
                                config.conn_mode = true;
                                continue;
                        }
+                       if (args[argidx] == "-cname") {
+                               config.cname_mode = true;
+                               continue;
+                       }
                        if (args[argidx] == "-param") {
                                config.param_mode = true;
                                continue;