Added extended ABC options for PP3

Signed-off-by: Maciej Kurc <mkurc@antmicro.com>
diff --git a/ql-qlf-plugin/pp3/pp3_lutdefs.txt b/ql-qlf-plugin/pp3/pp3_lutdefs.txt
new file mode 100644
index 0000000..747f2a7
--- /dev/null
+++ b/ql-qlf-plugin/pp3/pp3_lutdefs.txt
@@ -0,0 +1,4 @@
+1 1.00 1.00
+2 2.00 1.00
+3 2.00 1.00
+4 8.00 1.00
diff --git a/ql-qlf-plugin/synth_quicklogic.cc b/ql-qlf-plugin/synth_quicklogic.cc
index db82618..8d1dce1 100644
--- a/ql-qlf-plugin/synth_quicklogic.cc
+++ b/ql-qlf-plugin/synth_quicklogic.cc
@@ -100,7 +100,7 @@
         inferAdder = true;
         inferBram = true;
         abcOpt = true;
-        abc9 = true;        
+        abc9 = true;
         noffmap = false;
         nodsp = false;
     }
@@ -315,7 +315,15 @@
                         run("abc9 -maxlut 4 -dff");
                         run("techmap -map +/quicklogic/" + family + "_abc9_unmap.v");
                     } else {
-                        run("abc -luts 1,2,2,4 -dress");
+                        std::string lutDefs = "+/quicklogic/" + family + "_lutdefs.txt";
+                        rewrite_filename(lutDefs);
+
+                        std::string abcArgs = "+read_lut," + lutDefs + ";"
+                            "strash;ifraig;scorr;dc2;dretime;strash;dch,-f;if;mfs2;" // Common Yosys ABC script
+                            "sweep;eliminate;if;mfs;lutpack;" // Optimization script
+                            "dress"; // "dress" to preserve names
+
+                        run("abc -script " + abcArgs);
                     }
                 }
             }