Add date parameter to enable full date/time and version info
authorMiodrag Milanovic <mmicko@gmail.com>
Fri, 11 Mar 2022 15:01:59 +0000 (16:01 +0100)
committerMiodrag Milanovic <mmicko@gmail.com>
Fri, 11 Mar 2022 15:01:59 +0000 (16:01 +0100)
passes/sat/sim.cc

index 6b03235d3d9622fdc61309c710c3f8644f94a43b..b37bf25cd8be1e5817eefb161e987aef7f344b4d 100644 (file)
@@ -89,6 +89,7 @@ struct SimShared
        std::vector<std::unique_ptr<OutputWriter>> outputfiles;
        std::vector<std::pair<int,std::map<int,Const>>> output_data;
        bool ignore_x = false;
+       bool date = false;
 };
 
 void zinit(State &v)
@@ -1333,12 +1334,14 @@ struct VCDWriter : public OutputWriter
        void write(std::map<int, bool> &use_signal) override
        {
                if (!vcdfile.is_open()) return;
-               vcdfile << stringf("$version %s $end\n", yosys_version_str);
+               vcdfile << stringf("$version %s $end\n", worker->date ? yosys_version_str : "Yosys");
 
-               std::time_t t = std::time(nullptr);
-               char mbstr[255];
-               if (std::strftime(mbstr, sizeof(mbstr), "%c", std::localtime(&t))) {
-                       vcdfile << stringf("$date ") << mbstr << stringf(" $end\n");
+               if (worker->date) {
+                       std::time_t t = std::time(nullptr);
+                       char mbstr[255];
+                       if (std::strftime(mbstr, sizeof(mbstr), "%c", std::localtime(&t))) {
+                               vcdfile << stringf("$date ") << mbstr << stringf(" $end\n");
+                       }
                }
 
                if (!worker->timescale.empty())
@@ -1391,8 +1394,11 @@ struct FSTWriter : public OutputWriter
        {
                if (!fstfile) return;
                std::time_t t = std::time(nullptr);
-               fstWriterSetDate(fstfile, asctime(std::localtime(&t)));
-               fstWriterSetVersion(fstfile, yosys_version_str);
+               fstWriterSetVersion(fstfile, worker->date ? yosys_version_str : "Yosys");
+               if (worker->date)
+                       fstWriterSetDate(fstfile, asctime(std::localtime(&t)));
+               else
+                       fstWriterSetDate(fstfile, "");
                if (!worker->timescale.empty())
                        fstWriterSetTimescaleFromString(fstfile, worker->timescale.c_str());
 
@@ -1563,6 +1569,9 @@ struct SimPass : public Pass {
                log("    -x\n");
                log("        ignore constant x outputs in simulation file.\n");
                log("\n");
+               log("    -date\n");
+               log("        include date and full version info in output.\n");
+               log("\n");
                log("    -clock <portname>\n");
                log("        name of top-level clock input\n");
                log("\n");
@@ -1759,6 +1768,10 @@ struct SimPass : public Pass {
                                worker.ignore_x = true;
                                continue;
                        }
+                       if (args[argidx] == "-date") {
+                               worker.date = true;
+                               continue;
+                       }
                        break;
                }
                extra_args(args, argidx, design);