aboutsummaryrefslogtreecommitdiffstats
path: root/passes/techmap/abc9.cc
diff options
context:
space:
mode:
authorEddie Hung <eddie@fpgeh.com>2019-10-04 17:39:08 -0700
committerEddie Hung <eddie@fpgeh.com>2019-10-04 17:39:08 -0700
commitbbc0e06af3db4da924a3a92ced85adc87cf6abb6 (patch)
treea96251669139f7026733d9583d766ce6b244a258 /passes/techmap/abc9.cc
parentd4212d128b5985cf09f5e7f14bc06e7323e644ac (diff)
parent0acc51c3d82f65f73fa9e475c6fc41beabd925a6 (diff)
downloadyosys-bbc0e06af3db4da924a3a92ced85adc87cf6abb6.tar.gz
yosys-bbc0e06af3db4da924a3a92ced85adc87cf6abb6.tar.bz2
yosys-bbc0e06af3db4da924a3a92ced85adc87cf6abb6.zip
Merge remote-tracking branch 'origin/master' into xaig_dff
Diffstat (limited to 'passes/techmap/abc9.cc')
-rw-r--r--passes/techmap/abc9.cc14
1 files changed, 12 insertions, 2 deletions
diff --git a/passes/techmap/abc9.cc b/passes/techmap/abc9.cc
index 0dbe70a68..6c8527811 100644
--- a/passes/techmap/abc9.cc
+++ b/passes/techmap/abc9.cc
@@ -242,7 +242,7 @@ void abc9_module(RTLIL::Design *design, RTLIL::Module *module, std::string scrip
bool cleanup, vector<int> lut_costs, bool /*dff_mode*/, std::string /*clk_str*/,
bool /*keepff*/, std::string delay_target, std::string /*lutin_shared*/, bool fast_mode,
bool show_tempdir, std::string box_file, std::string lut_file,
- std::string wire_delay, const dict<int,IdString> &box_lookup
+ std::string wire_delay, const dict<int,IdString> &box_lookup, bool nomfs
)
{
map_autoidx = autoidx++;
@@ -307,6 +307,10 @@ void abc9_module(RTLIL::Design *design, RTLIL::Module *module, std::string scrip
for (size_t pos = abc9_script.find("{W}"); pos != std::string::npos; pos = abc9_script.find("{W}", pos))
abc9_script = abc9_script.substr(0, pos) + wire_delay + abc9_script.substr(pos+3);
+ if (nomfs)
+ for (size_t pos = abc9_script.find("&mfs"); pos != std::string::npos; pos = abc9_script.find("&mfs", pos))
+ abc9_script = abc9_script.erase(pos, strlen("&mfs"));
+
abc9_script += stringf("; &write %s/output.aig", tempdir_name.c_str());
abc9_script = add_echos_to_abc9_cmd(abc9_script);
@@ -868,6 +872,7 @@ struct Abc9Pass : public Pass {
std::string delay_target, lutin_shared = "-S 1", wire_delay;
bool fast_mode = false, /*dff_mode = false,*/ keepff = false, cleanup = true;
bool show_tempdir = false;
+ bool nomfs = false;
vector<int> lut_costs;
markgroups = false;
@@ -990,6 +995,10 @@ struct Abc9Pass : public Pass {
wire_delay = "-W " + args[++argidx];
continue;
}
+ if (arg == "-nomfs") {
+ nomfs = true;
+ continue;
+ }
break;
}
extra_args(args, argidx, design);
@@ -1241,7 +1250,8 @@ struct Abc9Pass : public Pass {
sel.selected_members[module->name] = std::move(it.second);
abc9_module(design, module, script_file, exe_file, cleanup, lut_costs, false, "$",
keepff, delay_target, lutin_shared, fast_mode, show_tempdir,
- box_file, lut_file, wire_delay, box_lookup);
+ box_file, lut_file, wire_delay, box_lookup, nomfs);
+ assign_map.set(mod);
}
design->selection_stack.pop_back();
design->selected_active_module.clear();