diff options
author | Eddie Hung <eddie@fpgeh.com> | 2019-06-21 18:12:07 -0700 |
---|---|---|
committer | Eddie Hung <eddie@fpgeh.com> | 2019-06-21 18:12:07 -0700 |
commit | 39e0e006d5a6b1ae45d95d75895284e3c48f47d7 (patch) | |
tree | 6338cde26d2728f833a199345c471a08d4787feb /techlibs | |
parent | 6c2cb519965ac9b4057a90cd46f474c092967be2 (diff) | |
download | yosys-39e0e006d5a6b1ae45d95d75895284e3c48f47d7.tar.gz yosys-39e0e006d5a6b1ae45d95d75895284e3c48f47d7.tar.bz2 yosys-39e0e006d5a6b1ae45d95d75895284e3c48f47d7.zip |
Fix wreduce call (!!!), tweak muxcover costs
Diffstat (limited to 'techlibs')
-rw-r--r-- | techlibs/xilinx/synth_xilinx.cc | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/techlibs/xilinx/synth_xilinx.cc b/techlibs/xilinx/synth_xilinx.cc index 882ebe439..9724dff94 100644 --- a/techlibs/xilinx/synth_xilinx.cc +++ b/techlibs/xilinx/synth_xilinx.cc @@ -229,7 +229,7 @@ struct SynthXilinxPass : public ScriptPass if (help_mode) run("wreduce [c:* t:$mux %d]", "(no selection if -nomux)"); else - run("wreduce" + nomux ? "" : " c:* t:$mux %d"); + run("wreduce" + std::string(nomux ? "" : " c:* t:$mux %d")); run("peepopt"); run("opt_clean"); run("alumacc"); @@ -271,10 +271,11 @@ struct SynthXilinxPass : public ScriptPass run("dffsr2dff"); run("dff2dffe"); if (!nomux || help_mode) { - run("simplemap t:$mux", " (skip if -nomux)"); - // FIXME: Must specify mux4, even if we don't need it, - // otherwise it will use mux8 as mux4 - run("muxcover -mux4=150 -mux8=200 -mux16=250 -dmux=0", "(skip if -nomux)"); + run("simplemap t:$mux", " (skip if -nomux)"); + // NB: Cost of mux2 is 100; mux8 should cost between 3 and 4 + // of those so that 4:1 muxes and below are implemented + // out of mux2s + run("muxcover -mux8=350 -mux16=400 -dmux=0", "(skip if -nomux)"); } run("opt -full"); |