Add -tech xilinx_static
authorEddie Hung <eddie@fpgeh.com>
Wed, 5 Jun 2019 18:14:14 +0000 (11:14 -0700)
committerEddie Hung <eddie@fpgeh.com>
Wed, 5 Jun 2019 18:14:14 +0000 (11:14 -0700)
passes/techmap/shregmap.cc

index add4e9e2fd430dc98adc56a09172f167007f3431..ef285160f841e0dd6e2bbf7fe243493492af9e7b 100644 (file)
@@ -716,7 +716,7 @@ struct ShregmapPass : public Pass {
                                        opts.zinit = true;
                                        opts.tech = new ShregmapTechGreenpak4;
                                }
-                               else if (tech == "xilinx_dynamic") {
+                               else if (tech == "xilinx_static" || tech == "xilinx_dynamic") {
                                        opts.init = true;
                                        opts.ffcells["$_DFF_P_"] = make_pair(IdString("\\D"), IdString("\\Q"));
                                        opts.ffcells["$_DFF_N_"] = make_pair(IdString("\\D"), IdString("\\Q"));
@@ -724,7 +724,18 @@ struct ShregmapPass : public Pass {
                                        opts.ffcells["$_DFFE_PN_"] = make_pair(IdString("\\D"), IdString("\\Q"));
                                        opts.ffcells["$_DFFE_NP_"] = make_pair(IdString("\\D"), IdString("\\Q"));
                                        opts.ffcells["$_DFFE_NN_"] = make_pair(IdString("\\D"), IdString("\\Q"));
-                                       opts.tech = new ShregmapTechXilinx7Dynamic(opts);
+                                       opts.ffcells["FDRE"] = make_pair(IdString("\\D"), IdString("\\Q"));
+                                       opts.ffcells["FDRE_1"] = make_pair(IdString("\\D"), IdString("\\Q"));
+                                       opts.ffcells["FDSE"] = make_pair(IdString("\\D"), IdString("\\Q"));
+                                       opts.ffcells["FDSE_1"] = make_pair(IdString("\\D"), IdString("\\Q"));
+                                       opts.ffcells["FDCE"] = make_pair(IdString("\\D"), IdString("\\Q"));
+                                       opts.ffcells["FDCE_1"] = make_pair(IdString("\\D"), IdString("\\Q"));
+                                       opts.ffcells["FDPE"] = make_pair(IdString("\\D"), IdString("\\Q"));
+                                       opts.ffcells["FDPE_1"] = make_pair(IdString("\\D"), IdString("\\Q"));
+                                       if (tech == "xilinx_static")
+                                               opts.tech = new ShregmapTechXilinx7Dynamic(opts);
+                                       else if (tech == "xilinx_dynamic")
+                                               opts.tech = new ShregmapTechXilinx7Dynamic(opts);
                                } else {
                                        argidx--;
                                        break;