1AP(5) FILE FORMATS AP(5)
2
3
4
6 ap - Alliance physical format
7
9 file ::=
10 version
11 header
12 connectors
13 segments
14 instances
15 transistors
16 patterns
17 end_of_file
18
19 version ::= 'V ALLIANCE 2.2 SETUP : ' version_number
20
21 header ::= 'H ' name ',' file_type ',' abindex ',' nb_desc
22 ',' date ',' index_beg ',' link_mode ','
23 bounding_box ',' [ abutment_box ]
24 /* name : name of the figure */
25 /* file_type : type of the file */
26 /* abindex : index of the abutment box */
27 /* nb_desc : number of descriptors */
28 /* date : saving file date */
29 /* index_beg : index of the beginning of the linkage */
30 /* link_mode : indication on the linkage */
31 /* (update or not) */
32 /* bounding_box : coordinates and size of the */
33 /* bounding box */
34 /* abutment_box : coordinates and size, if defined, */
35 /* of the abutment box */
36
37 connectors ::= { connector }
38
39 connector ::= 'C ' index ',' x ',' y ',' w ',' orientation
40 ',' layer ',' name ',' connector_type ','
41 nextindex ',' endnet
42 /* x, y, w : coordinates and size of the connector */
43 /* orientation : north, south, east, or west */
44 /* layer : layer of the connector */
45 /* name : name of the connector */
46 /* connector_type : input or output or ... */
47 /* nextindex : next index in the linkage */
48 /* endnet : end in the linkage of the net */
49
50 segments ::= { segment }
51
52 segment ::= 'S ' index ',' x ',' y ',' d ',' w ',' direction
53 ',' layer ',' name ',' nextindex ',' endnet
54 /* x, y, d, w : coordinates and size of the segment */
55 /* direction : horizontaly or verticaly */
56 /* layer : layer of the segment */
57 /* name : name of the segment */
58 /* nextindex : next index in the linkage */
59 /* endnet : end in the linkage of the net */
60
61 instances ::= { instance [ connectors ] }
62 /* In case of updated linkage, an instance is followed */
63 /* by his connectors */
64
65 instance ::= 'I ' index ',' x ',' y ',' instance_name ','
66 model_name ',' geoop ',' nextindex ',' endnet
67 /* x, y : coordinates of the instance */
68 /* instance_name : local name of the instance */
69 /* model_name : name of the model */
70 /* geoop : geometric operation */
71 /* nextindex : next index in the linkage */
72 /* endnet : end in the linkage of the net */
73
74 transistors ::= { transistor }
75
76 transistor ::= 'T ' index ',' x ',' y ',' instance_name ','
77 trans_name ',' geoop ',' nextindex ',' endnet
78 /* x, y : coordinates of the transistor */
79 /* instance_name : name of the instance */
80 /* trans_name : generic name of the transistor */
81 /* geoop : geometric operation */
82 /* nextindex : next index in the linkage */
83 /* endnet : end in the linkage of the net */
84
85 patterns ::= { pattern }
86
87 pattern ::= 'M ' index ',' x ',' y ',' instance_name ','
88 pattern_name ',' int_index ',' nextindex ','
89 endnet
90 /* x, y : coordinates of the pattern */
91 /* instance_name : name of the instance of the pattern */
92 /* pattern_name : name of the pattern */
93 /* int_index : internal index of the pattern */
94 /* nextindex : next index in the linkage */
95 /* endnet : end in the linkage of the net */
96
97 end_of_file ::= 'EOF'
98
99 version_number ::= number
100
101 file_type ::= 'P'
102
103 abindex ::= index
104
105 nb_desc ::= number
106
107 date ::= day '/' month '/' year
108
109 index_beg ::= index
110
111 index ::= number
112
113 link_mode ::= 'A JOUR' | 'PAS A JOUR'
114 /* updated, not updated */
115
116 bounding_box ::= x ',' y ',' dx ',' dy
117
118 abutment_box ::= x ',' y ',' dx ',' dy
119
120 x ::= number
121
122 y ::= number
123
124 d ::= number
125 /* length */
126
127 w ::= number
128 /* width */
129
130 dx ::= number
131
132 dy ::= number
133
134 direction ::= 'H' | 'V'
135 /* horizontaly or verticaly */
136
137 orientation ::= 'NORD' | 'SUD' | 'EST' | 'OUEST'
138 /* North, south, east, west */
139
140 layer ::= 'POLY' | 'ALU1' | 'ALU2' | 'DIFN' | 'DIFP' |
141 'T_ALU1' | 'T_ALU2' | 'CAISSON_N' | 'CAISSON_P'
142 /* poly : polysilicium */
143 /* alu1 : first metal */
144 /* alu2 : second metal */
145 /* difn : N diffusion */
146 /* difp : P diffusion */
147 /* t_alu1 : first metal through route */
148 /* t_alu2 : second metal through route */
149 /* caisson_n : N bulk */
150 /* caisson_p : P bulk */
151
152 connector_type ::= 'IN' | 'OUT' | 'INOUT'
153
154 nextindex ::= index
155
156 endnet ::= 'NON' | 'FIN'
157 /* non : not the end of the net */
158 /* fin : end of the net */
159
160 model_name ::= name
161
162 instance_name ::= name
163
164 geoop ::= 'NOSYM' | 'ROT_P' | 'ROT_M' | 'SYM_X' | 'SYM_Y' |
165 'SYMXY' | 'SY_RP' | 'SY_RM'
166 /* nosym : no operation */
167 /* rot_p : rotates 90 degrees counter clockwise */
168 /* rot_m : rotates 90 degrees clockwise */
169 /* sym_y : y becomes -y */
170 /* sym_x : x becomes -x */
171 /* symxy : x becomes -x and y becomes -y */
172 /* sy_rp : y becomes -y then rotates 90 degrees */
173 /* counter clockwise */
174 /* sy_rm : y becomes -y then rotates 90 degrees */
175 /* clockwise */
176
177 trans_name ::= 'T' transistor_type '_' d '_' w
178
179 pattern_name ::= 'CONT_POLY' | 'CONT_DIF_N' | 'CONT_DIF_P' |
180 'CONT_VIA' | 'C_X_N' | 'C_X_P' | 'REF_CON'
181 | 'REF_REF'
182 /* cont_poly : poly alu1 contact */
183 /* cont_dif_n : alu1 difn contact */
184 /* cont_dif_p : alu1 difp contact */
185 /* cont_via : alu2 alu1 contact */
186 /* c_x_n : L shaped N transistor corner filling */
187 /* c_x_p : L shaped P transistor corner filling */
188 /* ref_con : kind of reference, for multi-acces */
189 /* connectors */
190 /* ref_ref : kind of reference, for all other uses */
191
192 int_index ::= index
193
194 transistor_type ::= 'P' | 'N'
195
196 number ::= { '0' | '1'| '2' | '3' | '4' | '5' |
197 '6' | '7'| '8' | '9' }
198
199 name ::= word
200
202 Example 1
203 This example is the physical design of a nand with two input. See exam‐
204 ple 1 in the description of alc logical format for more details.
205
206 V ALLIANCE 2.2 SETUP : 2
207 H na2_y,P,10,66,25/10/91,-1,PAS A JOUR,0,0,28,53,5,3,18,42
208 C 0,20,45,2,NORD,ALU2,i0,INOUT,-1,FIN
209 C 1,14,45,2,NORD,ALU2,f,INOUT,-1,FIN
210 C 2,8,45,2,NORD,ALU2,i1,INOUT,-1,FIN
211 C 3,20,3,2,SUD,ALU2,i0,INOUT,-1,FIN
212 C 4,14,3,2,SUD,ALU2,f,INOUT,-1,FIN
213 C 5,8,3,2,SUD,ALU2,i1,INOUT,-1,FIN
214 C 6,23,43,8,EST,ALU1,vdd,INOUT,-1,FIN
215 C 7,5,43,8,OUEST,ALU1,vdd,INOUT,-1,FIN
216 C 8,5,5,8,OUEST,ALU1,vss,INOUT,-1,FIN
217 C 9,23,5,8,EST,ALU1,vss,INOUT,-1,FIN
218 S 11,5,5,18,8,H,ALU1,vss,-1,FIN
219 S 12,8,2,12,2,H,DIFP,*,-1,FIN
220 S 13,8,27,11,3,V,DIFP,*,-1,FIN
221 S 14,20,27,11,3,V,DIFP,*,-1,FIN
222 S 15,20,22,6,2,V,ALU1,*,-1,FIN
223 S 16,19,22,1,2,H,ALU1,*,-1,FIN
224 S 17,5,43,18,8,H,ALU1,vdd,-1,FIN
225 S 18,8,33,10,2,V,ALU1,vdd,-1,FIN
226 S 19,8,22,6,2,V,ALU1,*,-1,FIN
227 S 20,8,22,1,2,H,ALU1,*,-1,FIN
228 S 21,14,30,5,2,V,ALU1,*,-1,FIN
229 S 22,14,13,17,1,V,ALU1,*,-1,FIN
230 S 23,14,13,6,1,H,ALU1,*,-1,FIN
231 S 24,17,22,2,2,H,POLY,*,-1,FIN
232 S 25,17,20,5,1,V,POLY,*,-1,FIN
233 S 26,9,22,2,2,H,POLY,*,-1,FIN
234 S 27,11,20,5,1,V,POLY,*,-1,FIN
235 S 28,8,45,12,2,H,DIFN,*,-1,FIN
236 S 29,5,39,18,26,H,CAISSON_N,*,-1,FIN
237 S 30,8,7,11,3,V,DIFN,*,-1,FIN
238 S 31,8,3,42,2,V,ALU2,i1,-1,FIN
239 S 32,14,3,42,2,V,ALU2,f,-1,FIN
240 S 33,14,27,11,3,V,DIFP,*,-1,FIN
241 S 34,20,7,11,3,V,DIFN,*,-1,FIN
242 S 35,14,7,11,3,V,DIFN,*,-1,FIN
243 S 36,20,3,42,2,V,ALU2,i0,-1,FIN
244 T 37,17,5,*,TN_15_1,NOSYM,-1,FIN
245 T 38,11,5,*,TN_15_1,NOSYM,-1,FIN
246 T 39,17,25,*,TP_15_1,NOSYM,-1,FIN
247 T 40,11,25,*,TP_15_1,NOSYM,-1,FIN
248 S 41,20,43,2,1,V,ALU1,vdd,-1,FIN
249 S 42,8,45,12,1,H,ALU1,vdd,-1,FIN
250 S 43,20,33,10,2,V,ALU1,vdd,-1,FIN
251 S 44,8,2,11,2,V,ALU1,vss,-1,FIN
252 S 45,8,2,12,2,H,ALU1,vss,-1,FIN
253 M 46,20,37,*,CONT_DIF_P,2,-1,FIN
254 M 47,8,37,*,CONT_DIF_P,2,-1,FIN
255 M 48,14,45,*,CONT_DIF_N,1,-1,FIN
256 M 49,14,2,*,CONT_DIF_P,2,-1,FIN
257 M 50,8,13,*,CONT_DIF_N,1,-1,FIN
258 M 51,20,13,*,CONT_DIF_N,1,-1,FIN
259 M 52,8,33,*,CONT_DIF_P,2,-1,FIN
260 M 53,20,33,*,CONT_DIF_P,2,-1,FIN
261 M 54,9,22,*,CONT_POLY,0,-1,FIN
262 M 55,19,22,*,CONT_POLY,0,-1,FIN
263 M 56,8,28,*,CONT_VIA,3,-1,FIN
264 M 57,20,28,*,CONT_VIA,3,-1,FIN
265 M 58,14,22,*,CONT_VIA,3,-1,FIN
266 M 59,8,8,*,CONT_DIF_N,1,-1,FIN
267 M 60,20,2,*,CONT_DIF_P,2,-1,FIN
268 M 61,8,2,*,CONT_DIF_P,2,-1,FIN
269 M 62,20,45,*,CONT_DIF_N,1,-1,FIN
270 M 63,8,45,*,CONT_DIF_N,1,-1,FIN
271 M 64,14,29,*,CONT_DIF_P,2,-1,FIN
272 M 65,14,35,*,CONT_DIF_P,2,-1,FIN
273 EOF
274
275 Example 2
276 This example is the physical design of a small circuit including three
277 nand.
278
279 V ALLIANCE 2.2 SETUP : 2
280 H test_nand,P,-1,57,12/ 4/92,10,A JOUR,3,1,61,60,
281 C 0,12,2,2,SUD,ALU2,a,IN,8,FIN
282 C 1,24,2,2,SUD,ALU2,b,IN,21,FIN
283 C 2,30,2,2,SUD,ALU2,c,IN,19,FIN
284 C 3,42,2,2,SUD,ALU2,d,IN,31,FIN
285 C 4,54,2,2,SUD,ALU2,s,OUT,36,FIN
286 C 5,4,47,1,EST,ALU1,vdd,IN,39,FIN
287 C 6,4,8,1,EST,ALU1,vss,IN,7,FIN
288 I 7,9,7,I1,na2_y,NOSYM,33,FIN
289 C 8,24,49,2,NORD,ALU2,i0,INOUT,11,NON
290 C 9,18,49,2,NORD,ALU2,f,INOUT,18,FIN
291 C 10,12,49,2,NORD,ALU2,i1,INOUT,13,NON
292 C 11,24,7,2,SUD,ALU2,i0,INOUT,41,NON
293 C 12,18,7,2,SUD,ALU2,f,INOUT,9,NON
294 C 13,12,7,2,SUD,ALU2,i1,INOUT,40,NON
295 C 14,27,47,8,EST,ALU1,vdd,INOUT,15,NON
296 C 15,9,47,8,OUEST,ALU1,vdd,INOUT,46,NON
297 C 16,9,9,8,OUEST,ALU1,vss,INOUT,45,NON
298 C 17,27,9,8,EST,ALU1,vss,INOUT,16,NON
299 I 18,27,7,I2,na2_y,NOSYM,35,FIN
300 C 19,42,49,2,NORD,ALU2,i0,INOUT,22,NON
301 C 20,36,49,2,NORD,ALU2,f,INOUT,29,FIN
302 C 21,30,49,2,NORD,ALU2,i1,INOUT,24,NON
303 C 22,42,7,2,SUD,ALU2,i0,INOUT,43,NON
304 C 23,36,7,2,SUD,ALU2,f,INOUT,20,NON
305 C 24,30,7,2,SUD,ALU2,i1,INOUT,42,NON
306 C 25,45,47,8,EST,ALU1,vdd,INOUT,26,NON
307 C 26,27,47,8,OUEST,ALU1,vdd,INOUT,14,NON
308 C 27,27,9,8,OUEST,ALU1,vss,INOUT,17,NON
309 C 28,45,9,8,EST,ALU1,vss,INOUT,27,NON
310 I 29,45,7,I3,na2_y,NOSYM,-1,FIN
311 C 30,60,49,2,NORD,ALU2,i0,INOUT,52,NON
312 C 31,54,49,2,NORD,ALU2,f,INOUT,34,NON
313 C 32,48,49,2,NORD,ALU2,i1,INOUT,51,NON
314 C 33,60,7,2,SUD,ALU2,i0,INOUT,30,NON
315 C 34,54,7,2,SUD,ALU2,f,INOUT,44,NON
316 C 35,48,7,2,SUD,ALU2,i1,INOUT,32,NON
317 C 36,63,47,8,EST,ALU1,vdd,INOUT,37,NON
318 C 37,45,47,8,OUEST,ALU1,vdd,INOUT,25,NON
319 C 38,45,9,8,OUEST,ALU1,vss,INOUT,28,NON
320 C 39,63,9,8,EST,ALU1,vss,INOUT,38,NON
321 S 40,12,2,5,2,V,ALU2,*,0,NON
322 S 41,24,2,5,2,V,ALU2,*,1,NON
323 S 42,30,2,5,2,V,ALU2,*,2,NON
324 S 43,42,2,5,2,V,ALU2,*,3,NON
325 S 44,54,2,5,2,V,ALU2,*,4,NON
326 S 45,4,8,5,1,H,ALU1,*,6,NON
327 S 46,4,47,5,1,H,ALU1,*,5,NON
328 S 47,18,55,42,1,H,ALU1,x,53,NON
329 S 48,36,60,12,1,H,ALU1,y,54,NON
330 S 49,18,49,6,2,V,ALU2,*,12,NON
331 S 50,36,49,11,2,V,ALU2,*,23,NON
332 S 51,48,49,11,2,V,ALU2,*,55,NON
333 S 52,60,49,6,2,V,ALU2,*,56,NON
334 M 53,18,55,*,CONT_VIA,3,49,NON
335 M 54,36,60,*,CONT_VIA,3,50,NON
336 M 55,48,60,*,CONT_VIA,3,48,NON
337 M 56,60,55,*,CONT_VIA,3,47,NON
338 EOF
339
340
341
342
343
344ASIM/LIP6 October 1, 1997 AP(5)