mirror of
https://github.com/YosysHQ/yosys
synced 2025-05-14 19:24:45 +00:00
aiger, xaiger, aiger2: add -no_version
This commit is contained in:
parent
bfe05965f9
commit
11c846de5c
3 changed files with 43 additions and 8 deletions
|
@ -510,7 +510,7 @@ struct AigerWriter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void write_aiger(std::ostream &f, bool ascii_mode, bool miter_mode, bool symbols_mode)
|
void write_aiger(std::ostream &f, bool ascii_mode, bool miter_mode, bool symbols_mode, bool ys_version)
|
||||||
{
|
{
|
||||||
int aig_obc = aig_o + aig_b + aig_c;
|
int aig_obc = aig_o + aig_b + aig_c;
|
||||||
int aig_obcj = aig_obc + aig_j;
|
int aig_obcj = aig_obc + aig_j;
|
||||||
|
@ -663,6 +663,7 @@ struct AigerWriter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ys_version)
|
||||||
f << stringf("c\nGenerated by %s\n", yosys_version_str);
|
f << stringf("c\nGenerated by %s\n", yosys_version_str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -919,6 +920,9 @@ struct AigerBackend : public Backend {
|
||||||
log(" dummy input/output/bad_state-pin or latch to make the tools reading the\n");
|
log(" dummy input/output/bad_state-pin or latch to make the tools reading the\n");
|
||||||
log(" AIGER file happy.\n");
|
log(" AIGER file happy.\n");
|
||||||
log("\n");
|
log("\n");
|
||||||
|
log(" -no_version\n");
|
||||||
|
log(" don't write Yosys version\n");
|
||||||
|
log("\n");
|
||||||
}
|
}
|
||||||
void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) override
|
void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) override
|
||||||
{
|
{
|
||||||
|
@ -932,6 +936,7 @@ struct AigerBackend : public Backend {
|
||||||
bool bmode = false;
|
bool bmode = false;
|
||||||
bool lmode = false;
|
bool lmode = false;
|
||||||
bool no_startoffset = false;
|
bool no_startoffset = false;
|
||||||
|
bool ys_version = true;
|
||||||
std::string map_filename;
|
std::string map_filename;
|
||||||
std::string yw_map_filename;
|
std::string yw_map_filename;
|
||||||
|
|
||||||
|
@ -989,6 +994,10 @@ struct AigerBackend : public Backend {
|
||||||
lmode = true;
|
lmode = true;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (args[argidx] == "-no_version") {
|
||||||
|
ys_version = false;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
extra_args(f, filename, args, argidx, !ascii_mode);
|
extra_args(f, filename, args, argidx, !ascii_mode);
|
||||||
|
@ -1010,7 +1019,7 @@ struct AigerBackend : public Backend {
|
||||||
log_error("Found unmapped memories in module %s: unmapped memories are not supported in AIGER backend!\n", log_id(top_module));
|
log_error("Found unmapped memories in module %s: unmapped memories are not supported in AIGER backend!\n", log_id(top_module));
|
||||||
|
|
||||||
AigerWriter writer(top_module, zinit_mode, imode, omode, bmode, lmode);
|
AigerWriter writer(top_module, zinit_mode, imode, omode, bmode, lmode);
|
||||||
writer.write_aiger(*f, ascii_mode, miter_mode, symbols_mode);
|
writer.write_aiger(*f, ascii_mode, miter_mode, symbols_mode, ys_version);
|
||||||
|
|
||||||
if (!map_filename.empty()) {
|
if (!map_filename.empty()) {
|
||||||
rewrite_filename(filename);
|
rewrite_filename(filename);
|
||||||
|
|
|
@ -464,7 +464,7 @@ struct XAigerWriter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void write_aiger(std::ostream &f, bool ascii_mode)
|
void write_aiger(std::ostream &f, bool ascii_mode, bool ys_version)
|
||||||
{
|
{
|
||||||
int aig_obc = aig_o;
|
int aig_obc = aig_o;
|
||||||
int aig_obcj = aig_obc;
|
int aig_obcj = aig_obc;
|
||||||
|
@ -647,7 +647,7 @@ struct XAigerWriter
|
||||||
if (holes_module) {
|
if (holes_module) {
|
||||||
std::stringstream a_buffer;
|
std::stringstream a_buffer;
|
||||||
XAigerWriter writer(holes_module, false /* dff_mode */);
|
XAigerWriter writer(holes_module, false /* dff_mode */);
|
||||||
writer.write_aiger(a_buffer, false /*ascii_mode*/);
|
writer.write_aiger(a_buffer, false /*ascii_mode*/, ys_version);
|
||||||
|
|
||||||
f << "a";
|
f << "a";
|
||||||
std::string buffer_str = a_buffer.str();
|
std::string buffer_str = a_buffer.str();
|
||||||
|
@ -671,6 +671,7 @@ struct XAigerWriter
|
||||||
//f.write(reinterpret_cast<const char*>(&buffer_size_be), sizeof(buffer_size_be));
|
//f.write(reinterpret_cast<const char*>(&buffer_size_be), sizeof(buffer_size_be));
|
||||||
//f.write(buffer_str.data(), buffer_str.size());
|
//f.write(buffer_str.data(), buffer_str.size());
|
||||||
|
|
||||||
|
if (ys_version)
|
||||||
f << stringf("Generated by %s\n", yosys_version_str);
|
f << stringf("Generated by %s\n", yosys_version_str);
|
||||||
|
|
||||||
design->scratchpad_set_int("write_xaiger.num_ands", and_map.size());
|
design->scratchpad_set_int("write_xaiger.num_ands", and_map.size());
|
||||||
|
@ -741,10 +742,13 @@ struct XAigerBackend : public Backend {
|
||||||
log(" -dff\n");
|
log(" -dff\n");
|
||||||
log(" write $_DFF_[NP]_ cells\n");
|
log(" write $_DFF_[NP]_ cells\n");
|
||||||
log("\n");
|
log("\n");
|
||||||
|
log(" -no_version\n");
|
||||||
|
log(" don't write Yosys version\n");
|
||||||
|
log("\n");
|
||||||
}
|
}
|
||||||
void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) override
|
void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) override
|
||||||
{
|
{
|
||||||
bool ascii_mode = false, dff_mode = false;
|
bool ascii_mode = false, dff_mode = false, ys_version = true;
|
||||||
std::string map_filename;
|
std::string map_filename;
|
||||||
|
|
||||||
log_header(design, "Executing XAIGER backend.\n");
|
log_header(design, "Executing XAIGER backend.\n");
|
||||||
|
@ -764,6 +768,10 @@ struct XAigerBackend : public Backend {
|
||||||
dff_mode = true;
|
dff_mode = true;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (args[argidx] == "-no_version") {
|
||||||
|
ys_version = false;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
extra_args(f, filename, args, argidx, !ascii_mode);
|
extra_args(f, filename, args, argidx, !ascii_mode);
|
||||||
|
@ -782,7 +790,7 @@ struct XAigerBackend : public Backend {
|
||||||
log_error("Found unmapped memories in module %s: unmapped memories are not supported in XAIGER backend!\n", log_id(top_module));
|
log_error("Found unmapped memories in module %s: unmapped memories are not supported in XAIGER backend!\n", log_id(top_module));
|
||||||
|
|
||||||
XAigerWriter writer(top_module, dff_mode);
|
XAigerWriter writer(top_module, dff_mode);
|
||||||
writer.write_aiger(*f, ascii_mode);
|
writer.write_aiger(*f, ascii_mode, ys_version);
|
||||||
|
|
||||||
if (!map_filename.empty()) {
|
if (!map_filename.empty()) {
|
||||||
std::ofstream mapf;
|
std::ofstream mapf;
|
||||||
|
|
|
@ -1309,6 +1309,9 @@ struct Aiger2Backend : Backend {
|
||||||
log(" -flatten\n");
|
log(" -flatten\n");
|
||||||
log(" allow descending into submodules and write a flattened view of the design\n");
|
log(" allow descending into submodules and write a flattened view of the design\n");
|
||||||
log(" hierarchy starting at the selected top\n");
|
log(" hierarchy starting at the selected top\n");
|
||||||
|
log("\n");
|
||||||
|
log(" -no_version\n");
|
||||||
|
log(" don't write Yosys version\n");
|
||||||
log("\n");
|
log("\n");
|
||||||
log("This command is able to ingest all combinational cells except for:\n");
|
log("This command is able to ingest all combinational cells except for:\n");
|
||||||
log("\n");
|
log("\n");
|
||||||
|
@ -1353,15 +1356,21 @@ struct Aiger2Backend : Backend {
|
||||||
size_t argidx;
|
size_t argidx;
|
||||||
AigerWriter writer;
|
AigerWriter writer;
|
||||||
writer.const_folding = true;
|
writer.const_folding = true;
|
||||||
|
bool ys_version = true;
|
||||||
for (argidx = 1; argidx < args.size(); argidx++) {
|
for (argidx = 1; argidx < args.size(); argidx++) {
|
||||||
if (args[argidx] == "-strash")
|
if (args[argidx] == "-strash")
|
||||||
writer.strashing = true;
|
writer.strashing = true;
|
||||||
else if (args[argidx] == "-flatten")
|
else if (args[argidx] == "-flatten")
|
||||||
writer.flatten = true;
|
writer.flatten = true;
|
||||||
|
else if (args[argidx] == "-no_version")
|
||||||
|
ys_version = false;
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
extra_args(f, filename, args, argidx);
|
extra_args(f, filename, args, argidx);
|
||||||
|
// We don't actually ever print version yet,
|
||||||
|
// we have the arg just for consistency
|
||||||
|
(void)ys_version;
|
||||||
|
|
||||||
Module *top = design->top_module();
|
Module *top = design->top_module();
|
||||||
|
|
||||||
|
@ -1414,6 +1423,9 @@ struct XAiger2Backend : Backend {
|
||||||
log(" reintegrate a mapping\n");
|
log(" reintegrate a mapping\n");
|
||||||
log(" (conflicts with -flatten)\n");
|
log(" (conflicts with -flatten)\n");
|
||||||
log("\n");
|
log("\n");
|
||||||
|
log(" -no_version\n");
|
||||||
|
log(" don't write Yosys version\n");
|
||||||
|
log("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, Design *design) override
|
void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, Design *design) override
|
||||||
|
@ -1423,6 +1435,7 @@ struct XAiger2Backend : Backend {
|
||||||
size_t argidx;
|
size_t argidx;
|
||||||
XAigerWriter writer;
|
XAigerWriter writer;
|
||||||
std::string map_filename;
|
std::string map_filename;
|
||||||
|
bool ys_version = true;
|
||||||
writer.const_folding = true;
|
writer.const_folding = true;
|
||||||
for (argidx = 1; argidx < args.size(); argidx++) {
|
for (argidx = 1; argidx < args.size(); argidx++) {
|
||||||
if (args[argidx] == "-strash")
|
if (args[argidx] == "-strash")
|
||||||
|
@ -1433,10 +1446,15 @@ struct XAiger2Backend : Backend {
|
||||||
writer.mapping_prep = true;
|
writer.mapping_prep = true;
|
||||||
else if (args[argidx] == "-map2" && argidx + 1 < args.size())
|
else if (args[argidx] == "-map2" && argidx + 1 < args.size())
|
||||||
map_filename = args[++argidx];
|
map_filename = args[++argidx];
|
||||||
|
else if (args[argidx] == "-no_version")
|
||||||
|
ys_version = false;
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
extra_args(f, filename, args, argidx);
|
extra_args(f, filename, args, argidx);
|
||||||
|
// We don't actually ever print version yet,
|
||||||
|
// we have the arg just for consistency
|
||||||
|
(void)ys_version;
|
||||||
|
|
||||||
Module *top = design->top_module();
|
Module *top = design->top_module();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue