mirror of https://github.com/YosysHQ/yosys.git
Added extract -verbose and -map ilang support
This commit is contained in:
parent
f28b6aff40
commit
da3d55a29c
|
@ -185,6 +185,7 @@ struct ExtractPass : public Pass {
|
||||||
log_push();
|
log_push();
|
||||||
|
|
||||||
std::string filename;
|
std::string filename;
|
||||||
|
bool verbose;
|
||||||
|
|
||||||
size_t argidx;
|
size_t argidx;
|
||||||
for (argidx = 1; argidx < args.size(); argidx++) {
|
for (argidx = 1; argidx < args.size(); argidx++) {
|
||||||
|
@ -192,21 +193,33 @@ struct ExtractPass : public Pass {
|
||||||
filename = args[++argidx];
|
filename = args[++argidx];
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (args[argidx] == "-verbose") {
|
||||||
|
verbose = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
extra_args(args, argidx, design);
|
extra_args(args, argidx, design);
|
||||||
|
|
||||||
if (filename.empty())
|
if (filename.empty())
|
||||||
log_cmd_error("Missing option -map <verilog_file>.\n");
|
log_cmd_error("Missing option -map <verilog_or_ilang_file>.\n");
|
||||||
|
|
||||||
RTLIL::Design *map = new RTLIL::Design;
|
RTLIL::Design *map = new RTLIL::Design;
|
||||||
FILE *f = fopen(filename.c_str(), "rt");
|
FILE *f = fopen(filename.c_str(), "rt");
|
||||||
if (f == NULL)
|
if (f == NULL)
|
||||||
log_error("Can't open map file `%s'\n", filename.c_str());
|
log_error("Can't open map file `%s'\n", filename.c_str());
|
||||||
Frontend::frontend_call(map, f, filename, "verilog");
|
if (filename.size() > 3 && filename.substr(filename.size()-3) == ".il")
|
||||||
|
Frontend::frontend_call(map, f, filename, "ilang");
|
||||||
|
else
|
||||||
|
Frontend::frontend_call(map, f, filename, "verilog");
|
||||||
fclose(f);
|
fclose(f);
|
||||||
|
|
||||||
SubCircuit::Solver solver;
|
SubCircuit::Solver solver;
|
||||||
|
std::vector<SubCircuit::Solver::Result> results;
|
||||||
|
|
||||||
|
if (verbose)
|
||||||
|
solver.setVerbose();
|
||||||
|
|
||||||
std::map<std::string, RTLIL::Module*> needle_map, haystack_map;
|
std::map<std::string, RTLIL::Module*> needle_map, haystack_map;
|
||||||
|
|
||||||
log_header("Creating graphs for SubCircuit library.\n");
|
log_header("Creating graphs for SubCircuit library.\n");
|
||||||
|
@ -233,9 +246,6 @@ struct ExtractPass : public Pass {
|
||||||
|
|
||||||
log_header("Running solver from SubCircuit library.\n");
|
log_header("Running solver from SubCircuit library.\n");
|
||||||
|
|
||||||
solver.setVerbose();
|
|
||||||
std::vector<SubCircuit::Solver::Result> results;
|
|
||||||
|
|
||||||
for (auto &needle_it : needle_map)
|
for (auto &needle_it : needle_map)
|
||||||
for (auto &haystack_it : haystack_map) {
|
for (auto &haystack_it : haystack_map) {
|
||||||
log("Solving for %s in %s.\n", needle_it.first.c_str(), haystack_it.first.c_str());
|
log("Solving for %s in %s.\n", needle_it.first.c_str(), haystack_it.first.c_str());
|
||||||
|
|
Loading…
Reference in New Issue