aboutsummaryrefslogtreecommitdiffstats
path: root/techlibs/xilinx/synth_xilinx.cc
diff options
context:
space:
mode:
authorEddie Hung <eddie@fpgeh.com>2019-06-04 09:51:47 -0700
committerEddie Hung <eddie@fpgeh.com>2019-06-04 09:51:47 -0700
commite260150321f3410056da64f83783b470caa89384 (patch)
treefe090a3395f8833a0470fdcfb30126890b5cbd96 /techlibs/xilinx/synth_xilinx.cc
parent9b9bd4e19f3da363eb3c90ef27ace282716d2e06 (diff)
downloadyosys-e260150321f3410056da64f83783b470caa89384.tar.gz
yosys-e260150321f3410056da64f83783b470caa89384.tar.bz2
yosys-e260150321f3410056da64f83783b470caa89384.zip
Add mux_map.v for wide mux
Diffstat (limited to 'techlibs/xilinx/synth_xilinx.cc')
-rw-r--r--techlibs/xilinx/synth_xilinx.cc24
1 files changed, 15 insertions, 9 deletions
diff --git a/techlibs/xilinx/synth_xilinx.cc b/techlibs/xilinx/synth_xilinx.cc
index f45126dc5..360418975 100644
--- a/techlibs/xilinx/synth_xilinx.cc
+++ b/techlibs/xilinx/synth_xilinx.cc
@@ -267,15 +267,21 @@ struct SynthXilinxPass : public ScriptPass
run("shregmap -tech xilinx -minlen 3", "(skip if '-nosrl')");
}
- if (vpr && !nocarry && !help_mode)
- run("techmap -map +/techmap.v -map +/xilinx/arith_map.v -D _EXPLICIT_CARRY");
- else if (abc == "abc9" && !nocarry && !help_mode)
- run("techmap -map +/techmap.v -map +/xilinx/arith_map.v -D _CLB_CARRY");
- else if (!nocarry || help_mode)
- run("techmap -map +/techmap.v -map +/xilinx/arith_map.v", "(skip if '-nocarry')");
- else
- run("techmap -map +/techmap.v");
-
+ std::string techmap_files = " -map +/techmap.v";
+ if (help_mode)
+ techmap_files += " [-map +/xilinx/mux_map.v]";
+ else if (!nomux)
+ techmap_files += " -map +/xilinx/mux_map.v";
+ if (help_mode)
+ techmap_files += " [-map +/xilinx/arith_map.v]";
+ else if (!nocarry) {
+ techmap_files += " -map +/xilinx/arith_map.v";
+ if (vpr)
+ techmap_files += " -D _EXPLICIT_CARRY";
+ else if (abc == "abc9")
+ techmap_files += " -D _CLB_CARRY";
+ }
+ run("techmap " + techmap_files);
run("opt -fast");
}