Execute techmap and arith_map simultaneously
authorEddie Hung <eddie@fpgeh.com>
Tue, 4 Jun 2019 02:36:09 +0000 (19:36 -0700)
committerEddie Hung <eddie@fpgeh.com>
Tue, 4 Jun 2019 02:36:09 +0000 (19:36 -0700)
techlibs/xilinx/synth_xilinx.cc

index c20cac09b5aa521a40af7d1bd293cc576d3a7655..a569c20f4d25bddd401571e8565dd670aad7ccc1 100644 (file)
@@ -229,11 +229,6 @@ struct SynthXilinxPass : public ScriptPass
                        run("dff2dffe");
                        run("opt -full");
 
-                       if (!vpr || help_mode)
-                               run("techmap -map +/xilinx/arith_map.v");
-                       else
-                               run("techmap -map +/xilinx/arith_map.v -D _EXPLICIT_CARRY");
-
                        if (!nosrl || help_mode) {
                                // shregmap operates on bit-level flops, not word-level,
                                //   so break those down here
@@ -242,7 +237,12 @@ struct SynthXilinxPass : public ScriptPass
                                run("shregmap -tech xilinx -minlen 3", "(skip if '-nosrl')");
                        }
 
-                       run("techmap");
+                       if (!vpr || help_mode)
+                               run("techmap -map +/techmap.v -map +/xilinx/arith_map.v");
+                       else
+                               run("techmap -map +/techmap.v +/xilinx/arith_map.v -D _EXPLICIT_CARRY");
+
+
                        run("opt -fast");
                }