1GENLIB(1) Alliance - genlib User's Manual GENLIB(1)
2
3
4
6 genlib - Procedural design language based upon C.
7
9 genlib is a set of C functions dedicated to procedural generation pur‐
10 poses. From a user point of view, genlib is a circuit's description
11 language that allows standard C programming flow control, variable use,
12 and specialized functions in order to handle vlsi objects.
13
14 Based upon the Alliance mbk data structures, the genlib language gives
15 the user the ability to describe both netlist and layout views,
16 thus allowing both standard cell and full custom approachs.
17
18 NETLIST CAPTURE
19 It is a hierachical structural description of a circuit in terms of
20 connectors (I/Os), signals (nets), and instances.
21
22 The function calls used to handle the netlist view are :
23
24 · GENLIB_DEF_LOFIG(3)
25
26 · GENLIB_SAVE_LOFIG(3)
27
28 · GENLIB_LOINS(3)
29
30 · GENLIB_LOCON(3)
31
32 · GENLIB_LOSIG(3)
33
34 · GENLIB_FLATTEN_LOFIG(3) Some facilities, in order to create vectors
35 are also available :
36
37 · GENLIB_BUS(3)
38
39 · GENLIB_ELM(3)
40
41 STANDARD CELL PLACEMENT
42 The following functions allows to define a placement file for a stan‐
43 dard cell design. This file can be used by the standard cell router
44 ocr(1) :
45
46 · GENLIB_DEF_PHSC(3)
47
48 · GENLIB_SAVE_PHSC(3)
49
50 · GENLIB_SC_PLACE(3)
51
52 · GENLIB_SC_RIGHT(3)
53
54 · GENLIB_SC_TOP(3)
55
56 · GENLIB_SC_LEFT(3)
57
58 · GENLIB_SC_BOTTOM(3)
59
60 FULL CUSTOM SYMBOLIC LAYOUT
61 Those functions are dedicated to optimized full custom procedural lay‐
62 out. In order to provide some process independance, Alliance uses a
63 symbolic layout approach (fixed grid without compaction).
64
65 The symbolic objects are segments (wires), vias (contacts), connectors
66 (I/Os), references and instances. For more information, see phseg(1),
67 phvia(1), phcon(1), phref(1), phins(1) and alc(1).
68
69 · GENLIB_DEF_PHFIG(3)
70
71 · GENLIB_SAVE_PHFIG(3)
72
73 · GENLIB_DEF_AB(3)
74
75 · GENLIB_DEF_PHINS(3)
76
77 · GENLIB_PHCON(3)
78
79 · GENLIB_COPY_UP_CON(3)
80
81 · GENLIB_COPY_UP_CON_FACE(3)
82
83 · GENLIB_COPY_UP_ALL_CON(3)
84
85 · GENLIB_PHSEG(3)
86
87 · GENLIB_COPY_UP_SEG(3)
88
89 · GENLIB_THRU_H(3)
90
91 · GENLIB_THRU_V(3)
92
93 · GENLIB_THRU_CON_H(3)
94
95 · GENLIB_THRU_CON_V(3)
96
97 · GENLIB_WIRE1(3)
98
99 · GENLIB_WIRE2(3)
100
101 · GENLIB_WIRE3(3)
102
103 · GENLIB_PHVIA(3)
104
105 · GENLIB_PLACE(3)
106
107 · GENLIB_PLACE_RIGHT(3)
108
109 · GENLIB_PLACE_TOP(3)
110
111 · GENLIB_PLACE_LEFT(3)
112
113 · GENLIB_PLACE_BOTTOM(3)
114
115 · GENLIB_PLACE_ON(3)
116
117 · GENLIB_PHREF(3)
118
119 · GENLIB_COPY_UP_REF(3)
120
121 · GENLIB_COPY_UP_ALL_REF(3)
122
123 · GENLIB_PLACE_VIA_REF(3)
124
125 · GENLIB_PLACE_CON_REF(3)
126
127 · GENLIB_PLACE_SEG_REF(3)
128
129 · GENLIB_FLATTEN_PHFIG(3)
130
131 · GENLIB_GET_REF_X(3)
132
133 · GENLIB_GET_REF_Y(3)
134
135 · GENLIB_GET_CON_X(3)
136
137 · GENLIB_GET_CON_Y(3)
138
139 · GENLIB_HEIGHT(3)
140
141 · GENLIB_WIDTH(3) In order to have information about each of these
142 functions, use the online documentation with man(1), as in man func‐
143 tion-name.
144
145 It is strongly recommended to read some books on C programming, in
146 order to take full advantage of the C flow control possibilities, as it
147 may greatly reduce the size of a genlib source code.
148
150 · MBK_IN_LO(1), default value : al
151
152 · MBK_OUT_LO(1), default value : al
153
154 · MBK_IN_PH(1), default value : ap
155
156 · MBK_OUT_LO(1), default value : ap
157
158 · MBK_CATA_LIB(1), default value : .
159
160 · MBK_WORK_LIB(1), default value : .
161
162 · MBK_CATAL_NAME(1), default value : CATAL See the corresponding manual
163 pages for further information.
164
165 In order to compile and execute a genlib file, one has to call genlib
166 with one argument, that is the genlib source file. The source file
167 must have a .c extension, but the extension should not be mentioned on
168 the command line.
169
170 The names used in genlib, as arguments to genlib functions, should be
171 alphanumerical, including the underscore. They also are not case sensi‐
172 tive, so VDD is equivalent to vdd. Vectorized connectors or signal can
173 be declareds using the [n:m] construct.
174
176 genlib [ -cklmnv
177 ] [ --no-rm-core ] [ --keep-makefile ] [ --keep-exec ] [ --keep-log ]
178 [ --no-exec ] [ --verbose ] program [ -e program_args ]
179
180
181 OPTIONS
182 · <program> : the name of the C file containing the genlib program,
183 whitout extention. Mandatory argument.
184
185 · [--no-rm-core|-c] : in case of core dump, do not remove the generated
186 core file. This option must be used with [--keep-exec|-k].
187
188 · [--keep-makefile|-m] : do not erase the generated makefile after exe‐
189 cution.
190
191 · [--keep-exec|-k] : keep the generated executable after the genlib
192 run.
193
194 · [--keep-log|-l] : do not erase the log file after a successful com‐
195 pletion (the log is keeped after a faulty run).
196
197 · [--no-exec|-n] : do not run the generated program. Should be used
198 with [--keep-exec|-k].
199
200 · [--no-verbose|-v] : self explanatory.
201
202 · [-e] : all the following arguments are handled to the compiled pro‐
203 gram.
204
206 Compile and run a file amd2901.c :
207
208 genlib -v amd2901
209
210
212 mbk(1),
213
215 Many errors may occur while executing the source file, so refer to the
216 proper genlib function manual for more. When an error occur, genlib
217 left a log file <program>.grr. As <program>.c is a C program, all
218 syntatic C error can occurs...
219
220 All genlib functions are listed below alphabetically sorted.
221
222
223
224ASIM/LIP6 30 July 2004 GENLIB(1)