synth_gowin: move splitnets to after iopadmap (#2435)
authorPepijn de Vos <pepijndevos@gmail.com>
Sun, 7 Nov 2021 17:00:18 +0000 (18:00 +0100)
committerGitHub <noreply@github.com>
Sun, 7 Nov 2021 17:00:18 +0000 (18:00 +0100)
techlibs/gowin/synth_gowin.cc

index cfc856deb23d6b0f7d8a0ee688a3a7a1bb996114..1f34a1d1d14fe0eedd07d0b39262a389528c0b30 100644 (file)
@@ -238,7 +238,6 @@ struct SynthGowinPass : public ScriptPass
                        run("opt -fast");
                        if (retime || help_mode)
                                run("abc -dff -D 1", "(only if -retime)");
-                       run("splitnets");
                        if (!noiopads || help_mode)
                                run("iopadmap -bits -inpad IBUF O:I -outpad OBUF I:O "
                                        "-toutpad $__GW_TBUF OE:I:O -tinoutpad $__GW_IOBUF OE:O:I:IO", "(unless -noiopads)");
@@ -278,6 +277,8 @@ struct SynthGowinPass : public ScriptPass
                        run("opt_lut_ins -tech gowin");
                        run("setundef -undriven -params -zero");
                        run("hilomap -singleton -hicell VCC V -locell GND G");
+                       if (!vout_file.empty() || help_mode) // vendor output requires 1-bit wires
+                               run("splitnets -ports", "(only if -vout used)");
                        run("clean");
                        run("autoname");
                }
@@ -293,7 +294,7 @@ struct SynthGowinPass : public ScriptPass
                if (check_label("vout"))
                {
                        if (!vout_file.empty() || help_mode)
-                                run(stringf("write_verilog -decimal -attr2comment -defparam -renameprefix gen %s",
+                                run(stringf("write_verilog -simple-lhs -decimal -attr2comment -defparam -renameprefix gen %s",
                                                help_mode ? "<file-name>" : vout_file.c_str()));
                        if (!json_file.empty() || help_mode)
                                 run(stringf("write_json %s",