[prim] Rework how primgen.py writes out parameter lists for instantiations

This commit changes primgen.sv to put just a single parameter per line and
to skip parameter lists completely if empty. This prevents many lint
errors.

Signed-off-by: Pirmin Vogel <vogelpi@lowrisc.org>
diff --git a/hw/ip/prim/util/primgen.py b/hw/ip/prim/util/primgen.py
index 1bed076..9fa3611 100755
--- a/hw/ip/prim/util/primgen.py
+++ b/hw/ip/prim/util/primgen.py
@@ -233,11 +233,14 @@
 
 
 def _instance_sv(prim_name, techlib, parameters):
-    s = "prim_{techlib}_{prim_name} #(\n"
-    s += ", ".join(".{p}({p})".format(p=p) for p in parameters)
-    s += ") u_impl_{techlib} (\n" \
-         "  .*\n" \
-         ");\n"
+    if not parameters:
+        s = "    prim_{techlib}_{prim_name} u_impl_{techlib} (\n"
+    else:
+        s = "    prim_{techlib}_{prim_name} #(\n"
+        s += ",\n".join("      .{p}({p})".format(p=p) for p in parameters)
+        s += "\n    ) u_impl_{techlib} (\n"
+    s += "      .*\n" \
+         "    );\n"
     return s.format(prim_name=prim_name, techlib=techlib)
 
 
@@ -252,9 +255,9 @@
         # Don't output the if/else blocks if there no alternatives exist.
         # We still want the generate block to keep hierarchical path names
         # stable, even if more than one techlib is found.
-        s = " if (1) begin : gen_generic\n"
+        s = "  if (1) begin : gen_generic\n"
         s += _instance_sv(prim_name, "generic", parameters) + "\n"
-        s += "end"
+        s += "  end"
         return s
 
     nr_techlibs = len(techlibs_generic_last)