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