fuzzers: Add more programmable DSP inversions

Signed-off-by: David Shah <dave@ds0.me>
diff --git a/fuzzers/ECP5/071-dsp_constmux/fuzzer.py b/fuzzers/ECP5/071-dsp_constmux/fuzzer.py
index 25a1c36..54cf9e6 100644
--- a/fuzzers/ECP5/071-dsp_constmux/fuzzer.py
+++ b/fuzzers/ECP5/071-dsp_constmux/fuzzer.py
@@ -24,6 +24,10 @@
                                             tiles=dsp_tiles)),
     ("MULT18_R13C9", "MULT18_5", FuzzConfig(job="MULT18_5", family="ECP5", device="LFE5U-25F", ncl="empty.ncl",
                                             tiles=dsp_tiles)),
+    ("ALU54_R13C7", "ALU54_3", FuzzConfig(job="ALU54_3", family="ECP5", device="LFE5U-25F", ncl="empty.ncl",
+                                            tiles=dsp_tiles)),
+    ("ALU54_R13C11", "ALU54_7", FuzzConfig(job="ALU54_7", family="ECP5", device="LFE5U-25F", ncl="empty.ncl",
+                                            tiles=dsp_tiles)),
 ]
 
 
@@ -51,7 +55,15 @@
                 nonrouting.fuzz_enum_setting(cfg, "{}.{}MUX".format(mult, sig), [sig, "INV"],
                                              lambda x: get_substs(sig, x), empty_bitfile,
                                              False)
-
+        extra_ports = []
+        if cellmodel == "ALU54":
+            extra_ports = ["OP{}".format(i) for i in range(11)]
+        if cellmodel == "MULT18":
+            extra_ports = ["SIGNEDA", "SIGNEDB", "SOURCEA", "SOURCEB"]
+        for port in extra_ports:
+            nonrouting.fuzz_enum_setting(cfg, "{}.{}MUX".format(mult, port), [port, "INV"],
+                                         lambda x: get_substs(port, x), empty_bitfile,
+                                         False)
     fuzzloops.parallel_foreach(jobs, per_job)