Remove dff init altogether
authorPepijn de Vos <pepijndevos@gmail.com>
Tue, 19 Nov 2019 14:53:44 +0000 (15:53 +0100)
committerPepijn de Vos <pepijndevos@gmail.com>
Tue, 19 Nov 2019 14:53:44 +0000 (15:53 +0100)
The hardware does not actually support it.
In reality it is always initialised to its reset value.

techlibs/gowin/cells_map.v
techlibs/gowin/synth_gowin.cc

index 881c2e9bb9b9edebc451684967385383cc8df4b4..9845e56a7463521aaa016a9be959c7dcb45416c1 100644 (file)
@@ -1,9 +1,10 @@
-//TODO all DFF* have INIT
+//All DFF* have INIT, but the hardware is always initialised to the reset
+//value regardless. The parameter is ignored.
 
 // DFFN      D Flip-Flop with Negative-Edge Clock
 module  \$_DFF_N_ (input D, C, output Q); DFFN _TECHMAP_REPLACE_ (.D(D), .Q(Q), .CLK(C)); endmodule
 // DFF       D Flip-Flop
-module  \$_DFF_P_ #(parameter INIT = 1'b0) (input D, C, output Q); DFF  #(.INIT(INIT)) _TECHMAP_REPLACE_ (.D(D), .Q(Q), .CLK(C)); endmodule
+module  \$_DFF_P_ (input D, C, output Q); DFF _TECHMAP_REPLACE_ (.D(D), .Q(Q), .CLK(C)); endmodule
 
 // DFFE      D Flip-Flop with Clock Enable
 module  \$_DFFE_PP_ (input D, C, E, output Q); DFFE _TECHMAP_REPLACE_ (.D(D), .Q(Q), .CLK(C), .CE(E)); endmodule
index bb6d44e003505e177b1df25a08d226ceb1ec96f3..3c14264147496e0cb516249441f0c87089dae73d 100644 (file)
@@ -238,7 +238,6 @@ struct SynthGowinPass : public ScriptPass
                        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 -tinoutpad IOBUF OEN:O:I:IO", "(unless -noiopads)");
-                       run("dffinit  -ff DFF Q INIT");
                        run("clean");
 
                }