aboutsummaryrefslogtreecommitdiffstats
path: root/techlibs/common
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2018-03-04 17:13:45 +0100
committerClifford Wolf <clifford@clifford.at>2018-03-04 17:13:45 +0100
commit27dd500d31c07991d5a6f01c95f5519d7225c427 (patch)
treeef6f61f8219ba28e5edd6f23e307c93a7956c4ed /techlibs/common
parent8dcf3d0c7698c9556f5049dd6d912396724bf17a (diff)
downloadyosys-27dd500d31c07991d5a6f01c95f5519d7225c427.tar.gz
yosys-27dd500d31c07991d5a6f01c95f5519d7225c427.tar.bz2
yosys-27dd500d31c07991d5a6f01c95f5519d7225c427.zip
Add "synth -noshare"
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Diffstat (limited to 'techlibs/common')
-rw-r--r--techlibs/common/synth.cc13
1 files changed, 11 insertions, 2 deletions
diff --git a/techlibs/common/synth.cc b/techlibs/common/synth.cc
index 11ebe5339..4ca34839e 100644
--- a/techlibs/common/synth.cc
+++ b/techlibs/common/synth.cc
@@ -64,6 +64,9 @@ struct SynthPass : public ScriptPass
log(" -nordff\n");
log(" passed to 'memory'. prohibits merging of FFs into memory read ports\n");
log("\n");
+ log(" -noshare\n");
+ log(" do not run SAT-based resource sharing\n");
+ log("\n");
log(" -run <from_label>[:<to_label>]\n");
log(" only run the commands between the labels (see below). an empty\n");
log(" from label is synonymous to 'begin', and empty to label is\n");
@@ -76,7 +79,7 @@ struct SynthPass : public ScriptPass
}
string top_module, fsm_opts, memory_opts;
- bool autotop, flatten, noalumacc, nofsm, noabc;
+ bool autotop, flatten, noalumacc, nofsm, noabc, noshare;
virtual void clear_flags() YS_OVERRIDE
{
@@ -89,6 +92,7 @@ struct SynthPass : public ScriptPass
noalumacc = false;
nofsm = false;
noabc = false;
+ noshare = false;
}
virtual void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE
@@ -142,6 +146,10 @@ struct SynthPass : public ScriptPass
memory_opts += " -nordff";
continue;
}
+ if (args[argidx] == "-noshare") {
+ noshare = true;
+ continue;
+ }
break;
}
extra_args(args, argidx, design);
@@ -186,7 +194,8 @@ struct SynthPass : public ScriptPass
run("wreduce");
if (!noalumacc)
run("alumacc");
- run("share");
+ if (!noshare)
+ run("share");
run("opt");
if (!nofsm)
run("fsm" + fsm_opts);