add IOBUF
authorPepijn de Vos <pepijndevos@gmail.com>
Mon, 28 Oct 2019 14:33:05 +0000 (15:33 +0100)
committerPepijn de Vos <pepijndevos@gmail.com>
Mon, 28 Oct 2019 14:33:05 +0000 (15:33 +0100)
techlibs/gowin/cells_sim.v
techlibs/gowin/synth_gowin.cc

index cc1ac48e692c0cf83e8397d644dc9a9fd15fbb93..a67855dab9afacd236f8ae2742502c980dea0dd6 100644 (file)
@@ -308,6 +308,14 @@ module TBUF (O, I, OEN);
   assign O = OEN ? I : 1'bz;
 endmodule
 
+module IOBUF (O, IO, I, OEN);
+  input I,OEN;
+  output O;
+  inout IO;
+  assign IO = OEN ? I : 1'bz;
+  assign I = IO;
+endmodule
+
 module GSR (input GSRI);
        wire GSRO = GSRI;
 endmodule
index d541edd8423735a62b7d3ab35f8e25d41a7c2377..a70ff93bb011b394839b8c57c66cfa51a14e8070 100644 (file)
@@ -230,7 +230,8 @@ struct SynthGowinPass : public ScriptPass
                        run("techmap -map +/gowin/cells_map.v");
                        run("setundef -undriven -params -zero");
                        run("hilomap -singleton -hicell VCC V -locell GND G");
-                       run("iopadmap -bits -inpad IBUF O:I -outpad OBUF I:O, -toutpad TBUF OEN:I:O", "(unless -noiopads)");
+                       run("iopadmap -bits -inpad IBUF O:I -outpad OBUF I:O "
+                               "-toutpad TBUF OEN:I:O -tinoutpad IOBUF OEN:O:I:IO", "(unless -noiopads)");
                        run("dffinit  -ff DFF Q INIT");
                        run("clean");