mirror of
https://github.com/YosysHQ/yosys
synced 2025-04-13 04:28:18 +00:00
Interpret "abc9 -lut" as lut string only if [0-9:]
This commit is contained in:
parent
f52c6efd9d
commit
3b559de6e9
|
@ -981,29 +981,28 @@ struct Abc9Pass : public Pass {
|
||||||
//}
|
//}
|
||||||
if (arg == "-lut" && argidx+1 < args.size()) {
|
if (arg == "-lut" && argidx+1 < args.size()) {
|
||||||
string arg = args[++argidx];
|
string arg = args[++argidx];
|
||||||
size_t pos = arg.find_first_of(':');
|
if (arg.find_first_not_of("0123456789:") == std::string::npos) {
|
||||||
int lut_mode = 0, lut_mode2 = 0;
|
size_t pos = arg.find_first_of(':');
|
||||||
if (pos != string::npos) {
|
int lut_mode = 0, lut_mode2 = 0;
|
||||||
lut_mode = atoi(arg.substr(0, pos).c_str());
|
|
||||||
lut_mode2 = atoi(arg.substr(pos+1).c_str());
|
|
||||||
} else {
|
|
||||||
pos = arg.find_first_of('.');
|
|
||||||
if (pos != string::npos) {
|
if (pos != string::npos) {
|
||||||
lut_file = arg;
|
lut_mode = atoi(arg.substr(0, pos).c_str());
|
||||||
rewrite_filename(lut_file);
|
lut_mode2 = atoi(arg.substr(pos+1).c_str());
|
||||||
if (!lut_file.empty() && !is_absolute_path(lut_file))
|
} else {
|
||||||
lut_file = std::string(pwd) + "/" + lut_file;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
lut_mode = atoi(arg.c_str());
|
lut_mode = atoi(arg.c_str());
|
||||||
lut_mode2 = lut_mode;
|
lut_mode2 = lut_mode;
|
||||||
}
|
}
|
||||||
|
lut_costs.clear();
|
||||||
|
for (int i = 0; i < lut_mode; i++)
|
||||||
|
lut_costs.push_back(1);
|
||||||
|
for (int i = lut_mode; i < lut_mode2; i++)
|
||||||
|
lut_costs.push_back(2 << (i - lut_mode));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
lut_file = arg;
|
||||||
|
rewrite_filename(lut_file);
|
||||||
|
if (!lut_file.empty() && !is_absolute_path(lut_file) && lut_file[0] != '+')
|
||||||
|
lut_file = std::string(pwd) + "/" + lut_file;
|
||||||
}
|
}
|
||||||
lut_costs.clear();
|
|
||||||
for (int i = 0; i < lut_mode; i++)
|
|
||||||
lut_costs.push_back(1);
|
|
||||||
for (int i = lut_mode; i < lut_mode2; i++)
|
|
||||||
lut_costs.push_back(2 << (i - lut_mode));
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (arg == "-luts" && argidx+1 < args.size()) {
|
if (arg == "-luts" && argidx+1 < args.size()) {
|
||||||
|
@ -1072,7 +1071,7 @@ struct Abc9Pass : public Pass {
|
||||||
box_file = "+/dummy.box";
|
box_file = "+/dummy.box";
|
||||||
|
|
||||||
rewrite_filename(box_file);
|
rewrite_filename(box_file);
|
||||||
if (!box_file.empty() && !is_absolute_path(box_file))
|
if (!box_file.empty() && !is_absolute_path(box_file) && box_file[0] != '+')
|
||||||
box_file = std::string(pwd) + "/" + box_file;
|
box_file = std::string(pwd) + "/" + box_file;
|
||||||
|
|
||||||
dict<int,IdString> box_lookup;
|
dict<int,IdString> box_lookup;
|
||||||
|
|
Loading…
Reference in a new issue