Revert "Revert "Move ff_map back after ABC for shregmap""
authorEddie Hung <eddie@fpgeh.com>
Mon, 10 Jun 2019 21:37:09 +0000 (14:37 -0700)
committerEddie Hung <eddie@fpgeh.com>
Mon, 10 Jun 2019 21:37:09 +0000 (14:37 -0700)
This reverts commit e473e7456545d702c011ee7872956f94a8522865.

techlibs/xilinx/synth_xilinx.cc

index 689a401357f66a69ae272cadd4e311a87c7384ce..f5f8c43e0d0ab0961c90161477efc1fba222d528 100644 (file)
@@ -291,9 +291,7 @@ struct SynthXilinxPass : public ScriptPass
                if (check_label("map_cells")) {
                        if (!nomux || help_mode)
                                run("muxcover -mux8 -mux16", "(skip if '-nomux')");
-                       run("techmap -map +/techmap.v -map +/xilinx/cells_map.v -map +/xilinx/ff_map.v");
-                       run("dffinit -ff FDRE Q INIT -ff FDCE Q INIT -ff FDPE Q INIT -ff FDSE Q INIT "
-                                       "-ff FDRE_1 Q INIT -ff FDCE_1 Q INIT -ff FDPE_1 Q INIT -ff FDSE_1 Q INIT");
+                       run("techmap -map +/techmap.v -map +/xilinx/cells_map.v");
                        run("clean");
                }
 
@@ -309,8 +307,10 @@ struct SynthXilinxPass : public ScriptPass
                        // This shregmap call infers fixed length shift registers after abc
                        //   has performed any necessary retiming
                        if (!nosrl || help_mode)
-                               run("shregmap -tech xilinx_static -minlen 3", "(skip if '-nosrl')");
-                       run("techmap -map +/xilinx/lut_map.v -map +/xilinx/cells_map.v");
+                               run("shregmap -minlen 3 -init -params -enpol any_or_none", "(skip if '-nosrl')");
+                       run("techmap -map +/xilinx/lut_map.v -map +/xilinx/cells_map.v -map +/xilinx/ff_map.v");
+                       run("dffinit -ff FDRE Q INIT -ff FDCE Q INIT -ff FDPE Q INIT -ff FDSE Q INIT "
+                                       "-ff FDRE_1 Q INIT -ff FDCE_1 Q INIT -ff FDPE_1 Q INIT -ff FDSE_1 Q INIT");
                        run("clean");
                }