If d_bit already in sigbit_chain_next, create extra wire
[yosys.git] / techlibs / xilinx / cells_xtra.sh
1 #!/bin/bash
2
3 set -e
4 libdir="/opt/Xilinx/Vivado/2018.1/data/verilog/src"
5
6 function xtract_cell_decl()
7 {
8 for dir in $libdir/xeclib $libdir/retarget; do
9 [ -f $dir/$1.v ] || continue
10 [ -z "$2" ] || echo $2
11 egrep '^\s*((end)?module|parameter|input|inout|output|(end)?function|(end)?task)' $dir/$1.v |
12 sed -re '/UNPLACED/ d; /^\s*function/,/endfunction/ d; /^\s*task/,/endtask/ d;
13 s,//.*,,; s/#?\(.*/(...);/; s/^(input|output|parameter)/ \1/;
14 s/\s+$//; s/,$/;/; /input|output|parameter/ s/[^;]$/&;/; s/\s+/ /g;
15 s/^ ((end)?module)/\1/; s/^ / /; /module.*_bb/,/endmodule/ d;'
16 echo; return
17 done
18 echo "Can't find $1."
19 exit 1
20 }
21
22 {
23 echo "// Created by cells_xtra.sh from Xilinx models"
24 echo
25
26 # Design elements types listed in Xilinx UG953
27 xtract_cell_decl BSCANE2
28 # xtract_cell_decl BUFG
29 xtract_cell_decl BUFGCE
30 xtract_cell_decl BUFGCE_1
31 #xtract_cell_decl BUFGCTRL
32 xtract_cell_decl BUFGMUX
33 xtract_cell_decl BUFGMUX_1
34 xtract_cell_decl BUFGMUX_CTRL
35 xtract_cell_decl BUFH
36 #xtract_cell_decl BUFHCE
37 xtract_cell_decl BUFIO
38 xtract_cell_decl BUFMR
39 xtract_cell_decl BUFMRCE
40 xtract_cell_decl BUFR
41 xtract_cell_decl CAPTUREE2 "(* keep *)"
42 # xtract_cell_decl CARRY4
43 xtract_cell_decl CFGLUT5
44 xtract_cell_decl DCIRESET "(* keep *)"
45 xtract_cell_decl DNA_PORT
46 xtract_cell_decl DSP48E1
47 xtract_cell_decl EFUSE_USR
48 # xtract_cell_decl FDCE
49 # xtract_cell_decl FDPE
50 # xtract_cell_decl FDRE
51 # xtract_cell_decl FDSE
52 xtract_cell_decl FIFO18E1
53 xtract_cell_decl FIFO36E1
54 xtract_cell_decl FRAME_ECCE2
55 xtract_cell_decl GTHE2_CHANNEL
56 xtract_cell_decl GTHE2_COMMON
57 xtract_cell_decl GTPE2_CHANNEL
58 xtract_cell_decl GTPE2_COMMON
59 xtract_cell_decl GTXE2_CHANNEL
60 xtract_cell_decl GTXE2_COMMON
61 # xtract_cell_decl IBUF
62 xtract_cell_decl IBUF_IBUFDISABLE
63 xtract_cell_decl IBUF_INTERMDISABLE
64 xtract_cell_decl IBUFDS
65 xtract_cell_decl IBUFDS_DIFF_OUT
66 xtract_cell_decl IBUFDS_DIFF_OUT_IBUFDISABLE
67 xtract_cell_decl IBUFDS_DIFF_OUT_INTERMDISABLE
68 xtract_cell_decl IBUFDS_GTE2
69 xtract_cell_decl IBUFDS_IBUFDISABLE
70 xtract_cell_decl IBUFDS_INTERMDISABLE
71 xtract_cell_decl ICAPE2 "(* keep *)"
72 xtract_cell_decl IDDR
73 xtract_cell_decl IDDR_2CLK
74 xtract_cell_decl IDELAYCTRL "(* keep *)"
75 xtract_cell_decl IDELAYE2
76 xtract_cell_decl IN_FIFO
77 xtract_cell_decl IOBUF
78 xtract_cell_decl IOBUF_DCIEN
79 xtract_cell_decl IOBUF_INTERMDISABLE
80 xtract_cell_decl IOBUFDS
81 xtract_cell_decl IOBUFDS_DCIEN
82 xtract_cell_decl IOBUFDS_DIFF_OUT
83 xtract_cell_decl IOBUFDS_DIFF_OUT_DCIEN
84 xtract_cell_decl IOBUFDS_DIFF_OUT_INTERMDISABLE
85 xtract_cell_decl ISERDESE2
86 xtract_cell_decl KEEPER
87 xtract_cell_decl LDCE
88 xtract_cell_decl LDPE
89 # xtract_cell_decl LUT1
90 # xtract_cell_decl LUT2
91 # xtract_cell_decl LUT3
92 # xtract_cell_decl LUT4
93 # xtract_cell_decl LUT5
94 # xtract_cell_decl LUT6
95 #xtract_cell_decl LUT6_2
96 xtract_cell_decl MMCME2_ADV
97 xtract_cell_decl MMCME2_BASE
98 # xtract_cell_decl MUXF7
99 # xtract_cell_decl MUXF8
100 # xtract_cell_decl OBUF
101 xtract_cell_decl OBUFDS
102 xtract_cell_decl OBUFT
103 xtract_cell_decl OBUFTDS
104 xtract_cell_decl ODDR
105 xtract_cell_decl ODELAYE2
106 xtract_cell_decl OSERDESE2
107 xtract_cell_decl OUT_FIFO
108 xtract_cell_decl PHASER_IN
109 xtract_cell_decl PHASER_IN_PHY
110 xtract_cell_decl PHASER_OUT
111 xtract_cell_decl PHASER_OUT_PHY
112 xtract_cell_decl PHASER_REF
113 xtract_cell_decl PHY_CONTROL
114 xtract_cell_decl PLLE2_ADV
115 xtract_cell_decl PLLE2_BASE
116 xtract_cell_decl PS7 "(* keep *)"
117 xtract_cell_decl PULLDOWN
118 xtract_cell_decl PULLUP
119 xtract_cell_decl RAM128X1D
120 xtract_cell_decl RAM128X1S
121 xtract_cell_decl RAM256X1S
122 xtract_cell_decl RAM32M
123 xtract_cell_decl RAM32X1D
124 xtract_cell_decl RAM32X1S
125 xtract_cell_decl RAM32X1S_1
126 xtract_cell_decl RAM32X2S
127 xtract_cell_decl RAM64M
128 xtract_cell_decl RAM64X1D
129 xtract_cell_decl RAM64X1S
130 xtract_cell_decl RAM64X1S_1
131 xtract_cell_decl RAM64X2S
132 # xtract_cell_decl RAMB18E1
133 # xtract_cell_decl RAMB36E1
134 xtract_cell_decl ROM128X1
135 xtract_cell_decl ROM256X1
136 xtract_cell_decl ROM32X1
137 xtract_cell_decl ROM64X1
138 #xtract_cell_decl SRL16E
139 #xtract_cell_decl SRLC32E
140 xtract_cell_decl STARTUPE2 "(* keep *)"
141 xtract_cell_decl USR_ACCESSE2
142 xtract_cell_decl XADC
143 } > cells_xtra.new
144
145 mv cells_xtra.new cells_xtra.v
146 exit 0
147