3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-04-13 04:28:18 +00:00

Add date parameter to enable full date/time and version info

This commit is contained in:
Miodrag Milanovic 2022-03-11 16:01:59 +01:00
parent be32de1caa
commit 37de369ba7

View file

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