diff options
| author | Marcin KoĆcielnicki <koriakin@0x04.net> | 2019-08-16 03:14:30 +0000 | 
|---|---|---|
| committer | Marcin KoĆcielnicki <koriakin@0x04.net> | 2019-09-07 16:30:43 +0200 | 
| commit | fda94311ee6e3ec8de0e85e91251a2744673abaf (patch) | |
| tree | 981082986989dbdadc0a2ecbc6511bc7351d9a45 /techlibs/xilinx/xc7_ff_map.v | |
| parent | a82e8df7d37c02258d36223bb16833331dc8808e (diff) | |
| download | yosys-fda94311ee6e3ec8de0e85e91251a2744673abaf.tar.gz yosys-fda94311ee6e3ec8de0e85e91251a2744673abaf.tar.bz2 yosys-fda94311ee6e3ec8de0e85e91251a2744673abaf.zip  | |
synth_xilinx: Support init values on Spartan 6 flip-flops properly.
Diffstat (limited to 'techlibs/xilinx/xc7_ff_map.v')
| -rw-r--r-- | techlibs/xilinx/xc7_ff_map.v | 78 | 
1 files changed, 78 insertions, 0 deletions
diff --git a/techlibs/xilinx/xc7_ff_map.v b/techlibs/xilinx/xc7_ff_map.v new file mode 100644 index 000000000..f6197b78b --- /dev/null +++ b/techlibs/xilinx/xc7_ff_map.v @@ -0,0 +1,78 @@ +/* + *  yosys -- Yosys Open SYnthesis Suite + * + *  Copyright (C) 2012  Clifford Wolf <clifford@clifford.at> + * + *  Permission to use, copy, modify, and/or distribute this software for any + *  purpose with or without fee is hereby granted, provided that the above + *  copyright notice and this permission notice appear in all copies. + * + *  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + *  WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + *  MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + *  ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + *  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + *  ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + *  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +// ============================================================================ +// FF mapping + +`ifndef _NO_FFS + +module  \$_DFF_N_   (input D, C, output Q); +  parameter _TECHMAP_WIREINIT_Q_ = 1'bx; +  FDRE_1 #(.INIT(_TECHMAP_WIREINIT_Q_)) _TECHMAP_REPLACE_ (.D(D), .Q(Q), .C(C), .CE(1'b1), .R(1'b0)); +endmodule +module  \$_DFF_P_   (input D, C, output Q); +  parameter _TECHMAP_WIREINIT_Q_ = 1'bx; +  FDRE   #(.INIT(_TECHMAP_WIREINIT_Q_)) _TECHMAP_REPLACE_ (.D(D), .Q(Q), .C(C), .CE(1'b1), .R(1'b0)); +endmodule + +module  \$_DFFE_NP_ (input D, C, E, output Q); +  parameter _TECHMAP_WIREINIT_Q_ = 1'bx; +  FDRE_1 #(.INIT(_TECHMAP_WIREINIT_Q_)) _TECHMAP_REPLACE_ (.D(D), .Q(Q), .C(C), .CE(E),    .R(1'b0)); +endmodule +module  \$_DFFE_PP_ (input D, C, E, output Q); +  parameter _TECHMAP_WIREINIT_Q_ = 1'bx; +  FDRE   #(.INIT(_TECHMAP_WIREINIT_Q_)) _TECHMAP_REPLACE_ (.D(D), .Q(Q), .C(C), .CE(E),    .R(1'b0)); +endmodule + +module  \$_DFF_NN0_ (input D, C, R, output Q); +  parameter _TECHMAP_WIREINIT_Q_ = 1'bx; +  FDCE_1 #(.INIT(_TECHMAP_WIREINIT_Q_)) _TECHMAP_REPLACE_ (.D(D), .Q(Q), .C(C), .CE(1'b1), .CLR(!R)); +endmodule +module  \$_DFF_NP0_ (input D, C, R, output Q); +  parameter _TECHMAP_WIREINIT_Q_ = 1'bx; +  FDCE_1 #(.INIT(_TECHMAP_WIREINIT_Q_)) _TECHMAP_REPLACE_ (.D(D), .Q(Q), .C(C), .CE(1'b1), .CLR( R)); +endmodule +module  \$_DFF_PN0_ (input D, C, R, output Q); +  parameter _TECHMAP_WIREINIT_Q_ = 1'bx; +  FDCE   #(.INIT(_TECHMAP_WIREINIT_Q_)) _TECHMAP_REPLACE_ (.D(D), .Q(Q), .C(C), .CE(1'b1), .CLR(!R)); +endmodule +module  \$_DFF_PP0_ (input D, C, R, output Q); +  parameter _TECHMAP_WIREINIT_Q_ = 1'bx; +  FDCE   #(.INIT(_TECHMAP_WIREINIT_Q_)) _TECHMAP_REPLACE_ (.D(D), .Q(Q), .C(C), .CE(1'b1), .CLR( R)); +endmodule + +module  \$_DFF_NN1_ (input D, C, R, output Q); +  parameter _TECHMAP_WIREINIT_Q_ = 1'bx; +  FDPE_1 #(.INIT(_TECHMAP_WIREINIT_Q_)) _TECHMAP_REPLACE_ (.D(D), .Q(Q), .C(C), .CE(1'b1), .PRE(!R)); +endmodule +module  \$_DFF_NP1_ (input D, C, R, output Q); +  parameter _TECHMAP_WIREINIT_Q_ = 1'bx; +  FDPE_1 #(.INIT(_TECHMAP_WIREINIT_Q_)) _TECHMAP_REPLACE_ (.D(D), .Q(Q), .C(C), .CE(1'b1), .PRE( R)); +endmodule +module  \$_DFF_PN1_ (input D, C, R, output Q); +  parameter _TECHMAP_WIREINIT_Q_ = 1'bx; +  FDPE   #(.INIT(_TECHMAP_WIREINIT_Q_)) _TECHMAP_REPLACE_ (.D(D), .Q(Q), .C(C), .CE(1'b1), .PRE(!R)); +endmodule +module  \$_DFF_PP1_ (input D, C, R, output Q); +  parameter _TECHMAP_WIREINIT_Q_ = 1'bx; +  FDPE   #(.INIT(_TECHMAP_WIREINIT_Q_)) _TECHMAP_REPLACE_ (.D(D), .Q(Q), .C(C), .CE(1'b1), .PRE( R)); +endmodule + +`endif +  | 
